From efdc7cef88eda17bfa9883025aff32a15b7dcaca Mon Sep 17 00:00:00 2001 From: yui-knk Date: Sun, 31 Aug 2014 00:28:07 +0900 Subject: [PATCH 0001/1761] Fix sub title to 'do/end blocks' --- getting_started/5.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting_started/5.markdown b/getting_started/5.markdown index 444d0dd9f..63277ac5e 100644 --- a/getting_started/5.markdown +++ b/getting_started/5.markdown @@ -204,7 +204,7 @@ iex> if nil do > Note: An interesting note regarding `if/2` and `unless/2` is that they are implemented as macros in the language; they aren't special language constructs as they would be in many languages. You can check the documentation and the source of `if/2` in [the `Kernel` module docs](/docs/stable/elixir/Kernel.html). The `Kernel` module is also where operators like `+/2` and functions like `is_function/2` are defined, all automatically imported and available in your code by default. -## 5.5 `do` blocks +## 5.5 `do`/`end` blocks At this point, we have learned four control structures: `case`, `cond`, `if` and `unless`, and they were all wrapped in `do`/`end` blocks. It happens we could also write `if` as follows: From c03c6741f7de5871a279db843a58ffa3a9f769e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 21 Oct 2014 15:37:23 -0200 Subject: [PATCH 0002/1761] Release v1.0.2 --- elixir.csv | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/elixir.csv b/elixir.csv index f9713418f..be4acd7b1 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,7 +1,4 @@ version,url_precompiled,release_type,windows_installer_compat +1.0.2,https://github.com/elixir-lang/elixir/releases/download/v1.0.2/Precompiled.zip,release,1 1.0.1,https://github.com/elixir-lang/elixir/releases/download/v1.0.1/Precompiled.zip,release,1 1.0.0,https://github.com/elixir-lang/elixir/releases/download/v1.0.0/Precompiled.zip,release,1 -1.0.0-rc2,https://github.com/elixir-lang/elixir/releases/download/v1.0.0-rc2/Precompiled.zip,release,1 -1.0.0-rc1,https://github.com/elixir-lang/elixir/releases/download/v1.0.0-rc1/Precompiled.zip,release,1 -0.15.1,https://github.com/elixir-lang/elixir/releases/download/v0.15.1/Precompiled.zip,release,1 -0.15.0,https://github.com/elixir-lang/elixir/releases/download/v0.15.0/Precompiled.zip,release,1 From b8450f8f41c8433c188946f6a46ad9e2bca9d13b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 21 Oct 2014 15:38:25 -0200 Subject: [PATCH 0003/1761] Use def start_link --- getting_started/11.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/getting_started/11.markdown b/getting_started/11.markdown index 62d9ac990..1b02e9241 100644 --- a/getting_started/11.markdown +++ b/getting_started/11.markdown @@ -148,7 +148,7 @@ Processes are the most common answer to this question. We can write processes th ```elixir defmodule KV do - def start do + def start_link do {:ok, spawn_link(fn -> loop(%{}) end)} end @@ -164,12 +164,12 @@ defmodule KV do end ``` -Note that the `start` function basically spawns a new process that runs the `loop/1` function, starting with an empty map. The `loop/1` function then waits for messages and performs the appropriate action for each message. In case of a `:get` message, it sends a message back to the caller and calls `loop/1` again, to wait for a new message. While the `:put` message actually invokes `loop/1` with a new version of the map, with the given `key` and `value` stored. +Note that the `start_link` function basically spawns a new process that runs the `loop/1` function, starting with an empty map. The `loop/1` function then waits for messages and performs the appropriate action for each message. In case of a `:get` message, it sends a message back to the caller and calls `loop/1` again, to wait for a new message. While the `:put` message actually invokes `loop/1` with a new version of the map, with the given `key` and `value` stored. Let's give it a try by running `iex kv.exs`: ```iex -iex> {:ok, pid} = KV.start +iex> {:ok, pid} = KV.start_link #PID<0.62.0> iex> send pid, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} @@ -212,6 +212,6 @@ iex> Agent.get(pid, fn map -> Map.get(map, :hello) end) :world ``` -A `:name` option could also be given to `Agent.start/2` and it would be automatically registered. Besides agents, Elixir provides an API for building generic servers (called GenServer), generic event managers and event handlers (called GenEvent), tasks and more, all powered by processes underneath. Those, along with supervision trees, will be explored with more detail in the Mix and OTP guide which will build a complete Elixir application from start to finish. +A `:name` option could also be given to `Agent.start_lik/2` and it would be automatically registered. Besides agents, Elixir provides an API for building generic servers (called GenServer), generic event managers and event handlers (called GenEvent), tasks and more, all powered by processes underneath. Those, along with supervision trees, will be explored with more detail in the Mix and OTP guide which will build a complete Elixir application from start to finish. For now, let's move on and explore the world of I/O in Elixir. From 7e452309d3c5323bade90eeb88eb813890fb893f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 21 Oct 2014 21:38:16 -0200 Subject: [PATCH 0004/1761] Fix start_link typo --- getting_started/11.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting_started/11.markdown b/getting_started/11.markdown index 1b02e9241..0698d7aeb 100644 --- a/getting_started/11.markdown +++ b/getting_started/11.markdown @@ -212,6 +212,6 @@ iex> Agent.get(pid, fn map -> Map.get(map, :hello) end) :world ``` -A `:name` option could also be given to `Agent.start_lik/2` and it would be automatically registered. Besides agents, Elixir provides an API for building generic servers (called GenServer), generic event managers and event handlers (called GenEvent), tasks and more, all powered by processes underneath. Those, along with supervision trees, will be explored with more detail in the Mix and OTP guide which will build a complete Elixir application from start to finish. +A `:name` option could also be given to `Agent.start_link/2` and it would be automatically registered. Besides agents, Elixir provides an API for building generic servers (called GenServer), generic event managers and event handlers (called GenEvent), tasks and more, all powered by processes underneath. Those, along with supervision trees, will be explored with more detail in the Mix and OTP guide which will build a complete Elixir application from start to finish. For now, let's move on and explore the world of I/O in Elixir. From e831c9778297b9a93d45313384161300ddb19ab8 Mon Sep 17 00:00:00 2001 From: aseeon Date: Mon, 27 Oct 2014 17:30:38 +0100 Subject: [PATCH 0005/1761] Update to the installation instructions It was really unclear that the new versions of Elixir require version 17 of erlang and not the version R16 that was fine with erlier versions of elixir (0.11.2 for example). So someone who was upgrading could totally miss it. --- install.markdown | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/install.markdown b/install.markdown index 3c1aec5df..03e09783e 100644 --- a/install.markdown +++ b/install.markdown @@ -3,6 +3,18 @@ title: "Installing Elixir" section: install layout: default --- +## Installing Erlang + +The only prerequisite for Elixir is Erlang, version 17.0 or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](http://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/). + +For Windows developers, we recommend the precompiled packages. Those on a Unix platform can probably get Erlang installed via one of the many package distribution tools. + +After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information as follows: + + Erlang/OTP 17 (erts-6) [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false] + +Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](http://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! + ## Installing Elixir @@ -75,14 +87,4 @@ In case you are feeling a bit more adventurous, you can also compile from master If the tests pass, you are ready to go. Otherwise, feel free to open an issue [in the issues tracker on Github](https://github.com/elixir-lang/elixir). -### 4 Installing Erlang - -The only prerequisite for Elixir is Erlang, version 17.0 or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](http://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/). - -For Windows developers, we recommend the precompiled packages. Those on a Unix platform can probably get Erlang installed via one of the many package distribution tools. - -After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information as follows: - Erlang/OTP 17 (erts-6) [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false] - -Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](http://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! From a0db46f71365e07e938e9a230497bb9ecb509ff1 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Wed, 29 Oct 2014 13:54:19 +1100 Subject: [PATCH 0006/1761] Create an element id for #stable, in addition to the version number. --- docs.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/docs.markdown b/docs.markdown index 3acce2ab1..a5c413337 100644 --- a/docs.markdown +++ b/docs.markdown @@ -8,6 +8,7 @@ layout: default Choose which version you want documentation for. + #### v1.0 * [Elixir](/docs/stable/elixir) - standard library From 170bd195bc206c24eb88bfb97b7736628256b5c1 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Wed, 29 Oct 2014 14:39:41 +1100 Subject: [PATCH 0007/1761] Fix warnings generated by layout:nil, and pygments: --- _config.yml | 2 +- atom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 78201b070..a2c20dfc7 100644 --- a/_config.yml +++ b/_config.yml @@ -1,5 +1,5 @@ markdown: redcarpet -pygments: true +highlighter: true permalink: /blog/:year/:month/:day/:title redcarpet: extensions: ['with_toc_data'] diff --git a/atom.xml b/atom.xml index 59ed4bffc..ec3016b38 100644 --- a/atom.xml +++ b/atom.xml @@ -1,5 +1,5 @@ --- -layout: nil +layout: null elixir_url: http://elixir-lang.org --- From f7117f66216657ab77c37ba11f065e19a8efab14 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Wed, 29 Oct 2014 14:48:44 +1100 Subject: [PATCH 0008/1761] nodejs is required --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 105415698..449b49859 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,8 @@ Development is done in the `next` branch, while `master` contains the docs and g 3. Test it locally - You need to install `jekyll`, `jekyll-redirect-from` and `redcarpet` + You need to have ``nodejs`` installed, + as well as ruby gems: `jekyll`, `jekyll-redirect-from` and `redcarpet` ```shell $ gem install jekyll jekyll-redirect-from redcarpet From f0be603a1168b4f4660ab3eafaa061b006aa6543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 29 Oct 2014 14:30:41 -0200 Subject: [PATCH 0009/1761] Be more explicit on the node dependency --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 449b49859..381841bfd 100644 --- a/README.md +++ b/README.md @@ -30,17 +30,16 @@ Development is done in the `next` branch, while `master` contains the docs and g 2. Make your changes -3. Test it locally - - You need to have ``nodejs`` installed, - as well as ruby gems: `jekyll`, `jekyll-redirect-from` and `redcarpet` +3. Test it locally, you need to install the gems `jekyll` and `redcarpet`: ```shell - $ gem install jekyll jekyll-redirect-from redcarpet + $ gem install jekyll redcarpet $ jekyll serve # check localhost:4000 ``` -4. Send a pull-request for your changes. +4. Send a pull-request for your changes + +`jekyll` requires a javascript processor to be available too. Many OS provide such functionality but others do not. If you have an error related to ExecJS, you can work around it by either running `gem install therubyracer` or by ensuring Node.JS is available in your path. ### License From f896e64caf98be24f82954860beff155bbad29a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 3 Nov 2014 15:29:59 -0200 Subject: [PATCH 0010/1761] Add a brief mention of Erlang version instead --- install.markdown | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/install.markdown b/install.markdown index 03e09783e..db7e87b8c 100644 --- a/install.markdown +++ b/install.markdown @@ -3,23 +3,13 @@ title: "Installing Elixir" section: install layout: default --- -## Installing Erlang - -The only prerequisite for Elixir is Erlang, version 17.0 or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](http://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/). - -For Windows developers, we recommend the precompiled packages. Those on a Unix platform can probably get Erlang installed via one of the many package distribution tools. - -After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information as follows: - - Erlang/OTP 17 (erts-6) [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false] - -Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](http://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! - ## Installing Elixir The quickest way to install Elixir is through a distribution or using one of the available installers. If not available, then we recommend the precompiled packages or compiling from source. +Note Elixir requires Erlang 17.0 or later. Many of the instructions below wil automatically install Erlang for you. In case they do not, read the "Installing Erlang" section below. + ### 1 Distributions Choose your operating system and tool. @@ -87,4 +77,14 @@ In case you are feeling a bit more adventurous, you can also compile from master If the tests pass, you are ready to go. Otherwise, feel free to open an issue [in the issues tracker on Github](https://github.com/elixir-lang/elixir). +### 4 Installing Erlang + +The only prerequisite for Elixir is Erlang, version 17.0 or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](http://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/). + +For Windows developers, we recommend the precompiled packages. Those on a Unix platform can probably get Erlang installed via one of the many package distribution tools. + +After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information as follows: + Erlang/OTP 17 (erts-6) [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false] + +Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](http://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! From 3a1fe241c618c3289ef6bc57aa987459acb23b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Mo=C5=A1i=C4=87?= Date: Wed, 5 Nov 2014 20:07:58 +0100 Subject: [PATCH 0011/1761] Update learning-resources.html --- _includes/learning-resources.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/learning-resources.html b/_includes/learning-resources.html index c9258d28b..ac348f5d9 100644 --- a/_includes/learning-resources.html +++ b/_includes/learning-resources.html @@ -1,7 +1,7 @@

Learning resources

    -
  • +
  • From 05a1d539c70f3decc5460e5496bd44f285321c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 5 Nov 2014 18:11:02 -0200 Subject: [PATCH 0012/1761] Bring back syntax highlight --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index a2c20dfc7..f3619d808 100644 --- a/_config.yml +++ b/_config.yml @@ -1,5 +1,5 @@ markdown: redcarpet -highlighter: true +highlighter: pygments permalink: /blog/:year/:month/:day/:title redcarpet: extensions: ['with_toc_data'] From 34c2d14a621d89881732094a3ff7788ec5b8e37c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 19 Nov 2014 12:38:46 +0100 Subject: [PATCH 0013/1761] Update 1.markdown --- getting_started/1.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting_started/1.markdown b/getting_started/1.markdown index b9754753b..96f38bf2b 100644 --- a/getting_started/1.markdown +++ b/getting_started/1.markdown @@ -10,7 +10,7 @@ guide: 1 Welcome! -In this tutorial we are going to get you started with Elixir. This chapter will focus on ensuring Elixir is installed and that you can sucessfully run Elixir's Interactive Shell, called IEx. +In this tutorial we are going to teach you the Elixir foundation, the language syntax, how to define modules, how to manipulate and the characteristics of the common data structures and more. This chapter will focus on ensuring Elixir is installed and that you can sucessfully run Elixir's Interactive Shell, called IEx. Our requirements are: From b548dd4332ab6f94c0168804d0d1e8c399f55e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 19 Nov 2014 12:39:31 +0100 Subject: [PATCH 0014/1761] Unfortunately Fedora packages are out of date --- install.markdown | 2 -- 1 file changed, 2 deletions(-) diff --git a/install.markdown b/install.markdown index db7e87b8c..1b18470c7 100644 --- a/install.markdown +++ b/install.markdown @@ -24,8 +24,6 @@ Choose your operating system and tool. #### Unix (and Unix-like) - * Fedora 17+ and Fedora Rawhide - * Run: `sudo yum -y install elixir` * Arch Linux (on AUR) * Run: `yaourt -S elixir` * openSUSE (and SLES 11 SP3+) From 99c521226cafa2be27c2b916027cfd789fd8bf27 Mon Sep 17 00:00:00 2001 From: Tenor Biel Date: Wed, 26 Nov 2014 13:35:05 -0600 Subject: [PATCH 0015/1761] Use HashDict.has_key? instead of HashDict.get Because readability and consistency and what happens when the value at the key is FALSE --- getting_started/mix_otp/3.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting_started/mix_otp/3.markdown b/getting_started/mix_otp/3.markdown index cfb7100fa..07166cb49 100644 --- a/getting_started/mix_otp/3.markdown +++ b/getting_started/mix_otp/3.markdown @@ -85,7 +85,7 @@ defmodule KV.Registry do end def handle_cast({:create, name}, names) do - if HashDict.get(names, name) do + if HashDict.has_key?(names, name) do {:noreply, names} else {:ok, bucket} = KV.Bucket.start_link() @@ -219,7 +219,7 @@ def handle_call(:stop, _from, state) do end def handle_cast({:create, name}, {names, refs}) do - if HashDict.get(names, name) do + if HashDict.has_key?(names, name) do {:noreply, {names, refs}} else {:ok, pid} = KV.Bucket.start_link() From b80c7514e4b91502025038e6a706cfe900fcc61d Mon Sep 17 00:00:00 2001 From: thmzlt Date: Wed, 10 Dec 2014 10:11:09 -0300 Subject: [PATCH 0016/1761] Repharse explanation of linked lists --- getting_started/2.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting_started/2.markdown b/getting_started/2.markdown index 96de3540c..aab075c59 100644 --- a/getting_started/2.markdown +++ b/getting_started/2.markdown @@ -319,7 +319,7 @@ By being immutable, Elixir also helps eliminate common cases where concurrent co What is the difference between lists and tuples? -Lists are stored in memory as linked lists. This means each element in a list points to the next element, and then to the next element, until it reaches the end of a list. We call each of those pairs in a list a **cons cell**: +Lists are stored in memory as linked lists, meaning that each element in a list holds its value and points to the following element until the end of the list is reached. We call each pair of value and pointer a **cons cell**: ```iex iex> list = [1|[2|[3|[]]]] From 1ef561d4195caa879815c9f0248637db85b52d05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 13 Dec 2014 08:42:56 +0100 Subject: [PATCH 0017/1761] Talk about char lists early on --- getting_started/2.markdown | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/getting_started/2.markdown b/getting_started/2.markdown index aab075c59..3da323c6f 100644 --- a/getting_started/2.markdown +++ b/getting_started/2.markdown @@ -189,15 +189,6 @@ iex> String.upcase("hellö") "HELLÖ" ``` -Keep in mind `single-quoted` and `double-quoted` strings are not equivalent in Elixir as they are represented by different types: - -```iex -iex> 'hellö' == "hellö" -false -``` - -We will talk more about Unicode support and the difference between single and double-quoted strings in the "Binaries, strings and char lists" chapter. - ## 2.5 Anonymous functions Functions are delimited by the keywords `fn` and `end`: @@ -276,7 +267,25 @@ iex> hd [] ** (ArgumentError) argument error ``` -Oops! +Sometimes you will create a list and it will return a value in single-quotes. For example: + +```iex +iex> [11, 12, 13] +'\v\f\r' +iex> [104, 101, 108, 108, 111] +'hello' +``` + +When Elixir sees a list of printable ASCII numbers, Elixir will print that as a char list (literally a list of characters). Char lists are quite common when interfacing with existing Erlang code. + +Keep in mind single-quoted and double-quoted representations are not equivalent in Elixir as they are represented by different types: + +```iex +iex> 'hello' == "hello" +false +``` + +Single-quotes are char lists, double-quotes are strings. We will talk more about them in the "Binaries, strings and char lists" chapter. ## 2.7 Tuples From 5143e09302e745aa47c3acf6d96bd927191ebb82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 16 Dec 2014 15:27:29 +0100 Subject: [PATCH 0018/1761] Talk about tasks early on --- getting_started/11.markdown | 38 +++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/getting_started/11.markdown b/getting_started/11.markdown index 0698d7aeb..0cecfb954 100644 --- a/getting_started/11.markdown +++ b/getting_started/11.markdown @@ -105,16 +105,16 @@ The most common form of spawning in Elixir is actually via `spawn_link/1`. Befor ```iex iex> spawn fn -> raise "oops" end +#PID<0.58.0> [error] Error in process <0.58.0> with exit value: ... - -#PID<0.58.0> ``` It merely logged an error but the spawning process is still running. That's because processes are isolated. If we want the failure in one process to propagate to another one, we should link them. This can be done with `spawn_link/1`: ```iex iex> spawn_link fn -> raise "oops" end +#PID<0.41.0> ** (EXIT from #PID<0.41.0>) an exception was raised: ** (RuntimeError) oops @@ -140,7 +140,37 @@ While other languages would require us to catch/handle exceptions, in Elixir we Before moving to the next chapter, let's see one of the most common use cases for creating processes in Elixir. -## 11.4 State +## 11.4 Tasks + +When making our processes crash in the previous section, you may have noticed the error messages were rather poor: + +```iex +iex> spawn fn -> raise "oops" end +#PID<0.58.0> + +[error] Error in process <0.58.0> with exit value: ... +``` + +With `spawn/1` and `spawn_link/1` functions, the error messages are generated directly by the Virtual Machine and therefore compact and lacking in details. In practice, developers would rather use the functions in the Task module, more explicitly, `Task.start/1` and `Task.start_link/1`: + +```iex +iex(1)> Task.start fn -> raise "oops" end +{:ok, #PID<0.55.0>} + +15:22:33.046 [error] Task #PID<0.55.0> started from #PID<0.53.0> terminating +Function: #Function<20.90072148/0 in :erl_eval.expr/5> + Args: [] +** (exit) an exception was raised: + ** (RuntimeError) oops + (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2 + (stdlib) proc_lib.erl:239: :proc_lib.init_p_do_apply/3 +``` + +Besides providing better error logging, there are a couple other differences: `start/1` and `start_link/1` return `{:ok, pid}` rather than just the PID. This is what enables Tasks to be used in supervision tree. Furthermore, tasks provides convenience functions, like `Task.async/1` and `Task.await/1`, and functionality to ease distribution. + +We will explore those functionalities in the Mix and OTP guide, for now it is enough to remember to use Tasks to get better logging. + +## 11.5 State We haven't talked about state so far in this guide. If you are building an application that requires state, for example, to keep your application configuration, or you need to parse a file and keep it in memory, where would you store it? @@ -149,7 +179,7 @@ Processes are the most common answer to this question. We can write processes th ```elixir defmodule KV do def start_link do - {:ok, spawn_link(fn -> loop(%{}) end)} + Task.start_link(fn -> loop(%{}) end) end defp loop(map) do From 1b147bff54ebd217cda9a04ed8c41d0bd5fadd9a Mon Sep 17 00:00:00 2001 From: Kamil Kieliszczyk Date: Tue, 16 Dec 2014 09:25:33 -0800 Subject: [PATCH 0019/1761] Prove that atom :false and :true are booleans --- getting_started/2.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting_started/2.markdown b/getting_started/2.markdown index 3da323c6f..8fa540c3f 100644 --- a/getting_started/2.markdown +++ b/getting_started/2.markdown @@ -122,6 +122,8 @@ iex> true == :true true iex> is_atom(false) true +iex> is_boolean(:false) +true ``` ## 2.4 Strings From fb9a1aaafa6d24e0296d802129b845ecd771993b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 24 Dec 2014 17:26:31 +0100 Subject: [PATCH 0020/1761] Link to the assertive style blog post --- getting_started/7.markdown | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/getting_started/7.markdown b/getting_started/7.markdown index 5c462a919..5f605717d 100644 --- a/getting_started/7.markdown +++ b/getting_started/7.markdown @@ -45,10 +45,11 @@ iex> new_list[:a] 0 ``` -Keyword lists are important because they have two special characteristics: +Keyword lists are important because they have three special characteristics: -* They keep the keys ordered, as specified by the developer. -* They allow a key to be given more than once. + * Keys must be atoms. + * Keys are ordered, as specified by the developer. + * Keys can be given more than once. For example, [the Ecto library](https://github.com/elixir-lang/ecto) makes use of both features to provide an elegant DSL for writing database queries: @@ -77,7 +78,7 @@ In general, when the keyword list is the last argument of a function, the square In order to manipulate keyword lists, Elixir provides [the `Keyword` module](/docs/stable/elixir/Keyword.html). Remember though keyword lists are simply lists, and as such they provide the same linear performance characteristics as lists. The longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly as options. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. -Note we can also pattern match on keyword lists: +Although we can pattern match on keyword lists, it is rarely done in practice since pattern matching on lists require the number of items and their order to match: ```iex iex> [a: a] = [a: 1] @@ -90,8 +91,6 @@ iex> [b: b, a: a] = [a: 1, b: 2] ** (MatchError) no match of right hand side value: [a: 1, b: 2] ``` -However this is rarely done in practice since pattern matching on lists require the number of items and their order to match. - ## 7.2 Maps Whenever you need a key-value store, maps are the "go to" data structure in Elixir. A map is created using the `%{}` syntax: @@ -103,12 +102,14 @@ iex> map[:a] 1 iex> map[2] :b +iex> map[:c] +nil ``` Compared to keyword lists, we can already see two differences: -* Maps allow any value as a key. -* Maps' keys do not follow any ordering. + * Maps allow any value as a key. + * Maps' keys do not follow any ordering. If you pass duplicate keys when creating a map, the last one wins: @@ -139,24 +140,35 @@ iex> %{:c => c} = %{:a => 1, 2 => :b} As shown above, a map matches as long as the given keys exist in the given map. Therefore, an empty map matches all maps. +[The `Map` module](/docs/stable/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to manipulate maps: + +```iex +iex> Map.get(%{:a => 1, 2 => :b}, :a) +1 +iex> Map.to_list(%{:a => 1, 2 => :b}) +[{2, :b}, {:a, 1}] +``` + One interesting property about maps is that they provide a particular syntax for updating and accessing atom keys: ```iex iex> map = %{:a => 1, 2 => :b} %{:a => 1, 2 => :b} + iex> map.a 1 +iex> map.c +** (KeyError) key :c not found in: %{2 => :b, :a => 1} + iex> %{map | :a => 2} %{:a => 2, 2 => :b} iex> %{map | :c => 3} ** (ArgumentError) argument error ``` -Both access and update syntaxes above require the given keys to exist. For example, the last line failed because there is no `:c` in the map. This is very useful when you are working with maps where you only expect certain keys to exist. - -In future chapters, we will also learn about structs, which provide compile-time guarantees and the foundation for polymorphism in Elixir. Structs are built on top of maps where the update guarantees above are proven to be quite useful. +Both access and update syntaxes above require the given keys to exist. For example, accessing and updating the `:c` key failed there is no `:c` in the map. -Manipulating maps is done via [the `Map` module](/docs/stable/elixir/Map.html), it provides a very similar API to the `Keyword` module. This is because both modules implement the `Dict` behaviour. +Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post](http://blog.plataformatec.com.br/2014/09/writing-assertive-code-with-elixir/) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. > Note: Maps were recently introduced into the Erlang VM with [EEP 43](http://www.erlang.org/eeps/eep-0043.html). Erlang 17 provides a partial implementation of the EEP, where only "small maps" are supported. This means maps have good performance characteristics only when storing at maximum a couple of dozens keys. To fill in this gap, Elixir also provides [the `HashDict` module](/docs/stable/elixir/HashDict.html) which uses a hashing algorithm to provide a dictionary that supports hundreds of thousands keys with good performance. @@ -181,6 +193,6 @@ The `Dict` module allows any developer to implement their own variation of `Dict That said, you may be wondering, which of `Keyword`, `Map` or `Dict` modules should you use in your code? The answer is: it depends. -If your code is expecting a keyword as an argument, explicitly use the `Keyword` module. If you want to manipulate a map, use the `Map` module. However, if your API is meant to work with any dictionary, use the `Dict` module (and make sure to write tests that pass different dict implementations as arguments). +If your code is expecting one specific time as argument, use the respective module as it leads to more assertive code. For example, if you expect a keyword as an argument, explicitly use the `Keyword` module instead of `Dict`. However, if your API is meant to work with any dictionary, use the `Dict` module (and make sure to write tests that pass different dict implementations as arguments). This concludes our introduction to associative data structures in Elixir. You will find out that given keyword lists and maps, you will always have the right tool to tackle problems that require associative data structures in Elixir. From 33eb73fee01431e5211dd441ce760c64a004a608 Mon Sep 17 00:00:00 2001 From: David Hatch Date: Thu, 25 Dec 2014 20:54:54 -0500 Subject: [PATCH 0021/1761] IO: Remove quotes surrounding stdout contents. In some IO.puts examples, output was incorrectly quoted. --- getting_started/12.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting_started/12.markdown b/getting_started/12.markdown index c811f1d50..45439d4a3 100644 --- a/getting_started/12.markdown +++ b/getting_started/12.markdown @@ -18,7 +18,7 @@ The `IO` module in Elixir is the main mechanism for reading and writing to the s ```iex iex> IO.puts "hello world" -"hello world" +hello world :ok iex> IO.gets "yes or no? " yes or no? yes @@ -29,7 +29,7 @@ By default, the functions in the IO module use the standard input and output. We ```iex iex> IO.puts :stderr, "hello world" -"hello world" +hello world :ok ``` From 22e98ebfe1731095fd3c3830960c563645e8e910 Mon Sep 17 00:00:00 2001 From: David English Date: Fri, 26 Dec 2014 20:26:04 -0500 Subject: [PATCH 0022/1761] Update install.markdown --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 1b18470c7..3b5179a2f 100644 --- a/install.markdown +++ b/install.markdown @@ -8,7 +8,7 @@ layout: default The quickest way to install Elixir is through a distribution or using one of the available installers. If not available, then we recommend the precompiled packages or compiling from source. -Note Elixir requires Erlang 17.0 or later. Many of the instructions below wil automatically install Erlang for you. In case they do not, read the "Installing Erlang" section below. +Note Elixir requires Erlang 17.0 or later. Many of the instructions below will automatically install Erlang for you. In case they do not, read the "Installing Erlang" section below. ### 1 Distributions From 8cdd98c4829588a94e35afc0d22b0e7cd511bd64 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Mon, 29 Dec 2014 14:56:32 +1100 Subject: [PATCH 0023/1761] update cover of Introducing Elixir --- _includes/learning-resources.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/learning-resources.html b/_includes/learning-resources.html index ac348f5d9..312628d98 100644 --- a/_includes/learning-resources.html +++ b/_includes/learning-resources.html @@ -5,6 +5,6 @@

    Learning resources

  • -
  • +
From 9d5b3f09785d7f8467de9caf1fdf4bc5d93e4040 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Mon, 29 Dec 2014 14:58:19 +1100 Subject: [PATCH 0024/1761] Introducing Elixir moved to top, favoring published materials first --- _includes/learning-resources.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/learning-resources.html b/_includes/learning-resources.html index 312628d98..f1ffd136e 100644 --- a/_includes/learning-resources.html +++ b/_includes/learning-resources.html @@ -3,8 +3,8 @@

Learning resources

  • +
  • -
From a75825e193dff703e1a92b5e571cb6c6c1c96e22 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Mon, 29 Dec 2014 15:04:28 +1100 Subject: [PATCH 0025/1761] Add missing dimensions to book cover images --- _includes/learning-resources.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/learning-resources.html b/_includes/learning-resources.html index f1ffd136e..3241d4665 100644 --- a/_includes/learning-resources.html +++ b/_includes/learning-resources.html @@ -1,9 +1,9 @@

Learning resources

    -
  • +
  • -
  • +
From f76c5c153b5cb9aa6b19b7554215af40c064749b Mon Sep 17 00:00:00 2001 From: eksperimental Date: Mon, 29 Dec 2014 15:17:30 +1100 Subject: [PATCH 0026/1761] correct link titles and add alt to book cover images --- _includes/learning-resources.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_includes/learning-resources.html b/_includes/learning-resources.html index 3241d4665..032917155 100644 --- a/_includes/learning-resources.html +++ b/_includes/learning-resources.html @@ -1,10 +1,10 @@

Learning resources

    -
  • -
  • -
  • -
  • -
  • +
  • Programming Elixir cover
  • +
  • ElixirSips cover
  • +
  • Introducing Elixir cover
  • +
  • Elixir in Action cover
  • +
  • The Little Elixir and OTP Guidebook cover
From 137ae727726da2838d1fc4a47e58ee654b281120 Mon Sep 17 00:00:00 2001 From: Jason Jarrett Date: Thu, 1 Jan 2015 10:27:43 -0800 Subject: [PATCH 0027/1761] Couple language tweaks --- getting_started/1.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting_started/1.markdown b/getting_started/1.markdown index 96f38bf2b..21deeb10d 100644 --- a/getting_started/1.markdown +++ b/getting_started/1.markdown @@ -10,7 +10,7 @@ guide: 1 Welcome! -In this tutorial we are going to teach you the Elixir foundation, the language syntax, how to define modules, how to manipulate and the characteristics of the common data structures and more. This chapter will focus on ensuring Elixir is installed and that you can sucessfully run Elixir's Interactive Shell, called IEx. +In this tutorial we are going to teach you the Elixir foundation, the language syntax, how to define modules, how to manipulate the characteristics of common data structures and more. This chapter will focus on ensuring Elixir is installed and that you can successfully run Elixir's Interactive Shell, called IEx. Our requirements are: From 95d54a50d62218c9439086a2305b096a119d0d8e Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 30 Dec 2014 07:02:47 +1100 Subject: [PATCH 0028/1761] serveral html fixes and a css simplication --- _includes/bottom.html | 2 +- _includes/sponsors.html | 4 ++-- css/style.css | 4 ++-- docs.markdown | 2 +- getting_started/1.markdown | 2 +- getting_started/3.markdown | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index da7ab3085..215fdf881 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -5,7 +5,7 @@
diff --git a/_includes/sponsors.html b/_includes/sponsors.html index 97d41ae9a..150139cfa 100644 --- a/_includes/sponsors.html +++ b/_includes/sponsors.html @@ -1,6 +1,6 @@ -
+

Sponsors

    -
  • +
  • Plataformatec Logo
\ No newline at end of file diff --git a/css/style.css b/css/style.css index ccb5413c0..a06469e93 100644 --- a/css/style.css +++ b/css/style.css @@ -274,6 +274,7 @@ img.alignleft, img.alignright { blockquote.alignleft, blockquote .alignright { width: 33%; } .byline abbr, .entry-meta abbr, .comment-meta abbr { border: none; } .clear { clear: both; } +.no-border { border: 0 }; /* Tables -------------------------------------------------------------- */ @@ -404,7 +405,6 @@ a:hover img, #slider-nav li a:hover img { opacity: 0.85; } border: 1px solid #e5e5e5; } .rss-button { margin-bottom: 25px; } -img.no-border { border: 0 }; /* Layout -------------------------------------------------------------- */ @@ -569,7 +569,6 @@ body.source div.menu li.source a { height: 150px; margin: 3px 25px 20px 0; } -.no-border { border: 0 }; /* Post titles -------------------------------------------------------------- */ @@ -704,6 +703,7 @@ li.image { list-style: none; margin-bottom: 10px; } +#sponsors li.image img { border:0; } /* Widget titles -------------------------------------------------------------- */ diff --git a/docs.markdown b/docs.markdown index a5c413337..3f0403418 100644 --- a/docs.markdown +++ b/docs.markdown @@ -8,7 +8,7 @@ layout: default Choose which version you want documentation for. - + #### v1.0 * [Elixir](/docs/stable/elixir) - standard library diff --git a/getting_started/1.markdown b/getting_started/1.markdown index 21deeb10d..b829182b7 100644 --- a/getting_started/1.markdown +++ b/getting_started/1.markdown @@ -6,7 +6,7 @@ guide: 1 # {{ page.title }} -
+
Welcome! diff --git a/getting_started/3.markdown b/getting_started/3.markdown index cb17c874b..0066ca74c 100644 --- a/getting_started/3.markdown +++ b/getting_started/3.markdown @@ -6,7 +6,7 @@ guide: 3 # {{ page.title }} -
+
In the previous chapter, we saw Elixir provides `+`, `-`, `*`, `/` as arithmetic operators, plus the functions `div/2` and `rem/2` for integer division and remainder. From 0c3b4abdb87b724e4b969cf192782eb8f2c6fbee Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 30 Dec 2014 07:18:08 +1100 Subject: [PATCH 0029/1761] Mov TOC to a template + fix html:

cannot contain

--- getting_started/1.markdown | 2 +- getting_started/10.markdown | 2 +- getting_started/11.markdown | 2 +- getting_started/12.markdown | 2 +- getting_started/13.markdown | 2 +- getting_started/14.markdown | 2 +- getting_started/15.markdown | 2 +- getting_started/16.markdown | 2 +- getting_started/17.markdown | 2 +- getting_started/18.markdown | 2 +- getting_started/19.markdown | 2 +- getting_started/2.markdown | 2 +- getting_started/20.markdown | 2 +- getting_started/3.markdown | 2 +- getting_started/4.markdown | 2 +- getting_started/5.markdown | 2 +- getting_started/6.markdown | 2 +- getting_started/7.markdown | 2 +- getting_started/8.markdown | 2 +- getting_started/9.markdown | 2 +- getting_started/meta/1.markdown | 2 +- getting_started/meta/2.markdown | 2 +- getting_started/meta/3.markdown | 2 +- getting_started/mix_otp/1.markdown | 2 +- getting_started/mix_otp/10.markdown | 2 +- getting_started/mix_otp/2.markdown | 2 +- getting_started/mix_otp/3.markdown | 2 +- getting_started/mix_otp/4.markdown | 2 +- getting_started/mix_otp/5.markdown | 2 +- getting_started/mix_otp/6.markdown | 2 +- getting_started/mix_otp/7.markdown | 2 +- getting_started/mix_otp/8.markdown | 2 +- getting_started/mix_otp/9.markdown | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/getting_started/1.markdown b/getting_started/1.markdown index b829182b7..9c28e1ae0 100644 --- a/getting_started/1.markdown +++ b/getting_started/1.markdown @@ -6,7 +6,7 @@ guide: 1 # {{ page.title }} -
+{% include toc.html %} Welcome! diff --git a/getting_started/10.markdown b/getting_started/10.markdown index a0385407f..c2ea53210 100644 --- a/getting_started/10.markdown +++ b/getting_started/10.markdown @@ -6,7 +6,7 @@ guide: 10 # {{ page.title }} -
+{% include toc.html %}

## 10.1 Enumerables diff --git a/getting_started/11.markdown b/getting_started/11.markdown index 0cecfb954..674a33825 100644 --- a/getting_started/11.markdown +++ b/getting_started/11.markdown @@ -6,7 +6,7 @@ guide: 11 # {{ page.title }} -
+{% include toc.html %} In Elixir, all code runs inside processes. Processes are isolated from each other, run concurrent to one another and communicate via message passing. Processes are not only the basis for concurrency in Elixir, but they also provide the means for building distributed and fault-tolerant programs. diff --git a/getting_started/12.markdown b/getting_started/12.markdown index 45439d4a3..281aad052 100644 --- a/getting_started/12.markdown +++ b/getting_started/12.markdown @@ -6,7 +6,7 @@ guide: 12 # {{ page.title }} -
+{% include toc.html %} This chapter is a quick introduction to input/output mechanisms in Elixir and related modules, like [`IO`](/docs/stable/elixir/IO.html), [`File`](/docs/stable/elixir/File.html) and [`Path`](/docs/stable/elixir/Path.html). diff --git a/getting_started/13.markdown b/getting_started/13.markdown index fa8c84745..648fcd982 100644 --- a/getting_started/13.markdown +++ b/getting_started/13.markdown @@ -6,7 +6,7 @@ guide: 13 # {{ page.title }} -
+{% include toc.html %} In order to facilitate software reuse, Elixir provides three directives. As we are going to see below, they are called directives because they have **lexical scope**. diff --git a/getting_started/14.markdown b/getting_started/14.markdown index a9eede613..89bf824d3 100644 --- a/getting_started/14.markdown +++ b/getting_started/14.markdown @@ -6,7 +6,7 @@ guide: 14 # {{ page.title }} -
+{% include toc.html %} Module attributes in Elixir serve three purposes: diff --git a/getting_started/15.markdown b/getting_started/15.markdown index d216652bd..7929f51d2 100644 --- a/getting_started/15.markdown +++ b/getting_started/15.markdown @@ -6,7 +6,7 @@ guide: 15 # {{ page.title }} -
+{% include toc.html %} In earlier chapters, we learned about maps: diff --git a/getting_started/16.markdown b/getting_started/16.markdown index d5d6b26f7..160db5a2a 100644 --- a/getting_started/16.markdown +++ b/getting_started/16.markdown @@ -6,7 +6,7 @@ guide: 16 # {{ page.title }} -
+{% include toc.html %} Protocols are a mechanism to achieve polymorphism in Elixir. Dispatching on a protocol is available to any data type as long as it implements the protocol. Let's see an example. diff --git a/getting_started/17.markdown b/getting_started/17.markdown index 111efce98..f9fd337c6 100644 --- a/getting_started/17.markdown +++ b/getting_started/17.markdown @@ -6,7 +6,7 @@ guide: 17 # {{ page.title }} -
+{% include toc.html %} Elixir has three error mechanisms: errors, throws and exits. In this chapter we will explore each of them and include remarks about when each should be used. diff --git a/getting_started/18.markdown b/getting_started/18.markdown index 1758b2c90..c0c3cdab7 100644 --- a/getting_started/18.markdown +++ b/getting_started/18.markdown @@ -6,7 +6,7 @@ guide: 18 # {{ page.title }} -
+{% include toc.html %} In Elixir, it is common to loop over Enumerables, often filtering some results, and mapping to another list of values. Comprehensions are syntax sugar for such constructs, grouping those common tasks into the `for` special form. diff --git a/getting_started/19.markdown b/getting_started/19.markdown index c4b6e3f38..4e18d0369 100644 --- a/getting_started/19.markdown +++ b/getting_started/19.markdown @@ -6,7 +6,7 @@ guide: 19 # {{ page.title }} -
+{% include toc.html %} We have already learned Elixir provides double-quoted strings and single-quoted char lists. However, this only covers the surface of structures that have textual representation in the language. Atoms are, for example, another structure which are mostly created via the `:atom` representation. diff --git a/getting_started/2.markdown b/getting_started/2.markdown index 8fa540c3f..2c759702d 100644 --- a/getting_started/2.markdown +++ b/getting_started/2.markdown @@ -6,7 +6,7 @@ guide: 2 # {{ page.title }} -
+{% include toc.html %} In this chapter we will learn more about Elixir basic types: integers, floats, booleans, atoms, strings, lists and tuples. Some basic types are: diff --git a/getting_started/20.markdown b/getting_started/20.markdown index 4bb667b09..1598c0d2f 100644 --- a/getting_started/20.markdown +++ b/getting_started/20.markdown @@ -7,7 +7,7 @@ last: true # {{ page.title }} -
+{% include toc.html %} Eager to learn more? Keep on reading! diff --git a/getting_started/3.markdown b/getting_started/3.markdown index 0066ca74c..af3cd4c32 100644 --- a/getting_started/3.markdown +++ b/getting_started/3.markdown @@ -6,7 +6,7 @@ guide: 3 # {{ page.title }} -
+{% include toc.html %} In the previous chapter, we saw Elixir provides `+`, `-`, `*`, `/` as arithmetic operators, plus the functions `div/2` and `rem/2` for integer division and remainder. diff --git a/getting_started/4.markdown b/getting_started/4.markdown index 529ef761d..1bf0db914 100644 --- a/getting_started/4.markdown +++ b/getting_started/4.markdown @@ -6,7 +6,7 @@ guide: 4 # {{ page.title }} -
+{% include toc.html %} In this chapter, we will show how the `=` operator in Elixir is actually a match operator and how to use it to pattern match inside data structures. Finally, we will learn about the pin operator `^` used to access previously bound values. diff --git a/getting_started/5.markdown b/getting_started/5.markdown index 709c0db63..a7bc6447f 100644 --- a/getting_started/5.markdown +++ b/getting_started/5.markdown @@ -6,7 +6,7 @@ guide: 5 # {{ page.title }} -
+{% include toc.html %} In this chapter, we will learn about the `case`, `cond` and `if` control-flow structures. diff --git a/getting_started/6.markdown b/getting_started/6.markdown index 1f476a4b1..10d504e77 100644 --- a/getting_started/6.markdown +++ b/getting_started/6.markdown @@ -6,7 +6,7 @@ guide: 6 # {{ page.title }} -
+{% include toc.html %} In "Basic types", we learned about strings and used the `is_binary/1` function for checks: diff --git a/getting_started/7.markdown b/getting_started/7.markdown index 5f605717d..4ae640aa2 100644 --- a/getting_started/7.markdown +++ b/getting_started/7.markdown @@ -6,7 +6,7 @@ guide: 7 # {{ page.title }} -
+{% include toc.html %} So far we haven't discussed any associative data structures, i.e. data structures that are able to associate a certain value (or multiple values) to a key. Different languages call these different names like dictionaries, hashes, associative arrays, maps, etc. diff --git a/getting_started/8.markdown b/getting_started/8.markdown index 956f332b6..70f4f377d 100644 --- a/getting_started/8.markdown +++ b/getting_started/8.markdown @@ -6,7 +6,7 @@ guide: 8 # {{ page.title }} -
+{% include toc.html %} In Elixir we group several functions into modules. We've already used many different modules in the previous chapters like [the `String` module](/docs/stable/elixir/String.html): diff --git a/getting_started/9.markdown b/getting_started/9.markdown index c8a0d3861..62728f229 100644 --- a/getting_started/9.markdown +++ b/getting_started/9.markdown @@ -6,7 +6,7 @@ guide: 9 # {{ page.title }} -
+{% include toc.html %} Due to immutability, loops in Elixir (and in functional programming languages) are written differently from conventional imperative languages. For example, in an imperative language, one would write: diff --git a/getting_started/meta/1.markdown b/getting_started/meta/1.markdown index 57c816267..cd20bad14 100644 --- a/getting_started/meta/1.markdown +++ b/getting_started/meta/1.markdown @@ -6,7 +6,7 @@ guide: 1 # {{ page.title }} -
+{% include toc.html %} An Elixir program can be represented by its own data structures. In this chapter, we will learn what those structures look like and how to compose them. The concepts learned in this chapter are the building blocks for macros, which we are going to take a deeper look at in the next chapter. diff --git a/getting_started/meta/2.markdown b/getting_started/meta/2.markdown index 4da0fa569..5a44192ab 100644 --- a/getting_started/meta/2.markdown +++ b/getting_started/meta/2.markdown @@ -6,7 +6,7 @@ guide: 2 # {{ page.title }} -
+{% include toc.html %} Macros can be defined in Elixir using `defmacro/2`. diff --git a/getting_started/meta/3.markdown b/getting_started/meta/3.markdown index 005237eb4..37b579f5d 100644 --- a/getting_started/meta/3.markdown +++ b/getting_started/meta/3.markdown @@ -7,7 +7,7 @@ last: true # {{ page.title }} -
+{% include toc.html %} [Domain Specific Languages](https://en.wikipedia.org/wiki/Domain-specific_language) allow developers to tailor their application to a particular domain. There are many language features that, when used in combination, can aid developers to write Domain Specific Languages. In this chapter we will focus on how macros and module attributes can be used together to create domain specific modules that are focused on solving one particular problem. As an example, we will write a very simple module to define and run tests. diff --git a/getting_started/mix_otp/1.markdown b/getting_started/mix_otp/1.markdown index a7d93cacc..891aaa7aa 100644 --- a/getting_started/mix_otp/1.markdown +++ b/getting_started/mix_otp/1.markdown @@ -6,7 +6,7 @@ guide: 1 # {{ page.title }} -
+{% include toc.html %} In this guide, we will learn how to build a complete Elixir application, with its own supervision tree, configuration, tests and more. diff --git a/getting_started/mix_otp/10.markdown b/getting_started/mix_otp/10.markdown index 3084f0471..9606cab22 100644 --- a/getting_started/mix_otp/10.markdown +++ b/getting_started/mix_otp/10.markdown @@ -7,7 +7,7 @@ last: true # {{ page.title }} -
+{% include toc.html %} In this last chapter, we will go back to the `:kv` application and add a routing layer that allows us to distribute requests between nodes based on the bucket name. diff --git a/getting_started/mix_otp/2.markdown b/getting_started/mix_otp/2.markdown index 013739121..b8c89b340 100644 --- a/getting_started/mix_otp/2.markdown +++ b/getting_started/mix_otp/2.markdown @@ -6,7 +6,7 @@ guide: 2 # {{ page.title }} -
+{% include toc.html %} In this chapter, we will create a module named `KV.Bucket`. This module will be responsible for storing our key-value entries in a way that allows reading and modification by different processes. diff --git a/getting_started/mix_otp/3.markdown b/getting_started/mix_otp/3.markdown index 07166cb49..2141cb400 100644 --- a/getting_started/mix_otp/3.markdown +++ b/getting_started/mix_otp/3.markdown @@ -6,7 +6,7 @@ guide: 3 # {{ page.title }} -
+{% include toc.html %} In the previous chapter we used agents to represent our buckets. In the first chapter, we specified we would like to name each bucket so we can do the following: diff --git a/getting_started/mix_otp/4.markdown b/getting_started/mix_otp/4.markdown index 4a6a86259..ccd5afac8 100644 --- a/getting_started/mix_otp/4.markdown +++ b/getting_started/mix_otp/4.markdown @@ -6,7 +6,7 @@ guide: 4 # {{ page.title }} -
+{% include toc.html %} In this chapter, we will explore GenEvent, another behaviour provided by Elixir and OTP that allows us to spawn an event manager that is able to publish events to many handlers. diff --git a/getting_started/mix_otp/5.markdown b/getting_started/mix_otp/5.markdown index ac42ccd47..2eef1fb3a 100644 --- a/getting_started/mix_otp/5.markdown +++ b/getting_started/mix_otp/5.markdown @@ -6,7 +6,7 @@ guide: 5 # {{ page.title }} -
+{% include toc.html %} So far our application requires an event manager and a registry. It may potentially use dozens, if not hundreds, of buckets. While we may think our implementation so far is quite good, no software is bug free, and failures are definitely going to happen. diff --git a/getting_started/mix_otp/6.markdown b/getting_started/mix_otp/6.markdown index 480f96a49..e9b708eda 100644 --- a/getting_started/mix_otp/6.markdown +++ b/getting_started/mix_otp/6.markdown @@ -6,7 +6,7 @@ guide: 6 # {{ page.title }} -
+{% include toc.html %} Every time we need to look up a bucket, we need to send a message to the registry. In some applications, this means the registry may become a bottleneck! diff --git a/getting_started/mix_otp/7.markdown b/getting_started/mix_otp/7.markdown index d94ce213a..cf89b41bd 100644 --- a/getting_started/mix_otp/7.markdown +++ b/getting_started/mix_otp/7.markdown @@ -6,7 +6,7 @@ guide: 7 # {{ page.title }} -
+{% include toc.html %} In this chapter, we will briefly discuss how to manage dependencies in Mix. diff --git a/getting_started/mix_otp/8.markdown b/getting_started/mix_otp/8.markdown index 5cce975b0..4813f62d8 100644 --- a/getting_started/mix_otp/8.markdown +++ b/getting_started/mix_otp/8.markdown @@ -6,7 +6,7 @@ guide: 8 # {{ page.title }} -
+{% include toc.html %} In this chapter, we are going to learn how to use [Erlang's `:gen_tcp` module](http://erlang.org/doc/man/gen_tcp.html) to serve requests. In future chapters we will expand our server so it can actually serve the commands. This will also provide a great opportunity to explore Elixir's `Task` module. diff --git a/getting_started/mix_otp/9.markdown b/getting_started/mix_otp/9.markdown index 607f6ca4f..ccf9d54e9 100644 --- a/getting_started/mix_otp/9.markdown +++ b/getting_started/mix_otp/9.markdown @@ -6,7 +6,7 @@ guide: 9 # {{ page.title }} -
+{% include toc.html %} In this chapter, we will implement the code that parses the commands we described in the first chapter: From 7665ccd9c21aae6985d26185545d36f7ccd58f03 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 30 Dec 2014 07:33:28 +1100 Subject: [PATCH 0030/1761] replace absolute links (http://elixir-lang.org/) with relative ones (/) throughout the site --- _includes/important-links.html | 2 +- _posts/2012-05-25-elixir-v0-5-0-released.markdown | 8 ++++---- _posts/2012-08-01-elixir-v0-6-0-released.markdown | 6 +++--- _posts/2013-01-27-elixir-v0-8-0-released.markdown | 6 +++--- _posts/2013-04-29-elixir-v0-8-2-released.markdown | 2 +- _posts/2013-05-23-elixir-v0-9-0-released.markdown | 4 ++-- _posts/2013-07-13-elixir-v0-10-0-released.markdown | 10 +++++----- _posts/2013-08-08-elixir-design-goals.markdown | 6 +++--- _posts/2013-11-05-elixir-v0-11-0-released.markdown | 12 ++++++------ _posts/2013-12-15-elixir-v0-12-0-released.markdown | 2 +- _posts/2014-04-21-elixir-v0-13-0-released.markdown | 2 +- _posts/2014-08-07-elixir-v0-15-0-released.markdown | 6 +++--- crash-course.markdown | 6 +++--- getting_started/20.markdown | 6 +++--- getting_started/mix_otp/1.markdown | 2 +- getting_started/mix_otp/7.markdown | 4 ++-- index.html | 6 +++--- 17 files changed, 45 insertions(+), 45 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index fcce77aa5..b590844b6 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -13,7 +13,7 @@

Join the Community

Important links

diff --git a/_posts/2012-05-25-elixir-v0-5-0-released.markdown b/_posts/2012-05-25-elixir-v0-5-0-released.markdown index ac1f47ab7..6faa6e5cf 100644 --- a/_posts/2012-05-25-elixir-v0-5-0-released.markdown +++ b/_posts/2012-05-25-elixir-v0-5-0-released.markdown @@ -7,9 +7,9 @@ excerpt: We have finally released Elixir v0.5.0! This marks the first release si --- -We have finally released [Elixir](http://elixir-lang.org/) v0.5.0! This marks the first release since the language was rewritten. In this blog post, we will discuss what we achieved during this time and what are the next steps! +We have finally released [Elixir](/) v0.5.0! This marks the first release since the language was rewritten. In this blog post, we will discuss what we achieved during this time and what are the next steps! -If you don't care about any of these, you can go straight to our [Getting Started guide](http://elixir-lang.org/getting_started/1.html). If you do, keep on reading! +If you don't care about any of these, you can go straight to our [Getting Started guide](/getting_started/1.html). If you do, keep on reading! ## Looking back @@ -27,7 +27,7 @@ Around February of that year, feeling confident enough about the direction the l One of the goals we have set was to have a good website and documentation before the next official release. With the help of the Plataformatec team, we created a logo for Elixir and put this website live. -At the same time, [we were working on pygments support](https://bitbucket.org/birkenfeld/pygments-main/pull-request/57/add-elixir-and-elixir-console-lexers), a [documentation generation tool](https://github.com/elixir-lang/ex_doc) and many others. Soon, Github was able to syntax highlight Elixir code and [our API documentation was online](http://elixir-lang.org). +At the same time, [we were working on pygments support](https://bitbucket.org/birkenfeld/pygments-main/pull-request/57/add-elixir-and-elixir-console-lexers), a [documentation generation tool](https://github.com/elixir-lang/ex_doc) and many others. Soon, Github was able to syntax highlight Elixir code and [our API documentation was online](/). At the same time, people started to gather around #elixir-lang channel on irc.freenode.net and [play with Elixir](http://github.com/elixir-lang/mix), [start their](https://github.com/guedes/exdate) [own projects](https://github.com/yrashk/validatex) and [tutorials](https://github.com/alco/elixir/wiki/Erlang-Syntax:-A-Crash-Course). @@ -45,4 +45,4 @@ In parallel, we will improve our [documentation generation tool](https://github. Finally, we will continue improving the Standard Library. Although Elixir's goal is to rely on Erlang the most as possible, we also want to provide a small Standard Library which makes better use of Elixir semantics. For the next weeks, we will focus on improving the IO and File manipulation modules. New data types may also appear, for example, ranges come to my mind. -Check out our [home page](http://elixir-lang.org/) and the [getting started guide](http://elixir-lang.org/getting_started/1.html) for more information. Welcome aboard and grab a cup of Elixir, because you are certainly going to enjoy the ride! \ No newline at end of file +Check out our [home page](/) and the [getting started guide](/getting_started/1.html) for more information. Welcome aboard and grab a cup of Elixir, because you are certainly going to enjoy the ride! \ No newline at end of file diff --git a/_posts/2012-08-01-elixir-v0-6-0-released.markdown b/_posts/2012-08-01-elixir-v0-6-0-released.markdown index 3e52772bb..0a710aeb4 100644 --- a/_posts/2012-08-01-elixir-v0-6-0-released.markdown +++ b/_posts/2012-08-01-elixir-v0-6-0-released.markdown @@ -7,17 +7,17 @@ excerpt: We have finally released Elixir v0.6.0! This release includes a build t --- -We have finally released [Elixir](http://elixir-lang.org/) v0.6.0! This release includes a build tool called Mix, support for Erlang typespecs, many improvements to IEx and improved IO, File and Macro support. +We have finally released [Elixir](/) v0.6.0! This release includes a build tool called Mix, support for Erlang typespecs, many improvements to IEx and improved IO, File and Macro support. ## What's new -When [we released version v0.5.0](http://elixir-lang.org/blog/2012/05/25/elixir-v0-5-0-released/), we have set three major goals for release v0.6.0: +When [we released version v0.5.0](/blog/2012/05/25/elixir-v0-5-0-released/), we have set three major goals for release v0.6.0: 1. Provide a build tool that makes it easy to create, compile and test Elixir projects; 2. Support [Erlang typespecs](http://www.erlang.org/doc/reference_manual/typespec.html); 3. Improve IO and File modules to be more robust and complete. -We have not only achieved those goals for this release, as we have added much more! A couple weeks ago, we have covered some of these unscheduled improvements, as improved Macro handling and Range support, which you can read more about in the ["What's new in Elixir #5" post](http://elixir-lang.org/blog/2012/07/05/what-s-new-in-elixir-5/). +We have not only achieved those goals for this release, as we have added much more! A couple weeks ago, we have covered some of these unscheduled improvements, as improved Macro handling and Range support, which you can read more about in the ["What's new in Elixir #5" post](/blog/2012/07/05/what-s-new-in-elixir-5/). Our interactive shell (IEx) also had many improvements, thanks to the Elixir developer community. We now have easy access to documentation, remote shells, autocomplete and much more. In order to show you a bit of what you can do in this release, we have prepared a short (~6 min) screencast: diff --git a/_posts/2013-01-27-elixir-v0-8-0-released.markdown b/_posts/2013-01-27-elixir-v0-8-0-released.markdown index f7932babb..7363a17a4 100644 --- a/_posts/2013-01-27-elixir-v0-8-0-released.markdown +++ b/_posts/2013-01-27-elixir-v0-8-0-released.markdown @@ -30,7 +30,7 @@ String.capitalize("fiN") #=> "Fin" The example above contains a string with only two codepoints, [the codepoint fi](http://www.fileformat.info/info/unicode/char/FB01/index.htm) and [the codepoint n](http://www.fileformat.info/info/unicode/char/006E/index.htm). Look how Elixir properly capitalizes the string, returning a new string made of three codepoints (all ascii letters). -Learn more about [Unicode support with the String module](http://elixir-lang.org/docs/master/String.html). +Learn more about [Unicode support with the String module](/docs/master/String.html). ## AST metadata @@ -70,11 +70,11 @@ When some code call the `unless` macro above, in previous Elixir versions, it wo Elixir v0.8 ensures that the `unless` macro above will expand to the same `if` macro available when quoted, guaranteeing different libraries can integrate easily without imposing hidden requirements. -You can read more about [macros in the getting started guide](http://elixir-lang.org/getting_started/5.html) or [go deep into the quote macro docs](http://elixir-lang.org/docs/master/Kernel.SpecialForms.html#quote/2). +You can read more about [macros in the getting started guide](/getting_started/5.html) or [go deep into the quote macro docs](/docs/master/Kernel.SpecialForms.html#quote/2). ## A new way to manipulate pathnames -Elixir v0.8 contains a bit of house cleaning too. We have created [the Path module](http://elixir-lang.org/docs/master/Path.html) to accommodate functions used to manipulate filesystem paths and have also added functions like [`System.tmp_dir` and `System.user_home`](http://elixir-lang.org/docs/master/System.html) which are meant to work accross different operating systems and are very handy when scripting. +Elixir v0.8 contains a bit of house cleaning too. We have created [the Path module](/docs/master/Path.html) to accommodate functions used to manipulate filesystem paths and have also added functions like [`System.tmp_dir` and `System.user_home`](/docs/master/System.html) which are meant to work accross different operating systems and are very handy when scripting. ## The new HashDict diff --git a/_posts/2013-04-29-elixir-v0-8-2-released.markdown b/_posts/2013-04-29-elixir-v0-8-2-released.markdown index 762f7004a..4c63319e9 100644 --- a/_posts/2013-04-29-elixir-v0-8-2-released.markdown +++ b/_posts/2013-04-29-elixir-v0-8-2-released.markdown @@ -44,6 +44,6 @@ defmodule MathTest do end ``` -You can learn more about [doctests on our documentation page](http://elixir-lang.org/docs/stable/ex_unit/ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md). +You can learn more about [doctests on our documentation page](/docs/stable/ex_unit/ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md). If you are new to Elixir, [it's easy to get started with](/getting_started/1.html)! diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index 168928bb9..967f55453 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -121,11 +121,11 @@ A special thanks to [Eric Meadows-Jonsson](https://github.com/ericmj) for implem We have also many other smaller improvements: * Our CLI now supports `--hidden` and `--cookie` flags which are useful for distributed modes; -* Our test framework, ExUnit, is now able to capture all the communication that happens with a registed IO device, like `:stdio` and `:stderr`, via [`ExUnit.CaptureIO`](http://elixir-lang.org/docs/master/ExUnit.CaptureIO.html). This is very useful for testing how your software reacts to some inputs and what it prints to the terminal; +* Our test framework, ExUnit, is now able to capture all the communication that happens with a registed IO device, like `:stdio` and `:stderr`, via [`ExUnit.CaptureIO`](/docs/master/ExUnit.CaptureIO.html). This is very useful for testing how your software reacts to some inputs and what it prints to the terminal; * `IEx` now allows files to be imported into the shell with `import_file` and also loads `~/.iex` on startup for custom configuration; * The `String`, `Enum` and `Dict` modules got more convenience functions that goes from checking unicode character validity to taking values out of a dictionary; * And many, many more! A huge thank you to our community for sending bug reports, providing bug fixes and contributing all those amazing features. And when are **you** joining us? :) -Give Elixir a try! You can start with our [getting started guide](http://elixir-lang.org/getting_started/1.html), or [check this 30 minute video from PragProg](http://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](http://pragprog.com/book/elixir/programming-elixir). +Give Elixir a try! You can start with our [getting started guide](/getting_started/1.html), or [check this 30 minute video from PragProg](http://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](http://pragprog.com/book/elixir/programming-elixir). diff --git a/_posts/2013-07-13-elixir-v0-10-0-released.markdown b/_posts/2013-07-13-elixir-v0-10-0-released.markdown index 14716c4a1..cdb929c82 100644 --- a/_posts/2013-07-13-elixir-v0-10-0-released.markdown +++ b/_posts/2013-07-13-elixir-v0-10-0-released.markdown @@ -54,11 +54,11 @@ Stream.repeatedly(fn -> :random.uniform end) |> Enum.take(3) #=> [0.4435846174457203, 0.7230402056221108, 0.94581636451987] ``` -`Stream.repeatedly/1` returns an infinite stream but that's ok we just need its first three elements. You can learn more about [stream and related functions in `Stream` module documentation](http://elixir-lang.org/docs/stable/elixir/Stream.html). +`Stream.repeatedly/1` returns an infinite stream but that's ok we just need its first three elements. You can learn more about [stream and related functions in `Stream` module documentation](/docs/stable/elixir/Stream.html). ## Sets -This release also adds [the Sets API](http://elixir-lang.org/docs/stable/elixir/Set.html) to Elixir and a HashSet implementation. The HashSet implementation follows [the same design goals as the HashDict implementation](http://elixir-lang.org/blog/2013/01/27/elixir-v0-8-0-released/) released at the beginning of this year, starting with a compact representation and expanding and contracting as needed. +This release also adds [the Sets API](/docs/stable/elixir/Set.html) to Elixir and a HashSet implementation. The HashSet implementation follows [the same design goals as the HashDict implementation](/blog/2013/01/27/elixir-v0-8-0-released/) released at the beginning of this year, starting with a compact representation and expanding and contracting as needed. This feature was a contribution from [Joseph Wilk](https://github.com/josephwilk) and he talks about its implementation and provides some benchmarks [on his blog](http://blog.josephwilk.net/elixir/sets-in-elixir.html). @@ -66,7 +66,7 @@ This feature was a contribution from [Joseph Wilk](https://github.com/josephwilk Another addition to this release is pretty printing. The pretty printing started as an implementation of the [Wadler paper](http://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf) by [Jonns Mostovoys](https://github.com/manpages) which was then improved by [Gustavo Brunoro](https://github.com/brunoro) under his Google Summer of Code project as described in [Lindig's _Strictly Prettier_ paper](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.34.2200). -As soon as you upgrade to Elixir v0.10.0 and start IEx, you will get pretty printing for all data structures provided by Elixir. We have also added documentation to the `Inspect` module about [adding pretty printing to your own structures](http://elixir-lang.org/docs/stable/elixir/Inspect.html) as well as [using the document algebra for any other kind of formatting](http://elixir-lang.org/docs/stable/elixir/Inspect.Algebra.html). +As soon as you upgrade to Elixir v0.10.0 and start IEx, you will get pretty printing for all data structures provided by Elixir. We have also added documentation to the `Inspect` module about [adding pretty printing to your own structures](/docs/stable/elixir/Inspect.html) as well as [using the document algebra for any other kind of formatting](/docs/stable/elixir/Inspect.Algebra.html). ## Other improvements @@ -78,8 +78,8 @@ Other notable improvements are: * We are also working hard on Windows support, improving its command-line tools and working towards a green test suite, thanks to [Tom Jansens](https://github.com/tojans); -* Meta-programming in Elixir was also improved by the addition of the `binding/0` and `binding/1` macros plus the additions of `Macro.expand_once/2` and `Macro.expand_all/2` to the [`Macro` module](http://elixir-lang.org/docs/stable/elixir/Macro.html); +* Meta-programming in Elixir was also improved by the addition of the `binding/0` and `binding/1` macros plus the additions of `Macro.expand_once/2` and `Macro.expand_all/2` to the [`Macro` module](/docs/stable/elixir/Macro.html); There are also improvements to typespecs, error messages, many bug fixes and some backwards incompatible changes. We have posted a detailed [upgrade instructions on the mailing list](https://groups.google.com/forum/?fromgroups#!topic/elixir-lang-talk/ksrefrgK1eY). For a general overview, [check out the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.10.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](http://elixir-lang.org/getting_started/1.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](/getting_started/1.html), or check out our sidebar for other learning resources. diff --git a/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown index 55e86d5e9..dbeda9f7d 100644 --- a/_posts/2013-08-08-elixir-design-goals.markdown +++ b/_posts/2013-08-08-elixir-design-goals.markdown @@ -202,9 +202,9 @@ Enum.map set, fn(x) -> x * 2 end #=> [2,4,6] ``` -Not only that, any developer can **extend** the `Enum` module to work with any data type as long as the data type implements [the `Enumerable` protocol](http://elixir-lang.org/docs/stable/elixir/Enumerable.html) (protocols in Elixir are based on Clojure's protocol). This is extremely convenient because the developer needs to know only the `Enum` API for enumeration, instead of memorizing specific APIs for sets, lists, dicts, etc. +Not only that, any developer can **extend** the `Enum` module to work with any data type as long as the data type implements [the `Enumerable` protocol](/docs/stable/elixir/Enumerable.html) (protocols in Elixir are based on Clojure's protocol). This is extremely convenient because the developer needs to know only the `Enum` API for enumeration, instead of memorizing specific APIs for sets, lists, dicts, etc. -There are many other protocols exposed by the language, like [the `Inspect` protocol](http://elixir-lang.org/docs/stable/elixir/Inspect.html) for pretty printing data structures and [the `Access` protocol](http://elixir-lang.org/docs/stable/elixir/Access.html) for accessing key-value data by key. By being extensible, Elixir ensures developers can work **with** the language, instead of **against** the language. +There are many other protocols exposed by the language, like [the `Inspect` protocol](/docs/stable/elixir/Inspect.html) for pretty printing data structures and [the `Access` protocol](/docs/stable/elixir/Access.html) for accessing key-value data by key. By being extensible, Elixir ensures developers can work **with** the language, instead of **against** the language. ## Summing up @@ -212,4 +212,4 @@ The goal of this post was to sumarize the language goals: compatibility, product We also hope to have clarified what Elixir brings to the Erlang VM, in particular, meta-programming through macros, polymorphic constructs for extensibility and a data-focused standard library with extensible and consistent APIs for diverse types, including strict and lazy enumeration, unicode handling, a test framework and more. -Give Elixir a try! You can start with our [getting started guide](http://elixir-lang.org/getting_started/1.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](/getting_started/1.html), or check out our sidebar for other learning resources. diff --git a/_posts/2013-11-05-elixir-v0-11-0-released.markdown b/_posts/2013-11-05-elixir-v0-11-0-released.markdown index 6a31e2702..7ec60755c 100644 --- a/_posts/2013-11-05-elixir-v0-11-0-released.markdown +++ b/_posts/2013-11-05-elixir-v0-11-0-released.markdown @@ -22,11 +22,11 @@ In this new release, IEx also supports a very simple debugging mechanism called ![IEx pry example](/images/contents/iex-pry.png) -In Elixir, your code runs in many processes that talk to each other and the Elixir shell is no different. `IEx.pry` allows another process to take over the shell, allowing the developer to inspect the binding and halt the execution of the process being "pried" (i.e. the one that invoked `IEx.pry`). We called this feature `pry` as a gentle reminder that you can only inspect existing information, you cannot change the binding over a pried process. For more information, check the docs for [`IEx.pry/1`](http://elixir-lang.org/docs/stable/iex/IEx.html#pry/1). +In Elixir, your code runs in many processes that talk to each other and the Elixir shell is no different. `IEx.pry` allows another process to take over the shell, allowing the developer to inspect the binding and halt the execution of the process being "pried" (i.e. the one that invoked `IEx.pry`). We called this feature `pry` as a gentle reminder that you can only inspect existing information, you cannot change the binding over a pried process. For more information, check the docs for [`IEx.pry/1`](/docs/stable/iex/IEx.html#pry/1). ## ExUnit -[In the previous release](http://elixir-lang.org/blog/2013/07/13/elixir-v0-10-0-released/), we introduced great changes to ExUnit, like the support for the `--trace` option. This time we continued pushing improvements, like adding profiling to test cases (times can be seen with the `--trace` option), paving the way for other features like emitting warnings for test cases that are too slow. +[In the previous release](/blog/2013/07/13/elixir-v0-10-0-released/), we introduced great changes to ExUnit, like the support for the `--trace` option. This time we continued pushing improvements, like adding profiling to test cases (times can be seen with the `--trace` option), paving the way for other features like emitting warnings for test cases that are too slow. Another simple but significant change in ExUnit was the change in the default formatter to print changes as they come, instead of waiting until the suite is done running: @@ -36,7 +36,7 @@ This change allows developer to get faster feedback from their test suites. ## Mix -Since the early days, Elixir took ahold of the compilation process in order to provide a seamless compilation experience. [Elixir's ParallelCompiler](http://elixir-lang.org/blog/2012/04/24/a-peek-inside-elixir-s-parallel-compiler/) was introduced even before the first official release, allowing developers to harness all the cores in their computer to compile Elixir code. However, once the first release came out, every time you changed any file, the whole project had to be recompiled. +Since the early days, Elixir took ahold of the compilation process in order to provide a seamless compilation experience. [Elixir's ParallelCompiler](/blog/2012/04/24/a-peek-inside-elixir-s-parallel-compiler/) was introduced even before the first official release, allowing developers to harness all the cores in their computer to compile Elixir code. However, once the first release came out, every time you changed any file, the whole project had to be recompiled. In the past releases we have improved this process to only compile files that changed and their dependencies. For v0.11.0, we have improved this process to be faster and less conservative than the previous version. @@ -59,14 +59,14 @@ fun.(1..3) #=> true ``` -You can learn more about the [new capture operator in our docs](http://elixir-lang.org/docs/stable/elixir/Kernel.SpecialForms.html#&/1). +You can learn more about the [new capture operator in our docs](/docs/stable/elixir/Kernel.SpecialForms.html#&/1). -We have also pushed improvements to [the String module](http://elixir-lang.org/docs/stable/elixir/String.html), including new APIs. In particular, in order to know that `String.length("josé")` has length 4 (even though it takes 5 bytes to be represented in UTF-8), we need to use some algorithms defined by the Unicode Standard. These have been implemented as specified in the [extended grapheme cluster algorithm, defined in the version 6.3.0 of the Unicode Standard](http://www.unicode.org/reports/tr29/). +We have also pushed improvements to [the String module](/docs/stable/elixir/String.html), including new APIs. In particular, in order to know that `String.length("josé")` has length 4 (even though it takes 5 bytes to be represented in UTF-8), we need to use some algorithms defined by the Unicode Standard. These have been implemented as specified in the [extended grapheme cluster algorithm, defined in the version 6.3.0 of the Unicode Standard](http://www.unicode.org/reports/tr29/). In the optimization front, we have pushed the first iteration of a [feature called Protocol consolidation](https://groups.google.com/forum/#!topic/elixir-lang-core/RoXAUtoyjk4), which speeds up the polymorphic dispatch done by protocols, sometimes reducing the dispatching time to 10% of the original time. We will continue working in upcoming releases to integrate protocol consolidation as a regular part of the developer workflow. And finally, a minor but frequently asked feature has finally arrived into Elixir: variables follow the same rules as other identifiers in the language, which means developers can now name their variables `is_atom?`. For a general overview, [check out the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.11.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](http://elixir-lang.org/getting_started/1.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](/getting_started/1.html), or check out our sidebar for other learning resources. **PS:** We have just released v0.11.1 which addresses a regression in Mix and improves the dependencies update process. diff --git a/_posts/2013-12-15-elixir-v0-12-0-released.markdown b/_posts/2013-12-15-elixir-v0-12-0-released.markdown index 200a4a5cf..33522661d 100644 --- a/_posts/2013-12-15-elixir-v0-12-0-released.markdown +++ b/_posts/2013-12-15-elixir-v0-12-0-released.markdown @@ -49,4 +49,4 @@ Eric is also maintainer of both [Ecto](https://github.com/elixir-lang/ecto) and There were other small changes, like additions to the `Float` module and improvements the to the typespec syntax. To see the full list, please [see the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.12.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](http://elixir-lang.org/getting_started/1.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](/getting_started/1.html), or check out our sidebar for other learning resources. diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index 9e2e59baa..705d70e59 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -28,7 +28,7 @@ In a nutshell, here is what new: * Elixir v0.13 also provides structs, an alternative to Elixir records. Structs are more flexible than records, provide faster polymorphic operations, and still provide the same compile-time guarantees many came to love in records; -* The [Getting Started guide](http://elixir-lang.org/getting_started/1.html) was rewritten from scratch. The previous guide was comprised of 7 chapters and was about to become 2 years old. The new guide features 20 chapters, it explores the new maps and structs (which are part of this release), and it goes deeper into topics like IO and File handling. It also includes an extra guide, still in development, about [Meta-Programming in Elixir](http://elixir-lang.org/getting_started/meta/1.html); +* The [Getting Started guide](/getting_started/1.html) was rewritten from scratch. The previous guide was comprised of 7 chapters and was about to become 2 years old. The new guide features 20 chapters, it explores the new maps and structs (which are part of this release), and it goes deeper into topics like IO and File handling. It also includes an extra guide, still in development, about [Meta-Programming in Elixir](/getting_started/meta/1.html); * Elixir v0.13 provides a new comprehension syntax that not only works with lists, but with any [`Enumerable`](/docs/stable/elixir/Enumerable.html). The output of a comprehension is also extensible via the [`Collectable`](/docs/stable/elixir/Collectable.html) protocol; diff --git a/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown index 5a7e1ccc3..1e68e72d6 100644 --- a/_posts/2014-08-07-elixir-v0-15-0-released.markdown +++ b/_posts/2014-08-07-elixir-v0-15-0-released.markdown @@ -16,7 +16,7 @@ If you are interested in the specific details for this release, [please check ou ## Logger -Elixir now ships with a new application called logger. This application provides [the Logger module](http://elixir-lang.org/docs/master/logger/Logger.html), which is the main API developers will use for logging: +Elixir now ships with a new application called logger. This application provides [the Logger module](/docs/master/logger/Logger.html), which is the main API developers will use for logging: ```elixir require Logger @@ -70,7 +70,7 @@ Function: #Function<20.90072148/0 in :erl_eval.expr/5> As soon as we started working on Logger, we realized we could go further than simply translating Erlang messages and provide a fully featured logger library. At this moment, Logger also supports: * 4 log levels: debug, info, warn and error - * Custom formatting: you can specify a format string that tells exactly how messages should be logged. The default string is: "$time $metadata[$level] $message\n" but [many attributes are supported](http://elixir-lang.org/docs/master/logger/Logger.Formatter.html) + * Custom formatting: you can specify a format string that tells exactly how messages should be logged. The default string is: "$time $metadata[$level] $message\n" but [many attributes are supported](/docs/master/logger/Logger.Formatter.html) * Custom translators: so you can translate log messages coming from any Erlang application into Elixir syntax * Metadata: metadata allows developers to store information in the current process that will be available to all logged messages. For example, a web application can generate a `request_id`, store it as metadata, and all messages logged during that request will be properly identified with `request_id=...` in the log @@ -136,7 +136,7 @@ In other words, aliases can be three different structures: 2. An anonymous function (that is invoked passing the task arguments) 3. A list containing strings or anonymous functions -You can find more information about aliases by reading the [Mix documentation](http://elixir-lang.org/docs/master/mix/) (there is a section about Aliases around the middle). +You can find more information about aliases by reading the [Mix documentation](/docs/master/mix/) (there is a section about Aliases around the middle). We also would like to thank [Anthony Grimes](https://github.com/raynes) for the support and [Phil Halgelberg](https://github.com/technomancy) for [the work on Lein](https://github.com/technomancy/leiningen) which Mix borrows a lot from. diff --git a/crash-course.markdown b/crash-course.markdown index efe81cf65..c06135724 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -857,7 +857,7 @@ This should be enough to invoke Elixir functions straight from your Erlang code. ### Manual integration -If you are not using rebar, the easiest approach to use Elixir in your existing Erlang software is to install Elixir using one of the different ways specified in the [Getting Started guide](http://elixir-lang.org/getting_started/1.html) and add the `lib` directory in your checkout to `ERL_LIBS`. +If you are not using rebar, the easiest approach to use Elixir in your existing Erlang software is to install Elixir using one of the different ways specified in the [Getting Started guide](/getting_started/1.html) and add the `lib` directory in your checkout to `ERL_LIBS`.
@@ -869,5 +869,5 @@ Elixir also provides a [Getting Started Guide][6] and has [documentation availab [4]: http://www.erlang.org/doc/programming_examples/users_guide.html [5]: http://schemecookbook.org/Erlang/TOC -[6]: http://elixir-lang.org/getting_started/1.html -[7]: http://elixir-lang.org/docs.html +[6]: /getting_started/1.html +[7]: /docs.html diff --git a/getting_started/20.markdown b/getting_started/20.markdown index 1598c0d2f..2c79b9f2c 100644 --- a/getting_started/20.markdown +++ b/getting_started/20.markdown @@ -25,9 +25,9 @@ We have written a guide that covers how to build an Elixir application, with its On the sidebar, you can find the link to some Elixir books and screencasts. There are plenty of Elixir resources out there, like conference talks, open source projects, and other learning materials produced by the community. -Remember that in case of any difficulties, you can always visit the **#elixir-lang** channel on **irc.freenode.net** or send a message to the [mailing list](http://groups.google.com/group/elixir-lang-talk). You can be sure that there will be someone willing to help. And to keep posted on the latest news and announcements, follow the [blog](http://elixir-lang.org/blog/) and follow language developments on the [elixir-core mailing list](http://groups.google.com/group/elixir-lang-core). +Remember that in case of any difficulties, you can always visit the **#elixir-lang** channel on **irc.freenode.net** or send a message to the [mailing list](http://groups.google.com/group/elixir-lang-talk). You can be sure that there will be someone willing to help. And to keep posted on the latest news and announcements, follow the [blog](/blog/) and follow language developments on the [elixir-core mailing list](http://groups.google.com/group/elixir-lang-core). -Don't forget [you can also check the source code of Elixir itself](https://github.com/elixir-lang/elixir), which is mostly written in Elixir (mainly the `lib` directory), or [explore Elixir's documentation](http://elixir-lang.org/docs.html). +Don't forget [you can also check the source code of Elixir itself](https://github.com/elixir-lang/elixir), which is mostly written in Elixir (mainly the `lib` directory), or [explore Elixir's documentation](/docs.html). ## 20.3 A Byte of Erlang @@ -37,7 +37,7 @@ As the main page of this site puts it: Sooner or later, an Elixir developer will want to interface with existing Erlang libraries. Here's a list of online resources that cover Erlang's fundamentals and its more advanced features: -* This [Erlang Syntax: A Crash Course](http://elixir-lang.org/crash-course.html) provides a concise intro to Erlang's syntax. Each code snippet is accompanied by equivalent code in Elixir. This is an opportunity for you to not only get some exposure to Erlang's syntax but also review some of the things you have learned in this guide. +* This [Erlang Syntax: A Crash Course](/crash-course.html) provides a concise intro to Erlang's syntax. Each code snippet is accompanied by equivalent code in Elixir. This is an opportunity for you to not only get some exposure to Erlang's syntax but also review some of the things you have learned in this guide. * Erlang's official website has a short [tutorial](http://www.erlang.org/course/concurrent_programming.html) with pictures that briefly describe Erlang's primitives for concurrent programming. diff --git a/getting_started/mix_otp/1.markdown b/getting_started/mix_otp/1.markdown index 891aaa7aa..d6842510f 100644 --- a/getting_started/mix_otp/1.markdown +++ b/getting_started/mix_otp/1.markdown @@ -225,7 +225,7 @@ Mix will default to the `:dev` environment, except for the `test` task that will ## 1.5 Exploring -There is much more to Mix, and we will continue to explore it as we build our project. A [general overview is available on the Mix documentation](http://elixir-lang.org/docs/stable/mix). +There is much more to Mix, and we will continue to explore it as we build our project. A [general overview is available on the Mix documentation](/docs/stable/mix). Keep in mind that you can always invoke the help task to list all available tasks: diff --git a/getting_started/mix_otp/7.markdown b/getting_started/mix_otp/7.markdown index cf89b41bd..861e1466c 100644 --- a/getting_started/mix_otp/7.markdown +++ b/getting_started/mix_otp/7.markdown @@ -46,7 +46,7 @@ def deps do end ``` -This dependency refers to the latest version of plug in the 0.5.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](http://elixir-lang.org/docs/stable/elixir/Version.html). +This dependency refers to the latest version of plug in the 0.5.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/Version.html). Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage git dependencies, too: @@ -68,7 +68,7 @@ Mix provides many tasks for working with dependencies, which can be seen in `mix mix deps.unlock # Unlock the given dependencies mix deps.update # Update the given dependencies -The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependecies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](http://elixir-lang.org/docs/stable/mix/Mix.Tasks.Deps.html). +The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependecies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](/docs/stable/mix/Mix.Tasks.Deps.html). ## 7.2 Internal dependencies diff --git a/index.html b/index.html index 1a503cee9..4a67cd07f 100644 --- a/index.html +++ b/index.html @@ -103,7 +103,7 @@

Extensibility and DSLs

Elixir has been designed to be extensible, letting developers naturally extend the language to particular domains, in order to increase their productivity.

-

As an example, let's write a simple test case using Elixir's test framework called ExUnit:

+

As an example, let's write a simple test case using Elixir's test framework called ExUnit:

{% highlight elixir %} defmodule MathTest do @@ -127,7 +127,7 @@

Tooling features

A growing ecosystem

-

Elixir ships with a great set of tools to ease development. Mix is a build tool that allows you to easily create projects, manage tasks, run tests and more:

+

Elixir ships with a great set of tools to ease development. Mix is a build tool that allows you to easily create projects, manage tasks, run tests and more:

{% highlight text %} $ mix new my_app @@ -147,7 +147,7 @@

A growing ecosystem

Interactive development

-

Tools like IEx (Elixir's interactive shell) are able to leverage many aspects of the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation:

+

Tools like IEx (Elixir's interactive shell) are able to leverage many aspects of the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation:

{% highlight text %} $ iex From fd84bc3757c2265ac8103f120b98341940ba3950 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 30 Dec 2014 16:07:57 +1100 Subject: [PATCH 0031/1761] copyright symbol to html entity --- _includes/bottom.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index 215fdf881..8945bb827 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -4,7 +4,7 @@
From 982dd401aca611fab435f0e350df2478dd4f87f6 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 30 Dec 2014 16:19:15 +1100 Subject: [PATCH 0032/1761] close tags in --- _includes/top.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_includes/top.html b/_includes/top.html index 3d1865f8a..c310d60f5 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -1,14 +1,14 @@ - - + + {% if page.title %}{{ page.title }} - {% endif %}Elixir - - - - + + + + From deb113ba3140475a8b4b3a618a58c010d3e88d35 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Wed, 31 Dec 2014 22:56:19 +1100 Subject: [PATCH 0033/1761] Fixes that make the site's HTML code validate --- _includes/bottom.html | 3 +-- _layouts/blog.html | 2 +- _layouts/post.html | 2 +- _posts/2012-08-01-elixir-v0-6-0-released.markdown | 3 ++- blog/categories.html | 3 ++- blog/index.html | 2 +- css/style.css | 4 ++-- getting_started/10.markdown | 1 - 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index 8945bb827..2cfa42e7e 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -1,7 +1,6 @@
-
-
+
From 1f9138daf90eba68898150a0a54a84bc60698941 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Thu, 5 Feb 2015 21:37:46 +0700 Subject: [PATCH 0089/1761] move back to original folder --- clean/CNAME => CNAME | 0 clean/README.md => README.md | 0 {clean/_bin => _bin}/newpost | 0 {clean/_data => _data}/getting_started.yml | 0 {clean/_includes => _includes}/bottom.html | 0 {clean/_includes => _includes}/categories-list.html | 0 .../code-editor-support.html | 0 {clean/_includes => _includes}/important-links.html | 0 .../_includes => _includes}/learning-resources.html | 0 {clean/_includes => _includes}/pagination.html | 0 {clean/_includes => _includes}/search.html | 0 {clean/_includes => _includes}/sponsors.html | 0 {clean/_includes => _includes}/toc.html | 0 {clean/_includes => _includes}/top.html | 0 {clean/_layouts => _layouts}/blog.html | 0 {clean/_layouts => _layouts}/default.html | 0 {clean/_layouts => _layouts}/getting_started.html | 0 {clean/_layouts => _layouts}/post.html | 0 .../jekyll-pageless-redirects/LICENSE | 0 .../jekyll-pageless-redirects/README.md | 0 .../jekyll-pageless-redirects/pageless_redirects.rb | 0 ...-peek-inside-elixir-s-parallel-compiler.markdown | 0 .../2012-05-25-elixir-v0-5-0-released.markdown | 0 .../2012-08-01-elixir-v0-6-0-released.markdown | 0 .../2012-10-20-elixir-v0-7-0-released.markdown | 0 .../2012-11-18-elixir-v0-7-1-released.markdown | 0 .../2012-12-04-elixir-v0-7-2-released.markdown | 0 .../2013-01-27-elixir-v0-8-0-released.markdown | 0 .../2013-04-19-google-summer-of-code-2013.markdown | 0 .../2013-04-29-elixir-v0-8-2-released.markdown | 0 .../2013-05-02-elixir-on-xen.markdown | 0 .../2013-05-23-elixir-v0-9-0-released.markdown | 0 .../2013-07-13-elixir-v0-10-0-released.markdown | 0 .../2013-08-08-elixir-design-goals.markdown | 0 .../2013-11-05-elixir-v0-11-0-released.markdown | 0 ...11-elixir-s-new-continuable-enumerators.markdown | 0 .../2013-12-15-elixir-v0-12-0-released.markdown | 0 .../2014-04-21-elixir-v0-13-0-released.markdown | 0 .../2014-06-17-elixir-v0-14-0-released.markdown | 0 .../2014-08-07-elixir-v0-15-0-released.markdown | 0 .../2014-09-18-elixir-v1-0-0-released.markdown | 0 clean/atom.xml => atom.xml | 0 {clean/blog => blog}/categories.html | 0 {clean/blog => blog}/index.html | 0 .../crash-course.markdown => crash-course.markdown | 0 {clean/css => css}/style.css | 0 {clean/css => css}/syntax.css | 0 clean/docs.markdown => docs.markdown | 0 clean/elixir.csv => elixir.csv | 0 clean/erlang.csv => erlang.csv | 0 clean/favicon.ico => favicon.ico | Bin .../alias-require-and-import.markdown | 0 .../basic-operators.markdown | 0 .../basic-types.markdown | 0 .../binaries-strings-and-char-lists.markdown | 0 .../case-cond-and-if.markdown | 0 .../comprehensions.markdown | 0 .../enumerables-and-streams.markdown | 0 .../introduction.markdown | 0 .../io-and-the-file-system.markdown | 0 .../maps-and-dicts.markdown | 0 .../meta/domain-specific-languages.markdown | 0 .../meta/macros.markdown | 0 .../meta/quote-and-unquote.markdown | 0 .../mix-otp/agent.markdown | 0 .../mix-otp/dependencies-and-umbrella-apps.markdown | 0 .../distributed-tasks-and-configuration.markdown | 0 .../mix-otp/docs-tests-and-pipelines.markdown | 0 .../mix-otp/ets.markdown | 0 .../mix-otp/genevent.markdown | 0 .../mix-otp/genserver.markdown | 0 .../mix-otp/introduction-to-mix.markdown | 0 .../mix-otp/supervisor-and-application.markdown | 0 .../mix-otp/task-and-gen-tcp.markdown | 0 .../module-attributes.markdown | 0 .../modules.markdown | 0 .../pattern-matching.markdown | 0 .../processes.markdown | 0 .../protocols.markdown | 0 .../recursion.markdown | 0 .../sigils.markdown | 0 .../struct.markdown | 0 .../try-catch-and-rescue.markdown | 0 .../typespecs-and-behaviours.markdown | 0 .../where-to-go-next.markdown | 0 {clean/images => images}/contents/exunit-ansi.png | Bin {clean/images => images}/contents/fast-fail.png | Bin .../images => images}/contents/hash-dict-fetch.png | Bin .../images => images}/contents/hash-dict-update.png | Bin {clean/images => images}/contents/home-code.png | Bin {clean/images => images}/contents/iex-pry.png | Bin {clean/images => images}/contents/string-help.png | Bin {clean/images => images}/logo/logo.png | Bin {clean/images => images}/logo/plataformatec.png | Bin {clean/images => images}/social/RSSButton.png | Bin clean/index.html => index.html | 0 clean/install.markdown => install.markdown | 0 {clean/js => js}/toc/LICENSE.txt | 0 {clean/js => js}/toc/README.md | 0 {clean/js => js}/toc/toc.js | 0 100 files changed, 0 insertions(+), 0 deletions(-) rename clean/CNAME => CNAME (100%) rename clean/README.md => README.md (100%) rename {clean/_bin => _bin}/newpost (100%) rename {clean/_data => _data}/getting_started.yml (100%) rename {clean/_includes => _includes}/bottom.html (100%) rename {clean/_includes => _includes}/categories-list.html (100%) rename {clean/_includes => _includes}/code-editor-support.html (100%) rename {clean/_includes => _includes}/important-links.html (100%) rename {clean/_includes => _includes}/learning-resources.html (100%) rename {clean/_includes => _includes}/pagination.html (100%) rename {clean/_includes => _includes}/search.html (100%) rename {clean/_includes => _includes}/sponsors.html (100%) rename {clean/_includes => _includes}/toc.html (100%) rename {clean/_includes => _includes}/top.html (100%) rename {clean/_layouts => _layouts}/blog.html (100%) rename {clean/_layouts => _layouts}/default.html (100%) rename {clean/_layouts => _layouts}/getting_started.html (100%) rename {clean/_layouts => _layouts}/post.html (100%) rename {clean/_plugins => _plugins}/jekyll-pageless-redirects/LICENSE (100%) rename {clean/_plugins => _plugins}/jekyll-pageless-redirects/README.md (100%) rename {clean/_plugins => _plugins}/jekyll-pageless-redirects/pageless_redirects.rb (100%) rename {clean/_posts => _posts}/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown (100%) rename {clean/_posts => _posts}/2012-05-25-elixir-v0-5-0-released.markdown (100%) rename {clean/_posts => _posts}/2012-08-01-elixir-v0-6-0-released.markdown (100%) rename {clean/_posts => _posts}/2012-10-20-elixir-v0-7-0-released.markdown (100%) rename {clean/_posts => _posts}/2012-11-18-elixir-v0-7-1-released.markdown (100%) rename {clean/_posts => _posts}/2012-12-04-elixir-v0-7-2-released.markdown (100%) rename {clean/_posts => _posts}/2013-01-27-elixir-v0-8-0-released.markdown (100%) rename {clean/_posts => _posts}/2013-04-19-google-summer-of-code-2013.markdown (100%) rename {clean/_posts => _posts}/2013-04-29-elixir-v0-8-2-released.markdown (100%) rename {clean/_posts => _posts}/2013-05-02-elixir-on-xen.markdown (100%) rename {clean/_posts => _posts}/2013-05-23-elixir-v0-9-0-released.markdown (100%) rename {clean/_posts => _posts}/2013-07-13-elixir-v0-10-0-released.markdown (100%) rename {clean/_posts => _posts}/2013-08-08-elixir-design-goals.markdown (100%) rename {clean/_posts => _posts}/2013-11-05-elixir-v0-11-0-released.markdown (100%) rename {clean/_posts => _posts}/2013-12-11-elixir-s-new-continuable-enumerators.markdown (100%) rename {clean/_posts => _posts}/2013-12-15-elixir-v0-12-0-released.markdown (100%) rename {clean/_posts => _posts}/2014-04-21-elixir-v0-13-0-released.markdown (100%) rename {clean/_posts => _posts}/2014-06-17-elixir-v0-14-0-released.markdown (100%) rename {clean/_posts => _posts}/2014-08-07-elixir-v0-15-0-released.markdown (100%) rename {clean/_posts => _posts}/2014-09-18-elixir-v1-0-0-released.markdown (100%) rename clean/atom.xml => atom.xml (100%) rename {clean/blog => blog}/categories.html (100%) rename {clean/blog => blog}/index.html (100%) rename clean/crash-course.markdown => crash-course.markdown (100%) rename {clean/css => css}/style.css (100%) rename {clean/css => css}/syntax.css (100%) rename clean/docs.markdown => docs.markdown (100%) rename clean/elixir.csv => elixir.csv (100%) rename clean/erlang.csv => erlang.csv (100%) rename clean/favicon.ico => favicon.ico (100%) rename {clean/getting-started => getting-started}/alias-require-and-import.markdown (100%) rename {clean/getting-started => getting-started}/basic-operators.markdown (100%) rename {clean/getting-started => getting-started}/basic-types.markdown (100%) rename {clean/getting-started => getting-started}/binaries-strings-and-char-lists.markdown (100%) rename {clean/getting-started => getting-started}/case-cond-and-if.markdown (100%) rename {clean/getting-started => getting-started}/comprehensions.markdown (100%) rename {clean/getting-started => getting-started}/enumerables-and-streams.markdown (100%) rename {clean/getting-started => getting-started}/introduction.markdown (100%) rename {clean/getting-started => getting-started}/io-and-the-file-system.markdown (100%) rename {clean/getting-started => getting-started}/maps-and-dicts.markdown (100%) rename {clean/getting-started => getting-started}/meta/domain-specific-languages.markdown (100%) rename {clean/getting-started => getting-started}/meta/macros.markdown (100%) rename {clean/getting-started => getting-started}/meta/quote-and-unquote.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/agent.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/dependencies-and-umbrella-apps.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/distributed-tasks-and-configuration.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/docs-tests-and-pipelines.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/ets.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/genevent.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/genserver.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/introduction-to-mix.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/supervisor-and-application.markdown (100%) rename {clean/getting-started => getting-started}/mix-otp/task-and-gen-tcp.markdown (100%) rename {clean/getting-started => getting-started}/module-attributes.markdown (100%) rename {clean/getting-started => getting-started}/modules.markdown (100%) rename {clean/getting-started => getting-started}/pattern-matching.markdown (100%) rename {clean/getting-started => getting-started}/processes.markdown (100%) rename {clean/getting-started => getting-started}/protocols.markdown (100%) rename {clean/getting-started => getting-started}/recursion.markdown (100%) rename {clean/getting-started => getting-started}/sigils.markdown (100%) rename {clean/getting-started => getting-started}/struct.markdown (100%) rename {clean/getting-started => getting-started}/try-catch-and-rescue.markdown (100%) rename {clean/getting-started => getting-started}/typespecs-and-behaviours.markdown (100%) rename {clean/getting-started => getting-started}/where-to-go-next.markdown (100%) rename {clean/images => images}/contents/exunit-ansi.png (100%) rename {clean/images => images}/contents/fast-fail.png (100%) rename {clean/images => images}/contents/hash-dict-fetch.png (100%) rename {clean/images => images}/contents/hash-dict-update.png (100%) rename {clean/images => images}/contents/home-code.png (100%) rename {clean/images => images}/contents/iex-pry.png (100%) rename {clean/images => images}/contents/string-help.png (100%) rename {clean/images => images}/logo/logo.png (100%) rename {clean/images => images}/logo/plataformatec.png (100%) rename {clean/images => images}/social/RSSButton.png (100%) rename clean/index.html => index.html (100%) rename clean/install.markdown => install.markdown (100%) rename {clean/js => js}/toc/LICENSE.txt (100%) rename {clean/js => js}/toc/README.md (100%) rename {clean/js => js}/toc/toc.js (100%) diff --git a/clean/CNAME b/CNAME similarity index 100% rename from clean/CNAME rename to CNAME diff --git a/clean/README.md b/README.md similarity index 100% rename from clean/README.md rename to README.md diff --git a/clean/_bin/newpost b/_bin/newpost similarity index 100% rename from clean/_bin/newpost rename to _bin/newpost diff --git a/clean/_data/getting_started.yml b/_data/getting_started.yml similarity index 100% rename from clean/_data/getting_started.yml rename to _data/getting_started.yml diff --git a/clean/_includes/bottom.html b/_includes/bottom.html similarity index 100% rename from clean/_includes/bottom.html rename to _includes/bottom.html diff --git a/clean/_includes/categories-list.html b/_includes/categories-list.html similarity index 100% rename from clean/_includes/categories-list.html rename to _includes/categories-list.html diff --git a/clean/_includes/code-editor-support.html b/_includes/code-editor-support.html similarity index 100% rename from clean/_includes/code-editor-support.html rename to _includes/code-editor-support.html diff --git a/clean/_includes/important-links.html b/_includes/important-links.html similarity index 100% rename from clean/_includes/important-links.html rename to _includes/important-links.html diff --git a/clean/_includes/learning-resources.html b/_includes/learning-resources.html similarity index 100% rename from clean/_includes/learning-resources.html rename to _includes/learning-resources.html diff --git a/clean/_includes/pagination.html b/_includes/pagination.html similarity index 100% rename from clean/_includes/pagination.html rename to _includes/pagination.html diff --git a/clean/_includes/search.html b/_includes/search.html similarity index 100% rename from clean/_includes/search.html rename to _includes/search.html diff --git a/clean/_includes/sponsors.html b/_includes/sponsors.html similarity index 100% rename from clean/_includes/sponsors.html rename to _includes/sponsors.html diff --git a/clean/_includes/toc.html b/_includes/toc.html similarity index 100% rename from clean/_includes/toc.html rename to _includes/toc.html diff --git a/clean/_includes/top.html b/_includes/top.html similarity index 100% rename from clean/_includes/top.html rename to _includes/top.html diff --git a/clean/_layouts/blog.html b/_layouts/blog.html similarity index 100% rename from clean/_layouts/blog.html rename to _layouts/blog.html diff --git a/clean/_layouts/default.html b/_layouts/default.html similarity index 100% rename from clean/_layouts/default.html rename to _layouts/default.html diff --git a/clean/_layouts/getting_started.html b/_layouts/getting_started.html similarity index 100% rename from clean/_layouts/getting_started.html rename to _layouts/getting_started.html diff --git a/clean/_layouts/post.html b/_layouts/post.html similarity index 100% rename from clean/_layouts/post.html rename to _layouts/post.html diff --git a/clean/_plugins/jekyll-pageless-redirects/LICENSE b/_plugins/jekyll-pageless-redirects/LICENSE similarity index 100% rename from clean/_plugins/jekyll-pageless-redirects/LICENSE rename to _plugins/jekyll-pageless-redirects/LICENSE diff --git a/clean/_plugins/jekyll-pageless-redirects/README.md b/_plugins/jekyll-pageless-redirects/README.md similarity index 100% rename from clean/_plugins/jekyll-pageless-redirects/README.md rename to _plugins/jekyll-pageless-redirects/README.md diff --git a/clean/_plugins/jekyll-pageless-redirects/pageless_redirects.rb b/_plugins/jekyll-pageless-redirects/pageless_redirects.rb similarity index 100% rename from clean/_plugins/jekyll-pageless-redirects/pageless_redirects.rb rename to _plugins/jekyll-pageless-redirects/pageless_redirects.rb diff --git a/clean/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown similarity index 100% rename from clean/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown rename to _posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown diff --git a/clean/_posts/2012-05-25-elixir-v0-5-0-released.markdown b/_posts/2012-05-25-elixir-v0-5-0-released.markdown similarity index 100% rename from clean/_posts/2012-05-25-elixir-v0-5-0-released.markdown rename to _posts/2012-05-25-elixir-v0-5-0-released.markdown diff --git a/clean/_posts/2012-08-01-elixir-v0-6-0-released.markdown b/_posts/2012-08-01-elixir-v0-6-0-released.markdown similarity index 100% rename from clean/_posts/2012-08-01-elixir-v0-6-0-released.markdown rename to _posts/2012-08-01-elixir-v0-6-0-released.markdown diff --git a/clean/_posts/2012-10-20-elixir-v0-7-0-released.markdown b/_posts/2012-10-20-elixir-v0-7-0-released.markdown similarity index 100% rename from clean/_posts/2012-10-20-elixir-v0-7-0-released.markdown rename to _posts/2012-10-20-elixir-v0-7-0-released.markdown diff --git a/clean/_posts/2012-11-18-elixir-v0-7-1-released.markdown b/_posts/2012-11-18-elixir-v0-7-1-released.markdown similarity index 100% rename from clean/_posts/2012-11-18-elixir-v0-7-1-released.markdown rename to _posts/2012-11-18-elixir-v0-7-1-released.markdown diff --git a/clean/_posts/2012-12-04-elixir-v0-7-2-released.markdown b/_posts/2012-12-04-elixir-v0-7-2-released.markdown similarity index 100% rename from clean/_posts/2012-12-04-elixir-v0-7-2-released.markdown rename to _posts/2012-12-04-elixir-v0-7-2-released.markdown diff --git a/clean/_posts/2013-01-27-elixir-v0-8-0-released.markdown b/_posts/2013-01-27-elixir-v0-8-0-released.markdown similarity index 100% rename from clean/_posts/2013-01-27-elixir-v0-8-0-released.markdown rename to _posts/2013-01-27-elixir-v0-8-0-released.markdown diff --git a/clean/_posts/2013-04-19-google-summer-of-code-2013.markdown b/_posts/2013-04-19-google-summer-of-code-2013.markdown similarity index 100% rename from clean/_posts/2013-04-19-google-summer-of-code-2013.markdown rename to _posts/2013-04-19-google-summer-of-code-2013.markdown diff --git a/clean/_posts/2013-04-29-elixir-v0-8-2-released.markdown b/_posts/2013-04-29-elixir-v0-8-2-released.markdown similarity index 100% rename from clean/_posts/2013-04-29-elixir-v0-8-2-released.markdown rename to _posts/2013-04-29-elixir-v0-8-2-released.markdown diff --git a/clean/_posts/2013-05-02-elixir-on-xen.markdown b/_posts/2013-05-02-elixir-on-xen.markdown similarity index 100% rename from clean/_posts/2013-05-02-elixir-on-xen.markdown rename to _posts/2013-05-02-elixir-on-xen.markdown diff --git a/clean/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown similarity index 100% rename from clean/_posts/2013-05-23-elixir-v0-9-0-released.markdown rename to _posts/2013-05-23-elixir-v0-9-0-released.markdown diff --git a/clean/_posts/2013-07-13-elixir-v0-10-0-released.markdown b/_posts/2013-07-13-elixir-v0-10-0-released.markdown similarity index 100% rename from clean/_posts/2013-07-13-elixir-v0-10-0-released.markdown rename to _posts/2013-07-13-elixir-v0-10-0-released.markdown diff --git a/clean/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown similarity index 100% rename from clean/_posts/2013-08-08-elixir-design-goals.markdown rename to _posts/2013-08-08-elixir-design-goals.markdown diff --git a/clean/_posts/2013-11-05-elixir-v0-11-0-released.markdown b/_posts/2013-11-05-elixir-v0-11-0-released.markdown similarity index 100% rename from clean/_posts/2013-11-05-elixir-v0-11-0-released.markdown rename to _posts/2013-11-05-elixir-v0-11-0-released.markdown diff --git a/clean/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown b/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown similarity index 100% rename from clean/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown rename to _posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown diff --git a/clean/_posts/2013-12-15-elixir-v0-12-0-released.markdown b/_posts/2013-12-15-elixir-v0-12-0-released.markdown similarity index 100% rename from clean/_posts/2013-12-15-elixir-v0-12-0-released.markdown rename to _posts/2013-12-15-elixir-v0-12-0-released.markdown diff --git a/clean/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown similarity index 100% rename from clean/_posts/2014-04-21-elixir-v0-13-0-released.markdown rename to _posts/2014-04-21-elixir-v0-13-0-released.markdown diff --git a/clean/_posts/2014-06-17-elixir-v0-14-0-released.markdown b/_posts/2014-06-17-elixir-v0-14-0-released.markdown similarity index 100% rename from clean/_posts/2014-06-17-elixir-v0-14-0-released.markdown rename to _posts/2014-06-17-elixir-v0-14-0-released.markdown diff --git a/clean/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown similarity index 100% rename from clean/_posts/2014-08-07-elixir-v0-15-0-released.markdown rename to _posts/2014-08-07-elixir-v0-15-0-released.markdown diff --git a/clean/_posts/2014-09-18-elixir-v1-0-0-released.markdown b/_posts/2014-09-18-elixir-v1-0-0-released.markdown similarity index 100% rename from clean/_posts/2014-09-18-elixir-v1-0-0-released.markdown rename to _posts/2014-09-18-elixir-v1-0-0-released.markdown diff --git a/clean/atom.xml b/atom.xml similarity index 100% rename from clean/atom.xml rename to atom.xml diff --git a/clean/blog/categories.html b/blog/categories.html similarity index 100% rename from clean/blog/categories.html rename to blog/categories.html diff --git a/clean/blog/index.html b/blog/index.html similarity index 100% rename from clean/blog/index.html rename to blog/index.html diff --git a/clean/crash-course.markdown b/crash-course.markdown similarity index 100% rename from clean/crash-course.markdown rename to crash-course.markdown diff --git a/clean/css/style.css b/css/style.css similarity index 100% rename from clean/css/style.css rename to css/style.css diff --git a/clean/css/syntax.css b/css/syntax.css similarity index 100% rename from clean/css/syntax.css rename to css/syntax.css diff --git a/clean/docs.markdown b/docs.markdown similarity index 100% rename from clean/docs.markdown rename to docs.markdown diff --git a/clean/elixir.csv b/elixir.csv similarity index 100% rename from clean/elixir.csv rename to elixir.csv diff --git a/clean/erlang.csv b/erlang.csv similarity index 100% rename from clean/erlang.csv rename to erlang.csv diff --git a/clean/favicon.ico b/favicon.ico similarity index 100% rename from clean/favicon.ico rename to favicon.ico diff --git a/clean/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown similarity index 100% rename from clean/getting-started/alias-require-and-import.markdown rename to getting-started/alias-require-and-import.markdown diff --git a/clean/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown similarity index 100% rename from clean/getting-started/basic-operators.markdown rename to getting-started/basic-operators.markdown diff --git a/clean/getting-started/basic-types.markdown b/getting-started/basic-types.markdown similarity index 100% rename from clean/getting-started/basic-types.markdown rename to getting-started/basic-types.markdown diff --git a/clean/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown similarity index 100% rename from clean/getting-started/binaries-strings-and-char-lists.markdown rename to getting-started/binaries-strings-and-char-lists.markdown diff --git a/clean/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown similarity index 100% rename from clean/getting-started/case-cond-and-if.markdown rename to getting-started/case-cond-and-if.markdown diff --git a/clean/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown similarity index 100% rename from clean/getting-started/comprehensions.markdown rename to getting-started/comprehensions.markdown diff --git a/clean/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown similarity index 100% rename from clean/getting-started/enumerables-and-streams.markdown rename to getting-started/enumerables-and-streams.markdown diff --git a/clean/getting-started/introduction.markdown b/getting-started/introduction.markdown similarity index 100% rename from clean/getting-started/introduction.markdown rename to getting-started/introduction.markdown diff --git a/clean/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown similarity index 100% rename from clean/getting-started/io-and-the-file-system.markdown rename to getting-started/io-and-the-file-system.markdown diff --git a/clean/getting-started/maps-and-dicts.markdown b/getting-started/maps-and-dicts.markdown similarity index 100% rename from clean/getting-started/maps-and-dicts.markdown rename to getting-started/maps-and-dicts.markdown diff --git a/clean/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown similarity index 100% rename from clean/getting-started/meta/domain-specific-languages.markdown rename to getting-started/meta/domain-specific-languages.markdown diff --git a/clean/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown similarity index 100% rename from clean/getting-started/meta/macros.markdown rename to getting-started/meta/macros.markdown diff --git a/clean/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown similarity index 100% rename from clean/getting-started/meta/quote-and-unquote.markdown rename to getting-started/meta/quote-and-unquote.markdown diff --git a/clean/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown similarity index 100% rename from clean/getting-started/mix-otp/agent.markdown rename to getting-started/mix-otp/agent.markdown diff --git a/clean/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown similarity index 100% rename from clean/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown rename to getting-started/mix-otp/dependencies-and-umbrella-apps.markdown diff --git a/clean/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown similarity index 100% rename from clean/getting-started/mix-otp/distributed-tasks-and-configuration.markdown rename to getting-started/mix-otp/distributed-tasks-and-configuration.markdown diff --git a/clean/getting-started/mix-otp/docs-tests-and-pipelines.markdown b/getting-started/mix-otp/docs-tests-and-pipelines.markdown similarity index 100% rename from clean/getting-started/mix-otp/docs-tests-and-pipelines.markdown rename to getting-started/mix-otp/docs-tests-and-pipelines.markdown diff --git a/clean/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown similarity index 100% rename from clean/getting-started/mix-otp/ets.markdown rename to getting-started/mix-otp/ets.markdown diff --git a/clean/getting-started/mix-otp/genevent.markdown b/getting-started/mix-otp/genevent.markdown similarity index 100% rename from clean/getting-started/mix-otp/genevent.markdown rename to getting-started/mix-otp/genevent.markdown diff --git a/clean/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown similarity index 100% rename from clean/getting-started/mix-otp/genserver.markdown rename to getting-started/mix-otp/genserver.markdown diff --git a/clean/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown similarity index 100% rename from clean/getting-started/mix-otp/introduction-to-mix.markdown rename to getting-started/mix-otp/introduction-to-mix.markdown diff --git a/clean/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown similarity index 100% rename from clean/getting-started/mix-otp/supervisor-and-application.markdown rename to getting-started/mix-otp/supervisor-and-application.markdown diff --git a/clean/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown similarity index 100% rename from clean/getting-started/mix-otp/task-and-gen-tcp.markdown rename to getting-started/mix-otp/task-and-gen-tcp.markdown diff --git a/clean/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown similarity index 100% rename from clean/getting-started/module-attributes.markdown rename to getting-started/module-attributes.markdown diff --git a/clean/getting-started/modules.markdown b/getting-started/modules.markdown similarity index 100% rename from clean/getting-started/modules.markdown rename to getting-started/modules.markdown diff --git a/clean/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown similarity index 100% rename from clean/getting-started/pattern-matching.markdown rename to getting-started/pattern-matching.markdown diff --git a/clean/getting-started/processes.markdown b/getting-started/processes.markdown similarity index 100% rename from clean/getting-started/processes.markdown rename to getting-started/processes.markdown diff --git a/clean/getting-started/protocols.markdown b/getting-started/protocols.markdown similarity index 100% rename from clean/getting-started/protocols.markdown rename to getting-started/protocols.markdown diff --git a/clean/getting-started/recursion.markdown b/getting-started/recursion.markdown similarity index 100% rename from clean/getting-started/recursion.markdown rename to getting-started/recursion.markdown diff --git a/clean/getting-started/sigils.markdown b/getting-started/sigils.markdown similarity index 100% rename from clean/getting-started/sigils.markdown rename to getting-started/sigils.markdown diff --git a/clean/getting-started/struct.markdown b/getting-started/struct.markdown similarity index 100% rename from clean/getting-started/struct.markdown rename to getting-started/struct.markdown diff --git a/clean/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown similarity index 100% rename from clean/getting-started/try-catch-and-rescue.markdown rename to getting-started/try-catch-and-rescue.markdown diff --git a/clean/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown similarity index 100% rename from clean/getting-started/typespecs-and-behaviours.markdown rename to getting-started/typespecs-and-behaviours.markdown diff --git a/clean/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown similarity index 100% rename from clean/getting-started/where-to-go-next.markdown rename to getting-started/where-to-go-next.markdown diff --git a/clean/images/contents/exunit-ansi.png b/images/contents/exunit-ansi.png similarity index 100% rename from clean/images/contents/exunit-ansi.png rename to images/contents/exunit-ansi.png diff --git a/clean/images/contents/fast-fail.png b/images/contents/fast-fail.png similarity index 100% rename from clean/images/contents/fast-fail.png rename to images/contents/fast-fail.png diff --git a/clean/images/contents/hash-dict-fetch.png b/images/contents/hash-dict-fetch.png similarity index 100% rename from clean/images/contents/hash-dict-fetch.png rename to images/contents/hash-dict-fetch.png diff --git a/clean/images/contents/hash-dict-update.png b/images/contents/hash-dict-update.png similarity index 100% rename from clean/images/contents/hash-dict-update.png rename to images/contents/hash-dict-update.png diff --git a/clean/images/contents/home-code.png b/images/contents/home-code.png similarity index 100% rename from clean/images/contents/home-code.png rename to images/contents/home-code.png diff --git a/clean/images/contents/iex-pry.png b/images/contents/iex-pry.png similarity index 100% rename from clean/images/contents/iex-pry.png rename to images/contents/iex-pry.png diff --git a/clean/images/contents/string-help.png b/images/contents/string-help.png similarity index 100% rename from clean/images/contents/string-help.png rename to images/contents/string-help.png diff --git a/clean/images/logo/logo.png b/images/logo/logo.png similarity index 100% rename from clean/images/logo/logo.png rename to images/logo/logo.png diff --git a/clean/images/logo/plataformatec.png b/images/logo/plataformatec.png similarity index 100% rename from clean/images/logo/plataformatec.png rename to images/logo/plataformatec.png diff --git a/clean/images/social/RSSButton.png b/images/social/RSSButton.png similarity index 100% rename from clean/images/social/RSSButton.png rename to images/social/RSSButton.png diff --git a/clean/index.html b/index.html similarity index 100% rename from clean/index.html rename to index.html diff --git a/clean/install.markdown b/install.markdown similarity index 100% rename from clean/install.markdown rename to install.markdown diff --git a/clean/js/toc/LICENSE.txt b/js/toc/LICENSE.txt similarity index 100% rename from clean/js/toc/LICENSE.txt rename to js/toc/LICENSE.txt diff --git a/clean/js/toc/README.md b/js/toc/README.md similarity index 100% rename from clean/js/toc/README.md rename to js/toc/README.md diff --git a/clean/js/toc/toc.js b/js/toc/toc.js similarity index 100% rename from clean/js/toc/toc.js rename to js/toc/toc.js From 511e1d23c69829b3491c317cf205aaa8e6f419ea Mon Sep 17 00:00:00 2001 From: eksperimental Date: Thu, 5 Feb 2015 22:00:02 +0700 Subject: [PATCH 0090/1761] replace last bits of "getting_started" + rename files --- _data/{getting_started.yml => getting-started.yml} | 0 _includes/top.html | 2 +- .../{getting_started.html => getting-started.html} | 10 +++++----- css/style.css | 2 +- getting-started/alias-require-and-import.markdown | 2 +- getting-started/basic-operators.markdown | 2 +- getting-started/basic-types.markdown | 2 +- .../binaries-strings-and-char-lists.markdown | 2 +- getting-started/case-cond-and-if.markdown | 2 +- getting-started/comprehensions.markdown | 2 +- getting-started/enumerables-and-streams.markdown | 2 +- getting-started/introduction.markdown | 4 ++-- getting-started/io-and-the-file-system.markdown | 2 +- getting-started/maps-and-dicts.markdown | 2 +- .../meta/domain-specific-languages.markdown | 2 +- getting-started/meta/macros.markdown | 2 +- getting-started/meta/quote-and-unquote.markdown | 2 +- getting-started/mix-otp/agent.markdown | 2 +- .../mix-otp/dependencies-and-umbrella-apps.markdown | 2 +- .../distributed-tasks-and-configuration.markdown | 2 +- .../mix-otp/docs-tests-and-pipelines.markdown | 2 +- getting-started/mix-otp/ets.markdown | 2 +- getting-started/mix-otp/genevent.markdown | 2 +- getting-started/mix-otp/genserver.markdown | 2 +- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- .../mix-otp/supervisor-and-application.markdown | 2 +- getting-started/mix-otp/task-and-gen-tcp.markdown | 2 +- getting-started/module-attributes.markdown | 2 +- getting-started/modules.markdown | 2 +- getting-started/pattern-matching.markdown | 2 +- getting-started/processes.markdown | 2 +- getting-started/protocols.markdown | 2 +- getting-started/recursion.markdown | 2 +- getting-started/sigils.markdown | 2 +- getting-started/struct.markdown | 2 +- getting-started/try-catch-and-rescue.markdown | 2 +- getting-started/typespecs-and-behaviours.markdown | 2 +- getting-started/where-to-go-next.markdown | 2 +- 38 files changed, 42 insertions(+), 42 deletions(-) rename _data/{getting_started.yml => getting-started.yml} (100%) rename _layouts/{getting_started.html => getting-started.html} (88%) diff --git a/_data/getting_started.yml b/_data/getting-started.yml similarity index 100% rename from _data/getting_started.yml rename to _data/getting-started.yml diff --git a/_includes/top.html b/_includes/top.html index a845677e3..44ffd1a31 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -28,7 +28,7 @@

@@ -12,13 +12,8 @@

Join the Community

- -{% include learning-resources.html %} - -{% include code-editor-support.html %} - -{% include sponsors.html %} diff --git a/_includes/index-redirect.html b/_includes/index-redirect.html index ee71000fd..2e1e1fc06 100644 --- a/_includes/index-redirect.html +++ b/_includes/index-redirect.html @@ -1,4 +1,4 @@ -{% comment%} +{% comment %} Description: This include file redirects you from the folder/ to folder/first_page_in_your_series.html diff --git a/_includes/learning-resources.html b/_includes/learning-resources.html deleted file mode 100644 index 0ebd92a54..000000000 --- a/_includes/learning-resources.html +++ /dev/null @@ -1,15 +0,0 @@ -
-

Learning resources

-
    -
  • Programming Elixir cover
  • -
  • ElixirSips cover
  • -
  • Introducing Elixir cover
  • -
  • Elixir in Action cover
  • -
  • The Little Elixir and OTP Guidebook cover
  • -
-
diff --git a/_includes/top.html b/_includes/top.html index f58a12ac1..76f00f68a 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -33,11 +33,10 @@

+ - - diff --git a/_layouts/blog.html b/_layouts/blog.html index 18afcabd8..087a59b97 100644 --- a/_layouts/blog.html +++ b/_layouts/blog.html @@ -11,6 +11,8 @@ {% include categories-list.html %} {% include important-links.html %} + {% include code-editor-support.html %} + {% include sponsors.html %} {% include bottom.html %} diff --git a/_layouts/default.html b/_layouts/default.html index 3fdc4254c..69b9d033e 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -7,6 +7,8 @@ {% include bottom.html %} diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index 0d95bffb6..0cfac28fa 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -19,8 +19,6 @@

{{guide.title}}

{% endfor %} - {% include learning-resources.html %} - {% include code-editor-support.html %} {% include sponsors.html %} diff --git a/css/style.css b/css/style.css index ba3e017d6..056e6910c 100644 --- a/css/style.css +++ b/css/style.css @@ -176,7 +176,10 @@ h1, h2, h3, h4, h5, h6 { line-height: 1.3em; } h1 { font-size: 2.769230769230769em; } /* 36 / 13 = 2.769230769230769 */ -h2 { font-size: 1.846153846153846em; } /* 24 / 13 = 1.846153846153846 */ +h2 { + font-size: 1.846153846153846em; /* 24 / 13 = 1.846153846153846 */ + margin-top: 35px; +} h3 { font-size: 1.538461538461538em; } /* 20 / 13 = 1.538461538461538 */ h4 { font-size: 1.384615384615385em; } /* 18 / 13 = 1.384615384615385 */ h5 { @@ -355,8 +358,8 @@ blockquote { padding: 5px 0 5px 20px; } -blockquote pre:last-child { - margin-bottom: 0; +blockquote p:last-child, blockquote pre:last-child { + margin-bottom: 5px; } /* Code @@ -498,7 +501,7 @@ body.install div.menu li.install a, body.getting-started div.menu li.getting-started a, body.blog div.menu li.blog a, body.docs div.menu li.docs a, -body.source div.menu li.source a { +body.learning div.menu li.learning a { color: #aaa; } @@ -671,32 +674,6 @@ body.source div.menu li.source a { clear: left; } -/* Page links for multi-paged posts --------------------------------------------------------------- */ -.page-links { - clear: both; - font-size: 0.8461538461538462em; - word-spacing: 2px; - line-height: 1em; - color: #222; -} -.entry-summary .page-links { - clear: none; - font-size: 0.8461538461538462em; - line-height: 1em; - color: #aaa; -} -.page-links a, .page-links a:visited { - display: inline-block; - color: #555; - background: #e9e9e9; - padding: 3px 6px; -} -.page-links a:hover { - color: #fff; - background: #555; -} - /* Archive/search pagination and comment pagination -------------------------------------------------------------- */ .comment-navigation { margin-bottom: 1.692307em; } @@ -737,11 +714,8 @@ li.image { list-style: none; margin-bottom: 10px; } + .widget li.image img { border-width: 0; } -.widget li.image img.border { - border-width: 1px; - padding: 0; -} /* Widget titles -------------------------------------------------------------- */ @@ -786,19 +760,6 @@ li.image { text-decoration: underline; } -#social { - float: right; - margin-top: -15px; -} -#social ul { - list-style: none; - margin: 0; -} -#social li { - float: right; - margin-left: -10px; -} - #copyright { text-align: center; font-size: 12px; @@ -842,12 +803,17 @@ li.image { } } +/* Learning */ +body.learning a.cover { + float: left; + padding: 10px 20px 10px 0px; +} -/* Aditional ------------------------------------------------------ */ -/* table of contents */ -/* Jekyll Table of Contents ------------------------------------------------------ */ +body.learning h4.resource { + padding-top: 13px; +} + +/* Jekyll Table of Contents */ ol.jekyll-toc { margin: 0.3125em 0 0 3.125em; } diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index 1a850ad6f..e8b8d51f4 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -28,7 +28,7 @@ Elixir is an extensible and very customizable programming language thanks to its ## Community and other resources -On the sidebar, you can find links to Elixir books and screencasts. There are plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. +We have a [Learning](/learning.html) section that explores books, screencasts and other resources for learning Elixir and explore the ecossystem. There are also plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. Remember that in case of any difficulties, you can always visit the **#elixir-lang** channel on **irc.freenode.net** or send a message to the [mailing list](http://groups.google.com/group/elixir-lang-talk). You can be sure that there will be someone willing to help. To keep posted on the latest news and announcements, follow the [blog](/blog/) and follow the language development on the [elixir-core mailing list](http://groups.google.com/group/elixir-lang-core). @@ -36,14 +36,10 @@ Don't forget that you can also check the [source code of Elixir itself](https:// ## A byte of Erlang -As the main page of this site puts it: - -> Elixir is a programming language built on top of the Erlang VM. - -Sooner or later, an Elixir developer will want to interface with existing Erlang libraries. Here's a list of online resources that cover Erlang's fundamentals and its more advanced features: +Elixir runs on the Erlang Virtual Machine and, sooner or later, an Elixir developer will want to interface with existing Erlang libraries. Here's a list of online resources that cover Erlang's fundamentals and its more advanced features: * This [Erlang Syntax: A Crash Course](/crash-course.html) provides a concise intro to Erlang's syntax. Each code snippet is accompanied by equivalent code in Elixir. This is an opportunity for you to not only get some exposure to Erlang's syntax but also review some of the things you have learned in this guide. * Erlang's official website has a short [tutorial](http://www.erlang.org/course/concurrent_programming.html) with pictures that briefly describe Erlang's primitives for concurrent programming. -* [Learn You Some Erlang for Great Good!](http://learnyousomeerlang.com/) is an excellent introduction to Erlang, its design principles, standard library, best practices and much more. If you are serious about Elixir, you'll want to get a solid understanding of Erlang principles. Once you have read through the crash course mentioned above, you'll be able to safely skip the first couple of chapters in the book that mostly deal with the syntax. When you reach [The Hitchhiker's Guide to Concurrency](http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency) chapter, that's where the real fun starts. +* [Learn You Some Erlang for Great Good!](http://learnyousomeerlang.com/) is an excellent introduction to Erlang, its design principles, standard library, best practices and much more. Once you have read through the crash course mentioned above, you'll be able to safely skip the first couple of chapters in the book that mostly deal with the syntax. When you reach [The Hitchhiker's Guide to Concurrency](http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency) chapter, that's where the real fun starts. diff --git a/install.markdown b/install.markdown index 550e0c205..694c6b8f3 100644 --- a/install.markdown +++ b/install.markdown @@ -6,12 +6,12 @@ layout: default # {{ page.title }} +{% include toc.html %} + The quickest way to install Elixir is through a distribution or using one of the available installers. If not available, then we recommend the precompiled packages or compiling from source. Note Elixir requires Erlang 17.0 or later. Many of the instructions below will automatically install Erlang for you. In case they do not, read the "Installing Erlang" section below. -{% include toc.html %} - ## Distributions Choose your operating system and tool. diff --git a/learning.markdown b/learning.markdown new file mode 100644 index 000000000..4bfa699cc --- /dev/null +++ b/learning.markdown @@ -0,0 +1,55 @@ +--- +title: "Learning resources" +section: learning +layout: default +--- + +# {{ page.title }} + +{% include toc.html %} + +Our website provides a [Getting Started](/getting-started/introduction.html) guide to learn more about Elixir's foundation and explore how to build projects with [Mix and OTP](getting-started/mix-otp/introduction-to-mix.html). + +The Elixir Community has also produced plenty of resources to explore Elixir from different backgrounds and other perspectives. We are sure you will find a resource that follows your pace and interests. + +## Learn Elixir + +

Programming Elixir

+ +Programming Elixir cover + +You want to explore functional programming, but are put off by the academic feel (tell me about monads just one more time). You know you need concurrent applications, but also know these are almost impossible to get right. Meet Elixir, a functional, concurrent language built on the rock-solid Erlang VM. + +Elixir’s pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. And Programming Elixir is the introduction to Elixir for experienced programmers, written by the same person that wrote the first English books on Ruby and then Rails. Starting with pattern matching, it takes you all the way through concurrency, agents, supervisors, and ends with OTP applications. Along the way, you'll learn tools, techniques, and good practices for creating tomorrow's applications. + +
+ +

Elixir in Action

+ +Elixir in Action cover + +Elixir in Action is a tutorial book that aims to bring developers new to Elixir and Erlang to the point where they can develop complex systems on their own. No knowledge about Elixir, Erlang, or functional programming is required, but it is assumed that a reader has a few years of production experience using mainstream OO languages, for example C#, Java, Python, or Ruby. + +The book starts with a basic introduction to the Elixir language and functional programming idioms. The central part of the book deals with Erlang VM and OTP, discussing topics such as concurrent programming, fault-tolerance, and distributed systems. Finally, you'll learn how to package your code into components, create a standalone deployable release, and troubleshoot the running system. The theory is demonstrated through a simplistic example that is gradually expanded throughout the book into a fully standalone releasable system. + +
+ +## Screencasts + +

Elixir Sips

+ +ElixirSips cover + +

Description coming...

+ +
+ +## In-depth Resources + +

Metaprogramming Elixir

+ +ElixirSips cover + +

Description coming...

+ +
\ No newline at end of file From fe58ec775ac6438e456e3ea35dc1fc2cb28a4e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 21 Feb 2015 10:46:58 +0100 Subject: [PATCH 0134/1761] Add a section on Metaprogramming Elixir --- learning.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learning.markdown b/learning.markdown index 4bfa699cc..221e7de44 100644 --- a/learning.markdown +++ b/learning.markdown @@ -50,6 +50,6 @@ The book starts with a basic introduction to the Elixir language and functional ElixirSips cover -

Description coming...

+

Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages.

\ No newline at end of file From 3902c86a001d4a87b23d886decb4eddfe00c9ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 21 Feb 2015 10:47:24 +0100 Subject: [PATCH 0135/1761] Remove unecessary p tags --- learning.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/learning.markdown b/learning.markdown index 221e7de44..5183d0ad2 100644 --- a/learning.markdown +++ b/learning.markdown @@ -40,7 +40,7 @@ The book starts with a basic introduction to the Elixir language and functional ElixirSips cover -

Description coming...

+Description coming...
@@ -50,6 +50,6 @@ The book starts with a basic introduction to the Elixir language and functional ElixirSips cover -

Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages.

+Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages.
\ No newline at end of file From 8a87e264ce177f3aab7ce6c61c44cdb224732c43 Mon Sep 17 00:00:00 2001 From: Josh Adams Date: Mon, 23 Feb 2015 10:03:34 -0600 Subject: [PATCH 0136/1761] [Learning] Add elixirsips description --- learning.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/learning.markdown b/learning.markdown index 5183d0ad2..f6b3183ad 100644 --- a/learning.markdown +++ b/learning.markdown @@ -40,7 +40,9 @@ The book starts with a basic introduction to the Elixir language and functional ElixirSips cover -Description coming... +Elixir Sips is a screencast series that provides 2 short videos - typically from 2 to 7 minutes, but occasionally much longer - each week. The videos consist of various topics, ranging from exploring a module in the standard library to trying out a new project to building a web-based Tetris game from scratch. + +The intended audience ranges from someone entirely new to the Elixir language, to experienced developers that want to get a broad range of topics to think about from time to time.
@@ -52,4 +54,4 @@ Description coming... Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages. -
\ No newline at end of file +
From addf43d586f30d8f50c5b4d583cd3a5c909f0757 Mon Sep 17 00:00:00 2001 From: elegua Date: Tue, 24 Feb 2015 08:38:04 -0800 Subject: [PATCH 0137/1761] updated installation instruction for Arch Linux --- install.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.markdown b/install.markdown index 694c6b8f3..bca867e9b 100644 --- a/install.markdown +++ b/install.markdown @@ -26,8 +26,8 @@ Choose your operating system and tool. ### Unix (and Unix-like) - * Arch Linux (on AUR) - * Run: `yaourt -S elixir` + * Arch Linux (Community repo) + * Run: `pacman -S elixir` * openSUSE (and SLES 11 SP3+) * Add Erlang devel repo: `zypper ar -f obs://devel:languages:erlang/ erlang` * Run: `zypper in elixir` From 8454ad898c0c80ed0cea9247319b5bf0ea4afe03 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Thu, 26 Feb 2015 23:00:00 +0700 Subject: [PATCH 0138/1761] changer order to match with the description bellow --- getting-started/meta/quote-and-unquote.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown index 9d386d7e3..a180eb107 100644 --- a/getting-started/meta/quote-and-unquote.markdown +++ b/getting-started/meta/quote-and-unquote.markdown @@ -65,7 +65,7 @@ iex> Macro.to_string(quote do: sum(1, 2 + 3, 4)) In general, the tuples above are structured according to the following format: ```elixir -{tuple | atom, list, list | atom} +{atom | tuple, list, list | atom} ``` * The first element is an atom or another tuple in the same representation; From b3de4c1658f6e7ef1503b766d64fcc3f358c8899 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 27 Feb 2015 12:47:48 +0700 Subject: [PATCH 0139/1761] Improvements in learning resources --- css/style.css | 15 +++++++++------ learning.markdown | 15 +++++++++++---- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/css/style.css b/css/style.css index 056e6910c..72e440503 100644 --- a/css/style.css +++ b/css/style.css @@ -803,14 +803,17 @@ li.image { } } +/* Elixir-lang.org - Pages and Specific Elements +------------------------------------------------------ */ + /* Learning */ body.learning a.cover { float: left; - padding: 10px 20px 10px 0px; + padding: 0.769230769em 1.538461538em 0.769230769em 0; } body.learning h4.resource { - padding-top: 13px; + padding-top: 1em; } /* Jekyll Table of Contents */ @@ -834,11 +837,11 @@ ol.jekyll-toc li { .jekyll-toc-header { position: relative; display: block; - margin-left: -20px; - padding-left: 20px; + margin-left: -1.538461538em; + padding-left: 1.538461538em; margin-right: 0; - padding-right: 20px; + padding-right: 1.538461538em; cursor: default; } @@ -875,7 +878,7 @@ ol.jekyll-toc li { width: auto; } .jekyll-toc-header a.jekyll-toc-back-to-top span.jekyll-toc-icon { - margin-left: 10px; + margin-left: 0.769230769em; width:1em; text-align: right; } diff --git a/learning.markdown b/learning.markdown index f6b3183ad..5229bd090 100644 --- a/learning.markdown +++ b/learning.markdown @@ -16,7 +16,9 @@ The Elixir Community has also produced plenty of resources to explore Elixir fro

Programming Elixir

-Programming Elixir cover +Programming Elixir cover You want to explore functional programming, but are put off by the academic feel (tell me about monads just one more time). You know you need concurrent applications, but also know these are almost impossible to get right. Meet Elixir, a functional, concurrent language built on the rock-solid Erlang VM. @@ -26,7 +28,8 @@ Elixir’s pragmatic syntax and built-in support for metaprogramming will make y

Elixir in Action

-Elixir in Action cover +Elixir in Action cover Elixir in Action is a tutorial book that aims to bring developers new to Elixir and Erlang to the point where they can develop complex systems on their own. No knowledge about Elixir, Erlang, or functional programming is required, but it is assumed that a reader has a few years of production experience using mainstream OO languages, for example C#, Java, Python, or Ruby. @@ -38,7 +41,9 @@ The book starts with a basic introduction to the Elixir language and functional

Elixir Sips

-ElixirSips cover +ElixirSips cover Elixir Sips is a screencast series that provides 2 short videos - typically from 2 to 7 minutes, but occasionally much longer - each week. The videos consist of various topics, ranging from exploring a module in the standard library to trying out a new project to building a web-based Tetris game from scratch. @@ -50,7 +55,9 @@ The intended audience ranges from someone entirely new to the Elixir language, t

Metaprogramming Elixir

-ElixirSips cover +Metaprogramming Elixir cover Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages. From efb612c1b733f8556c1d3714177de12264ff1278 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 27 Feb 2015 17:56:37 +0700 Subject: [PATCH 0140/1761] bring back numbers to TOC --- _includes/bottom.html | 2 +- css/style.css | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index 39df00e30..d6b36d71d 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -26,7 +26,7 @@ $(document).ready(function() { $('.toc').toc({ title: '', - listType: 'ul', + listType: 'ol', minimumHeaders: 2, headers: 'h2, h3, h4, h5, h6', linkHere: true, diff --git a/css/style.css b/css/style.css index 056e6910c..5914df503 100644 --- a/css/style.css +++ b/css/style.css @@ -814,10 +814,20 @@ body.learning h4.resource { } /* Jekyll Table of Contents */ +ol.jekyll-toc, +ol.jekyll-toc ol { + counter-reset: item; +} ol.jekyll-toc { - margin: 0.3125em 0 0 3.125em; + margin: 0.3125em 0 0 2.3076923076923075em; +} +ol.jekyll-toc ol { + margin: 0.625em 0 0 0; + margin-bottom: -0.8em; +} +ol.jekyll-toc li { + display: block; } -ol.jekyll-toc li { display: block } ol.jekyll-toc li:before { content: counters(item, ".") " "; counter-increment: item; @@ -829,6 +839,10 @@ ol.jekyll-toc li { line-height: 1.3em; padding-bottom: 0.8em; } +ol.jekyll-toc li a { + position:relative; + left: 0.3076923076923077em; +} /* heading */ .jekyll-toc-header { From 9b966c2d41c2067929ebdcba2fc1262632237b15 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 27 Feb 2015 18:32:10 +0700 Subject: [PATCH 0141/1761] correct EM dimensions --- css/style.css | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/css/style.css b/css/style.css index 12b5f1198..c75a3cc27 100644 --- a/css/style.css +++ b/css/style.css @@ -178,7 +178,7 @@ h1, h2, h3, h4, h5, h6 { h1 { font-size: 2.769230769230769em; } /* 36 / 13 = 2.769230769230769 */ h2 { font-size: 1.846153846153846em; /* 24 / 13 = 1.846153846153846 */ - margin-top: 35px; + margin-top: 1.458333333em; /* 35 / 24 = 1.458333333 */ } h3 { font-size: 1.538461538461538em; } /* 20 / 13 = 1.538461538461538 */ h4 { font-size: 1.384615384615385em; } /* 18 / 13 = 1.384615384615385 */ @@ -822,11 +822,10 @@ ol.jekyll-toc ol { counter-reset: item; } ol.jekyll-toc { - margin: 0.3125em 0 0 2.3076923076923075em; + margin: 0.3076923076923077em 0 0 2.3076923076923075em; } ol.jekyll-toc ol { - margin: 0.625em 0 0 0; - margin-bottom: -0.8em; + margin: 0.615384615em 0 -0.7692307692307693em 0; } ol.jekyll-toc li { display: block; @@ -851,11 +850,11 @@ ol.jekyll-toc li a { .jekyll-toc-header { position: relative; display: block; - margin-left: -1.538461538em; - padding-left: 1.538461538em; + margin-left: -20px; + padding-left: 20px; margin-right: 0; - padding-right: 1.538461538em; + padding-right: 20px; cursor: default; } @@ -892,7 +891,7 @@ ol.jekyll-toc li a { width: auto; } .jekyll-toc-header a.jekyll-toc-back-to-top span.jekyll-toc-icon { - margin-left: 0.769230769em; + margin-left: 10px; width:1em; text-align: right; } From d36d70b72c91cd446537f5ac2e2c00c98984820a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 27 Feb 2015 14:45:13 +0100 Subject: [PATCH 0142/1761] Add more spaces around toc --- css/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/style.css b/css/style.css index c75a3cc27..ab22d71fb 100644 --- a/css/style.css +++ b/css/style.css @@ -822,7 +822,7 @@ ol.jekyll-toc ol { counter-reset: item; } ol.jekyll-toc { - margin: 0.3076923076923077em 0 0 2.3076923076923075em; + margin: 1.692307em 0 1.692307em 2.3076923076923075em; } ol.jekyll-toc ol { margin: 0.615384615em 0 -0.7692307692307693em 0; From 064b546bedee7175c8b915c00be685690003296e Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 28 Feb 2015 04:04:53 +0700 Subject: [PATCH 0143/1761] Add favicon.ico link in head --- _includes/index-redirect.html | 1 + _includes/top.html | 1 + 2 files changed, 2 insertions(+) diff --git a/_includes/index-redirect.html b/_includes/index-redirect.html index 2e1e1fc06..dcba2e819 100644 --- a/_includes/index-redirect.html +++ b/_includes/index-redirect.html @@ -52,6 +52,7 @@ + {% unless custom_content %} diff --git a/_includes/top.html b/_includes/top.html index 76f00f68a..da8634a6b 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -13,6 +13,7 @@ + From 17778a8a88bc6256a7839067ea09bad4f92176f5 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 28 Feb 2015 14:41:10 +0700 Subject: [PATCH 0144/1761] Fix broken internal links --- _posts/2014-06-17-elixir-v0-14-0-released.markdown | 2 +- blog/categories.html | 2 +- install.markdown | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/_posts/2014-06-17-elixir-v0-14-0-released.markdown b/_posts/2014-06-17-elixir-v0-14-0-released.markdown index 5530ed2ba..1c3d56fb2 100644 --- a/_posts/2014-06-17-elixir-v0-14-0-released.markdown +++ b/_posts/2014-06-17-elixir-v0-14-0-released.markdown @@ -150,7 +150,7 @@ Note "Mix and OTP" is our most advanced guide so far and it expects you to have ## What's next? -With v0.14.0 we have reached many of the milestones [we have set in the previous release](/blog/2014/04/21/elixir-v0-13-0-released/#toc_8). This brings us closer to Elixir v1.0 and only a handful of tasks are pending: +With v0.14.0 we have reached many of the milestones [we have set in the previous release](/blog/2014/04/21/elixir-v0-13-0-released/#the-next-steps). This brings us closer to Elixir v1.0 and only a handful of tasks are pending: * Provide an Elixir logger that knows how to print and format Elixir exceptions and stacktraces. Work has already started on this front as Elixir already prints errors coming from the application startup nicely; diff --git a/blog/categories.html b/blog/categories.html index abfc5d4ae..51192802c 100644 --- a/blog/categories.html +++ b/blog/categories.html @@ -9,7 +9,7 @@

Posts by category:

    {% for category in site.categories %}
  • -
    » {{ category | first | capitalize }}
    +
    » {{ category | first | capitalize }}
      {% for posts in category %} {% for post in posts %} diff --git a/install.markdown b/install.markdown index bca867e9b..9802ff9ae 100644 --- a/install.markdown +++ b/install.markdown @@ -51,11 +51,11 @@ Choose your operating system and tool. * Chocolatey * `cinst elixir` -Those distributions will likely install Erlang automatically for you too. In case they don't, check the [Installing Erlang](/install.html#4-installing-erlang) section below. +Those distributions will likely install Erlang automatically for you too. In case they don't, check the [Installing Erlang](/install.html#installing-erlang) section below. ## Precompiled package -Elixir provides a precompiled package for every release. First [install Erlang](/install.html#4-installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/). +Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/). Once the release is unpacked, you are ready to run the `elixir` and `iex` commands from the `bin` directory. It is recommended that you add Elixir's bin path to your PATH environment variable to ease development. You need to [find your shell profile file](http://unix.stackexchange.com/a/117470/101951), and add to the end of it: @@ -69,7 +69,7 @@ On Windows, there are [instructions for different versions here](http://www.comp ## Compiling from source (Unix and MinGW) -You can download and compile Elixir in few steps. The first one is to [install Erlang](/install.html#4-installing-erlang). +You can download and compile Elixir in few steps. The first one is to [install Erlang](/install.html#installing-erlang). Next you should download the [latest release](https://github.com/elixir-lang/elixir/releases/), unpack it and then run `make` inside the unpacked directory (note: if you are running on Windows, [read this page on setting up your environment for compiling Elixir](https://github.com/elixir-lang/elixir/wiki/Windows)). From 289270cfa1ecee0a378ddc197ce65fc65c2dd839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 28 Feb 2015 17:15:51 +0100 Subject: [PATCH 0145/1761] Add Introducing Elixir --- learning.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/learning.markdown b/learning.markdown index 5229bd090..fead8579c 100644 --- a/learning.markdown +++ b/learning.markdown @@ -37,6 +37,17 @@ The book starts with a basic introduction to the Elixir language and functional
      +

      Introducing Elixir

      + +Introducing Elixir cover + +Elixir is an excellent language if you want to learn about functional programming, and with this hands-on introduction, you’ll discover just how powerful and fun Elixir can be. This language combines the robust functional programming of Erlang with a syntax similar to Ruby, and includes powerful features for metaprogramming. + +This book shows you how to write simple Elixir programs by teaching one skill at a time. Once you pick up pattern matching, process-oriented programming, and other concepts, you’ll understand why Elixir makes it easier to build concurrent and resilient programs that scale up and down with ease. + +
      + ## Screencasts

      Elixir Sips

      From dc1ee586b48cfe3b284a79b435a6a0981c3a4e2f Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 3 Mar 2015 11:23:12 +0700 Subject: [PATCH 0146/1761] fix toc.js to escape special characters in href --- js/toc/toc.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/js/toc/toc.js b/js/toc/toc.js index fe32a7a29..5f4cf9b6b 100644 --- a/js/toc/toc.js +++ b/js/toc/toc.js @@ -40,11 +40,17 @@ html = settings.title + ' <'+settings.listType+' class="jekyll-toc">'; var back_to_top = function(id) { - return ''+settings.backToTopText+''; + return ''+settings.backToTopText+''; } var link_here = function(id) { - return ''+settings.linkHereText+''; + return ''+settings.linkHereText+''; + } + + function fixedEncodeURIComponent (str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return '%' + c.charCodeAt(0).toString(16); + }); } function force_update_hash(hash) { @@ -59,18 +65,18 @@ this_level = get_level(header); var header_id = $(header).attr('id'); if (this_level === level) // same level as before; same indenting - html += "
    • " + header.innerHTML + ""; + html += "
    • " + header.innerHTML + ""; else if (this_level <= level){ // higher level than before; end parent ol for(i = this_level; i < level; i++) { html += "
    • " } - html += "
    • " + header.innerHTML + ""; + html += "
    • " + header.innerHTML + ""; } else if (this_level > level) { // lower level than before; expand the previous to contain a ol for(i = this_level; i > level; i--) { html += "<"+settings.listType+">
    • " } - html += "" + header.innerHTML + ""; + html += "" + header.innerHTML + ""; } level = this_level; // update for the next one @@ -92,7 +98,7 @@ if (settings.linkHeader) { $(header).addClass('jekyll-toc-header'); $(header).children('span.jekyll-toc-wrapper').on( 'click', function( ) { - force_update_hash(header_id); + force_update_hash(fixedEncodeURIComponent(header_id)); }); } }); From dc669c35e105b5fed9d5a6402c5b45ae89636ab0 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 3 Mar 2015 11:24:04 +0700 Subject: [PATCH 0147/1761] Install: New section for Seting PATH Env. Variable --- install.markdown | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/install.markdown b/install.markdown index 9802ff9ae..997dd16bf 100644 --- a/install.markdown +++ b/install.markdown @@ -57,15 +57,7 @@ Those distributions will likely install Erlang automatically for you too. In cas Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/). -Once the release is unpacked, you are ready to run the `elixir` and `iex` commands from the `bin` directory. It is recommended that you add Elixir's bin path to your PATH environment variable to ease development. You need to [find your shell profile file](http://unix.stackexchange.com/a/117470/101951), and add to the end of it: - -On Unix systems, one can do: - -```bash -$ export PATH="$PATH:/path/to/elixir/bin" -``` - -On Windows, there are [instructions for different versions here](http://www.computerhope.com/issues/ch000549.htm). +Once the release is unpacked, you are ready to run the `elixir` and `iex` commands from the `bin` directory, but we would like to recommended you to [add Elixir's bin path to your PATH environment variable](#setting-path-environmental-variable) to ease development. ## Compiling from source (Unix and MinGW) @@ -73,11 +65,7 @@ You can download and compile Elixir in few steps. The first one is to [install E Next you should download the [latest release](https://github.com/elixir-lang/elixir/releases/), unpack it and then run `make` inside the unpacked directory (note: if you are running on Windows, [read this page on setting up your environment for compiling Elixir](https://github.com/elixir-lang/elixir/wiki/Windows)). -After compiling, you are ready to run the elixir and `iex` commands from the bin directory. It is recommended that you add Elixir's bin path to your PATH environment variable to ease development. You need to [find your shell profile file](http://unix.stackexchange.com/a/117470/101951), and add to the end of it: - -```bash -$ export PATH="$PATH:/path/to/elixir/bin" -``` +After compiling, you are ready to run the elixir and `iex` commands from the bin directory. It is recommended that you [add Elixir's bin path to your PATH environment variable](#setting-path-environmental-variable) to ease development. In case you are feeling a bit more adventurous, you can also compile from master: @@ -100,3 +88,16 @@ After Erlang is installed, you should be able to open up the command line (or co Erlang/OTP 17 (erts-6) [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false] Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](http://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! + + +## Setting PATH environmental variable + +It is highly recommended to add Elixir's bin path to your PATH environment variable to ease development. + +On **Windows**, there are [instructions for different versions](http://www.computerhope.com/issues/ch000549.htm) explaining the process. + +On **Unix systems**, you need to [find your shell profile file](http://unix.stackexchange.com/a/117470/101951), and then add to the end of this file the following line reflecting the path to your Elixir installation: + +```bash +export PATH="$PATH:/path/to/elixir/bin" +``` \ No newline at end of file From 258e3f40ff8d378489371006625517331a8fc5e0 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Thu, 5 Mar 2015 23:40:42 +0700 Subject: [PATCH 0148/1761] correct multiline regex --- crash-course.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crash-course.markdown b/crash-course.markdown index 65b3c3b00..bde0d223e 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -354,11 +354,12 @@ Regex.run ~r/abc\s/, "abc " Regexes are also supported in heredocs, which is convenient when defining multiline regexes: ```elixir -is_regex ~r""" +Regex.regex? ~r""" This is a regex spanning several lines. """ +#=> true ``` From b099100e1f3cf869ce023c2620518edbafdb4571 Mon Sep 17 00:00:00 2001 From: Jacob Dreesen Date: Thu, 5 Mar 2015 18:34:44 +0100 Subject: [PATCH 0149/1761] remove duplicate word --- getting-started/sigils.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 8e90d296f..5e2312bb7 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -8,7 +8,7 @@ redirect_from: /getting_started/18.html {% include toc.html %} -We have already learned that Elixir provides double-quoted strings and single-quoted char lists. However, this only covers the surface of structures that have textual representation in the language. Atoms are, for example, are mostly created via the `:atom` representation. +We have already learned that Elixir provides double-quoted strings and single-quoted char lists. However, this only covers the surface of structures that have textual representation in the language. Atoms, for example, are mostly created via the `:atom` representation. One of Elixir's goals is extensibility: developers should be able to extend the language to fit any particular domain. Computer science has become such a wide field that it is impossible for a language to tackle many fields as part of its core. Our best bet is to rather make the language extensible, so developers, companies and communities can extend the language to their relevant domains. From 05ce80910ba302f2a298b6afdea7eb0611c54129 Mon Sep 17 00:00:00 2001 From: Jacob Dreesen Date: Thu, 5 Mar 2015 18:51:39 +0100 Subject: [PATCH 0150/1761] small fixes --- getting-started/typespecs-and-behaviours.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index b8c0a1715..211b7d90f 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -34,7 +34,7 @@ Elixir supports compound types as well. For example, a list of integers has type ### Defining custom types -While Elixir provides a lot of useful built-in types, it's convenient to define custom types when appropriate. This can be done when defining modules modules through the `@type` directive. +While Elixir provides a lot of useful built-in types, it's convenient to define custom types when appropriate. This can be done when defining modules through the `@type` directive. Say we have a `LousyCalculator` module, which performs the usual arithmetic operations (sum, product and so on) but, instead of returning numbers, it returns tuples with the result of an operation as the first element and a random offense as the second element. @@ -101,7 +101,7 @@ If you have to, you can think of behaviours like interfaces in object oriented l ### Defining behaviours -Say we have want to implement a bunch of parsers, each parsing structured data: for example, a JSON parser and a YAML parser. Each of these two parsers will *behave* the same way: both will provide a `parse/1` function and a `extensions/0` function. The `parse/1` function will return an Elixir representation of the structured data, while the `extensions/0` function will return a list of file extensions that can be used for each type of data (e.g., `.json` for JSON files). +Say we want to implement a bunch of parsers, each parsing structured data: for example, a JSON parser and a YAML parser. Each of these two parsers will *behave* the same way: both will provide a `parse/1` function and a `extensions/0` function. The `parse/1` function will return an Elixir representation of the structured data, while the `extensions/0` function will return a list of file extensions that can be used for each type of data (e.g., `.json` for JSON files). We can create a `Parser` behaviour: From 29662b0a71c01fe7590c8da81d6d24d40cc44344 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 6 Mar 2015 02:21:37 +0700 Subject: [PATCH 0151/1761] remove duplicate word in sigils --- getting-started/sigils.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 5e2312bb7..2d8fe2cab 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -146,7 +146,7 @@ Converts double-quotes to single-quotes. def convert(...) ``` -By using using `~S`, this problem can be avoided altogether: +By using `~S`, this problem can be avoided altogether: ```elixir @doc ~S""" From 6f618619323f78f4a8366d6a4e3d42ece03c7746 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 9 Mar 2015 01:28:34 +0100 Subject: [PATCH 0152/1761] Add an example of an Elixir atom I added an additional example of an Elixir atom that mirrors the last example of Erlang atom present in the guide. --- crash-course.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/crash-course.markdown b/crash-course.markdown index bde0d223e..e4e23fa7f 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -226,6 +226,7 @@ is_atom(''). %=> true is_atom :ok #=> true is_atom :'ok' #=> true is_atom :"Multiple words" #=> true +is_atom :"" #=> true ``` ### Tuples From 33d8cb43f444a46e9b0f8a051990fbef2e2831f5 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 9 Mar 2015 01:32:59 +0100 Subject: [PATCH 0153/1761] Uniform tuple style in the crash course guide The Elixir convention is to not use spaces around curly braces in tuples (`{:foo, :bar}` instead of `{ :foo, :bar }`). AFAIK, the Erlang convention is the same. I updated all examples in the guide changing them to the no-spaces style. --- crash-course.markdown | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index e4e23fa7f..108538985 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -241,15 +241,15 @@ That said, Elixir does not import the default `element` and `setelement` functio **Erlang** ```erlang -element(1, { a, b, c }) %=> a -setelement(1, { a, b, c }, d) %=> { d, b, c } +element(1, {a, b, c}) %=> a +setelement(1, {a, b, c}, d) %=> {d, b, c} ``` **Elixir** ```elixir -elem({ :a, :b, :c }, 0) #=> :a -put_elem({ :a, :b, :c }, 0, :d) #=> { :d, :b, :c } +elem({:a, :b, :c}, 0) #=> :a +put_elem({:a, :b, :c}, 0, :d) #=> {:d, :b, :c} ``` ### Lists and binaries @@ -293,7 +293,7 @@ Elixir offers a literal syntax for creating a list of two-item tuples where the **Erlang** ```erlang -[{another_key,20},{key,10}] +[{another_key, 20}, {key, 10}] ``` **Elixir** @@ -621,7 +621,7 @@ f.([]) #=> "Empty" f.({:a, :b}) -#=> "All your {:a,:b} are belong to us" +#=> "All your {:a, :b} are belong to us" ``` ### First-class functions @@ -649,7 +649,7 @@ defmodule Math do end end -Enum.map [1,2,3], &Math.square/1 +Enum.map [1, 2, 3], &Math.square/1 #=> [1, 4, 9] ``` @@ -674,7 +674,7 @@ defmodule Math do end end -Enum.map [1,2,3], &Math.square/1 +Enum.map [1, 2, 3], &Math.square/1 #=> [1, 4, 9] ``` @@ -691,9 +691,9 @@ The ``case`` construct provides control flow based purely on pattern matching. **Erlang** ```erlang -case { X, Y } of - { a, b } -> ok; - { b, c } -> good; +case {X, Y} of + {a, b} -> ok; + {b, c} -> good; Else -> Else end ``` @@ -701,9 +701,9 @@ end **Elixir** ```elixir -case { x, y } do - { :a, :b } -> :ok - { :b, :c } -> :good +case {x, y} do + {:a, :b} -> :ok + {:b, :c} -> :good other -> other end ``` @@ -786,10 +786,10 @@ The syntax for sending and receiving differs only slightly between Erlang and El ```erlang Pid = self(). -Pid ! { hello }. +Pid ! {hello}. receive - { hello } -> ok; + {hello} -> ok; Other -> Other after 10 -> timeout @@ -801,10 +801,10 @@ end. ```elixir pid = Kernel.self -send pid, { :hello } +send pid, {:hello} receive do - { :hello } -> :ok + {:hello} -> :ok other -> other after 10 -> :timeout From 6568d12ac243480f44427db1aa1886f071c9eaa2 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 9 Mar 2015 01:36:23 +0100 Subject: [PATCH 0154/1761] Very minor changes in the crash course guide - Capitalize UTF-8 (which was "utf-8") - Slight markup polishes --- crash-course.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index 108538985..722972709 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -273,9 +273,9 @@ is_binary <<"Hello">> #=> true <<"Hello">> === "Hello" #=> true ``` -In Elixir, the word **string** means a utf-8 binary and there is a `String` module that works on such data. Elixir also expects your source files to be utf-8 encoded. On the other hand, **string** in Erlang refers to char lists and there is a `:string` module, that's not utf-8 aware and works mostly with char lists. +In Elixir, the word **string** means a UTF-8 binary and there is a `String` module that works on such data. Elixir also expects your source files to be UTF-8 encoded. On the other hand, **string** in Erlang refers to char lists and there is a `:string` module, that's not UTF-8 aware and works mostly with char lists. -Elixir also supports multiline strings (also called heredocs): +Elixir also supports multiline strings (also called *heredocs*): ```elixir is_binary """ From 04c2dc9548000b562a5e8928ec9f7e8c086f2205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 18 Mar 2015 13:02:21 +0100 Subject: [PATCH 0155/1761] Bring macro suggestions upper --- getting-started/meta/macros.markdown | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index aaf40359f..845ae0dc8 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -8,12 +8,18 @@ redirect_from: /getting_started/meta/2.html {% include toc.html %} -Macros can be defined in Elixir using `defmacro/2`. +## Foreword -> For this chapter, we will be using files instead of running code samples in IEx. That's because the code samples will span multiple lines of code and typing them all in IEx can be counter-productive. You should be able to run the code samples by saving them into a `macros.exs` file and running it with `elixir macros.exs` or `iex macros.exs`. +Even though Elixir attempts its best to provide a safe environment for macros, the major responsibility of writing clean code with macros falls on developers. Macros are harder to write than ordinary Elixir functions and it's considered to be bad style to use them when they're not necessary. So write macros responsibly. + +Elixir already provides mechanisms to write your every day code in a simple and readable fashion. Macros should only be used as a last resort. Remember that **explicit is better than implicit**. **Clear code is better than concise code.** ## Our first macro +Macros in Elixir are defined via `defmacro/2`. + +> For this chapter, we will be using files instead of running code samples in IEx. That's because the code samples will span multiple lines of code and typing them all in IEx can be counter-productive. You should be able to run the code samples by saving them into a `macros.exs` file and running it with `elixir macros.exs` or `iex macros.exs`. + In order to better understand how macros work, let's create a new module where we are going to implement `unless`, which does the opposite of `if`, as a macro and as a function: ```elixir @@ -237,13 +243,11 @@ Macros are a powerful construct and Elixir provides many mechanisms to ensure th * Macros are lexical: it is impossible to inject code or macros globally. In order to use a macro, you need to explicitly `require` or `import` the module that defines the macro. -* Macros are explicit: it is impossible to run a macro without explicitly invoking it. For example, some languages allow developers to completely rewrite functions behind the scenes, often via parse transforms or via some reflection mechanisms. In Elixir, a macro must be explicitly invoked in the caller. +* Macros are explicit: it is impossible to run a macro without explicitly invoking it. For example, some languages allow developers to completely rewrite functions behind the scenes, often via parse transforms or via some reflection mechanisms. In Elixir, a macro must be explicitly invoked in the caller during compilation time. * Macros' language is clear: many languages provide syntax shortcuts for `quote` and `unquote`. In Elixir, we preferred to have them explicitly spelled out, in order to clearly delimit the boundaries of a macro definition and its quoted expressions. -Even if Elixir attempts its best to provide a safe environment, the major responsibility still falls on the developers. That's why the first rule of the macro club is **write macros responsibly**. Macros are harder to write than ordinary Elixir functions and it's considered to be bad style to use them when they're not necessary. Elixir already provides elegant mechanisms to write your every day code and macros should be saved as a last resort. - -If you ever need to resort to macros, remember that macros are not your API. Keep your macro definitions short, including their quoted contents. For example, instead of writing a macro like this: +Even with such guarantees, the developer plays a big role when writing macros responsibly. If you are confident you need to resort to macros, remember that macros are not your API. Keep your macro definitions short, including their quoted contents. For example, instead of writing a macro like this: ```elixir defmodule MyModule do @@ -281,6 +285,6 @@ defmodule MyModule do end ``` -This makes your code clearer and easier to test and maintain, as you can invoke `do_this_that_and_that/3` directly. It also helps you design an actual API for developers that does not rely on macros. +This makes your code clearer and easier to test and maintain, as you can invoke and test `do_this_that_and_that/3` directly. It also helps you design an actual API for developers that do not want to rely on macros. With those lessons, we finish our introduction to macros. The next chapter is a brief discussion on DSLs that shows how we can mix macros and module attributes to annotate and extend modules and functions. From e30ec8ffbf11625d09a16e6aff610de7ba9e7670 Mon Sep 17 00:00:00 2001 From: Shankar Dhanasekaran Date: Wed, 18 Mar 2015 20:24:49 +0530 Subject: [PATCH 0156/1761] Implementing client api and server callbacks can be different modules --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index fd117c5c3..5ea2a02e6 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -43,7 +43,7 @@ We will use a [GenServer](/docs/stable/elixir/GenServer.html) to create a regist ## Our first GenServer -A GenServer is implemented in two parts: the client API and the server callbacks, all in a single module. Create a new file at `lib/kv/registry.ex` with the following contents: +A GenServer is implemented in two parts: the client API and the server callbacks, either in a single module or in two different modules implementing client API in one and server callbacks in the other. Here we use a single module for both the server callbacks and client API. Create a new file at `lib/kv/registry.ex` with the following contents: ```elixir defmodule KV.Registry do From 7dfd50fb661ac2e0b9ba8d7f61b678b8b39fb01a Mon Sep 17 00:00:00 2001 From: Eric West Date: Tue, 24 Mar 2015 08:09:51 -0500 Subject: [PATCH 0157/1761] Make explicit that client/server are 2 processes --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 5ea2a02e6..6ee8bb1d0 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -43,7 +43,7 @@ We will use a [GenServer](/docs/stable/elixir/GenServer.html) to create a regist ## Our first GenServer -A GenServer is implemented in two parts: the client API and the server callbacks, either in a single module or in two different modules implementing client API in one and server callbacks in the other. Here we use a single module for both the server callbacks and client API. Create a new file at `lib/kv/registry.ex` with the following contents: +A GenServer is implemented in two parts: the client API and the server callbacks, either in a single module or in two different modules implementing client API in one and server callbacks in the other. The client and server run in seperate processes, with the client passing messages back and forth to the server as its functions are called. Here we use a single module for both the server callbacks and client API. Create a new file at `lib/kv/registry.ex` with the following contents: ```elixir defmodule KV.Registry do From cfbe161d20746c20b4160ee6196e10b5873103fd Mon Sep 17 00:00:00 2001 From: Leigh Williams Date: Thu, 26 Mar 2015 15:31:25 +1100 Subject: [PATCH 0158/1761] Optimize all site images. --- images/contents/exunit-ansi.png | Bin 91249 -> 68297 bytes images/contents/fast-fail.png | Bin 27707 -> 10628 bytes images/contents/hash-dict-fetch.png | Bin 8760 -> 4994 bytes images/contents/hash-dict-update.png | Bin 8857 -> 5029 bytes images/contents/home-code.png | Bin 14863 -> 5378 bytes images/contents/iex-pry.png | Bin 31908 -> 14244 bytes images/contents/string-help.png | Bin 55061 -> 24062 bytes images/logo/logo.png | Bin 9282 -> 8290 bytes images/logo/plataformatec.png | Bin 2432 -> 2431 bytes images/social/RSSButton.png | Bin 4016 -> 1224 bytes 10 files changed, 0 insertions(+), 0 deletions(-) diff --git a/images/contents/exunit-ansi.png b/images/contents/exunit-ansi.png index d6ce6aab3a7575abf16305a94a317fce3279838b..5268c3195c9be0414407e779f0ce2ba20dfb5b9d 100644 GIT binary patch literal 68297 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%0DR<+uq{hc|fqM0SPGY8BBlU^7;^gV^2ZoSWTgr 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 diff --git a/images/contents/fast-fail.png b/images/contents/fast-fail.png index 10f53e3532490f49c4051a5a8ab08fa762bfbad7..b7ed7483b058a4bf07f24233b09e8e94763b3498 100644 GIT binary patch literal 10628 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 diff --git a/images/contents/hash-dict-fetch.png b/images/contents/hash-dict-fetch.png index 31abaf84d3cead77e02867675f2a2d0aec26c5f2..38217577b935408973ea5886220b57a70334700d 100644 GIT binary patch literal 4994 zcmbtY2T)U6w+C!}`2?&VNLX{p`=m-d*OE1zp(o{e}kX`}-gai-;RGI=B zT7m&WReJAIU-WwKeecelfBu=bXU$$~e|zn<*8a|%vt~|$o{rjiDi$gL0B~MIUBv(Z zAcg_}L<*E71jLY&yNLiC>fMEa2}>d(B4T1<5)u+pQc^N9GIDZq3JMBJO3HKR&QVcO zQBzaX(9oPef1Zwxj-D_wnJ-+pz`($8@!~~BMn)hI2m*nanVBzLy2Qf5!ph2e`SN8p zHa2#4b`A~>E-o%^Zf+hPo-0?b@bdEV@$vEV^9u+F2nq^by?RwhNa)(NYr?|9*RNj} z5fKp;6%`W`6BiekAPmR88#iu9N=iyeNl8mf-@JKKMn*c&GB!3gF)=YUH8nFcgF>O^=H?a_7M7NlR#sNl*48#QHnz65c6N66 z?%lJuw|8)GaCCIMfB(LdlasTvGYkfEadB~Vb#-%db9Z<5@bK{T^z`!bdhp)Eqs&!0cf&d$!s$$9bOMQ(0xUS8hImoM}4^9u?J3JVL1ii(Phi%UvMN=r-2 z%F4>i%PT4>;Ba_lWo1=W6#{{%uCA`Bsj024ef8>9U0q#$eLWJ1M4?a(4GoQrjZIBW z&CShk-n@DH_H9c`OKWRuTU*<^ckkZ6fB)gbhxYdNj*gDb&d#o`uI}#cj~_pN`t+%% zr>D2Kx3917^XJcBzI;KW(f$4X0|NttgM-7v!x#((i^YzNjC}q26^Fx(j*gCvjg8AN zjE|4w@%V{}iOI>ysi~>y>FJr7nc3OdZ{NOs|Neb$Zf<^leqmu@adB~JX=!AGn0cU4tQcC1q006zRhKeF2V07ihc~1!DQmi##ED}P06#;&%PRwUem5Jr%BqMs1 zamJ~j?=mRrK=sr>fVcPtsX}CbV*4beGmzr>qUlqtm<@#}1aeK3EkZ$qgp^F3RQ)3# z*OgESeEVyEw7hHS1e=sC=eh(g7%dar`ZD)n(;J)vF;}r-J~SG30S>0ba6^*xgq6xc z1wR2L)GvS@4*ms<-$Y&4UdD!Y^k~hnDukr%=Nc>H>r=0Ut4t70HENvs`i*ag?E}*N z@Pcg>a3f4hd$t5FKz0;{Pig_qRpBPkI(C^nCcU)c71bsPqI*0>z1M5pL4u#OjS!cs zvSRbemill+wXxH)l)JU=6Q}~CXGD40^6W|!4jG$WL?YS8d?sruo zHd}J)kXa4tT0Q%3qg#lDP$QHbkv-*JTa12QTHmb>bLXmk<=)y2vTqBUs`f2Oj6``8 zDJu13wL;7Eje2R5Gjvmz?otYSNZIzxp^* z3FtDiKTa1fnRAN+w?}egpgDt>#;p*BkI)L*;H0AE1d|>h84j+6*OYHY5brRhN3|t( zj|?As`=-V9pL~aTsB6f$*AJS)&MOX-HR-0R&BR;X2I*Z&hW@06(O^Xp4L5chvsz3@ z)ea{xL#m{m-9SFG5jv#PT|BCH=oSDuw5zP(PPoY*ZfVVd4+!?#pg+XX^{Xr!YhIXC z!30r)gZjxMsC*cSV7WOg)>KnEzJe?pt$8EmQLZj@KA~e54fw+|x(t?SNu7(jClwSr zqM1>59WKs*41Bs+?0J~P_}*RdlFsJa#p_fnysn6GJfkV8ISopR1T~rj!;v2{HV*TS zh+a8H07gfD<*m;5y=Wvv{W_@M(9*pt0WdLkN=(DB7;iYAEBTPp^-@x`Ef-%h0=ut& zEpd+iQiQTq?oOR0Cb}tx(a`IDuBDkPq@d6 zMlLj`rx#*lVg&lK^<8A=+&Tpu7G!YYfn%aQRQkQ8g}|Rw1K6K%z0*Oxr!rVbUW4bl zfIzpGo$t$9QTjfmwm~%Z=)It+sY!KzE1A>EoU}qw?jBTK$uyh52hX%nPjv&z9fYep zx~>cRj=)jP+biPf{v5}1_BGIw#Z9p%Dbc@jS3ZFCHS)ax;fAHmu6r!_qC19+zeP$83 zu7gFU)jz6OS0Zm)I7g9Y9>wDGIOsK7OVy7EM;G4aD!0H$7#TPB ziSK;k%wRc~H#0KSSOtBfipPgKy&6_tuHh4YE9Q0IRxEOM<38E>exdgJ?DjE%3);2`{tI5$IGXS*Kv7%zD--*t;6txz;*4zX3wCVDLexc)4Z}U z5F1uWH70#?H_{1Gb#-}XHgAieIr+Hp4yp&V7x>DeaSaKaV8g)fqO2zTZ7r*du<88p z$4S++){^qgI&kM*&R}Tj%=|pBR}ev5VdEyl;(ngX->}q#T*< zBL-w%G_0%zU|_DOJOuFhw{qTXgSy>XNJxd`RB=c-4~P8a_tZ1*l-TytEf(A=jF$Fh z^Z0ad7wN-bC7|AfP1!j2-lY_g_~aTa$@`H6_G&2Dt24-SUKeo$FTShBXRMl!J;{)* zg1~}IVVKt^O=W{+&3r#X6hrc%@aE;q&BB#(aLfTLx$;7cH-_cOD$PlSWRv>d(rSAm zx1P(mKCbA4RhD-}CRFFnVR6Oi4oMhHTOj?OvJWjj6GNaN1Z8|Gl$NvBIucYT`&yI% zm3M|u5DYq6w+``$Rv$F8hP6Bm40(`cWBT%*$BD*ei0g~RZW-;b%pbKj%CPVf{(A8! z4Q=yjygs4}Qh8ir<=p+*BYs_;DFJF^c(gt|rmG!ztejqv&^mlIxEh`FFv?bryqYpT zDlu8&g>LA8Xg)~hd6rkgs< z;1xflCmbrTT@K><)#*@_zdGGtt&i@dL-I2-?r0b|S0+bf?hB(5iX~E_Jw^{fKDGTl ziJ%t@#a1?nH@7ym!E#yU_nS6_$5&t)cvkes&su*1J1~tO0&p;@5dDa*N2;b63K2Ry zmgaHzE<*q*F@;b_5=>wCXIuT-M*Y7REKtOU*F{;m4B*9goP-SEq)UPGCc+mwkGum3 zc?P~8d+NX4y86>B@vIXNcTBam(nOUTGY0OG=s&`lz4iy5`LLe(nD5+dhFV-toi|D{ zL6m#>EjoBr=#&xe01Xi@Gq@qK2U#;yLvf=wVyH272MMP)gbuuK+#@tq!kv_UUt>9J zWn4^?M4vuzco@TZ&xT2Ehdwi9i2<}|s2PNdyXW-mpV@zXcXy)7W9{$VL0AH(ko z&iz-p|E;_|Q*vlYfA-!CdcfbQAOo}P>>1SL11rcd^V;HsqJ??M-2*lf&TQk3e>xnu!6W zUbkDn3;o4c0p=>y=r8vEfPV7$(^@tL6EybhV*k}dW8iOhmVa}PQ*s$qrbY+^Ca^-C zB=tRzBv9XI)BATdEUP%L)xvawa5}NCjye?_0pphE> z*YopYP5sk$BO&?8rHdN!tqHRK&~BbK41TTsX3CjRx8$c%;wu16gPyx8qFznu<^uML zsu}Ub&`!ns4Q9|$aa%J8^>|&zSB6Io*TDTf6)v%Yxluht7%o4Waeu8;i}jrtwD#wa z&`If$y>aySwbc;6@h{XWTFCz-z56Eg!UGJyWDxk5rw`e0?2yUXQXu!pP6Uu%#k%MX zM7&zUyG^4M0edyr#!RPV+Y*v!O~BX9bf*L?v$1D#K?ne540M0A@YD5baCADZF%4zC zIvO;82ftVQeL6KW@QleP#`H`Js!J!ULnqn+(H|}uTzyFjSSVKpsL->S61X{@ZpQN=d(kUVH52@z-)3Zb< z{x{~dNcC5M=6`n`FGD^amLCjL(-IsoC@gvE^uN@1RGyJ@rEU$vA(2~X%Mp2g!2k8ixY>~*c#|<9 zZv6J?v(J`UML!ayoHNSl z9zDGoAn=dvU3M`*Ii zp`_I>>Qw$9@;@kF5k^|1(v8pqKQ+VG-g5l%Q4W~owUQ#0B)pf^nN|vf(^_ zddhG%{gK11optxyNiC2u8?-;V&xJ|2O{&dBkphTF^Jd-(<9a<~vrkel`=-7|;?6x? zCvckK;+rombrE`YyTB=x!HI35k-8enTAr=mw#B^n&-=_pKFismB|<0U)Q}-i9|NCl za`yH4tqvEJGMfDqIq((F$Lcl$vaMuF&Q)J&=I{6CiP7j`DGQuK-jdfAIgOvYo|+_u z>99I@S5g~f*=Bwn`Tq9h93F8DBRx)C8A+FQ+h<^XDC5(IaczU z*fjl=KV9!JNKsk3cv_6~o0_U3Ve}!Ywbw3|Jdu77O184_8WgaXr2fHXrKAoN+-iHG zpj_?r1Gys_!f=ynQWt%Al}8gsYS5m>!u`-=O*tv0UBOGqi}i{nAiqZ7w1PzR2ZN28 zVS5@V@e4Yk%@Ybm;zw}!SCnx+Mv(-Dp&UwbsQyk<4RnWrh<;*(-Z*;n;f~ zp8KfZe6HuWp6j`;=O3K=d_MPhkJtTvz21UVln{hhD6in);1J5oNk7EFIj@6*bMD^d z^I&8tL1qjGhwfBfT0;HV@JixU74?CGFHy|ivp=k?X`?dbspZvsCod%LzrL^05R@H+ zZ_RI=@{pD%Tb0a&_^vp8aOQK_(hb$J_v&`WMkI#m4cWJbALLNhWwQq5r?B2){dtNJ z>k)B#y2jONW8~&rYxJ&utlFZ}t;VxvB5CX*&HgzYoG&x(&u@dh+zSLh7Kp(QDA-zx z6!^pCG7ipj2zaK84t#>){*#A{piWEu1&cjdo}Qk9R^6t9AB;9OHk{J^_&jJW#EtLY zzdurLN9#Tt@#V`sMA(3hPzO=1PJQ;)RG&tm(z^X>A=;_m5~Z>FE5{+Ji`Km&oDR~E+FtIW+<B)=v4M+cI&L0>C06NyIv%ldJhqxS%QSoeL3_AvadOiJv1z{*6^Rt z6DSf?->Y$SbaXliCS}QvS?FqC94^b#TO#MuyMuDAdvUQ?3_bq&s3TE?ot=HB_4eJn zeIp}BIax_0$oCI2GZo`&*1ujI4q-zlD8>uiwIBET*%l}GWK^YbYjd+9lxiSfn{Oz5 z7u~0T4mt61A0I2RP{#bx-qx1DZ`EDWDSmXk)v25yw9)dGT?4Y*g_J7Lt%#{!9x7?9 zOQGp9(w8osF*7sUL?NXDA-tQ)aLo4VSatvWXr;3Sa0PeG{`8vf>Cs1%MuX2D8Y1)H zLv>puZn6D@c)fLotFb<6xwCxgi>+d!qz7q_0xbRWvkhbSp!9S`tNHnP`0;wZQ=ZSw zfcg^BupKF?-N%VfMC79tSlQU_7beWL#%dn0Jux;;B&-7 z& z7=H_5!xOL{M@2_p*O<(uipFI1u|LXJ`H0#Z_v|L-(@ti%aew%s;NI#OduRj$!kPtj zh|a@wcv&q8gB9C7}Q! zyD@*)sujkKF}I1gv~x}*VuQ*t4|>CWk4=6ACpNp!gbJo}n)eypiWB#)!ceGjQ?+a? zFWVxx2$sfkmnTll?7cJf@Ha=5C_jGu7-pCnX4uUpv6(J0T;{$;-G#JS4>3HJEOf2! z?ASj%%(dt`#jN?3wG?u`ZH?s)k=76q6s#yMRi}g>G%Ihs+? ziaXoK7Vx9ElVh8KLhbxPU|%+yLjCG;6lyfW@5c4(K~FO1?tZM27^;Y7dpO~H`uQ7I z=%WH1V4RxR-JueT0uf=~6V!VqPU}WjOW$%rJaZveN-HZXCz~v##3vIqm?nmBQAgS# z>ZWVLNl8ftb8nVkn(TM=i)m$zD3M?=n7PKanj`C}nrL!X0; zQqR3rPP?I-^14aML&-c6-?&+>laaxkjI{P1nVs%(doJ;r-Oec}*fmIDh|QjfExrF{ z$hLfEmZS@*izG|R$6Jc0@jZ5|l)rBvFCU!Cdzg{x8>c$apUe=WabqjC_Bg}GxxdJ; zwmy(ZH`#Z-0~&IJ-7HT&iW!Yq$>2M>ptiO(l>2UX&1T{uI>$f2#mu{-$QNVNSL@2M zi)TI|wrers@Hjv%3jt|S%+oA-G;;Nz#s}kZFkWh)9ida4}{?ZUT?{_$|RjL%;m~W6hyjOzZez zTlbNiR8otOPcY0!J`YzO)$OzW1CfJ;AXWQ7IcRB(yxsNE&|dZ;)U@2&-ioB_;#rw#s3*bC{Gw zi&;Pn3)cq_MwN?NxJkQ~!yLT=R*2d>(Ay8<1r){9BG|aYB0RG0uWv8*6wrQ+m>Tl6 z)D;uDX;SfIOnsV{mv@;(0hc=W7Tf4@iAQbxxVps1BLp1oc%^dMraet?zc7B&9G!a`y>V!0X}|2!+f%@&+;Ho zfvtwyV-M=eqJpYBCJh9xhC2;eyJ2BYC=Wuro=inF^^Q|QK}CB$t=xpXtE;8Zo%);} z=k-a6KKauVOxZwtZ{yQ^>?y5oikBA9P``HET^>T~7jDcnYQ}NgrCa;Fmz0>FQ}DqU zU`<$?*5k)1)U_^)58Hp%ww$aO?)F=>%;Z+6o4pnG2}X~UcMKp{ilcWY>-@34!&LfU zs-ER(mzWnTyjk1y(tfIhW{!xVUi^_3c=^GR*@easS7YO80R18s9n?E7bq1^5ii(QX zqLjrcu3ei7g0!2LyjFZUR%+F=zV5IhR%uPx_JVEAMj;T~1I1~P5yz`;wNzprrMvF6 zb|d9t8{bILZY6ANY~O->e0(}Zx7r3jn)C^W5j^;Pc3rhBRc-Ct%KoK9#@Wizas{RP z>4h`(J$Jm$Ts#v>B{*Btjr4Hcn+l{YkK!0w7RPM&gu_qvzlV_9nJH2diSMUWg$&bZ z2%9)D<%OerZBO!+Yg<~!r`tGn%bSE#`B$Pw!t_!P%L}%4en4R^a>L9~!4HEWNZH#~ zqqQ=4g{_GqZnNDaBYib_jWnJQsv_sPAW7WHq~BAl*%yW7P@A(-Nm>poNU3{)UF+cB z=8N4K7cX8c&KmIHOcy8$^4cA;KqLV|V$%al}kq&$gL8>|| zbRn-X$cpatswuwb$0r~tJ=sQ-Jp=jVd)Slwhp}e9mg<-hzfFHznz_Mr--+I(e^?%Y zBH(6>!JH-o_0t%`D7ISbQ`Ue}`4q~0_Y`zdRc5(Kp-7V4v*MPb07~7NI3^sIg#g(0 z=4P?wAPmW~@S)|$mEmNWCk{}UxN8}-L}9VZK_?+X8^I z2Qo1+MX@Na{zz*qw;RddBi1a`!-qgMW?%X-F@6{#cL6m#R zE}SbNv;N{$GP#`34pWlPo_%utk-%fp5Xq$QP)*JM#S2OYw@=`UsAfh!GBUDE+H}#3 zrp``fC8Z>6rXSH@7^!}?uBUubS!L25sdCLb498RIp8~*UY+?c~dt+ncM@0s9&=4b% z#KbeB-k50&A2`8#bN!YS^a>~^Xoa2959cMwSl+e&944qX$5xKXhsv&qaGEk2yS4Gp zwMVPfRbKK1vas#Fz0Qt~a++CCLiv0;4a_nlnoWU}$qTf_PSt@ir9{|WPEN($urgGs zb*9wNNiJO0V`KVzSC`6?7D3d)a@+Y7DVJ=^iJH&5f2dVIU9nwMDHrPQKj|$#!Ck2( zfT;x*=#)izhkM9$c$9+TuHS&q_8t^lG+N&z^H&%DQ?wFSB-bQgIHF0tA{*O1Ae+Yn#dI4O?%XhT|PAgL~PQW zpom=R&Is9Z74q0#c=6)ARRY}C2h>u3z1lTeTHoXSjqdL5ouz@mSFb3@rm>!<;FV5V z#KXnS);y)u3si{Va0fBOZGaMTMXN8>p|(0i*fk4}(RoDygjAVfO^`)&UmoydAgzxO zsLZaCbAc*P^z?XZ_?GAH^6h}Z&z^gRC!6FV;W>YbP*#EAVzUrx_2eAK8VD%~Nes84 z4}gYu?{2Q>KlJAKOJt6s+|_c+lanXX<)hLasL(1$ra93_d{SoqOVE}~i{Vl$@1tEs zMa43j2L=X7*Lx)VFG0mT)S(ekx)o1WOrd1too?cU%K(SX1J6yYt# zZKsrHiDl@HVE~?TB8;h8`QxikDz6v3p!fGdMY%9swiJC^tyFI3FW&hOF_}<%UrpC~ z!xNjRfKYj2b_VqKx~sXCMmz>E9)A=%)7e z(BNPS0o%cR?ULnVM{X>?TYaFe-V6AO{phEUpk(2pCp`~1pxFE40uq2?)J6FN6z@E_LU`ep2UT&~wz^ngeg69^CcSJ-) zU@(}F(6jG<+;DeyC#!hhZte@!BmI4dv8bk|CSd8*)YO+RUuG!8>Wq5quNy@$#h(9t zY-NepH?Lneb#wsL8kOLa*@wT6xp3Rm!U7>Jtwqfr_rUpQ8$KanXh;ZOeEVPKrXIRT zBkc5T`mvmxoVB&JwzjsctgNKu3xEBL3!{xn82T%cmTy>zsbKjp^7He*eUlbpQCC-Q zqKU9MKN$T%1lV$+T<^1o>%rz6y{O21bZjihbw|bD_I6R`<>O0BO>F^plYQvx*AEmF zqIBmxA3h`*z*TugWp&+#=EH#uJq{H1^&O8%zHf<&jj5Sg+=I-Nl$3Yx-gS3BEW`)U z^+x(E&j0=2tiTNbY0p9hTt;V}Um(Ut8!q-^`u5KbsG@@oYZe*0cG*{)oDfR3NG@gQ$c)1mOsVT;xC)K8GyDEiW%GEG$e; zPTpXDG&?uPL-%_XWkygYGcjdkXS34L83B}faQWAEyV9;PT)KFXhv@f%;mjaN=;>d$ z|K7F-Kk&1t)9mG~U+crR^@@v&Nk~bda5!{Q{3%*9jWR2dZJAB=lf>nY;1?cY5StDF zQ?cBJfB@8~<5WvM#U5KMx~;7(J3G6$m^Tx|EY?B`m9HuI8VvDB&;M(d0^os7(*M-Z zfA{*E+rI|>fuYYF2iC(n4&>Yal(?7qItxL69r`}_Objm;MM+nkU6ZC|nG=4PN0 zRAf{EvWGw*oNrH({ECPw;bQIwN=oG!^`LaL9sLxcaPChpwcqC8h+ZpqvE+>df(o>C#c~dLMMX|__SU8*kW`cJzcBqWE+hMuMF+&{Q-p%<=}X2^P=EJJPC=!^@T1{*P9d+aWOHE9z9~7 zh>DE-#N0)v@lKi;K;|u|HQfB~69z;b^EE8^{pm3fy6Q&Qsm>x(9v2Ig|NWtLEvWgy z-H$smH<)p;5DGT^DRQ7dDv*40Q&|8yT+@XfTGy);rJRD>Fu~%0hHaBEuo^dT-qI+{0Oog?b z(`pxBBewd3L);X+lxZvC8kesj567=9nT&!2FfMflj z>s>0AIP)3+M_?(eOV1`V-H5sjHh>)@g9ra!;s50z>3Og{EPRC|6U*TSV}VQi_?IQ> zht<^8`GM{RXc=mwf$A@p9tTzK9q<~kUloh*$yPG_a3O7UbW|pU?0ZAQ*}XTluweQ0 zmt}y(T%1j9w6wHXLxHxX{GPvgy8l!2976p z|Mo8Y>m>mrdHeQl_nS5UON7NSW`A=bdS{9RB$_dRaB#{4zbl48T)2i(0nf?3oR{_+ z>_RFU_+ng#$nVbpMH$e{V%PV}x6HzuO5_BX7+*+#5CMXAb9aV9AKrauXJ-a_dfUWD z1_m@_WDUj0E5NJ3?MTnfW|m||Mn=Fvh~UR}#Kp&_`@!vBT3QMa`XDJf`rBVU3#y_@ ztDa0k3SQIA+2(;FLruIgL!P#l7T&lA5)u+TJUr;T8Zm?bE8biN*7q}$I*TF@I**4` zew&9_O8|=vXVLf19zDa8v#HMg*}Nce|1|&q#bDg|-=Pl*U@V%P?Gy{)zfSUhGnkL@ zz`?PMR!RQxFZDl=M-fp`e4qe+GFBynKp56|4ZV`}LHFhW;m~z;RJ(y&HQV33MEK5~ zuEs_dMn-9o!OP8^ov{&1;Wxuj*8QM6 z1Zh#XRXuV_cT39!pvIcc0@at~6>PslWQ{|+c=qe7t3X*#hPhhLP#;t}&tD>Ayl8U(L^PhPz9~zt9Sg`q;HAc3b|}J z&1dhUr#s_F_EiWUA0KGNWMgg;6W{8z%TU$R8!gZkB=1H}HBngz-KBB&4^*pQa5EQD zx>R+ac#76s~)ol@%HxCw^^^OtOSJhQPDap;3a)Dd%)1c?AcsMsrm@P z4hL(|%}YdCPY|nZ4heUh$aO>(h|#Zr`Duh4CP4?M7?E(-Cgy4=V8An^%nwwOFLY~F zJkhtcU4F~1`Li>*_Ho_$f3%&iKt?n3@5@jiKj5+hzE2kSM!97B14lz3kll?9AXcHC zuDrhrM55VHz68o}R9$_}NQ4LEc?0`f3Mqk(9T&EtxPFT5PJtd+LB;q(c#@DK zJwJbG3{)wOH>0ER0JLQ?GcsJnhoAUA3be#V2I7igRA8TeG=p8DP5`D-{#>(*V77>Hr%9e0u=pzIE=xC2F{j-Y~d* zrm6ajI+Mg?;^@BuF*q1HH@P?AyEZ>x0lG1OidRhdc!Hj#lZw*%&Q9nbf3V%Y{i6X8 zJBp2k@z0(zFN-boOD!X)MI9!e-&BCx)OS(CKMoTH544{s!IHBnw&|v=;MUA217hS{8&KT9y?v^V3Gu6PU1BEONELkvV@*;^ zjSP*|YMl0N2?`1V%-_as4QSi^0(Qgv0N^lI0nnB-&_51Q>DxEUb}~KMU15%Do}K~? zqk{8-%ZPWpW-ZyOX#lUjpY0M85t?Y51+=#qr0p8O-M(61U)LT08jY_h(uRv2)#FRJ zYma%cU@NhjI$Z1-WtWOp*^SmYjf;x|j*khjY*0V|fSsE>+*#se%qlkn+Hr1TeEdj- zy`dF{0ct-jT)aEkd=P2tT-H7c#7@wf$^e2SL52mUJ|iouHDK@&T++;J4zw4zMp~dE zPaP5gOLTAsu-co&W!BkS<9!730wF7#8$UfgExtc_p^q%&TVtcb3}$aalhA0c^H(ey`pv)!P8VYFg;cJh44rl=vmU7c;6fS{QUG-uzRK6P<-;F z(E4d+-Ijx6YDYWZi{5^eqf-@O()^OG8@g6lGyJ4Rd&0wj3@}UCwm3d zLhV3CDD4dSLq|HpnE9Z__teMrgGpnU^+aY?O3Gt^#>E;?!6ylkQNz6BpB$yI+XFrt z2fYW}r VuIr#{wFmR!$jc~67fL>U@n4{Y|2qHx diff --git a/images/contents/hash-dict-update.png b/images/contents/hash-dict-update.png index 8713606ab4920dcc65c7d75235e0b39ae8fd0a09..8e7e728d4f3ba4f562ee464c1ebeb495a859c6d0 100644 GIT binary patch literal 5029 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 diff --git a/images/contents/home-code.png b/images/contents/home-code.png index 482aaa084cc26e8f6cce489287eeadd5454929ec..2e7238c0cb9fc75aee1706476c9fa3ca70a96f08 100644 GIT binary patch literal 5378 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 literal 14863 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%0DbXc%&8!tWHT{?hY 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 MqH-cNLI#2V3(LwiI{*Lx literal 31908 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 diff --git a/images/contents/string-help.png b/images/contents/string-help.png index a0938761e2abb401ddcc336beb7dedba003810f4..a079ccfe6f45c6d5dcdd42e01b574e8040a73222 100644 GIT binary patch literal 24062 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 diff --git a/images/logo/logo.png b/images/logo/logo.png index 9cc895cfea979c7d7fcdbf15660ee4c3e30233dd..003479fd860665102d7bdd3a19fcf6ff01165f5f 100644 GIT binary patch literal 8290 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 literal 9282 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 delta 2382 zcmV-U39Ib z(Z$NhaYssQC6Xn|RxIa#A)EsC0+81m19Szu1Reg|fW0+fho9ERFkqKHua9px zepVcR@hm<5;+x20v91{Q08RjVDPeCxhb8D1*cIr~4d@-%0lI{}2JG-R8~^d|8-Mw2 zdHm%nJ^s@_0)LOi+Lr)$0A~tzDugj%KfVC_xe2=h9sU-uH(s>{@Y2uglRv-6PX6*w z?f|Umfgd-7QJ~YXKbNq#z}Em?`d{_QU%yK{7Hez)^c7r97{b7oQC)&=!rlVE@tyDC zm&M85m!ZdEjUj-ZO&-F~up6LD*lWNJ|9j)p|5PWZuYVYR)-VC`q*n-YyLSkqKsQ4e z8urr`_Km-KRWDn=u9o+HVE9?P36KW|5yF_Gy7Vgv`|H+#UHVPE6mP1fc+2p!`U|kH z2ZS&soC0tUdzd!HywJ4o6-O z0e=7F&VP3Tu;)YwqmSw)><`{a|5z{28vn$zJ*+<9pQk-Tmm__};A%q!bM(qu6{&cBxDX7E|l%V{r+ zg0Gwq{Aw8ZJgdX%A!9ELy^!RO5B*CaL#x5y!==Y!QR=xDrg1cGsP(-M@T(EQ&pZ~3 z(q(&Lh=rtN#2afL;1>YD9ufT5W3eb*fPekWX)jDZ67&IF0Q`D9@IO=@i{&B!)nH*Mc@bli_s|V6^ zJhB+KU-o+YTp%pU@Gwi&`T9S2a_|e>d~=Ay>J5H20DSdOx_oRA;MaQsAAVopW}KmC z?E?PYWTxO3%QJ?awLAD?X5hm==6?X6p=S*OKbjf%JXg;eNAm#xZ3*~!yD@82@QVWl zA8x-MFo8L=VT}%ccA(&A0H6O61Zy(z#UX)@2VydS&%m=L2R}Ff@GCs}m;rtUp0z&# z{PK#xFY(;(3h;9b&$<%uvps{K0eqgNVO=r!pPt5h0KbG+0G~&9*1>@9Pk#u02Jm@w zXC0;h{(404;r5?1Gw`f~2VaZ`egW_~q+!iN0KXavK3o8NhMqMm@Y4~%=l?*+njQGT zFz}!8?n%}>1@N;S!RN2ERV{-y)gyani!p5W&mi}fo2--k;_@Zs~wyCPk` zeqF#h91ct;ROw8f-?coK@PB44_qLf4{0~BaUpauEUvcFoa1BQT(}~D*hIgzIuBFR) zfj_)$<^%uDGvNS!$l#M{`yJ?0IPjzx`~wxhj{tskDfqXZu12b$Kvq)J868tNm(E~8 zRjwu7RVSUb{M+9Geg-GX*7FKDQ)%0QmglVD#3MwO-K;aAy+7^L%YRBb?>K>d)gg`g z5uQZ@+D5Nav#nHK)}6FhmO6E5X94>I;eY4@{0!h%68s9_4~O1_E|ry3TU@{)4ZeEa z;tGx}dC;8`A&c(xlJe#9SPVxU`&z@3Wp~YQ^E*|3xT4D3H-B^+m;(Tjmug#Ql)zU+ zJ0Fe+=n6R2dUVz)OnmrD-Ev(y6GJ40TNCD=!WONa=PIHRZH>CNfG>|ZrBi6&4{s!Up7IgPo(%_|F6)r| zIh{vc<#W<9+|dTD^fv*%R_Kg?%xx4g!H=&Td^(IuuNHhdf5dr=dkt4>=b1nF#z;-y zM6E24m2lX~jIVbZ`97gmSdDr5vJ-MdTEml}4zUdd*F=KwxGtj-!u3_gp+;ImjP)^AAv2ao3|Re>*s?*IS*07*qoM6N<$f?JKN AU;qFB diff --git a/images/social/RSSButton.png b/images/social/RSSButton.png index 26170ec89c1cffe623089697376446acbf1f2df9..d873f9453c00e464d09ee448f5b193596c02bbf9 100644 GIT binary patch delta 1205 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 Date: Mon, 30 Mar 2015 16:00:54 -0500 Subject: [PATCH 0159/1761] clarify first erlang example --- crash-course.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/crash-course.markdown b/crash-course.markdown index 722972709..bc57fdcf4 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -17,6 +17,7 @@ This is a quick introduction to the Elixir syntax for Erlang developers and vice The fastest way to run some code is to launch the Erlang shell -- `erl`. Many code snippets on this page can be pasted directly into the shell. However, when you want to define a named function, Erlang expects it to be inside of a module, and modules have to be compiled. Here's a skeleton for a module: ```erlang +% module_name.erl -module(module_name). % you may use some other name -compile(export_all). From 0d738aa775d90ed4bfef979d548263741684e9ca Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 4 Apr 2015 13:54:35 +0700 Subject: [PATCH 0160/1761] remove gap in lists --- getting-started/case-cond-and-if.markdown | 3 --- 1 file changed, 3 deletions(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 29a431837..e4ba14259 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -59,7 +59,6 @@ The Erlang Virtual Machine (VM) only allows a limited set of expressions in guar * `<>` and `++` as long as the left side is a literal * the `in` operator * all the following type check functions: - * `is_atom/1` * `is_binary/1` * `is_bitstring/1` @@ -75,9 +74,7 @@ The Erlang Virtual Machine (VM) only allows a limited set of expressions in guar * `is_port/1` * `is_reference/1` * `is_tuple/1` - * plus these functions: - * `abs(number)` * `bit_size(bitstring)` * `byte_size(bitstring)` From 872adb79314e7514635e82731b5573ace57c68c9 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 27 Mar 2015 20:01:26 +0700 Subject: [PATCH 0161/1761] Rename page: "Struct" to "Structs" --- _data/getting-started.yml | 2 +- _posts/2014-04-21-elixir-v0-13-0-released.markdown | 2 +- getting-started/protocols.markdown | 2 +- getting-started/{struct.markdown => structs.markdown} | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) rename getting-started/{struct.markdown => structs.markdown} (98%) diff --git a/_data/getting-started.yml b/_data/getting-started.yml index 13f4e2c50..df8b03a3b 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -44,7 +44,7 @@ slug: module-attributes - title: Structs - slug: struct + slug: structs - title: Protocols slug: protocols diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index 5293b094e..e7a03841e 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -179,7 +179,7 @@ The `__struct__` field is also used for polymorphic dispatch in protocols, addre It is interesting to note that structs solve both drawbacks we have earlier mentioned regarding records. Structs are purely data and polymorphic dispatch is now faster and more robust as it happens only for explicitly tagged structs. -For more information on structs, check out the [Structs chapter in the getting started guide](/getting-started/struct.html) (you may also want to read the new Protocols chapter after it). +For more information on structs, check out the [Structs chapter in the getting started guide](/getting-started/structs.html) (you may also want to read the new [Protocols chapter](/getting-started/protocols.html) after it). ## Maps, structs and the future diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 3c8691ba3..e73a9229a 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -87,7 +87,7 @@ iex> Blank.blank?("hello") The power of Elixir's extensibility comes when protocols and structs are used together. -In the previous chapter, we have learned that although structs are maps, they do not share protocol implementations with maps. Let's define a `User` struct as in the previous chapter: +In the [previous chapter](/getting-started/structs.html), we have learned that although structs are maps, they do not share protocol implementations with maps. Let's define a `User` struct as in that chapter: ```iex iex> defmodule User do diff --git a/getting-started/struct.markdown b/getting-started/structs.markdown similarity index 98% rename from getting-started/struct.markdown rename to getting-started/structs.markdown index a10e876c4..292109924 100644 --- a/getting-started/struct.markdown +++ b/getting-started/structs.markdown @@ -2,6 +2,7 @@ layout: getting-started title: Structs redirect_from: /getting_started/15.html +redirect_from: /getting-started/struct.html --- # {{ page.title }} From 8895a5a614ef13f3b650a652a24a4e8703c9fd47 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 27 Mar 2015 20:06:17 +0700 Subject: [PATCH 0162/1761] correct wording, and add links to "task" --- .../mix-otp/distributed-tasks-and-configuration.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index c383695f8..04c55750d 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -96,7 +96,7 @@ There are three better alternatives to `Node.spawn_link/2` that we could use in 2. We could have a server running on the other node and send requests to that node via the [GenServer](/docs/stable/elixir/GenServer.html) API. For example, you can call a remote named server using `GenServer.call({name, node}, arg)` or simply passing the remote process PID as first argument -3. We could use tasks, which we have learned about in the previous chapter, as they can be spawned on both local and remote nodes +3. We could use [tasks](/docs/stable/elixir/Task.html), which we have learned about in [a previous chapter](/getting-started/mix-otp/task-and-gen-tcp.html), as they can be spawned on both local and remote nodes The options above have different properties. Both `:rpc` and using a GenServer would serialize your requests on a single server, while tasks are effectively running asynchronously on the remote node, with the only serialization point being the spawning done by the supervisor. From 8464037d19aba284bf3df9b9a346310a568f530a Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 27 Mar 2015 21:03:58 +0700 Subject: [PATCH 0163/1761] link to "previous chapters" --- getting-started/basic-operators.markdown | 2 +- getting-started/meta/macros.markdown | 2 +- getting-started/modules.markdown | 2 +- getting-started/protocols.markdown | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 100448e24..b90adc5fa 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -8,7 +8,7 @@ redirect_from: /getting_started/3.html {% include toc.html %} -In the previous chapter, we saw Elixir provides `+`, `-`, `*`, `/` as arithmetic operators, plus the functions `div/2` and `rem/2` for integer division and remainder. +In the [previous chapter](/getting-started/basic-types.html), we saw Elixir provides `+`, `-`, `*`, `/` as arithmetic operators, plus the functions `div/2` and `rem/2` for integer division and remainder. Elixir also provides `++` and `--` to manipulate lists: diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 845ae0dc8..bd1680a57 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -36,7 +36,7 @@ defmodule Unless do end ``` -The function receives the arguments and passes them to `if`. However, as we learned in the previous chapter, the macro will receive quoted expressions, inject them into the quote, and finally return another quoted expression. +The function receives the arguments and passes them to `if`. However, as we learned in the [previous chapter](/getting-started/meta/quote-and-unquote.html), the macro will receive quoted expressions, inject them into the quote, and finally return another quoted expression. Let's start `iex` with the module above: diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index d6592ffe4..f6d607903 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -8,7 +8,7 @@ redirect_from: /getting_started/8.html {% include toc.html %} -In Elixir we group several functions into modules. We've already used many different modules in the previous chapters like [the `String` module](/docs/stable/elixir/String.html): +In Elixir we group several functions into modules. We've already used many different modules in the previous chapters such as [the `String` module](/docs/stable/elixir/String.html): ```iex iex> String.length "hello" diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index e73a9229a..8d639b9f5 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -87,7 +87,7 @@ iex> Blank.blank?("hello") The power of Elixir's extensibility comes when protocols and structs are used together. -In the [previous chapter](/getting-started/structs.html), we have learned that although structs are maps, they do not share protocol implementations with maps. Let's define a `User` struct as in that chapter: +In the [previous chapter](/getting-started/struct.html), we have learned that although structs are maps, they do not share protocol implementations with maps. Let's define a `User` struct as in that chapter: ```iex iex> defmodule User do From b634ed80b7f042f2fe4c1ea42961b07e664e6e80 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 4 Apr 2015 17:49:00 +0700 Subject: [PATCH 0164/1761] correct link to structs.html --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 8d639b9f5..e73a9229a 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -87,7 +87,7 @@ iex> Blank.blank?("hello") The power of Elixir's extensibility comes when protocols and structs are used together. -In the [previous chapter](/getting-started/struct.html), we have learned that although structs are maps, they do not share protocol implementations with maps. Let's define a `User` struct as in that chapter: +In the [previous chapter](/getting-started/structs.html), we have learned that although structs are maps, they do not share protocol implementations with maps. Let's define a `User` struct as in that chapter: ```iex iex> defmodule User do From d0f15af52e1f9511231c5b4ab1fa7d8264f2f282 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 4 Apr 2015 18:49:37 +0700 Subject: [PATCH 0165/1761] add is_nil to list of guard functions + additional message --- getting-started/case-cond-and-if.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index e4ba14259..810152486 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -69,6 +69,7 @@ The Erlang Virtual Machine (VM) only allows a limited set of expressions in guar * `is_integer/1` * `is_list/1` * `is_map/1` + * `is_nil/1` * `is_number/1` * `is_pid/1` * `is_port/1` @@ -92,6 +93,8 @@ The Erlang Virtual Machine (VM) only allows a limited set of expressions in guar * `trunc(number)` * `tuple_size(tuple)` +Additionally, modules may define their own guard functions, starting usually with "is_". + Keep in mind errors in guards do not leak but simply make the guard fail: ```iex From 9bffc70813eff842557db59ee73be171fca65f2c Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sun, 5 Apr 2015 03:46:16 +0700 Subject: [PATCH 0166/1761] re-phrase sentence about user defined guard functions --- getting-started/case-cond-and-if.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 810152486..d9000c222 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -93,7 +93,7 @@ The Erlang Virtual Machine (VM) only allows a limited set of expressions in guar * `trunc(number)` * `tuple_size(tuple)` -Additionally, modules may define their own guard functions, starting usually with "is_". +Additionally, users may define their own guard functions, usually starting with "is_". Keep in mind errors in guards do not leak but simply make the guard fail: From c69deaae1439522add26e1b59aaccb11075ae327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 6 Apr 2015 21:48:54 +0200 Subject: [PATCH 0167/1761] Let windows users now about --werl --- getting-started/introduction.markdown | 4 +++- install.markdown | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 0659131c6..be89a1462 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -19,7 +19,7 @@ Our requirements are: Let's get started! -> If you find any errors in the tutorial or on the website, [please report a bug or send a pull request to our issue tracker](https://github.com/elixir-lang/elixir-lang.github.com). If you suspect it is a language bug, [please let us know in the language issue tracker](https://github.com/elixir-lang/elixir/issues). +> If you find any errors in the tutorial or on the website, [please report a bug or send a pull request to our issue tracker](https://github.com/elixir-lang/elixir-lang.github.com). ## Installation @@ -42,6 +42,8 @@ iex> "hello" <> " world" It seems we are ready to go! We will use the interactive shell quite a lot in the next chapters to get a bit more familiar with the language constructs and basic types, starting in the next chapter. +> Note: if you are on Windows, you can also try `iex --werl` which may provide a better experience depending on which console you are using. + ## Running scripts After getting familiar with the basics of the language you may want to try writing simple programs. This can be accomplished by putting Elixir code into a file and executing it with `elixir`: diff --git a/install.markdown b/install.markdown index 997dd16bf..cc0f6c620 100644 --- a/install.markdown +++ b/install.markdown @@ -57,7 +57,7 @@ Those distributions will likely install Erlang automatically for you too. In cas Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/). -Once the release is unpacked, you are ready to run the `elixir` and `iex` commands from the `bin` directory, but we would like to recommended you to [add Elixir's bin path to your PATH environment variable](#setting-path-environmental-variable) to ease development. +Once the release is unpacked, you are ready to run the `elixir` and `iex` commands from the `bin` directory, but we would like to recommended you to [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. ## Compiling from source (Unix and MinGW) @@ -65,7 +65,7 @@ You can download and compile Elixir in few steps. The first one is to [install E Next you should download the [latest release](https://github.com/elixir-lang/elixir/releases/), unpack it and then run `make` inside the unpacked directory (note: if you are running on Windows, [read this page on setting up your environment for compiling Elixir](https://github.com/elixir-lang/elixir/wiki/Windows)). -After compiling, you are ready to run the elixir and `iex` commands from the bin directory. It is recommended that you [add Elixir's bin path to your PATH environment variable](#setting-path-environmental-variable) to ease development. +After compiling, you are ready to run the elixir and `iex` commands from the bin directory. It is recommended that you [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. In case you are feeling a bit more adventurous, you can also compile from master: @@ -90,7 +90,7 @@ After Erlang is installed, you should be able to open up the command line (or co Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](http://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! -## Setting PATH environmental variable +## Setting PATH environment variable It is highly recommended to add Elixir's bin path to your PATH environment variable to ease development. From 3794c0e05e4dfc3acfa96fed278b65513189427e Mon Sep 17 00:00:00 2001 From: aandrieiev Date: Mon, 6 Apr 2015 22:13:09 +0200 Subject: [PATCH 0168/1761] Remove an odd `the`. --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 6ee8bb1d0..c4a108c81 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -263,7 +263,7 @@ We don't need to worry about this for `handle_call/3` and `handle_cast/2` becaus We have previously learned about links in the [Process chapter](/getting-started/processes.html). Now, with the registry complete, you may be wondering: when should we use monitors and when should we use links? -Links are bi-directional. If you link two process and one of them crashes, the other side will crash too (unless it is trapping exits). A monitor is uni-directional: only the monitoring process will receive notifications about the the monitored one. Simply put, use links when you want linked crashes, and monitors when you just want to be informed of crashes, exits, and so on. +Links are bi-directional. If you link two process and one of them crashes, the other side will crash too (unless it is trapping exits). A monitor is uni-directional: only the monitoring process will receive notifications about the monitored one. Simply put, use links when you want linked crashes, and monitors when you just want to be informed of crashes, exits, and so on. Returning to our `handle_cast/2` implementation, you can see the registry is both linking and monitoring the buckets: From 781b3aecfef2a4981d11e09c06910b8273873787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 7 Apr 2015 23:43:35 +0200 Subject: [PATCH 0169/1761] Add latest elixir and erlang releases --- elixir.csv | 1 + erlang.csv | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index 4d907fafe..fb8ecc3ec 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.0.4,https://github.com/elixir-lang/elixir/releases/download/v1.0.4/Precompiled.zip,release,1 1.0.3,https://github.com/elixir-lang/elixir/releases/download/v1.0.3/Precompiled.zip,release,1 1.0.2,https://github.com/elixir-lang/elixir/releases/download/v1.0.2/Precompiled.zip,release,1 1.0.1,https://github.com/elixir-lang/elixir/releases/download/v1.0.1/Precompiled.zip,release,1 diff --git a/erlang.csv b/erlang.csv index 85556905e..6cba0de48 100644 --- a/erlang.csv +++ b/erlang.csv @@ -1,4 +1,5 @@ version_otp,version_erts,url_win32,url_win64 +17.5,6.4,http://www.erlang.org/download/otp_win32_17.5.exe,http://www.erlang.org/download/otp_win64_17.5.exe +17.4,6.3,http://www.erlang.org/download/otp_win32_17.4.exe,http://www.erlang.org/download/otp_win64_17.4.exe 17.3,6.2,http://www.erlang.org/download/otp_win32_17.3.exe,http://www.erlang.org/download/otp_win64_17.3.exe -17.1,6.1,http://www.erlang.org/download/otp_win32_17.1.exe,http://www.erlang.org/download/otp_win64_17.1.exe 17,6.0,http://www.erlang.org/download/otp_win32_17.0.exe,http://www.erlang.org/download/otp_win64_17.0.exe From 511cd8baec7cd9ee02b628677a2688acadbdcd21 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 8 Apr 2015 21:47:31 +0200 Subject: [PATCH 0170/1761] Fix function call example --- crash-course.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crash-course.markdown b/crash-course.markdown index bc57fdcf4..f12f011d3 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -168,7 +168,7 @@ orddict:new(). to invoke the `new` function from the `orddict` module. In Elixir, use the dot `.` in place of the colon `:` ```elixir -Kernel.self +Orddict.new ``` **Note**. Since Erlang modules are represented by atoms, you may invoke Erlang functions in Elixir as follows: From 2e962565e54e9cfa17211122b7a4798d3ede0635 Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Fri, 10 Apr 2015 11:48:24 -0300 Subject: [PATCH 0171/1761] Fix typos and improve grammar on some getting started guides --- getting-started/try-catch-and-rescue.markdown | 2 +- getting-started/typespecs-and-behaviours.markdown | 6 +++--- getting-started/where-to-go-next.markdown | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index ef6db6eea..dce238562 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -95,7 +95,7 @@ In Elixir, we avoid using `try/rescue` because **we don't use errors for control In Elixir, a value can be thrown and later be caught. `throw` and `catch` are reserved for situations where it is not possible to retrieve a value unless by using `throw` and `catch`. -Those situations are quite uncommon in practice except when interfacing with libraries that does not provide a proper API. For example, let's imagine the `Enum` module did not provide any API for finding a value and that we needed to find the first multiple of 13 in a list of numbers: +Those situations are quite uncommon in practice except when interfacing with libraries that do not provide a proper API. For example, let's imagine the `Enum` module did not provide any API for finding a value and that we needed to find the first multiple of 13 in a list of numbers: ```iex iex> try do diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 211b7d90f..409cd6867 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -90,9 +90,9 @@ Typespecs are not only useful to developers and as additional documentation. The ## Behaviours -Many modules share the same public API. Take a look at [Plug](https://github.com/elixir-lang/plug), which, as it description states, is a **specification** for composable modules in web applications. Each *plug* is a module which **has to** implement at least two public functions: `init/1` and `call/2`. +Many modules share the same public API. Take a look at [Plug](https://github.com/elixir-lang/plug), which, as its description states, is a **specification** for composable modules in web applications. Each *plug* is a module which **has to** implement at least two public functions: `init/1` and `call/2`. -Behaviors provide a way to: +Behaviours provide a way to: * define a set of functions that have to be implemented by a module; * ensure that a module implements all the functions in that set. @@ -101,7 +101,7 @@ If you have to, you can think of behaviours like interfaces in object oriented l ### Defining behaviours -Say we want to implement a bunch of parsers, each parsing structured data: for example, a JSON parser and a YAML parser. Each of these two parsers will *behave* the same way: both will provide a `parse/1` function and a `extensions/0` function. The `parse/1` function will return an Elixir representation of the structured data, while the `extensions/0` function will return a list of file extensions that can be used for each type of data (e.g., `.json` for JSON files). +Say we want to implement a bunch of parsers, each parsing structured data: for example, a JSON parser and a YAML parser. Each of these two parsers will *behave* the same way: both will provide a `parse/1` function and an `extensions/0` function. The `parse/1` function will return an Elixir representation of the structured data, while the `extensions/0` function will return a list of file extensions that can be used for each type of data (e.g., `.json` for JSON files). We can create a `Parser` behaviour: diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index e8b8d51f4..9babe4876 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -28,7 +28,7 @@ Elixir is an extensible and very customizable programming language thanks to its ## Community and other resources -We have a [Learning](/learning.html) section that explores books, screencasts and other resources for learning Elixir and explore the ecossystem. There are also plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. +We have a [Learning](/learning.html) section that explores books, screencasts and other resources for learning Elixir and explore the ecosystem. There are also plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. Remember that in case of any difficulties, you can always visit the **#elixir-lang** channel on **irc.freenode.net** or send a message to the [mailing list](http://groups.google.com/group/elixir-lang-talk). You can be sure that there will be someone willing to help. To keep posted on the latest news and announcements, follow the [blog](/blog/) and follow the language development on the [elixir-core mailing list](http://groups.google.com/group/elixir-lang-core). From 2300402552fa7b9bd3259b68486a24919aa73773 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 10 Apr 2015 22:25:57 +0700 Subject: [PATCH 0172/1761] replace "behavior" with "behaviour" --- ...2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown | 2 +- _posts/2014-09-18-elixir-v1-0-0-released.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown index 82b076aee..b40e3ccc6 100644 --- a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown +++ b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown @@ -166,7 +166,7 @@ The implementation for `wait_for_messages` is now broken into 4 clauses: * `{ :waiting, _child, _module }` - A message received every time a child process is waiting on a module to be compiled. In this scenario, all we do is spawn a new process to compile another file, ensuring compilation is never blocked; -* `{ :EXIT, _child, { reason, where } }` - The same behavior as before, it simply raises an error if any of the child processes fail; +* `{ :EXIT, _child, { reason, where } }` - The same behaviour as before, it simply raises an error if any of the child processes fail; * `after: 10_000` - This clause is going to be invoked whenever the main process does not receive a message for 10 seconds. This means a file depends on a module that does not exist (and therefore waits forever) or there is a cyclic dependency; diff --git a/_posts/2014-09-18-elixir-v1-0-0-released.markdown b/_posts/2014-09-18-elixir-v1-0-0-released.markdown index 29d077670..ef6ba2be2 100644 --- a/_posts/2014-09-18-elixir-v1-0-0-released.markdown +++ b/_posts/2014-09-18-elixir-v1-0-0-released.markdown @@ -43,7 +43,7 @@ Under some unlikely circumstances, we may introduce changes that break existing * Security: a security issue in the implementation may arise whose resolution requires backwards incompatible changes. We reserve the right to address such security issues. - * Bugs: if an application has undesired behaviour, a program that depends on the buggy behavior may break if the bug is fixed. We reserve the right to fix such bugs. + * Bugs: if an application has undesired behaviour, a program that depends on the buggy behaviour may break if the bug is fixed. We reserve the right to fix such bugs. * Compiler front-end: improvements may be done to the compiler, introducing new warnings for ambiguous modes and providing more detailed error messages. Those can lead to compilation errors (when running with `--warning-as-errors`) or tooling failures when asserting on specific error messages (although one should avoid such). We reserve the right to do such improvements. From 1c0870592f750c4d56b1e0038f40e1dbc81bedad Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 11 Apr 2015 14:05:37 +0700 Subject: [PATCH 0173/1761] various corrections in Crash Course --- crash-course.markdown | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index f12f011d3..fdba98633 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -226,6 +226,7 @@ is_atom(''). %=> true ```elixir is_atom :ok #=> true is_atom :'ok' #=> true +is_atom Ok #=> true is_atom :"Multiple words" #=> true is_atom :"" #=> true ``` @@ -242,8 +243,8 @@ That said, Elixir does not import the default `element` and `setelement` functio **Erlang** ```erlang -element(1, {a, b, c}) %=> a -setelement(1, {a, b, c}, d) %=> {d, b, c} +element(1, {a, b, c}). %=> a +setelement(1, {a, b, c}, d). %=> {d, b, c} ``` **Elixir** @@ -294,14 +295,17 @@ Elixir offers a literal syntax for creating a list of two-item tuples where the **Erlang** ```erlang -[{another_key, 20}, {key, 10}] +Proplist = [{another_key, 20}, {key, 10}]. +proplists:get_value(another_key, Proplist). +%=> 20 ``` **Elixir** ```elixir kw = [another_key: 20, key: 10] -kw[:another_key] #=> 20 +kw[:another_key] +#=> 20 ``` ### Maps @@ -311,10 +315,11 @@ Erlang R17 introduced maps, a key-value store, with no ordering. Keys and values **Erlang** ```erlang -Map = #{key => 0} -Updated = Map#{key := 1} -#{key := Value} = Updated -Value =:= 1 +Map = #{key => 0}. +Updated = Map#{key := 1}. +#{key := Value} = Updated. +Value =:= 1. +%=> true ``` **Elixir** @@ -324,6 +329,7 @@ map = %{:key => 0} map = %{map | :key => 1} %{:key => value} = map value === 1 +#=> true ``` If the keys are all atoms, Elixir allows developers to use `key: 0` for defining the map as well as using `.key` for accessing fields: @@ -456,7 +462,7 @@ Pattern matching in Elixir is based on Erlang's implementation and in general is ```erlang loop_through([H|T]) -> - io:format '~p~n', [H], + io:format('~p~n', [H]), loop_through(T); loop_through([]) -> @@ -625,6 +631,7 @@ f.({:a, :b}) #=> "All your {:a, :b} are belong to us" ``` + ### First-class functions Anonymous functions are first-class values, so they can be passed as arguments to other functions and also can serve as a return value. There is a special syntax to allow named functions be treated in the same manner. @@ -654,6 +661,7 @@ Enum.map [1, 2, 3], &Math.square/1 #=> [1, 4, 9] ``` + ### Partials in Elixir Elixir supports partial application of functions which can be used to define anonymous functions in a concise way: @@ -676,7 +684,6 @@ defmodule Math do end Enum.map [1, 2, 3], &Math.square/1 - #=> [1, 4, 9] ``` From 7f689441f7e482d7658b1a41957920c69319d1bb Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 11 Apr 2015 15:23:22 +0700 Subject: [PATCH 0174/1761] link to summary in Special Forms --- getting-started/meta/macros.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index bd1680a57..3693adc1f 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -107,7 +107,7 @@ end Constructs such as `unless/2`, `defmacro/2`, `def/2`, `defprotocol/2`, and many others used throughout this getting started guide are implemented in pure Elixir, often as a macros. This means that the constructs being used to build the language can be used by developers to extend the language to the domains they are working on. -We can define any function and macro we want, including ones that override the built-in definitions provided by Elixir. The only exceptions are Elixir special forms which are not implemented in Elixir and therefore cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](/docs/stable/elixir/Kernel.SpecialForms.html). +We can define any function and macro we want, including ones that override the built-in definitions provided by Elixir. The only exceptions are Elixir special forms which are not implemented in Elixir and therefore cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](/docs/stable/elixir/Kernel.SpecialForms.html#summary). ## Macros hygiene From cab5279258d788d6495a09598c75a376d79d55eb Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 17 Apr 2015 09:23:42 +0700 Subject: [PATCH 0175/1761] update links to docs to link to internal page/section --- _posts/2013-01-27-elixir-v0-8-0-released.markdown | 6 +++--- _posts/2013-04-29-elixir-v0-8-2-released.markdown | 2 +- _posts/2013-05-23-elixir-v0-9-0-released.markdown | 2 +- _posts/2013-07-13-elixir-v0-10-0-released.markdown | 8 ++++---- _posts/2013-08-08-elixir-design-goals.markdown | 4 ++-- _posts/2013-11-05-elixir-v0-11-0-released.markdown | 6 +++--- _posts/2014-04-21-elixir-v0-13-0-released.markdown | 12 ++++++------ _posts/2014-06-17-elixir-v0-14-0-released.markdown | 10 +++++----- _posts/2014-08-07-elixir-v0-15-0-released.markdown | 4 ++-- getting-started/basic-types.markdown | 2 +- .../binaries-strings-and-char-lists.markdown | 2 +- getting-started/case-cond-and-if.markdown | 2 +- getting-started/enumerables-and-streams.markdown | 12 ++++++------ getting-started/io-and-the-file-system.markdown | 10 +++++----- getting-started/maps-and-dicts.markdown | 8 ++++---- .../meta/domain-specific-languages.markdown | 2 +- getting-started/meta/macros.markdown | 4 ++-- getting-started/meta/quote-and-unquote.markdown | 2 +- getting-started/mix-otp/agent.markdown | 12 ++++++------ .../mix-otp/dependencies-and-umbrella-apps.markdown | 6 +++--- .../distributed-tasks-and-configuration.markdown | 10 +++++----- .../mix-otp/docs-tests-and-pipelines.markdown | 2 +- getting-started/mix-otp/genevent.markdown | 2 +- getting-started/mix-otp/genserver.markdown | 4 ++-- getting-started/mix-otp/introduction-to-mix.markdown | 4 ++-- .../mix-otp/supervisor-and-application.markdown | 8 ++++---- getting-started/mix-otp/task-and-gen-tcp.markdown | 6 +++--- getting-started/module-attributes.markdown | 4 ++-- getting-started/modules.markdown | 4 ++-- getting-started/processes.markdown | 4 ++-- getting-started/recursion.markdown | 2 +- getting-started/sigils.markdown | 2 +- getting-started/try-catch-and-rescue.markdown | 2 +- getting-started/typespecs-and-behaviours.markdown | 6 +++--- 34 files changed, 88 insertions(+), 88 deletions(-) diff --git a/_posts/2013-01-27-elixir-v0-8-0-released.markdown b/_posts/2013-01-27-elixir-v0-8-0-released.markdown index 7df2f3911..dbfb0a8ab 100644 --- a/_posts/2013-01-27-elixir-v0-8-0-released.markdown +++ b/_posts/2013-01-27-elixir-v0-8-0-released.markdown @@ -30,7 +30,7 @@ String.capitalize("fiN") #=> "Fin" The example above contains a string with only two codepoints, [the codepoint fi](http://www.fileformat.info/info/unicode/char/FB01/index.htm) and [the codepoint n](http://www.fileformat.info/info/unicode/char/006E/index.htm). Look how Elixir properly capitalizes the string, returning a new string made of three codepoints (all ascii letters). -Learn more about [Unicode support with the String module](/docs/stable/elixir/String.html). +Learn more about [Unicode support with the String module](/docs/stable/elixir/#!String.html). ## AST metadata @@ -70,11 +70,11 @@ When some code call the `unless` macro above, in previous Elixir versions, it wo Elixir v0.8 ensures that the `unless` macro above will expand to the same `if` macro available when quoted, guaranteeing different libraries can integrate easily without imposing hidden requirements. -You can read more about [macros in the getting started guide](/getting-started/case-cond-and-if.html) or [go deep into the quote macro docs](/docs/stable/elixir/Kernel.SpecialForms.html#quote/2). +You can read more about [macros in the getting started guide](/getting-started/case-cond-and-if.html) or [go deep into the quote macro docs](/docs/stable/elixir/#!Kernel.SpecialForms.html#quote/2). ## A new way to manipulate pathnames -Elixir v0.8 contains a bit of house cleaning too. We have created [the Path module](/docs/stable/elixir/Path.html) to accommodate functions used to manipulate filesystem paths and have also added functions like [`System.tmp_dir` and `System.user_home`](/docs/stable/elixir/System.html) which are meant to work accross different operating systems and are very handy when scripting. +Elixir v0.8 contains a bit of house cleaning too. We have created [the Path module](/docs/stable/elixir/#!Path.html) to accommodate functions used to manipulate filesystem paths and have also added functions like [`System.tmp_dir` and `System.user_home`](/docs/stable/elixir/#!System.html) which are meant to work accross different operating systems and are very handy when scripting. ## The new HashDict diff --git a/_posts/2013-04-29-elixir-v0-8-2-released.markdown b/_posts/2013-04-29-elixir-v0-8-2-released.markdown index 1524630ff..bbbf62c9f 100644 --- a/_posts/2013-04-29-elixir-v0-8-2-released.markdown +++ b/_posts/2013-04-29-elixir-v0-8-2-released.markdown @@ -44,6 +44,6 @@ defmodule MathTest do end ``` -You can learn more about [doctests on our documentation page](/docs/stable/ex_unit/ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md). +You can learn more about [doctests on our documentation page](/docs/stable/ex_unit/#!ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md). If you are new to Elixir, [it's easy to get started with](/getting-started/introduction.html)! diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index fbded71e5..47777ea12 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -123,7 +123,7 @@ A special thanks to [Eric Meadows-Jonsson](https://github.com/ericmj) for implem We have also many other smaller improvements: * Our CLI now supports `--hidden` and `--cookie` flags which are useful for distributed modes; -* Our test framework, ExUnit, is now able to capture all the communication that happens with a registed IO device, like `:stdio` and `:stderr`, via [`ExUnit.CaptureIO`](/docs/stable/ex_unit/ExUnit.CaptureIO.html). This is very useful for testing how your software reacts to some inputs and what it prints to the terminal; +* Our test framework, ExUnit, is now able to capture all the communication that happens with a registed IO device, like `:stdio` and `:stderr`, via [`ExUnit.CaptureIO`](/docs/stable/ex_unit/#!ExUnit.CaptureIO.html). This is very useful for testing how your software reacts to some inputs and what it prints to the terminal; * `IEx` now allows files to be imported into the shell with `import_file` and also loads `~/.iex` on startup for custom configuration; * The `String`, `Enum` and `Dict` modules got more convenience functions that goes from checking unicode character validity to taking values out of a dictionary; * And many, many more! diff --git a/_posts/2013-07-13-elixir-v0-10-0-released.markdown b/_posts/2013-07-13-elixir-v0-10-0-released.markdown index 14ee6202d..50d19cc2a 100644 --- a/_posts/2013-07-13-elixir-v0-10-0-released.markdown +++ b/_posts/2013-07-13-elixir-v0-10-0-released.markdown @@ -54,11 +54,11 @@ Stream.repeatedly(fn -> :random.uniform end) |> Enum.take(3) #=> [0.4435846174457203, 0.7230402056221108, 0.94581636451987] ``` -`Stream.repeatedly/1` returns an infinite stream but that's ok we just need its first three elements. You can learn more about [stream and related functions in `Stream` module documentation](/docs/stable/elixir/Stream.html). +`Stream.repeatedly/1` returns an infinite stream but that's ok we just need its first three elements. You can learn more about [stream and related functions in `Stream` module documentation](/docs/stable/elixir/#!Stream.html). ## Sets -This release also adds [the Sets API](/docs/stable/elixir/Set.html) to Elixir and a HashSet implementation. The HashSet implementation follows [the same design goals as the HashDict implementation](/blog/2013/01/27/elixir-v0-8-0-released/) released at the beginning of this year, starting with a compact representation and expanding and contracting as needed. +This release also adds [the Sets API](/docs/stable/elixir/#!Set.html) to Elixir and a HashSet implementation. The HashSet implementation follows [the same design goals as the HashDict implementation](/blog/2013/01/27/elixir-v0-8-0-released/) released at the beginning of this year, starting with a compact representation and expanding and contracting as needed. This feature was a contribution from [Joseph Wilk](https://github.com/josephwilk) and he talks about its implementation and provides some benchmarks [on his blog](http://blog.josephwilk.net/elixir/sets-in-elixir.html). @@ -66,7 +66,7 @@ This feature was a contribution from [Joseph Wilk](https://github.com/josephwilk Another addition to this release is pretty printing. The pretty printing started as an implementation of the [Wadler paper](http://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf) by [Jonns Mostovoys](https://github.com/manpages) which was then improved by [Gustavo Brunoro](https://github.com/brunoro) under his Google Summer of Code project as described in [Lindig's _Strictly Prettier_ paper](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.34.2200). -As soon as you upgrade to Elixir v0.10.0 and start IEx, you will get pretty printing for all data structures provided by Elixir. We have also added documentation to the `Inspect` module about [adding pretty printing to your own structures](/docs/stable/elixir/Inspect.html) as well as [using the document algebra for any other kind of formatting](/docs/stable/elixir/Inspect.Algebra.html). +As soon as you upgrade to Elixir v0.10.0 and start IEx, you will get pretty printing for all data structures provided by Elixir. We have also added documentation to the `Inspect` module about [adding pretty printing to your own structures](/docs/stable/elixir/#!Inspect.html) as well as [using the document algebra for any other kind of formatting](/docs/stable/elixir/#!Inspect.Algebra.html). ## Other improvements @@ -78,7 +78,7 @@ Other notable improvements are: * We are also working hard on Windows support, improving its command-line tools and working towards a green test suite, thanks to [Tom Jansens](https://github.com/tojans); -* Meta-programming in Elixir was also improved by the addition of the `binding/0` and `binding/1` macros plus the additions of `Macro.expand_once/2` and `Macro.expand_all/2` to the [`Macro` module](/docs/stable/elixir/Macro.html); +* Meta-programming in Elixir was also improved by the addition of the `binding/0` and `binding/1` macros plus the additions of `Macro.expand_once/2` and `Macro.expand_all/2` to the [`Macro` module](/docs/stable/elixir/#!Macro.html); There are also improvements to typespecs, error messages, many bug fixes and some backwards incompatible changes. We have posted a detailed [upgrade instructions on the mailing list](https://groups.google.com/forum/?fromgroups#!topic/elixir-lang-talk/ksrefrgK1eY). For a general overview, [check out the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.10.0/CHANGELOG.md). diff --git a/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown index 000e1fad7..3d3dde987 100644 --- a/_posts/2013-08-08-elixir-design-goals.markdown +++ b/_posts/2013-08-08-elixir-design-goals.markdown @@ -202,9 +202,9 @@ Enum.map set, fn(x) -> x * 2 end #=> [2,4,6] ``` -Not only that, any developer can **extend** the `Enum` module to work with any data type as long as the data type implements [the `Enumerable` protocol](/docs/stable/elixir/Enumerable.html) (protocols in Elixir are based on Clojure's protocol). This is extremely convenient because the developer needs to know only the `Enum` API for enumeration, instead of memorizing specific APIs for sets, lists, dicts, etc. +Not only that, any developer can **extend** the `Enum` module to work with any data type as long as the data type implements [the `Enumerable` protocol](/docs/stable/elixir/#!Enumerable.html) (protocols in Elixir are based on Clojure's protocol). This is extremely convenient because the developer needs to know only the `Enum` API for enumeration, instead of memorizing specific APIs for sets, lists, dicts, etc. -There are many other protocols exposed by the language, like [the `Inspect` protocol](/docs/stable/elixir/Inspect.html) for pretty printing data structures and [the `Access` protocol](/docs/stable/elixir/Access.html) for accessing key-value data by key. By being extensible, Elixir ensures developers can work **with** the language, instead of **against** the language. +There are many other protocols exposed by the language, like [the `Inspect` protocol](/docs/stable/elixir/#!Inspect.html) for pretty printing data structures and [the `Access` protocol](/docs/stable/elixir/#!Access.html) for accessing key-value data by key. By being extensible, Elixir ensures developers can work **with** the language, instead of **against** the language. ## Summing up diff --git a/_posts/2013-11-05-elixir-v0-11-0-released.markdown b/_posts/2013-11-05-elixir-v0-11-0-released.markdown index d139d9a46..3a320c171 100644 --- a/_posts/2013-11-05-elixir-v0-11-0-released.markdown +++ b/_posts/2013-11-05-elixir-v0-11-0-released.markdown @@ -22,7 +22,7 @@ In this new release, IEx also supports a very simple debugging mechanism called ![IEx pry example](/images/contents/iex-pry.png) -In Elixir, your code runs in many processes that talk to each other and the Elixir shell is no different. `IEx.pry` allows another process to take over the shell, allowing the developer to inspect the binding and halt the execution of the process being "pried" (i.e. the one that invoked `IEx.pry`). We called this feature `pry` as a gentle reminder that you can only inspect existing information, you cannot change the binding over a pried process. For more information, check the docs for [`IEx.pry/1`](/docs/stable/iex/IEx.html#pry/1). +In Elixir, your code runs in many processes that talk to each other and the Elixir shell is no different. `IEx.pry` allows another process to take over the shell, allowing the developer to inspect the binding and halt the execution of the process being "pried" (i.e. the one that invoked `IEx.pry`). We called this feature `pry` as a gentle reminder that you can only inspect existing information, you cannot change the binding over a pried process. For more information, check the docs for [`IEx.pry/1`](/docs/stable/iex/#!IEx.html#pry/1). ## ExUnit @@ -59,9 +59,9 @@ fun.(1..3) #=> true ``` -You can learn more about the [new capture operator in our docs](/docs/stable/elixir/Kernel.SpecialForms.html#&/1). +You can learn more about the [new capture operator in our docs](/docs/stable/elixir/#!Kernel.SpecialForms.html#&/1). -We have also pushed improvements to [the String module](/docs/stable/elixir/String.html), including new APIs. In particular, in order to know that `String.length("josé")` has length 4 (even though it takes 5 bytes to be represented in UTF-8), we need to use some algorithms defined by the Unicode Standard. These have been implemented as specified in the [extended grapheme cluster algorithm, defined in the version 6.3.0 of the Unicode Standard](http://www.unicode.org/reports/tr29/). +We have also pushed improvements to [the String module](/docs/stable/elixir/#!String.html), including new APIs. In particular, in order to know that `String.length("josé")` has length 4 (even though it takes 5 bytes to be represented in UTF-8), we need to use some algorithms defined by the Unicode Standard. These have been implemented as specified in the [extended grapheme cluster algorithm, defined in the version 6.3.0 of the Unicode Standard](http://www.unicode.org/reports/tr29/). In the optimization front, we have pushed the first iteration of a [feature called Protocol consolidation](https://groups.google.com/forum/#!topic/elixir-lang-core/RoXAUtoyjk4), which speeds up the polymorphic dispatch done by protocols, sometimes reducing the dispatching time to 10% of the original time. We will continue working in upcoming releases to integrate protocol consolidation as a regular part of the developer workflow. diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index e7a03841e..2ea150586 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -30,11 +30,11 @@ In a nutshell, here is what new: * The [Getting Started guide](/getting-started/introduction.html) was rewritten from scratch. The previous guide was comprised of 7 chapters and was about to become 2 years old. The new guide features 20 chapters, it explores the new maps and structs (which are part of this release), and it goes deeper into topics like IO and File handling. It also includes an extra guide, still in development, about [Meta-Programming in Elixir](/getting-started/meta/quote-and-unquote.html); -* Elixir v0.13 provides a new comprehension syntax that not only works with lists, but with any [`Enumerable`](/docs/stable/elixir/Enumerable.html). The output of a comprehension is also extensible via the [`Collectable`](/docs/stable/elixir/Collectable.html) protocol; +* Elixir v0.13 provides a new comprehension syntax that not only works with lists, but with any [`Enumerable`](/docs/stable/elixir/#!Enumerable.html). The output of a comprehension is also extensible via the [`Collectable`](/docs/stable/elixir/#!Collectable.html) protocol; * Mix, Elixir's build tool, has been improved in order to provide better workflows when compiling projects and working with dependencies; -* There are many other changes, like the addition of [StringIO](/docs/stable/elixir/StringIO.html), support for [tags and filters in ExUnit](/docs/stable/ex_unit/ExUnit.Case.html) and more. Please check the [CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.13.0/CHANGELOG.md) for the complete list. +* There are many other changes, like the addition of [StringIO](/docs/stable/elixir/#!StringIO.html), support for [tags and filters in ExUnit](/docs/stable/ex_unit/#!ExUnit.Case.html) and more. Please check the [CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.13.0/CHANGELOG.md) for the complete list. Even with all those improvements, Elixir v0.13.0 is backwards compatible with Elixir v0.12.5 and upgrading should be a clean process. @@ -68,7 +68,7 @@ iex> %{"other" => value} = map A map pattern will match any map that has all the keys specified in the pattern. The values for the matching keys must also match. For example, `%{"hello" => world}` will match any map that has the key `"hello"` and assign the value to `world`, while `%{"hello" => "world"}` will match any map that has the key `"hello"` with value equals to `"world"`. An empty map pattern (`%{}`) will match all maps. -Developers can use the functions in the [`Map` module](/docs/stable/elixir/Map.html) to work with maps. For more information on maps and how they compare to other associative data structures in the language, please check the [Maps chapter in our new Getting Started guide](/getting-started/maps-and-dicts.html). Elixir Sips has also released two episodes that cover maps ([part 1](http://elixirsips.com/episodes/054_maps_part_1.html) and [part 2](http://elixirsips.com/episodes/055_maps_part_2.html)). +Developers can use the functions in the [`Map` module](/docs/stable/elixir/#!Map.html) to work with maps. For more information on maps and how they compare to other associative data structures in the language, please check the [Maps chapter in our new Getting Started guide](/getting-started/maps-and-dicts.html). Elixir Sips has also released two episodes that cover maps ([part 1](http://elixirsips.com/episodes/054_maps_part_1.html) and [part 2](http://elixirsips.com/episodes/055_maps_part_2.html)). Maps also provide special syntax for creating, accessing and updating maps with atom keys: @@ -185,7 +185,7 @@ For more information on structs, check out the [Structs chapter in the getting s With the introduction of maps and structs, some deprecations will arrive on upcoming releases. First of all, the `ListDict` data structure is being deprecated and phased out. Records are also being deprecated from the language, although it is going to be a longer process, as many projects and Elixir itself still use records in diverse occasions. -Note though only Elixir records are being deprecated. Erlang records, which are basically syntax sugar around tuples, will remain in the language for the rare cases Elixir developers need to interact with Erlang libraries that provide records. In particular, the [Record](/docs/stable/elixir/Record.html) has been updated to provide the new Record API (while keeping the old one for backwards compatibility). +Note though only Elixir records are being deprecated. Erlang records, which are basically syntax sugar around tuples, will remain in the language for the rare cases Elixir developers need to interact with Erlang libraries that provide records. In particular, the [Record](/docs/stable/elixir/#!Record.html) has been updated to provide the new Record API (while keeping the old one for backwards compatibility). Finally, structs are still in active development and new features, like `@derive`, should land in upcoming Elixir releases. For those interested, the [original maps and structs proposal is still availble](https://gist.github.com/josevalim/b30c881df36801611d13). @@ -222,7 +222,7 @@ iex> for <>, c != ?\s, into: "", do: <> "helloworld" ``` -Sets, maps and other dictionaries can also be given with the `:into` option. In general, the `:into` accepts any structure as long as it implements the [`Collectable` protocol](/docs/stable/elixir/Collectable.html). +Sets, maps and other dictionaries can also be given with the `:into` option. In general, the `:into` accepts any structure as long as it implements the [`Collectable` protocol](/docs/stable/elixir/#!Collectable.html). For example, the `IO` module provides streams, that are both `Enumerable` and `Collectable`. You can implement an echo terminal that returns whatever is typed into the shell, but in upcase, using comprehensions: @@ -275,7 +275,7 @@ That said, in the next months we plan to: * Integrate applications configuration (provided by OTP) right into Mix; * Provide an Elixir logger that knows how to print and format Elixir exceptions and stacktraces; -* Properly expose the functionality provided by Applications, Supervisors, GenServers and GenEvents and study how they can integrate with Elixir. For example, how to consume events from GenEvent as a [stream of data](/docs/stable/elixir/Stream.html)? +* Properly expose the functionality provided by Applications, Supervisors, GenServers and GenEvents and study how they can integrate with Elixir. For example, how to consume events from GenEvent as a [stream of data](/docs/stable/elixir/#!Stream.html)? * Study how patterns like tasks and agents can be integrated into the language, often picking up the lessons learned by libraries like [e2](http://e2project.org/erlang.html) and [functionality exposed by OTP itself](http://erlang.org/doc/man/rpc.html); * Rewrite the Mix and ExUnit guides to focus on applications and OTP as a whole, rebranding it to "Building Apps with Mix and OTP"; diff --git a/_posts/2014-06-17-elixir-v0-14-0-released.markdown b/_posts/2014-06-17-elixir-v0-14-0-released.markdown index 1c3d56fb2..fed504613 100644 --- a/_posts/2014-06-17-elixir-v0-14-0-released.markdown +++ b/_posts/2014-06-17-elixir-v0-14-0-released.markdown @@ -40,7 +40,7 @@ Structs allow us to provide default values for a map fields. Structs also valida #=> ** (CompileError) iex:2: unknown key :unknown for struct User ``` -We say structs are *raw* because they do not implement any of the protocols that are implemented for maps by default. For instance, we can call `Enum.each/2` for a map, which uses the [`Enumerable`](/docs/stable/elixir/Enumerable.html) protocol: +We say structs are *raw* because they do not implement any of the protocols that are implemented for maps by default. For instance, we can call `Enum.each/2` for a map, which uses the [`Enumerable`](/docs/stable/elixir/#!Enumerable.html) protocol: ```elixir Enum.each %{foo: :bar}, fn {k, v} -> @@ -134,15 +134,15 @@ update_in dungeon.rooms[room_id].users[user_id].device_codes, &Set.delete(&1, co put_in dungeon, [:rooms, room_id, :users, user_id, :username], "new username" ``` -You can read more information about nested access in [the Access protocol documentation](/docs/stable/elixir/Access.html) and in the docs for [`get_in/2`](/docs/stable/elixir/Kernel.html#get_in/2) and friends. +You can read more information about nested access in [the Access protocol documentation](/docs/stable/elixir/#!Access.html) and in the docs for [`get_in/2`](/docs/stable/elixir/#!Kernel.html#get_in/2) and friends. ## Mix and OTP OTP is a set of libraries that ships with Erlang. Erlang developers use OTP to build robust, fault-tolerant applications. -In v0.14.0, Elixir closely integrates with OTP by providing modules for building [servers](/docs/stable/elixir/GenServer.html), [event managers and event handlers](/docs/stable/elixir/GenEvent.html), [supervisors](/docs/stable/elixir/Supervisor.html) and [applications](/docs/stable/elixir/Application.html). +In v0.14.0, Elixir closely integrates with OTP by providing modules for building [servers](/docs/stable/elixir/#!GenServer.html), [event managers and event handlers](/docs/stable/elixir/#!GenEvent.html), [supervisors](/docs/stable/elixir/#!Supervisor.html) and [applications](/docs/stable/elixir/#!Application.html). -We have also introduced the concepts of [agents](/docs/stable/elixir/Agent.html) and the idea of [tasks](/docs/stable/elixir/Task.html), which can be supervised and distributed. Application configuration has been made first class in Mix, allowing developers to configure their dependencies, sometimes even using different configurations per environment (dev, test or prod by default). +We have also introduced the concepts of [agents](/docs/stable/elixir/#!Agent.html) and the idea of [tasks](/docs/stable/elixir/#!Task.html), which can be supervised and distributed. Application configuration has been made first class in Mix, allowing developers to configure their dependencies, sometimes even using different configurations per environment (dev, test or prod by default). This functionality is at the core of building applications in Erlang and Elixir. For this reason we have published a new guide called [Mix and OTP](/getting-started/mix-otp/introduction-to-mix.html) where we build a distributed key-value store to help explore all concepts mentioned above. The guide is quite fresh, so please do submit pull requests for typos and mistakes. Feedback is also welcome! @@ -154,7 +154,7 @@ With v0.14.0 we have reached many of the milestones [we have set in the previous * Provide an Elixir logger that knows how to print and format Elixir exceptions and stacktraces. Work has already started on this front as Elixir already prints errors coming from the application startup nicely; -* Continue the work of cleaning up the [Kernel module](/docs/stable/elixir/Kernel.html). In v0.14.0, we added alternatives for conversion functions, like `integer_to_binary/1` to `Integer.to_string/1`, now they must be properly deprecated and removed; +* Continue the work of cleaning up the [Kernel module](/docs/stable/elixir/#!Kernel.html). In v0.14.0, we added alternatives for conversion functions, like `integer_to_binary/1` to `Integer.to_string/1`, now they must be properly deprecated and removed; * Support mix aliases, allowing developers to easily define Mix shortcuts for their favorite tasks; diff --git a/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown index e99195121..db445b552 100644 --- a/_posts/2014-08-07-elixir-v0-15-0-released.markdown +++ b/_posts/2014-08-07-elixir-v0-15-0-released.markdown @@ -16,7 +16,7 @@ If you are interested in the specific details for this release, [please check ou ## Logger -Elixir now ships with a new application called logger. This application provides [the Logger module](/docs/stable/logger/Logger.html), which is the main API developers will use for logging: +Elixir now ships with a new application called logger. This application provides [the Logger module](/docs/stable/logger/#!Logger.html), which is the main API developers will use for logging: ```elixir require Logger @@ -70,7 +70,7 @@ Function: #Function<20.90072148/0 in :erl_eval.expr/5> As soon as we started working on Logger, we realized we could go further than simply translating Erlang messages and provide a fully featured logger library. At this moment, Logger also supports: * 4 log levels: debug, info, warn and error - * Custom formatting: you can specify a format string that tells exactly how messages should be logged. The default string is: "$time $metadata[$level] $message\n" but [many attributes are supported](/docs/stable/logger/Logger.Formatter.html) + * Custom formatting: you can specify a format string that tells exactly how messages should be logged. The default string is: "$time $metadata[$level] $message\n" but [many attributes are supported](/docs/stable/logger/#!Logger.Formatter.html) * Custom translators: so you can translate log messages coming from any Erlang application into Elixir syntax * Metadata: metadata allows developers to store information in the current process that will be available to all logged messages. For example, a web application can generate a `request_id`, store it as metadata, and all messages logged during that request will be properly identified with `request_id=...` in the log diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 66fd15118..d7e892f10 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -186,7 +186,7 @@ iex> String.length("hellö") 5 ``` -The [String module](/docs/stable/elixir/String.html) contains a bunch of functions that operate on strings as defined in the Unicode standard: +The [String module](/docs/stable/elixir/#!String.html) contains a bunch of functions that operate on strings as defined in the Unicode standard: ```iex iex> String.upcase("hellö") diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 930b86901..e73c72456 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -49,7 +49,7 @@ iex> ?ł 322 ``` -You can also use the functions in [the `String` module](/docs/stable/elixir/String.html) to split a string in its code points: +You can also use the functions in [the `String` module](/docs/stable/elixir/#!String.html) to split a string in its code points: ```iex iex> String.codepoints("hełło") diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index d9000c222..33d1960aa 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -202,7 +202,7 @@ iex> if nil do "This will" ``` -> Note: An interesting note regarding `if/2` and `unless/2` is that they are implemented as macros in the language; they aren't special language constructs as they would be in many languages. You can check the documentation and the source of `if/2` in [the `Kernel` module docs](/docs/stable/elixir/Kernel.html). The `Kernel` module is also where operators like `+/2` and functions like `is_function/2` are defined, all automatically imported and available in your code by default. +> Note: An interesting note regarding `if/2` and `unless/2` is that they are implemented as macros in the language; they aren't special language constructs as they would be in many languages. You can check the documentation and the source of `if/2` in [the `Kernel` module docs](/docs/stable/elixir/#!Kernel.html). The `Kernel` module is also where operators like `+/2` and functions like `is_function/2` are defined, all automatically imported and available in your code by default. ## `do/end` blocks diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 969bbf5f7..c6603e20d 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -10,7 +10,7 @@ redirect_from: /getting_started/10.html ## Enumerables -Elixir provides the concept of enumerables and [the `Enum` module](/docs/stable/elixir/Enum.html) to work with them. We have already learned two enumerables: lists and maps. +Elixir provides the concept of enumerables and [the `Enum` module](/docs/stable/elixir/#!Enum.html) to work with them. We have already learned two enumerables: lists and maps. ```iex iex> Enum.map([1, 2, 3], fn x -> x * 2 end) @@ -30,9 +30,9 @@ iex> Enum.reduce(1..3, 0, &+/2) 6 ``` -Since the Enum module was designed to work across different data types, its API is limited to functions that are useful across many data types. For specific operations, you may need to reach to modules specific to the data types. For example, if you want to insert an element at a given position in a list, you should use the `List.insert_at/3` function from [the `List` module](/docs/stable/elixir/List.html), as it would make little sense to insert a value into, for example, a range. +Since the Enum module was designed to work across different data types, its API is limited to functions that are useful across many data types. For specific operations, you may need to reach to modules specific to the data types. For example, if you want to insert an element at a given position in a list, you should use the `List.insert_at/3` function from [the `List` module](/docs/stable/elixir/#!List.html), as it would make little sense to insert a value into, for example, a range. -We say the functions in the `Enum` module are polymorphic because they can work with diverse data types. In particular, the functions in the `Enum` module can work with any data type that implements [the `Enumerable` protocol](/docs/stable/elixir/Enumerable.html). We are going to discuss Protocols in a later chapter, for now we are going to move on to a specific kind of enumerable called streams. +We say the functions in the `Enum` module are polymorphic because they can work with diverse data types. In particular, the functions in the `Enum` module can work with any data type that implements [the `Enumerable` protocol](/docs/stable/elixir/#!Enumerable.html). We are going to discuss Protocols in a later chapter, for now we are going to move on to a specific kind of enumerable called streams. ## Eager vs Lazy @@ -63,11 +63,11 @@ iex> Enum.sum(Enum.filter(Enum.map(1..100_000, &(&1 * 3)), odd?)) 7500000000 ``` -Find more about the pipe operator [by reading its documentation](/docs/stable/elixir/Kernel.html#|>/2). +Find more about the pipe operator [by reading its documentation](/docs/stable/elixir/#!Kernel.html#|>/2). ## Streams -As an alternative to `Enum`, Elixir provides [the `Stream` module](/docs/stable/elixir/Stream.html) which supports lazy operations: +As an alternative to `Enum`, Elixir provides [the `Stream` module](/docs/stable/elixir/#!Stream.html) which supports lazy operations: ```iex iex> 1..100_000 |> Stream.map(&(&1 * 3)) |> Stream.filter(odd?) |> Enum.sum @@ -119,6 +119,6 @@ iex> Enum.take(stream, 10) The example above will fetch the first 10 lines of the file you have selected. This means streams can be very useful for handling large files or even slow resources like network resources. -The amount of functions and functionality in [`Enum`](/docs/stable/elixir/Enum.html) and [`Stream`](/docs/stable/elixir/Stream.html) modules can be daunting at first but you will get familiar with them case by case. In particular, focus on the `Enum` module first and only move to `Stream` for the particular scenarios where laziness is required to either deal with slow resources or large, possibly infinite, collections. +The amount of functions and functionality in [`Enum`](/docs/stable/elixir/#!Enum.html) and [`Stream`](/docs/stable/elixir/#!Stream.html) modules can be daunting at first but you will get familiar with them case by case. In particular, focus on the `Enum` module first and only move to `Stream` for the particular scenarios where laziness is required to either deal with slow resources or large, possibly infinite, collections. Next we'll look at a feature central to Elixir, Processes, which allows us to write concurrent, parallel and distributed programs in an easy and understandable way. diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index c890aa59d..334278fe1 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -8,7 +8,7 @@ redirect_from: /getting_started/12.html {% include toc.html %} -This chapter is a quick introduction to input/output mechanisms and file-system-related tasks, as well as to related modules like [`IO`](/docs/stable/elixir/IO.html), [`File`](/docs/stable/elixir/File.html) and [`Path`](/docs/stable/elixir/Path.html). +This chapter is a quick introduction to input/output mechanisms and file-system-related tasks, as well as to related modules like [`IO`](/docs/stable/elixir/#!IO.html), [`File`](/docs/stable/elixir/#!File.html) and [`Path`](/docs/stable/elixir/#!Path.html). We had originally sketched this chapter to come much earlier in the getting started guide. However, we noticed the IO system provides a great opportunity to shed some light on some philosophies and curiosities of Elixir and the VM. @@ -35,7 +35,7 @@ hello world ## The `File` module -The [`File`](/docs/stable/elixir/File.html) module contains functions that allow us to open files as IO devices. By default, files are opened in binary mode, which requires developers to use the specific `IO.binread/2` and `IO.binwrite/2` functions from the `IO` module: +The [`File`](/docs/stable/elixir/#!File.html) module contains functions that allow us to open files as IO devices. By default, files are opened in binary mode, which requires developers to use the specific `IO.binread/2` and `IO.binwrite/2` functions from the `IO` module: ```iex iex> {:ok, file} = File.open "hello", [:write] @@ -86,7 +86,7 @@ If you don't want to handle a possible error (i.e., you want it to bubble up), p ## The `Path` module -The majority of the functions in the `File` module expect paths as arguments. Most commonly, those paths will be regular binaries. The [`Path`](/docs/stable/elixir/Path.html) module provides facilities for working with such paths: +The majority of the functions in the `File` module expect paths as arguments. Most commonly, those paths will be regular binaries. The [`Path`](/docs/stable/elixir/#!Path.html) module provides facilities for working with such paths: ```iex iex> Path.join("foo", "bar") @@ -122,7 +122,7 @@ iex> IO.write(pid, "hello") After `IO.write/2`, we can see the request sent by the `IO` module (a four-elements tuple) printed out. Soon after that, we see that it fails since the `IO` module expected some kind of result that we did not supply. -The [`StringIO`](/docs/stable/elixir/StringIO.html) module provides an implementation of the `IO` device messages on top of strings: +The [`StringIO`](/docs/stable/elixir/#!StringIO.html) module provides an implementation of the `IO` device messages on top of strings: ```iex iex> {:ok, pid} = StringIO.open("hello") @@ -167,4 +167,4 @@ On the other hand, `:stdio` and files opened with `:utf8` encoding work with the Although this is a subtle difference, you only need to worry about those details if you intend to pass lists to those functions. Binaries are already represented by the underlying bytes and as such their representation is always raw. -This finishes our tour of IO devices and IO related functionality. We have learned about four Elixir modules - [`IO`](/docs/stable/elixir/IO.html), [`File`](/docs/stable/elixir/File.html), [`Path`](/docs/stable/elixir/Path.html) and [`StringIO`](/docs/stable/elixir/StringIO.html) - as well as how the VM uses processes for the underlying IO mechanisms and how to use `chardata` and `iodata` for IO operations. +This finishes our tour of IO devices and IO related functionality. We have learned about four Elixir modules - [`IO`](/docs/stable/elixir/#!IO.html), [`File`](/docs/stable/elixir/#!File.html), [`Path`](/docs/stable/elixir/#!Path.html) and [`StringIO`](/docs/stable/elixir/#!StringIO.html) - as well as how the VM uses processes for the underlying IO mechanisms and how to use `chardata` and `iodata` for IO operations. diff --git a/getting-started/maps-and-dicts.markdown b/getting-started/maps-and-dicts.markdown index 822ac69b9..206b1e678 100644 --- a/getting-started/maps-and-dicts.markdown +++ b/getting-started/maps-and-dicts.markdown @@ -76,7 +76,7 @@ iex> if(false, [do: :this, else: :that]) In general, when the keyword list is the last argument of a function, the square brackets are optional. -In order to manipulate keyword lists, Elixir provides [the `Keyword` module](/docs/stable/elixir/Keyword.html). Remember though keyword lists are simply lists, and as such they provide the same linear performance characteristics as lists. The longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly as options. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. +In order to manipulate keyword lists, Elixir provides [the `Keyword` module](/docs/stable/elixir/#!Keyword.html). Remember though keyword lists are simply lists, and as such they provide the same linear performance characteristics as lists. The longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly as options. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. Although we can pattern match on keyword lists, it is rarely done in practice since pattern matching on lists require the number of items and their order to match: @@ -140,7 +140,7 @@ iex> %{:c => c} = %{:a => 1, 2 => :b} As shown above, a map matches as long as the given keys exist in the given map. Therefore, an empty map matches all maps. -[The `Map` module](/docs/stable/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to manipulate maps: +[The `Map` module](/docs/stable/elixir/#!Map.html) provides a very similar API to the `Keyword` module with convenience functions to manipulate maps: ```iex iex> Map.get(%{:a => 1, 2 => :b}, :a) @@ -170,13 +170,13 @@ Both access and update syntaxes above require the given keys to exist. For examp Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post](http://blog.plataformatec.com.br/2014/09/writing-assertive-code-with-elixir/) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. -> Note: Maps were recently introduced into the Erlang VM with [EEP 43](http://www.erlang.org/eeps/eep-0043.html "Erlang Enhancement Proposal #43: Maps"). Erlang 17 provides a partial implementation of the EEP, where only "small maps" are supported. This means maps have good performance characteristics only when storing at maximum a couple of dozens keys. To fill in this gap, Elixir also provides [the `HashDict` module](/docs/stable/elixir/HashDict.html) which uses a hashing algorithm to provide a dictionary that supports hundreds of thousands keys with good performance. +> Note: Maps were recently introduced into the Erlang VM with [EEP 43](http://www.erlang.org/eeps/eep-0043.html "Erlang Enhancement Proposal #43: Maps"). Erlang 17 provides a partial implementation of the EEP, where only "small maps" are supported. This means maps have good performance characteristics only when storing at maximum a couple of dozens keys. To fill in this gap, Elixir also provides [the `HashDict` module](/docs/stable/elixir/#!HashDict.html) which uses a hashing algorithm to provide a dictionary that supports hundreds of thousands keys with good performance. ## Dicts In Elixir, both keyword lists and maps are called dictionaries. In other words, a dictionary is like an interface (we call them behaviours in Elixir) and both keyword lists and maps modules implement this interface. -This interface is defined in the [the `Dict` module](/docs/stable/elixir/Dict.html) module which also provides an API that delegates to the underlying implementations: +This interface is defined in the [the `Dict` module](/docs/stable/elixir/#!Dict.html) module which also provides an API that delegates to the underlying implementations: ```iex iex> keyword = [] diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index 61c2420e0..ce1c2905a 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -162,4 +162,4 @@ Running test hello Although we have overlooked some details, this is the main idea behind creating domain specific modules in Elixir. Macros enable us to return quoted expressions that are executed in the caller, which we can then use to transform code and store relevant information in the target module via module attributes. Finally, callbacks such as `@before_compile` allow us to inject code into the module when its definition is complete. -Besides `@before_compile`, there are other useful module attributes like `@on_definition` and `@after_compile`, which you can read more about in [the docs for the `Module` module](/docs/stable/elixir/Module.html). You can also find useful information about macros and the compilation environment in the documentation for the [`Macro` module](/docs/stable/elixir/Macro.html) and [`Macro.Env`](/docs/stable/elixir/Macro.Env.html). +Besides `@before_compile`, there are other useful module attributes like `@on_definition` and `@after_compile`, which you can read more about in [the docs for the `Module` module](/docs/stable/elixir/#!Module.html). You can also find useful information about macros and the compilation environment in the documentation for the [`Macro` module](/docs/stable/elixir/#!Macro.html) and [`Macro.Env`](/docs/stable/elixir/#!Macro.Env.html). diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 3693adc1f..ad2fcd825 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -107,7 +107,7 @@ end Constructs such as `unless/2`, `defmacro/2`, `def/2`, `defprotocol/2`, and many others used throughout this getting started guide are implemented in pure Elixir, often as a macros. This means that the constructs being used to build the language can be used by developers to extend the language to the domains they are working on. -We can define any function and macro we want, including ones that override the built-in definitions provided by Elixir. The only exceptions are Elixir special forms which are not implemented in Elixir and therefore cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](/docs/stable/elixir/Kernel.SpecialForms.html#summary). +We can define any function and macro we want, including ones that override the built-in definitions provided by Elixir. The only exceptions are Elixir special forms which are not implemented in Elixir and therefore cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](/docs/stable/elixir/#!Kernel.SpecialForms.html#summary). ## Macros hygiene @@ -219,7 +219,7 @@ iex> __ENV__.requires [IEx.Helpers, Integer, Kernel, Kernel.Typespec] ``` -Many of the functions in the `Macro` module expect an environment. You can read more about these functions in [the docs for the `Macro` module](/docs/stable/elixir/Macro.html) and learn more about the compilation environment in the [docs for `Macro.Env`](/docs/stable/elixir/Macro.Env.html). +Many of the functions in the `Macro` module expect an environment. You can read more about these functions in [the docs for the `Macro` module](/docs/stable/elixir/#!Macro.html) and learn more about the compilation environment in the [docs for `Macro.Env`](/docs/stable/elixir/#!Macro.Env.html). ## Private macros diff --git a/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown index a180eb107..6dd12896b 100644 --- a/getting-started/meta/quote-and-unquote.markdown +++ b/getting-started/meta/quote-and-unquote.markdown @@ -151,6 +151,6 @@ Macros receive quoted expressions and must return quoted expressions. However, s In other words, it is important to make a distinction between a regular Elixir value (like a list, a map, a process, a reference, etc) and a quoted expression. Some values, such as integers, atoms and strings, have a quoted expression equal to the value itself. Other values, like maps, need to be explicitly converted. Finally, values like functions and references cannot be converted to a quoted expression at all. -You can read more about `quote` and `unquote` in the [`Kernel.SpecialForms` module](/docs/stable/elixir/Kernel.SpecialForms.html). Documentation for `Macro.escape/1` and other functions related to quoted expressions can be found in the [`Macro` module](/docs/stable/elixir/Macro.html). +You can read more about `quote` and `unquote` in the [`Kernel.SpecialForms` module](/docs/stable/elixir/#!Kernel.SpecialForms.html). Documentation for `Macro.escape/1` and other functions related to quoted expressions can be found in the [`Macro` module](/docs/stable/elixir/#!Macro.html). In this introduction we have laid the groundwork to finally write our first macro, so let's move to the next chapter. diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index f243b3dc9..7dbc27d5c 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -21,16 +21,16 @@ Elixir is an immutable language where nothing is shared by default. If we want t We have talked about processes, while ETS is something new that we will explore later in this guide. When it comes to processes though, we rarely hand-roll our own process, instead we use the abstractions available in Elixir and OTP: -* [Agent](/docs/stable/elixir/Agent.html) - Simple wrappers around state. -* [GenServer](/docs/stable/elixir/GenServer.html) - "Generic servers" (processes) that encapsulate state, provide sync and async calls, support code reloading, and more. -* [GenEvent](/docs/stable/elixir/GenEvent.html) - "Generic event" managers that allow publishing events to multiple handlers. -* [Task](/docs/stable/elixir/Task.html) - Asynchronous units of computation that allow spawning a process and easily retrieving its result at a later time. +* [Agent](/docs/stable/elixir/#!Agent.html) - Simple wrappers around state. +* [GenServer](/docs/stable/elixir/#!GenServer.html) - "Generic servers" (processes) that encapsulate state, provide sync and async calls, support code reloading, and more. +* [GenEvent](/docs/stable/elixir/#!GenEvent.html) - "Generic event" managers that allow publishing events to multiple handlers. +* [Task](/docs/stable/elixir/#!Task.html) - Asynchronous units of computation that allow spawning a process and easily retrieving its result at a later time. We will explore all of these abstractions in this guide. Keep in mind that they are all implemented on top of processes using the basic features provided by the VM, like `send`, `receive`, `spawn` and `link`. ## Agents -[Agents](/docs/stable/elixir/Agent.html) are simple wrappers around state. If all you want from a process is to keep state, agents are a great fit. Let's start an `iex` session inside the project with: +[Agents](/docs/stable/elixir/#!Agent.html) are simple wrappers around state. If all you want from a process is to keep state, agents are a great fit. Let's start an `iex` session inside the project with: ```bash $ iex -S mix @@ -139,7 +139,7 @@ test "stores values by key", %{bucket: bucket} do end ``` -You can read more about ExUnit cases in the [`ExUnit.Case` module documentation](/docs/stable/ex_unit/ExUnit.Case.html) and more about callbacks in [`ExUnit.Callbacks` docs](/docs/stable/ex_unit/ExUnit.Callbacks.html). +You can read more about ExUnit cases in the [`ExUnit.Case` module documentation](/docs/stable/ex_unit/#!ExUnit.Case.html) and more about callbacks in [`ExUnit.Callbacks` docs](/docs/stable/ex_unit/#!ExUnit.Callbacks.html). ## Other agent actions diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index d0939cb9e..cf3dd1773 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -46,7 +46,7 @@ def deps do end ``` -This dependency refers to the latest version of plug in the 0.5.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/Version.html). +This dependency refers to the latest version of plug in the 0.5.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/#!Version.html). Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage git dependencies, too: @@ -70,7 +70,7 @@ mix deps.unlock # Unlock the given dependencies mix deps.update # Update the given dependencies ``` -The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependecies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](/docs/stable/mix/Mix.Tasks.Deps.html). +The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependecies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](/docs/stable/mix/#!Mix.Tasks.Deps.html). ## Internal dependencies @@ -210,7 +210,7 @@ defmodule KVServer do end ``` -Notice that it defines the application callback function, `start/2`, and instead of defining a supervisor named `KVServer.Supervisor` that uses the `Supervisor` module, it conveniently defined the supervisor inline! You can read more about such supervisors by reading [the Supervisor module documentation](/docs/stable/elixir/Supervisor.html). +Notice that it defines the application callback function, `start/2`, and instead of defining a supervisor named `KVServer.Supervisor` that uses the `Supervisor` module, it conveniently defined the supervisor inline! You can read more about such supervisors by reading [the Supervisor module documentation](/docs/stable/elixir/#!Supervisor.html). We can already try out our first umbrella child. We could run tests inside the `apps/kv_server` directory, but that wouldn't be much fun. Instead, go to the root of the umbrella project and run `mix test`: diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 04c55750d..e5fc761cb 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -94,9 +94,9 @@ There are three better alternatives to `Node.spawn_link/2` that we could use in 1. We could use Erlang's [:rpc](http://erlang.org/doc/man/rpc.html) module to execute functions on a remote node. Inside the `bar@computer-name` shell above, you can call `:rpc.call(:"foo@computer-name", Hello, :world, [])` and it will print "hello world" -2. We could have a server running on the other node and send requests to that node via the [GenServer](/docs/stable/elixir/GenServer.html) API. For example, you can call a remote named server using `GenServer.call({name, node}, arg)` or simply passing the remote process PID as first argument +2. We could have a server running on the other node and send requests to that node via the [GenServer](/docs/stable/elixir/#!GenServer.html) API. For example, you can call a remote named server using `GenServer.call({name, node}, arg)` or simply passing the remote process PID as first argument -3. We could use [tasks](/docs/stable/elixir/Task.html), which we have learned about in [a previous chapter](/getting-started/mix-otp/task-and-gen-tcp.html), as they can be spawned on both local and remote nodes +3. We could use [tasks](/docs/stable/elixir/#!Task.html), which we have learned about in [a previous chapter](/getting-started/mix-otp/task-and-gen-tcp.html), as they can be spawned on both local and remote nodes The options above have different properties. Both `:rpc` and using a GenServer would serialize your requests on a single server, while tasks are effectively running asynchronously on the remote node, with the only serialization point being the spawning done by the supervisor. @@ -112,7 +112,7 @@ res = compute_something_else() res + Task.await(task) ``` -`async/await` provides a very simple mechanism to compute values concurrently. Not only that, `async/await` can also be used with the same [`Task.Supervisor`](/docs/stable/elixir/Task.Supervisor.html) we have used in previous chapters. We just need to call `Task.Supervisor.async/2` instead of `Task.Supervisor.start_child/2` and use `Task.await/2` to read the result later on. +`async/await` provides a very simple mechanism to compute values concurrently. Not only that, `async/await` can also be used with the same [`Task.Supervisor`](/docs/stable/elixir/#!Task.Supervisor.html) we have used in previous chapters. We just need to call `Task.Supervisor.async/2` instead of `Task.Supervisor.start_child/2` and use `Task.await/2` to read the result later on. ## Distributed tasks @@ -271,7 +271,7 @@ The `mix test` command also allows us to dynamically include and exclude tags. F $ elixir --sname foo -S mix test --only distributed ``` -You can read more about filters, tags and the default tags in [`ExUnit.Case` module documentation](/docs/stable/ex_unit/ExUnit.Case.html). +You can read more about filters, tags and the default tags in [`ExUnit.Case` module documentation](/docs/stable/ex_unit/#!ExUnit.Case.html). ## Application environment and configuration @@ -302,7 +302,7 @@ def table do end ``` -We use `Application.get_env/2` to read the entry for `:routing_table` in `:kv`'s environment. You can find more information and other functions to manipulate the app environment in the [Application module](/docs/stable/elixir/Application.html). +We use `Application.get_env/2` to read the entry for `:routing_table` in `:kv`'s environment. You can find more information and other functions to manipulate the app environment in the [Application module](/docs/stable/elixir/#!Application.html). Since our routing table is now empty, our distributed test should fail. Restart the apps and re-run tests to see the failure: diff --git a/getting-started/mix-otp/docs-tests-and-pipelines.markdown b/getting-started/mix-otp/docs-tests-and-pipelines.markdown index 2f3aa90a8..93c3a83d9 100644 --- a/getting-started/mix-otp/docs-tests-and-pipelines.markdown +++ b/getting-started/mix-otp/docs-tests-and-pipelines.markdown @@ -160,7 +160,7 @@ iex> KVServer.Command.parse "GET shopping\r\n" {:error, :unknown_command} ``` -You can read more about doctests in [the `ExUnit.DocTest` docs](/docs/stable/ex_unit/ExUnit.DocTest.html). +You can read more about doctests in [the `ExUnit.DocTest` docs](/docs/stable/ex_unit/#!ExUnit.DocTest.html). ## Pipelines diff --git a/getting-started/mix-otp/genevent.markdown b/getting-started/mix-otp/genevent.markdown index 625050419..209b975b9 100644 --- a/getting-started/mix-otp/genevent.markdown +++ b/getting-started/mix-otp/genevent.markdown @@ -64,7 +64,7 @@ There are a couple things that are important to highlight at this point: Therefore, `sync_notify/2` and `notify/2` are analogous to `call/2` and `cast/2` in GenServer and using `sync_notify/2` is generally recommended. It works as a backpressure mechanism in the calling process, to reduce the likelihood of messages being sent more quickly than they can be dispatched to handlers. -Be sure to check other functionality provided by GenEvent in its [module documentation](/docs/stable/elixir/GenEvent.html). For now we have enough knowledge to add an event manager to our application. +Be sure to check other functionality provided by GenEvent in its [module documentation](/docs/stable/elixir/#!GenEvent.html). For now we have enough knowledge to add an event manager to our application. ## Registry events diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index c4a108c81..533f97067 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -39,7 +39,7 @@ Instead of abusing the name registry facility, we will instead create our own *r The registry needs to guarantee the dictionary is always up to date. For example, if one of the bucket processes crashes due to a bug, the registry must clean up the dictionary in order to avoid serving stale entries. In Elixir, we describe this by saying that the registry needs to *monitor* each bucket. -We will use a [GenServer](/docs/stable/elixir/GenServer.html) to create a registry process that can monitor the bucket process. GenServers are the go-to abstraction for building generic servers in both Elixir and OTP. +We will use a [GenServer](/docs/stable/elixir/#!GenServer.html) to create a registry process that can monitor the bucket process. GenServers are the go-to abstraction for building generic servers in both Elixir and OTP. ## Our first GenServer @@ -115,7 +115,7 @@ For `call` requests, we must implement a `handle_call/3` callback that receives For `cast` requests, we must implement a `handle_cast/2` callback that receives the `request` and the current server state (`names`). The `handle_cast/2` callback returns a tuple in the format `{:noreply, new_state}`. -There are other tuple formats both `handle_call/3` and `handle_cast/2` callbacks may return. There are also other callbacks like `terminate/2` and `code_change/3` that we could implement. You are welcome to explore the [full GenServer documentation](/docs/stable/elixir/GenServer.html) to learn more about those. +There are other tuple formats both `handle_call/3` and `handle_cast/2` callbacks may return. There are also other callbacks like `terminate/2` and `code_change/3` that we could implement. You are welcome to explore the [full GenServer documentation](/docs/stable/elixir/#!GenServer.html) to learn more about those. For now, let's write some tests to guarantee our GenServer works as expected. diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 75f92ed1c..0011666ba 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -156,7 +156,7 @@ It is important to note a couple things: 1. the test file is an Elixir script file (`.exs`). This is convenient because we don't need to compile test files before running them; -2. we define a test module named `KVTest`, use [`ExUnit.Case`](/docs/stable/ex_unit/ExUnit.Case.html) to inject the testing API and define a simple test using the `test/2` macro; +2. we define a test module named `KVTest`, use [`ExUnit.Case`](/docs/stable/ex_unit/#!ExUnit.Case.html) to inject the testing API and define a simple test using the `test/2` macro; Mix also generated a file named `test/test_helper.exs` which is responsible for setting up the test framework: @@ -221,7 +221,7 @@ Mix supports the concept of "environments". They allow a developer to customize > Note: If you add dependencies to your project, they will not inherit your project's environment, but instead run with their `:prod` environment settings! -By default, these environments behave the same and all the configurations we have seen so far will affect all three environments. Customization per environment can be done by accessing [the `Mix.env` function](/docs/stable/mix/Mix.html#env/1) in your `mix.exs` file, which returns the current environment as an atom: +By default, these environments behave the same and all the configurations we have seen so far will affect all three environments. Customization per environment can be done by accessing [the `Mix.env` function](/docs/stable/mix/#!Mix.html#env/1) in your `mix.exs` file, which returns the current environment as an atom: ```elixir def project do diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 696b27151..00457a54b 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -16,7 +16,7 @@ In this chapter, we are going to learn about supervisors and also about applicat ## Our first supervisor -Creating a supervisor is not much different from creating a GenServer. We are going to define a module named `KV.Supervisor`, which will use the [Supervisor](/docs/stable/elixir/Supervisor.html) behaviour, inside the `lib/kv/supervisor.ex` file: +Creating a supervisor is not much different from creating a GenServer. We are going to define a module named `KV.Supervisor`, which will use the [Supervisor](/docs/stable/elixir/#!Supervisor.html) behaviour, inside the `lib/kv/supervisor.ex` file: ```elixir defmodule KV.Supervisor do @@ -140,7 +140,7 @@ def application do end ``` -The `:mod` option specifies the "application callback module", followed by the arguments to be passed on application start. The application callback module can be any module that implements the [Application](/docs/stable/elixir/Application.html) behaviour. +The `:mod` option specifies the "application callback module", followed by the arguments to be passed on application start. The application callback module can be any module that implements the [Application](/docs/stable/elixir/#!Application.html) behaviour. Now that we have specified `KV` as the module callback, we need to change the `KV` module, defined in `lib/kv.ex`: @@ -173,7 +173,7 @@ Mix makes a distinction between projects and applications. Based on the current When we say "project," you should think about Mix. Mix is the tool that manages your project. It knows how to compile your project, test your project and more. It also knows how to compile and start the application relevant to your project. -When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications in the [docs for the Application module](/docs/stable/elixir/Application.html), as well as by running `mix help compile.app` to learn more about the supported options in `def application`. +When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications in the [docs for the Application module](/docs/stable/elixir/#!Application.html), as well as by running `mix help compile.app` to learn more about the supported options in `def application`. ## Simple one for one supervisors @@ -356,4 +356,4 @@ One possible solution to this problem is to create another supervisor that will You can take a shot at building this new supervision tree, but we will stop here. This is because in the next chapter we will make changes to the registry that will allow the registry data to be persisted, making the `:one_for_one` strategy a perfect fit. -Remember, there are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check out [the Supervisor module documentation](/docs/stable/elixir/Supervisor.html). +Remember, there are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check out [the Supervisor module documentation](/docs/stable/elixir/#!Supervisor.html). diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 3085a8113..8d71d1c37 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -62,7 +62,7 @@ end We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is just a loop accepting client connections. For each accepted connection, we call `serve/1`. -`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipeline operator `|>`](/docs/stable/elixir/Kernel.html#|>/2) to express this flow of operations. The pipeline operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: +`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipeline operator `|>`](/docs/stable/elixir/#!Kernel.html#|>/2) to express this flow of operations. The pipeline operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: ```elixir socket |> read_line() |> write_line(socket) @@ -131,7 +131,7 @@ For now there is a more important bug we need to fix: what happens if our TCP ac We have learned about agents, generic servers, and event managers. They are all meant to work with multiple messages or manage state. But what do we use when we only need to execute some task and that is it? -[The Task module](/docs/stable/elixir/Task.html) provides this functionality exactly. For example, it has `start_link/3` function that receives a module, function and arguments, allowing us to run a given function as part of a supervision tree. +[The Task module](/docs/stable/elixir/#!Task.html) provides this functionality exactly. For example, it has `start_link/3` function that receives a module, function and arguments, allowing us to run a given function as part of a supervision tree. Let's give it a try. Open up `lib/kv_server.ex`, and let's change the supervisor in the `start/2` function to the following: @@ -225,7 +225,7 @@ def start(_type, _args) do end ``` -We simply start a [`Task.Supervisor`](/docs/stable/elixir/Task.Supervisor.html) process with name `KVServer.TaskSupervisor`. Remember, since the acceptor task depends on this supervisor, the supervisor must be started first. +We simply start a [`Task.Supervisor`](/docs/stable/elixir/#!Task.Supervisor.html) process with name `KVServer.TaskSupervisor`. Remember, since the acceptor task depends on this supervisor, the supervisor must be started first. Now we just need to change `loop_acceptor/2` to use `Task.Supervisor` to serve each request: diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 950dfda3a..13116f5b6 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -74,7 +74,7 @@ iex> h Math.sum # Access the docs for the sum function We also provide a tool called [ExDoc](https://github.com/elixir-lang/ex_doc) which is used to generate HTML pages from the documentation. -You can take a look at the docs for [Module](/docs/stable/elixir/Module.html) for a complete list of supported attributes. Elixir also uses attributes to define [typespecs](/docs/stable/elixir/Kernel.Typespec.html), via: +You can take a look at the docs for [Module](/docs/stable/elixir/#!Module.html) for a complete list of supported attributes. Elixir also uses attributes to define [typespecs](/docs/stable/elixir/#!Kernel.Typespec.html), via: * `@spec` - provides a specification for a function. * `@callback` - provides a specification for the behaviour callback. @@ -95,7 +95,7 @@ defmodule MyServer do end ``` -> Note: Unlike Erlang, user defined attributes are not stored in the module by default. The value exists only during compilation time. A developer can configure an attribute to behave closer to Erlang by calling [`Module.register_attribute/3`](/docs/stable/elixir/Module.html#register_attribute/3). +> Note: Unlike Erlang, user defined attributes are not stored in the module by default. The value exists only during compilation time. A developer can configure an attribute to behave closer to Erlang by calling [`Module.register_attribute/3`](/docs/stable/elixir/#!Module.html#register_attribute/3). Trying to access an attribute that was not defined will print a warning: diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index f6d607903..06fcf6000 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -8,7 +8,7 @@ redirect_from: /getting_started/8.html {% include toc.html %} -In Elixir we group several functions into modules. We've already used many different modules in the previous chapters such as [the `String` module](/docs/stable/elixir/String.html): +In Elixir we group several functions into modules. We've already used many different modules in the previous chapters such as [the `String` module](/docs/stable/elixir/#!String.html): ```iex iex> String.length "hello" @@ -174,7 +174,7 @@ iex> fun.([1, [[2], 3]], [4, 5]) [1, 2, 3, 4, 5] ``` -`&List.flatten(&1, &2)` is the same as writing `fn(list, tail) -> List.flatten(list, tail) end`. You can read more about the capture operator `&` in [the `Kernel.SpecialForms` documentation](/docs/stable/elixir/Kernel.SpecialForms.html#&/1). +`&List.flatten(&1, &2)` is the same as writing `fn(list, tail) -> List.flatten(list, tail) end`. You can read more about the capture operator `&` in [the `Kernel.SpecialForms` documentation](/docs/stable/elixir/#!Kernel.SpecialForms.html#&/1). ## Default arguments diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 19d7f4239..7afb832f0 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -132,7 +132,7 @@ receive do end ``` -This time the process failed and brought the parent process down as they are linked. Linking can also be done manually by calling `Process.link/1`. We recommend you to take a look at [the `Process` module](/docs/stable/elixir/Process.html) for other functionality provided by processes. +This time the process failed and brought the parent process down as they are linked. Linking can also be done manually by calling `Process.link/1`. We recommend you to take a look at [the `Process` module](/docs/stable/elixir/#!Process.html) for other functionality provided by processes. Process and links play an important role when building fault-tolerant systems. In Elixir applications, we often link our processes to supervisors which will detect when a process dies and start a new process in its place. This is only possible because processes are isolated and don't share anything by default. And if processes are isolated, there is no way a failure in a process will crash or corrupt the state of another. @@ -231,7 +231,7 @@ iex> flush :world ``` -Using processes around state and name registering are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many of the abstractions that ships with Elixir. For example, Elixir provides [agents](/docs/stable/elixir/Agent.html) which are simple abstractions around state: +Using processes around state and name registering are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many of the abstractions that ships with Elixir. For example, Elixir provides [agents](/docs/stable/elixir/#!Agent.html) which are simple abstractions around state: ```iex iex> {:ok, pid} = Agent.start_link(fn -> %{} end) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 4c2593c80..0d1c2df07 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -104,7 +104,7 @@ Here we have used recursion to traverse a list doubling each element and returni Recursion and [tail call](http://en.wikipedia.org/wiki/Tail_call) optimization are an important part of Elixir and are commonly used to create loops. However, when programming in Elixir you will rarely use recursion as above to manipulate lists. -The [`Enum` module](/docs/stable/elixir/Enum.html), which we're going to see in the next chapter, already provides many conveniences for working with lists. For instance, the examples above could be written as: +The [`Enum` module](/docs/stable/elixir/#!Enum.html), which we're going to see in the next chapter, already provides many conveniences for working with lists. For instance, the examples above could be written as: ```iex iex> Enum.reduce([1, 2, 3], 0, fn(x, acc) -> x + acc end) diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 2d8fe2cab..21da80944 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -37,7 +37,7 @@ iex> "HELLO" =~ ~r/hello/i true ``` -Check out the [`Regex` module](/docs/stable/elixir/Regex.html) for more information on other modifiers and the supported operations with regular expressions. +Check out the [`Regex` module](/docs/stable/elixir/#!Regex.html) for more information on other modifiers and the supported operations with regular expressions. So far, all examples have used `/` to delimit a regular expression. However sigils support 8 different delimiters: diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index dce238562..d3385b9aa 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -87,7 +87,7 @@ iex> File.read! "unknown" (elixir) lib/file.ex:305: File.read!/1 ``` -Many functions in the standard library follow the pattern of having a counterpart that raises an exception instead of returning tuples to match against. The convention is to create a function (`foo`) which returns `{:ok, result}` or `{:error, reason}` tuples and another function (`foo!`, same name but with a trailing `!`) that takes the same arguments as `foo` but which raises an exception if there's an error. `foo!` should return the result (not wrapped in a tuple) if everything goes fine. The [`File` module](/docs/stable/elixir/File.html) is a good example of this convention. +Many functions in the standard library follow the pattern of having a counterpart that raises an exception instead of returning tuples to match against. The convention is to create a function (`foo`) which returns `{:ok, result}` or `{:error, reason}` tuples and another function (`foo!`, same name but with a trailing `!`) that takes the same arguments as `foo` but which raises an exception if there's an error. `foo!` should return the result (not wrapped in a tuple) if everything goes fine. The [`File` module](/docs/stable/elixir/#!File.html) is a good example of this convention. In Elixir, we avoid using `try/rescue` because **we don't use errors for control flow**. We take errors literally: they are reserved to unexpected and/or exceptional situations. In case you actually need flow control constructs, *throws* should be used. That's what we are going to see next. diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 409cd6867..1ed6f7906 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -17,7 +17,7 @@ Elixir is a dynamically typed language, so all types in Elixir are inferred by t ### Function specifications -By default, Elixir provides some basic types, such as `integer` or `pid`, as well as more complex types: for example, the `round/1` function, which rounds a float to its nearest integer, takes a `number` as an argument (an `integer` or a `float`) and returns an `integer`. As you can see [in its documentation](/docs/stable/elixir/Kernel.html#round/1), `round/1`'s typed signature is written as: +By default, Elixir provides some basic types, such as `integer` or `pid`, as well as more complex types: for example, the `round/1` function, which rounds a float to its nearest integer, takes a `number` as an argument (an `integer` or a `float`) and returns an `integer`. As you can see [in its documentation](/docs/stable/elixir/#!Kernel.html#round/1), `round/1`'s typed signature is written as: ``` round(number) :: integer @@ -30,7 +30,7 @@ round(number) :: integer def round(number), do: # implementation... ``` -Elixir supports compound types as well. For example, a list of integers has type `[integer]`. You can see all the types provided by Elixir [in the typespecs docs](/docs/stable/elixir/Kernel.Typespec.html). +Elixir supports compound types as well. For example, a list of integers has type `[integer]`. You can see all the types provided by Elixir [in the typespecs docs](/docs/stable/elixir/#!Kernel.Typespec.html). ### Defining custom types @@ -48,7 +48,7 @@ defmodule LousyCalculator do end ``` -As you can see in the example, tuples are a compound type and each tuple is identified by the types inside it. To understand why `String.t` is not written as `string`, have another look at the [typespecs docs](/docs/stable/elixir/Kernel.Typespec.html). +As you can see in the example, tuples are a compound type and each tuple is identified by the types inside it. To understand why `String.t` is not written as `string`, have another look at the [typespecs docs](/docs/stable/elixir/#!Kernel.Typespec.html). Defining function specs this way works, but it quickly becomes annoying since we're repeating the type `{number, String.t}` over and over. We can use the `@type` directive in order to declare our own custom type. From 1aae7f76cf6803b7e23586b9af84c21f53735f1f Mon Sep 17 00:00:00 2001 From: Benjamin Tan Wei Hao Date: Sat, 18 Apr 2015 00:17:45 +0800 Subject: [PATCH 0176/1761] Added The Little Elixir and OTP Guidebook! --- learning.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/learning.markdown b/learning.markdown index fead8579c..db54434db 100644 --- a/learning.markdown +++ b/learning.markdown @@ -48,6 +48,15 @@ This book shows you how to write simple Elixir programs by teaching one skill at

      +

      The Little Elixir and OTP Guidebook

      + +
      The Little Elixir and OTP Guidebook cover + +Elixir is a functional programming language built on the Erlang virtual machine. It combines the productivity and expressivity of Ruby with the concurrency and fault-tolerance of Erlang. Elixir makes full use of Erlang's powerful OTP library, which many developers consider the source of Erlang's greatness, so you can have mature, professional-quality functionality out of the gate. Elixir's support for functional programming makes it a great choice for highly distributed event-driven applications like IoT systems. + +The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. Come rediscover the joy of programming with Elixir and remember how it feels like to be a beginner again. + ## Screencasts

      Elixir Sips

      From 586059a7da2a93bd66c7d247b35e77010ae5cf71 Mon Sep 17 00:00:00 2001 From: Benjamin Tan Wei Hao Date: Wed, 22 Apr 2015 09:40:11 +0800 Subject: [PATCH 0177/1761] Update learning.markdown --- learning.markdown | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/learning.markdown b/learning.markdown index db54434db..7c6b8544e 100644 --- a/learning.markdown +++ b/learning.markdown @@ -53,9 +53,7 @@ This book shows you how to write simple Elixir programs by teaching one skill at The Little Elixir and OTP Guidebook cover -Elixir is a functional programming language built on the Erlang virtual machine. It combines the productivity and expressivity of Ruby with the concurrency and fault-tolerance of Erlang. Elixir makes full use of Erlang's powerful OTP library, which many developers consider the source of Erlang's greatness, so you can have mature, professional-quality functionality out of the gate. Elixir's support for functional programming makes it a great choice for highly distributed event-driven applications like IoT systems. - -The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. Come rediscover the joy of programming with Elixir and remember how it feels like to be a beginner again. +The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. Come rediscover the joy of programming with Elixir and remember how it feels like to be a beginner again. ## Screencasts From 6016681dc2eac08dbda260f9f2aa202f5a3af364 Mon Sep 17 00:00:00 2001 From: ArthurColle Date: Sun, 26 Apr 2015 16:51:30 -0400 Subject: [PATCH 0178/1761] Fixed mix-otp/genserver error where list is used in Agent.start_link KV example rather than a HashDict, as per the bucket.ex example. --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 533f97067..7d83b41b0 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -25,7 +25,7 @@ OK Since agents are processes, each bucket has a process identifier (pid) but it doesn't have a name. We have learned about the name registry [in the Process chapter](/getting-started/processes.html) and you could be inclined to solve this problem by using such registry. For example, we could create a bucket as: ```iex -iex> Agent.start_link(fn -> [] end, name: :shopping) +iex> Agent.start_link(fn -> HashDict.new end, name: :shopping) {:ok, #PID<0.43.0>} iex> KV.Bucket.put(:shopping, "milk", 1) :ok From 5a675a86cb15540ab31f39aa1bac40beb5d6e4da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 29 Apr 2015 12:42:23 +0200 Subject: [PATCH 0179/1761] Add etudes to learning section --- images/contents/etudes.jpg | Bin 0 -> 7677 bytes learning.markdown | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 images/contents/etudes.jpg diff --git a/images/contents/etudes.jpg b/images/contents/etudes.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d9d810cf298804ee79744bd5264321cb12c5e41e GIT binary patch literal 7677 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 + ## Screencasts

      Elixir Sips

      @@ -71,6 +73,15 @@ The intended audience ranges from someone entirely new to the Elixir language, t ## In-depth Resources +

      Études for Elixir

      + +Études for Elixir + +Études for Elixir is an open source book of programming exercises. Each one has been designed to provide practice material for a particular Elixir programming concept. The topics are keyed to the chapters in "Introducing Elixir," but they are general enough to be used with any Elixir book. Études for Elixir can be read free online. + +
      +

      Metaprogramming Elixir

      serve(client) end) + {:ok, pid} = Task.Supervisor.start_child(KVServer.TaskSupervisor, fn -> serve(client) end) + :gen_tcp.controlling_process(client, pid) loop_acceptor(socket) end From fd76650c093c4486b7b2de2c4a65bbbc77cd5cd2 Mon Sep 17 00:00:00 2001 From: Paulo A Pereira Date: Thu, 30 Apr 2015 14:49:22 +0100 Subject: [PATCH 0181/1761] Added Elixir Cookbook to Learning. --- learning.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/learning.markdown b/learning.markdown index 970ce2000..9fdc90da0 100644 --- a/learning.markdown +++ b/learning.markdown @@ -57,6 +57,14 @@ The Little Elixir & OTP Guidebook gets you started programming applications with
      +

      Elixir Cookbook

      + +
      Elixir Cookbook cover + +This book is a set of recipes grouped by topic that acts as a reference to get ideas from or to quickly search for a solution to a problem. You will begin by launching an IEx session and using it to test some ideas. Next, you will perform various operations like loading and compiling modules, inspecting your system, generating a supervised app, and so on. Furthermore, you will be introduced to immutability, working with data structures, performing pattern matching, and using stream modules to generate infinite data sequences. You will learn about everything from joining strings to determining the word frequency in text. With respect to modules and functions, you will also discover how to load code from other modules and use guards and pattern matching in functions. + +
      + ## Screencasts

      Elixir Sips

      From c81aecf2e831c6ebf706e66d4d09dd8dd9e3800c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 1 May 2015 13:58:04 +0200 Subject: [PATCH 0182/1761] Add a link to elixir meetups around the world --- _includes/important-links.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/important-links.html b/_includes/important-links.html index e2995cccf..f9b481bed 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -2,6 +2,7 @@

      Join the Community

      • #elixir-lang on freenode IRC
      • +
      • Elixir meetups around the world
      • elixir-talk mailing list (questions)
      • elixir-core mailing list (development)
      • Issue tracker
      • From 57450c4e811ccf9a4c273ac8c3e4b9b6a897acb0 Mon Sep 17 00:00:00 2001 From: Alex Marandon Date: Sun, 3 May 2015 22:35:28 +0200 Subject: [PATCH 0183/1761] Fix assert_receive timeout assert_receive timeout is 100ms and not 500ms See lib/ex_unit/lib/ex_unit/assertions.ex for confirmation --- getting-started/mix-otp/genevent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genevent.markdown b/getting-started/mix-otp/genevent.markdown index 209b975b9..7f493ab55 100644 --- a/getting-started/mix-otp/genevent.markdown +++ b/getting-started/mix-otp/genevent.markdown @@ -102,7 +102,7 @@ Let's first change our tests to showcase the behaviour we want the registry to e In order to test the functionality we want to add, we first define a `Forwarder` (the same one we typed in IEx previously). On `setup`, we start the event manager, pass it as an argument to the registry and add our `Forwarder` handler to the manager so events can be sent to the test process. -In the test, we create and stop a bucket process and use `assert_receive` to assert we will receive both `:create` and `:exit` messages. `assert_receive` has a default timeout of 500ms which should be more than enough for our tests. Also note that `assert_receive` expects a pattern, rather than a value, that's why we have used `^bucket` to match on the bucket pid. +In the test, we create and stop a bucket process and use `assert_receive` to assert we will receive both `:create` and `:exit` messages. `assert_receive` has a default timeout of 100ms which should be more than enough for our tests. Also note that `assert_receive` expects a pattern, rather than a value, that's why we have used `^bucket` to match on the bucket pid. Finally, notice we called `GenEvent.add_mon_handler/3` instead of `GenEvent.add_handler/3`. This function adds a handler, as we know, and also tells the event manager to monitor the current process. If the current process dies, the event handler is automatically removed. This makes sense because, in the `Forwarder` case, we should stop forwarding messages if the recipient of those messages (`self()`/the test process) is no longer alive. From c475edd96fd1b14c5b894e111edbf2321f14c333 Mon Sep 17 00:00:00 2001 From: Alex Marandon Date: Sun, 3 May 2015 23:12:55 +0200 Subject: [PATCH 0184/1761] Update section 2.1 as per #466 I tried to rearrange the narration so that it exposes the same features while being consistent with the current implementation. Fix #466 --- .../supervisor-and-application.markdown | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 00457a54b..4b19785f0 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -102,23 +102,36 @@ iex> Application.start(:kv) {:error, {:already_started, :kv}} ``` -Oops, it's already started. +Oops, it's already started. Mix normally starts the whole hierarchy of applications defined in our project's `mix.exs` file and it does the same for all dependencies if they depend on other applications. We can pass an option to mix to ask it to not start our application. Let's give it a try by running `iex -S mix run --no-start`: +```elixir +iex> Application.start(:kv) +:ok +``` + +We can stop our `:kv` application as well as the `:logger` application, which is stared by default with Elixir: + +```elixir +iex> Application.stop(:kv) +:ok +iex> Application.stop(:logger) +:ok +``` + +And let's try to start our application again: + ```elixir iex> Application.start(:kv) {:error, {:not_started, :logger}} ``` -Now we get an error because an application that `:kv` depends on (`:logger` in this case) hasn't been started. Mix normally starts the whole hierarchy of applications defined in our project's `mix.exs` file and it does the same for all dependencies if they depend on other applications. But since we passed the `--no-start` flag, we need to either start each application manually in the correct order or call `Application.ensure_all_started` as follows: +Now we get an error because an application that `:kv` depends on (`:logger` in this case) isn't started. We need to either start each application manually in the correct order or call `Application.ensure_all_started` as follows: ```elixir iex> Application.ensure_all_started(:kv) {:ok, [:logger, :kv]} -iex> Application.stop(:kv) -18:12:10.698 [info] Application kv exited :stopped -:ok ``` Nothing really exciting happens but it shows how we can control our application. From 015fd2ccb7aaf3deb907497886982bbd8932aafe Mon Sep 17 00:00:00 2001 From: Anthony VEREZ Date: Tue, 5 May 2015 01:11:08 +0200 Subject: [PATCH 0185/1761] typo in mix & otp guide --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 4d452deb3..417c0d8f2 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -375,7 +375,7 @@ Note that we are using `KV.Registry` as name for the ETS table as well, which ma So far we have created an ETS table during the registry initialization but we haven't bothered to close the table on registry termination. That's because the ETS table is "linked" (in a figure of speech) to the process that creates it. If that process dies, the table is automatically closed. -This is extremely convenient as a default behaviour, and we can use it even more to our advantage. Remember that there is a dependency between the registry and the buckets supervisor. If the registry dies, we want the buckets supervisor to die too, because once the registry dies all information linking the bucket name to the bucket process is lost. However, what if we could keep the registry data even if the registry process crashes? If we are able to do so, we remove the dependency between the registry and the buckets supervisor, making the `:one_for_one` strategy the perfect strategy for our supevisor. +This is extremely convenient as a default behaviour, and we can use it even more to our advantage. Remember that there is a dependency between the registry and the buckets supervisor. If the registry dies, we want the buckets supervisor to die too, because once the registry dies all information linking the bucket name to the bucket process is lost. However, what if we could keep the registry data even if the registry process crashes? If we are able to do so, we remove the dependency between the registry and the buckets supervisor, making the `:one_for_one` strategy the perfect strategy for our supervisor. A couple of changes will be required in order to make this happen. First, we'll need to start the ETS table inside the supervisor. Second, we'll need to change the table's access type from `:protected` to `:public`, because the owner is the supervisor, but the process doing the writes is still the manager. From 1057f71b5fe67dae3f6039e0e921cac95059753a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 May 2015 15:58:12 +0200 Subject: [PATCH 0186/1761] Update tracking code --- _includes/bottom.html | 13 ------------- _includes/top.html | 9 +++++++++ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index d6b36d71d..c37e86b65 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -8,18 +8,6 @@ - - \ No newline at end of file diff --git a/_includes/top.html b/_includes/top.html index da8634a6b..f409b1506 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -14,6 +14,15 @@ + From 29a518760b9332e7b536a546c84ec206beea784a Mon Sep 17 00:00:00 2001 From: Clint Gibler Date: Thu, 7 May 2015 11:31:53 -0700 Subject: [PATCH 0187/1761] Change 'seperate' to 'separate' in mix-otp/genserver --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 7d83b41b0..e5e410b4f 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -43,7 +43,7 @@ We will use a [GenServer](/docs/stable/elixir/#!GenServer.html) to create a regi ## Our first GenServer -A GenServer is implemented in two parts: the client API and the server callbacks, either in a single module or in two different modules implementing client API in one and server callbacks in the other. The client and server run in seperate processes, with the client passing messages back and forth to the server as its functions are called. Here we use a single module for both the server callbacks and client API. Create a new file at `lib/kv/registry.ex` with the following contents: +A GenServer is implemented in two parts: the client API and the server callbacks, either in a single module or in two different modules implementing client API in one and server callbacks in the other. The client and server run in separate processes, with the client passing messages back and forth to the server as its functions are called. Here we use a single module for both the server callbacks and client API. Create a new file at `lib/kv/registry.ex` with the following contents: ```elixir defmodule KV.Registry do From 7a3a66b07fba30d34d22adec5cdc637416f47939 Mon Sep 17 00:00:00 2001 From: Rohit Arondekar Date: Mon, 11 May 2015 15:50:56 +0530 Subject: [PATCH 0188/1761] Minor typo in Supervisor and Application guide --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 4b19785f0..b1b2d6cbc 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -111,7 +111,7 @@ iex> Application.start(:kv) :ok ``` -We can stop our `:kv` application as well as the `:logger` application, which is stared by default with Elixir: +We can stop our `:kv` application as well as the `:logger` application, which is started by default with Elixir: ```elixir iex> Application.stop(:kv) From 1970646c5792a4bd5d3571988dc1bd015d01f2a7 Mon Sep 17 00:00:00 2001 From: Rohit Arondekar Date: Thu, 14 May 2015 15:36:36 +0530 Subject: [PATCH 0189/1761] Minor typo in Task and gen_tcp guide --- getting-started/mix-otp/task-and-gen-tcp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 590ec5974..168c98dff 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -297,7 +297,7 @@ defmodule KVServer do end ``` -Since we have changed the supervisor specification, we need to ask: is our supervision strategy is still correct? +Since we have changed the supervisor specification, we need to ask: is our supervision strategy still correct? In this case, the answer is yes: if the acceptor crashes, there is no need to crash the existing connections. On the other hand, if the task supervisor crashes, there is no need to crash the acceptor too. This is a contrast to the registry, where we initially had to crash the supervisor every time the registry crashed, until we used ETS to persist state. However, tasks have no state and nothing will go stale if one of these processes dies. From e769cc2a31a415c9aec8e12a612e70dead065841 Mon Sep 17 00:00:00 2001 From: Brian Thomas Storti Date: Sat, 16 May 2015 14:33:12 -0300 Subject: [PATCH 0190/1761] fix minor typo in 'maps-and-dicts' guide --- getting-started/maps-and-dicts.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/maps-and-dicts.markdown b/getting-started/maps-and-dicts.markdown index 206b1e678..54f5b2ace 100644 --- a/getting-started/maps-and-dicts.markdown +++ b/getting-started/maps-and-dicts.markdown @@ -166,7 +166,7 @@ iex> %{map | :c => 3} ** (ArgumentError) argument error ``` -Both access and update syntaxes above require the given keys to exist. For example, accessing and updating the `:c` key failed there is no `:c` in the map. +Both access and update syntaxes above require the given keys to exist. For example, accessing and updating the `:c` key failed because there is no `:c` in the map. Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post](http://blog.plataformatec.com.br/2014/09/writing-assertive-code-with-elixir/) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. From b4c9cf0bf81ff434664f61b6bdfcaa89b0752663 Mon Sep 17 00:00:00 2001 From: Kohei TAKATA Date: Wed, 20 May 2015 08:04:39 +0900 Subject: [PATCH 0191/1761] Add explanation --- getting-started/introduction.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index be89a1462..9b7b0526a 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -29,7 +29,9 @@ If you still haven't installed Elixir, run to our [installation page](/install.h When you install Elixir, you will have three new executables: `iex`, `elixir` and `elixirc`. If you compiled Elixir from source or are using a packaged version, you can find these inside the `bin` directory. -For now, let's start by running `iex` (or `iex.bat` if you are on Windows) which stands for Interactive Elixir. In interactive mode, we can type any Elixir expression and get its result. Let's warm up with some basic expressions: +For now, let's start by running `iex` (or `iex.bat` if you are on Windows) which stands for Interactive Elixir. In interactive mode, we can type any Elixir expression and get its result. Let's warm up with some basic expressions. + +Open up `iex` and type the following expressions: ```iex Interactive Elixir - press Ctrl+C to exit (type h() ENTER for help) From cecaebd8f16bf177a7c6db9a0a8dcb0d52ffcb28 Mon Sep 17 00:00:00 2001 From: Anthony Verez Date: Thu, 21 May 2015 00:42:10 +0200 Subject: [PATCH 0192/1761] Minor typos in Mix & OTP guide --- .../mix-otp/dependencies-and-umbrella-apps.markdown | 2 +- .../mix-otp/distributed-tasks-and-configuration.markdown | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index cf3dd1773..8a14688f7 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -70,7 +70,7 @@ mix deps.unlock # Unlock the given dependencies mix deps.update # Update the given dependencies ``` -The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependecies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](/docs/stable/mix/#!Mix.Tasks.Deps.html). +The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependencies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](/docs/stable/mix/#!Mix.Tasks.Deps.html). ## Internal dependencies diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index e5fc761cb..ff3c79883 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -194,7 +194,7 @@ Let's write a test to verify our router works. Create a file named `test/kv/rout defmodule KV.RouterTest do use ExUnit.Case, async: true - test "route requests accross nodes" do + test "route requests across nodes" do assert KV.Router.route("hello", Kernel, :node, []) == :"foo@computer-name" assert KV.Router.route("world", Kernel, :node, []) == @@ -237,7 +237,7 @@ All we need to do to tag a test is simply call `@tag` before the test name. Back ```elixir @tag :distributed -test "route requests accross nodes" do +test "route requests across nodes" do ``` Writing `@tag :distributed` is equivalent to writing `@tag distributed: true`. From c327f054d4dab1894266673fb6d753f72dc9e29e Mon Sep 17 00:00:00 2001 From: Kohei TAKATA Date: Fri, 22 May 2015 20:31:23 +0900 Subject: [PATCH 0193/1761] Add link --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index d7e892f10..c16859fd8 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -289,7 +289,7 @@ iex> 'hello' == "hello" false ``` -Single-quotes are char lists, double-quotes are strings. We will talk more about them in the "Binaries, strings and char lists" chapter. +Single-quotes are char lists, double-quotes are strings. We will talk more about them in the ["Binaries, strings and char lists"](/getting-started/binaries-strings-and-char-lists.html) chapter. ## Tuples From aac361f57b1c8219abfd75631f0a087c4423d2a2 Mon Sep 17 00:00:00 2001 From: Ethan Sherbondy Date: Fri, 22 May 2015 12:46:16 -0600 Subject: [PATCH 0194/1761] Quick typo fix: successfuly -> successfully Thanks for writing these comprehensive getting-started guides! --- .../mix-otp/distributed-tasks-and-configuration.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index ff3c79883..96f653b51 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -225,7 +225,7 @@ And now run tests with: $ elixir --sname foo -S mix test ``` -Our test should successfuly pass. Excellent! +Our test should successfully pass. Excellent! ## Test filters and tags From e862486e40a8db4ec933f80cf8ac8e20e87dbc10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Tue, 26 May 2015 13:23:27 +0200 Subject: [PATCH 0195/1761] =?UTF-8?q?Fixed=20typo=20=E2=80=9C=E2=80=A6writ?= =?UTF-8?q?es=20to=20the=20standard-input=E2=80=A6=E2=80=9D=20>=20standard?= =?UTF-8?q?-output?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- getting-started/io-and-the-file-system.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 334278fe1..da8b415bd 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -133,7 +133,7 @@ iex> IO.read(pid, 2) By modelling IO devices with processes, the Erlang VM allows different nodes in the same network to exchange file processes in order to read/write files in between nodes. Of all IO devices, there is one that is special to each process: the **group leader**. -When you write to `:stdio`, you are actually sending a message to the group leader, which writes to the standard-input file descriptor: +When you write to `:stdio`, you are actually sending a message to the group leader, which writes to the standard-output file descriptor: ```iex iex> IO.puts :stdio, "hello" From 7f81b9b6499ab742c4c840748fb47d02341bf452 Mon Sep 17 00:00:00 2001 From: Kohei TAKATA Date: Tue, 26 May 2015 22:10:39 +0900 Subject: [PATCH 0196/1761] Add outputs --- getting-started/case-cond-and-if.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 33d1960aa..216de98bf 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -23,6 +23,7 @@ iex> case {1, 2, 3} do ...> _ -> ...> "This clause would match any value" ...> end +"This clause will match and bind x to 2 in this clause" ``` If you want to pattern match against an existing variable, you need to use the `^` operator: @@ -34,6 +35,7 @@ iex> case 10 do ...> ^x -> "Won't match" ...> _ -> "Will match" ...> end +"Will match" ``` Clauses also allow extra conditions to be specified via guards: @@ -45,6 +47,7 @@ iex> case {1, 2, 3} do ...> _ -> ...> "Won't match" ...> end +"Will match" ``` The first clause above will only match when `x` is positive. @@ -162,6 +165,7 @@ iex> cond do ...> true -> ...> "This is always true (equivalent to else)" ...> end +"This is always true (equivalent to else)" ``` Finally, note `cond` considers any value besides `nil` and `false` to be true: @@ -241,6 +245,7 @@ One thing to keep in mind when using `do/end` blocks is they are always bound to iex> is_number if true do ...> 1 + 2 ...> end +** (RuntimeError) undefined function: if/1 ``` Would be parsed as: @@ -249,6 +254,7 @@ Would be parsed as: iex> is_number(if true) do ...> 1 + 2 ...> end +** (RuntimeError) undefined function: if/1 ``` Which leads to an undefined function error as Elixir attempts to invoke `is_number/2`. Adding explicit parentheses is enough to resolve the ambiguity: From 7cb17587d21107f6db339b6f443b1ea90bf97738 Mon Sep 17 00:00:00 2001 From: James Fish Date: Fri, 29 May 2015 11:14:38 +0100 Subject: [PATCH 0197/1761] Improve error handling of task/gen_tcp tutorial --- getting-started/mix-otp/task-and-gen-tcp.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 168c98dff..b06a895ca 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -31,7 +31,7 @@ def accept(port) do # 3. `active: false` - block on `:gen_tcp.recv/2` until data is available # {:ok, socket} = :gen_tcp.listen(port, - [:binary, packet: :line, active: false]) + [:binary, packet: :line, active: false, reuseaddr: true]) IO.puts "Accepting connections on port #{port}" loop_acceptor(socket) end @@ -233,12 +233,12 @@ Now we just need to change `loop_acceptor/2` to use `Task.Supervisor` to serve e defp loop_acceptor(socket) do {:ok, client} = :gen_tcp.accept(socket) {:ok, pid} = Task.Supervisor.start_child(KVServer.TaskSupervisor, fn -> serve(client) end) - :gen_tcp.controlling_process(client, pid) + :ok = :gen_tcp.controlling_process(client, pid) loop_acceptor(socket) end ``` -You might notice that we added a line, `:gen_tcp.controlling_process(client, pid)`. This makes the child process the "controlling process" of the `client` socket. If we didn't do this, the acceptor would bring down all the clients if it crashed because sockets are tied to the process that `accept`ed them by default. +You might notice that we added a line, `:ok = :gen_tcp.controlling_process(client, pid)`. This makes the child process the "controlling process" of the `client` socket. If we didn't do this, the acceptor would bring down all the clients if it crashed because sockets are tied to the process that `accept`ed them by default. Start a new server with `mix run --no-halt` and we can now open up many concurrent telnet clients. You will also notice that quitting a client does not bring the acceptor down. Excellent! @@ -266,7 +266,7 @@ defmodule KVServer do """ def accept(port) do {:ok, socket} = :gen_tcp.listen(port, - [:binary, packet: :line, active: false]) + [:binary, packet: :line, active: false, reuseaddr: true]) IO.puts "Accepting connections on port #{port}" loop_acceptor(socket) end @@ -274,7 +274,7 @@ defmodule KVServer do defp loop_acceptor(socket) do {:ok, client} = :gen_tcp.accept(socket) {:ok, pid} = Task.Supervisor.start_child(KVServer.TaskSupervisor, fn -> serve(client) end) - :gen_tcp.controlling_process(client, pid) + :ok = :gen_tcp.controlling_process(client, pid) loop_acceptor(socket) end From 76a7c4e883ab6ea2db5c0c3abcfc7513e4aa1229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 29 May 2015 12:17:40 +0200 Subject: [PATCH 0198/1761] Update task-and-gen-tcp.markdown --- getting-started/mix-otp/task-and-gen-tcp.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index b06a895ca..0d9ff67c3 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -28,7 +28,8 @@ def accept(port) do # # 1. `:binary` - receives data as binaries (instead of lists) # 2. `packet: :line` - receives data line by line - # 3. `active: false` - block on `:gen_tcp.recv/2` until data is available + # 3. `active: false` - blocks on `:gen_tcp.recv/2` until data is available + # 4. `reuseaddr: true` - allows us to reuse the address if the listener crashes # {:ok, socket} = :gen_tcp.listen(port, [:binary, packet: :line, active: false, reuseaddr: true]) From 7f29598a3221adde5562165aa0b9514eb617370d Mon Sep 17 00:00:00 2001 From: Andrew Thorp Date: Fri, 29 May 2015 06:47:37 -0500 Subject: [PATCH 0199/1761] fix typo --- getting-started/maps-and-dicts.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/maps-and-dicts.markdown b/getting-started/maps-and-dicts.markdown index 54f5b2ace..f7804ce83 100644 --- a/getting-started/maps-and-dicts.markdown +++ b/getting-started/maps-and-dicts.markdown @@ -51,7 +51,7 @@ Keyword lists are important because they have three special characteristics: * Keys are ordered, as specified by the developer. * Keys can be given more than once. -For example, [the Ecto library](https://github.com/elixir-lang/ecto) makes use of both features to provide an elegant DSL for writing database queries: +For example, [the Ecto library](https://github.com/elixir-lang/ecto) makes use of these features to provide an elegant DSL for writing database queries: ```elixir query = from w in Weather, From 096a98f0163836adc78a03d5007afb03065c476d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Fri, 29 May 2015 15:35:36 +0200 Subject: [PATCH 0200/1761] =?UTF-8?q?Fix=20typo=20=E2=80=9Cwe=20can=20get?= =?UTF-8?q?=20filter=20out=E2=80=9D=20>=20=E2=80=9Cwe=20can=20filter=20out?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- getting-started/comprehensions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index 30eb8712e..1b92fbb9c 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -36,7 +36,7 @@ iex> for {:good, n} <- values, do: n * n [1, 4, 16] ``` -Alternatively to pattern matching, filters can be used to filter some particular elements out. For example, we can get filter out all the multiples of 3 and get the square of the remaining values only: +Alternatively to pattern matching, filters can be used to filter some particular elements out. For example, we can filter out all the multiples of 3 and get the square of the remaining values only: ```iex iex> multiple_of_3? = fn(n) -> rem(n, 3) == 0 end From 461d88744a42a8648135393f535198dc3c47a8eb Mon Sep 17 00:00:00 2001 From: Kohei TAKATA Date: Sun, 31 May 2015 06:41:20 +0900 Subject: [PATCH 0201/1761] Fix usage of running codes --- getting-started/recursion.markdown | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 0d1c2df07..a935e1582 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -66,7 +66,7 @@ defmodule Math do end end -Math.sum_list([1, 2, 3], 0) #=> 6 +IO.puts Math.sum_list([1, 2, 3], 0) #=> 6 ``` We invoke `sum_list` with the list `[1, 2, 3]` and the initial value `0` as arguments. We will try each clause until we find one that matches according to the pattern matching rules. In this case, the list `[1, 2, 3]` matches against `[head|tail]` which bounds `head` to `1` and `tail` to `[2, 3]`; `accumulator` is set to `0`. @@ -96,8 +96,14 @@ defmodule Math do [] end end +``` + +```bash +iex math.exs +``` -Math.double_each([1, 2, 3]) #=> [2, 4, 6] +```iex +iex> Math.double_each([1, 2, 3]) #=> [2, 4, 6] ``` Here we have used recursion to traverse a list doubling each element and returning a new list. The process of taking a list and _mapping_ over it is known as a _map algorithm_. From 42fd6678044991c942fe0feb798c1ffda1b8c2db Mon Sep 17 00:00:00 2001 From: Robert Mosolgo Date: Sat, 30 May 2015 20:11:42 -0700 Subject: [PATCH 0202/1761] fix(recursion.markdown) 'bounds' -> 'binds' --- getting-started/recursion.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 0d1c2df07..4f53c7821 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -69,7 +69,7 @@ end Math.sum_list([1, 2, 3], 0) #=> 6 ``` -We invoke `sum_list` with the list `[1, 2, 3]` and the initial value `0` as arguments. We will try each clause until we find one that matches according to the pattern matching rules. In this case, the list `[1, 2, 3]` matches against `[head|tail]` which bounds `head` to `1` and `tail` to `[2, 3]`; `accumulator` is set to `0`. +We invoke `sum_list` with the list `[1, 2, 3]` and the initial value `0` as arguments. We will try each clause until we find one that matches according to the pattern matching rules. In this case, the list `[1, 2, 3]` matches against `[head|tail]` which binds `head` to `1` and `tail` to `[2, 3]`; `accumulator` is set to `0`. Then, we add the head of the list to the accumulator `head + accumulator` and call `sum_list` again, recursively, passing the tail of the list as its first argument. The tail will once again match `[head|tail]` until the list is empty, as seen below: From 25e14877fd2697d637e04917d9e5f4e2ae392a45 Mon Sep 17 00:00:00 2001 From: Robert Mosolgo Date: Sat, 30 May 2015 22:00:14 -0700 Subject: [PATCH 0203/1761] fix(structs.markdown) 'meg' -> 'Meg' --- getting-started/structs.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index 292109924..9f55c4cbb 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -62,7 +62,7 @@ iex> john = %User{} iex> john.name "John" iex> meg = %{john | name: "Meg"} -%User{age: 27, name: "meg"} +%User{age: 27, name: "Meg"} iex> %{meg | oops: :field} ** (ArgumentError) argument error ``` From d67a41539d41d08a654dd9f4b1b374ec61b95e85 Mon Sep 17 00:00:00 2001 From: Robert Mosolgo Date: Sun, 31 May 2015 09:56:44 -0700 Subject: [PATCH 0204/1761] fix(ets.markdown) the registry writes to the table, not the EventManager --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 417c0d8f2..3cf04dcbe 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -377,7 +377,7 @@ So far we have created an ETS table during the registry initialization but we ha This is extremely convenient as a default behaviour, and we can use it even more to our advantage. Remember that there is a dependency between the registry and the buckets supervisor. If the registry dies, we want the buckets supervisor to die too, because once the registry dies all information linking the bucket name to the bucket process is lost. However, what if we could keep the registry data even if the registry process crashes? If we are able to do so, we remove the dependency between the registry and the buckets supervisor, making the `:one_for_one` strategy the perfect strategy for our supervisor. -A couple of changes will be required in order to make this happen. First, we'll need to start the ETS table inside the supervisor. Second, we'll need to change the table's access type from `:protected` to `:public`, because the owner is the supervisor, but the process doing the writes is still the manager. +A couple of changes will be required in order to make this happen. First, we'll need to start the ETS table inside the supervisor. Second, we'll need to change the table's access type from `:protected` to `:public`, because the owner is the supervisor, but the process doing the writes is still the registry. Let's get started by first changing `KV.Supervisor`'s `init/1` callback: From 3c64f670452d3c4196c23995dff7cca205344739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Sat, 30 May 2015 22:43:56 +0200 Subject: [PATCH 0205/1761] Minor tweaks in Introduction to Mix --- getting-started/mix-otp/introduction-to-mix.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 0011666ba..51afe65ad 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -128,7 +128,7 @@ $ mix compile Will output: Compiled lib/kv.ex - Generated kv.app + Generated kv app Notice the `lib/kv.ex` file was compiled and `kv.app` file was generated. All this took place in a directory structure of its own, inside the `_build` folder. This `.app` file is generated with the information from the `application/0` function in the `mix.exs` file. We will further explore `mix.exs` configuration features in future chapters. @@ -161,13 +161,13 @@ It is important to note a couple things: Mix also generated a file named `test/test_helper.exs` which is responsible for setting up the test framework: ```elixir -ExUnit.start +ExUnit.start() ``` This file will be automatically required by Mix every time before we run our tests. We can run tests with `mix test`: Compiled lib/kv.ex - Generated kv.app + Generated kv app . Finished in 0.04 seconds (0.04s on load, 0.00s on tests) From 1a9f20187468151ad93484c47fc581401fbc1ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Sun, 31 May 2015 15:14:14 +0200 Subject: [PATCH 0206/1761] Add two links to the guide/documentation in Agent --- getting-started/mix-otp/agent.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 7dbc27d5c..93b2ef86f 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -100,7 +100,7 @@ defmodule KV.Bucket do end ``` -Note that we are using a HashDict to store our state instead of a `Map`, because in the current version of Elixir maps are less efficient when holding a large number of keys. +Note that we are using a HashDict to store our state instead of a `Map`, because in the current version of Elixir maps are less efficient when holding a large number of keys. The capture operator, `&`, is introduced in [the Getting Started guide](/getting-started/modules.html#function-capturing). Now that the `KV.Bucket` module has been defined, our test should pass! You can try it yourself by running: `mix test` . @@ -156,7 +156,7 @@ def delete(bucket, key) do end ``` -Now it is your turn to write a test for the functionality above! Also, be sure to explore the documentation for agents to learn more about them. +Now it is your turn to write a test for the functionality above! Also, be sure to explore [the documentation for `Agents`](/docs/stable/elixir/#!Agent.html) to learn more about them. ## Client/Server in agents From f0e787bb8308e5f6dd6bec68d06611c92be9dd7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Sun, 31 May 2015 16:50:04 +0200 Subject: [PATCH 0207/1761] Fix typos in GenServer --- getting-started/mix-otp/genserver.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index e5e410b4f..17bc4fb18 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -39,7 +39,7 @@ Instead of abusing the name registry facility, we will instead create our own *r The registry needs to guarantee the dictionary is always up to date. For example, if one of the bucket processes crashes due to a bug, the registry must clean up the dictionary in order to avoid serving stale entries. In Elixir, we describe this by saying that the registry needs to *monitor* each bucket. -We will use a [GenServer](/docs/stable/elixir/#!GenServer.html) to create a registry process that can monitor the bucket process. GenServers are the go-to abstraction for building generic servers in both Elixir and OTP. +We will use a [GenServer](/docs/stable/elixir/#!GenServer.html) to create a registry process that can monitor the bucket processes. GenServers are the go-to abstraction for building generic servers in both Elixir and OTP. ## Our first GenServer @@ -109,7 +109,7 @@ The next two functions, `lookup/2` and `create/2` are responsible for sending th On the server side, we can implement a variety of callbacks to guarantee the server initialization, termination and handling of requests. Those callbacks are optional and for now we have only implemented the ones we care about. -The first is the `init/1` callback, that receives the argument given `GenServer.start_link/3` and returns `{:ok, state}`, where state is a new `HashDict`. We can already notice how the `GenServer` API makes the client/server segregation more apparent. `start_link/3` happens in the client, while `init/1` is the respective callback that runs on the server. +The first is the `init/1` callback, that receives the argument given to `GenServer.start_link/3` and returns `{:ok, state}`, where state is a new `HashDict`. We can already notice how the `GenServer` API makes the client/server segregation more apparent. `start_link/3` happens in the client, while `init/1` is the respective callback that runs on the server. For `call` requests, we must implement a `handle_call/3` callback that receives the `request`, the process from which we received the request (`_from`), and the current server state (`names`). The `handle_call/3` callback returns a tuple in the format `{:reply, reply, new_state}`, where `reply` is what will be sent to the client and the `new_state` is the new server state. @@ -255,7 +255,7 @@ So far we have used three callbacks: `handle_call/3`, `handle_cast/2` and `handl 3. `handle_info/2` must be used for all other messages a server may receive that are not sent via `GenServer.call/2` or `GenServer.cast/2`, including regular messages sent with `send/2`. The monitoring `:DOWN` messages are a perfect example of this. -Since any message, including the ones sent via `send/2`, go to `handle_info/2`, there is a chance unexpected messages will arrive to the server. Therefore, if we don't define the `catch-all` clause, those messages could lead our supervisor to crash, because no clause would match. +Since any message, including the ones sent via `send/2`, go to `handle_info/2`, there is a chance unexpected messages will arrive to the server. Therefore, if we don't define the catch-all clause, those messages could lead our supervisor to crash, because no clause would match. We don't need to worry about this for `handle_call/3` and `handle_cast/2` because these requests are only done via the `GenServer` API, so an unknown message is quite likely to be due to a developer mistake. From 5c86e1c08342cba22d6d24575cbf541b0e730c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Sun, 31 May 2015 17:47:13 +0200 Subject: [PATCH 0208/1761] Added a doc. link to the pin op. and corrected the spawn_link output --- getting-started/mix-otp/genevent.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/genevent.markdown b/getting-started/mix-otp/genevent.markdown index 7f493ab55..20d6ec403 100644 --- a/getting-started/mix-otp/genevent.markdown +++ b/getting-started/mix-otp/genevent.markdown @@ -102,7 +102,7 @@ Let's first change our tests to showcase the behaviour we want the registry to e In order to test the functionality we want to add, we first define a `Forwarder` (the same one we typed in IEx previously). On `setup`, we start the event manager, pass it as an argument to the registry and add our `Forwarder` handler to the manager so events can be sent to the test process. -In the test, we create and stop a bucket process and use `assert_receive` to assert we will receive both `:create` and `:exit` messages. `assert_receive` has a default timeout of 100ms which should be more than enough for our tests. Also note that `assert_receive` expects a pattern, rather than a value, that's why we have used `^bucket` to match on the bucket pid. +In the test, we create and stop a bucket process and use `assert_receive` to assert we will receive both `:create` and `:exit` messages. `assert_receive` has a default timeout of 100ms which should be more than enough for our tests. Also note that `assert_receive` expects a pattern, rather than a value, that's why we have used `^bucket`, with the [pin operator](/getting-started/pattern-matching.html#the-pin-operator), to match on the bucket pid. Finally, notice we called `GenEvent.add_mon_handler/3` instead of `GenEvent.add_handler/3`. This function adds a handler, as we know, and also tells the event manager to monitor the current process. If the current process dies, the event handler is automatically removed. This makes sense because, in the `Forwarder` case, we should stop forwarding messages if the recipient of those messages (`self()`/the test process) is no longer alive. @@ -196,7 +196,7 @@ iex> {:ok, manager} = GenEvent.start_link iex> spawn_link fn -> ...> for x <- GenEvent.stream(manager), do: IO.inspect(x) ...> end -:ok +#PID<0.97.0> iex> GenEvent.notify(manager, {:hello, :world}) {:hello, :world} :ok From 9cdf28d7dd9cfe0ba90b821887b1fc927dd925a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Mon, 1 Jun 2015 18:00:03 +0200 Subject: [PATCH 0209/1761] Minor updates and typo fix to Supervisor and App. --- .../mix-otp/supervisor-and-application.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index b1b2d6cbc..e588f6a76 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -48,7 +48,7 @@ The order children are declared in the supervisor also matters. Since the regist Finally, we call `supervise/2`, passing the list of children and the strategy of `:one_for_one`. -The supervision strategy dictates what happens when one of the children crashes. `:one_for_one` means that if a child dies only one is restarted to replace it. This strategy makes sense for now. If the event manager crashes, there is no reason to restart the registry and vice-versa. However, those dynamics may change once we add more children to supervisor. The `Supervisor` behaviour supports many different strategies and we will discuss three of them in this chapter. +The supervision strategy dictates what happens when one of the children crashes. `:one_for_one` means that if a child dies only one is restarted to replace it. This strategy makes sense for now. If the event manager crashes, there is no reason to restart the registry and vice-versa. However, those dynamics may change once we add more children to the supervisor. The `Supervisor` behaviour supports many different strategies and we will discuss three of them in this chapter. If we start a console inside our project using `iex -S mix`, we can manually start the supervisor: @@ -67,7 +67,7 @@ In practice though, we rarely start the application supervisor manually. Instead ## Understanding applications -We have been working inside an application this entire time. Every time we changed a file and ran `mix compile`, we could see `Generated kv.app` message in the compilation output. +We have been working inside an application this entire time. Every time we changed a file and ran `mix compile`, we could see a `Generated kv app` message in the compilation output. We can find the generated `.app` file at `_build/dev/lib/kv/ebin/kv.app`. Let's have a look at its contents: @@ -81,15 +81,15 @@ We can find the generated `.app` file at `_build/dev/lib/kv/ebin/kv.app`. Let's 'Elixir.KV.Registry','Elixir.KV.Supervisor']}]}. ``` -This file contains Erlang terms (written using Erlang syntax). Even though we are not familiar with Erlang, it is easy to guess this file holds our application definition. It contains our application `version`, all the modules defined by it, as well as a list of applications we depend on, like Erlang's `kernel` and `elixir` itself, and `logger` which is specified in the application list in `mix.exs`. +This file contains Erlang terms (written using Erlang syntax). Even though we are not familiar with Erlang, it is easy to guess this file holds our application definition. It contains our application `version`, all the modules defined by it, as well as a list of applications we depend on, like Erlang's `kernel`, `elixir` itself, and `logger` which is specified in the application list in `mix.exs`. -It would be pretty boring to update this file manually every time we add a new module to our application. That's why mix generates and maintains it automatically for us. +It would be pretty boring to update this file manually every time we add a new module to our application. That's why Mix generates and maintains it automatically for us. We can also configure the generated `.app` file by customizing the values returned by the `application/0` inside our `mix.exs` project file. We will get to that in upcoming chapters. ### Starting applications -When we define an `.app` file, which is the application definition, we are able to start and stop the application as a whole. We haven't worried about this so far for two reasons: +When we define a `.app` file, which is the application definition, we are able to start and stop the application as a whole. We haven't worried about this so far for two reasons: 1. Mix automatically starts our current application for us @@ -104,7 +104,7 @@ iex> Application.start(:kv) Oops, it's already started. Mix normally starts the whole hierarchy of applications defined in our project's `mix.exs` file and it does the same for all dependencies if they depend on other applications. -We can pass an option to mix to ask it to not start our application. Let's give it a try by running `iex -S mix run --no-start`: +We can pass an option to Mix to ask it to not start our application. Let's give it a try by running `iex -S mix run --no-start`: ```elixir iex> Application.start(:kv) @@ -136,7 +136,7 @@ iex> Application.ensure_all_started(:kv) Nothing really exciting happens but it shows how we can control our application. -> When you run `iex -S mix`, it is equivalent to running `iex -S mix run`. So whenever you need to pass more options to mix when starting iex, it's just a matter of typing `iex -S mix run` and then passing any options the `run` command accepts. You can find more information about `run` by running `mix help run` in your shell. +> When you run `iex -S mix`, it is equivalent to running `iex -S mix run`. So whenever you need to pass more options to Mix when starting iex, it's just a matter of typing `iex -S mix run` and then passing any options the `run` command accepts. You can find more information about `run` by running `mix help run` in your shell. ### The application callback From a99dd1fb374b258f4a3bea782a20e59edb6c2934 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Tue, 2 Jun 2015 17:50:19 +0200 Subject: [PATCH 0210/1761] Fix a couple typos in ETS --- getting-started/mix-otp/ets.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 3cf04dcbe..06e79907d 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -199,7 +199,7 @@ The reason those failures are happening is because, for didactic purposes, we ha Developing in Elixir does not make your code free of race conditions. However, Elixir's simple abstractions where nothing is shared by default make it easier to spot a race condition's root cause. -What is happening in our test is that there is a delay in between an operation and the time we can observe this change in the ETS table. Here is what we were expecting to happen: +What is happening in our tests is that there is a delay in between an operation and the time we can observe this change in the ETS table. Here is what we were expecting to happen: 1. We invoke `KV.Registry.create(registry, "shopping")` 2. The registry creates the bucket and updates the cache table @@ -427,7 +427,7 @@ end After those changes, our test suite should continue to be green! -There is just one last scenario to consider: once we receive the ETS table, there may be existing bucket pids on the table. After all, that's the whole purpose of this change! However, the newly started registry is not monitoring those buckets, as they were created as part of previous, now defunct, registry. This means that the table may go stale, because we won't remove those buckets if they die. +There is just one last scenario to consider: once we receive the ETS table, there may be existing bucket pids on the table. After all, that's the whole purpose of this change! However, the newly started registry is not monitoring those buckets, as they were created as part of the previous, now defunct, registry. This means that the table may go stale, because we won't remove those buckets if they die. Let's add a test to `test/kv/registry_test.exs` that shows this bug: From 31b1717efbf4ec84c10ae51a863a1ff3f69cb314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Tue, 2 Jun 2015 19:03:49 +0200 Subject: [PATCH 0211/1761] Fix a couple typos in Deps. and Umbrella Apps --- .../mix-otp/dependencies-and-umbrella-apps.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 8a14688f7..f1ad02b50 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -46,7 +46,7 @@ def deps do end ``` -This dependency refers to the latest version of plug in the 0.5.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/#!Version.html). +This dependency refers to the latest version of Plug in the 0.5.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/#!Version.html). Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage git dependencies, too: @@ -76,7 +76,7 @@ The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, de Internal dependencies are the ones that are specific to your project. They usually don't make sense outside the scope of your project/company/organization. Most of the time, you want to keep them private, whether due to technical, economic or business reasons. -If you have an internal dependency, Mix supports two methods of working with them: git repositories or umbrella projects. +If you have an internal dependency, Mix supports two methods to work with them: git repositories or umbrella projects. For example, if you push the `kv` project to a git repository, you just need to list it in your deps code in order to use it: @@ -94,7 +94,7 @@ However, if you push every application as a separate project to a git repository For this reason, Mix supports "umbrella projects." Umbrella projects allow you to create one project that hosts many applications and push all of them to a single git repository. That is exactly the style we are going to explore in the next sections. -What we are going to do is create a new mix project. We are going to creatively name it `kv_umbrella`, and this new project will have both the existing `kv` application and the new `kv_server` application inside. The directory structure will look like this: +What we are going to do is create a new Mix project. We are going to creatively name it `kv_umbrella`, and this new project will have both the existing `kv` application and the new `kv_server` application inside. The directory structure will look like this: + kv_umbrella + apps @@ -156,7 +156,7 @@ defmodule KVServer.Mixfile do version: "0.0.1", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 0.14.1-dev", + elixir: "~> 1.0", deps: deps] end From 789cce660dbda937f824149fc60d45374dada789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Wed, 3 Jun 2015 17:12:26 +0200 Subject: [PATCH 0212/1761] Fix a couple typos in 'Task and gen_tcp' --- getting-started/mix-otp/task-and-gen-tcp.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 0d9ff67c3..4b6f76fca 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -94,7 +94,7 @@ This is pretty much all we need to implement our echo server. Let's give it a tr Start an iex session inside the `kv_server` application with `iex -S mix`. Inside IEx, run: -```elixir +```iex iex> KVServer.accept(4040) ``` @@ -208,7 +208,7 @@ This is similar to the mistake we made when we called `KV.Bucket.start_link/0` f The code above would have the same flaw: if we link the `serve(client)` task to the acceptor, a crash when serving a request would bring the acceptor, and consequently all other connections, down. -We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that tasks already come with a solution: a simple one for one supervisor with temporary workers that we can just use in our supervision tree! +We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that `Task` already come with a solution: a simple one for one supervisor with temporary workers that we can just use in our supervision tree! Let's change `start/2` once again, to add a supervisor to our tree: @@ -228,7 +228,7 @@ end We simply start a [`Task.Supervisor`](/docs/stable/elixir/#!Task.Supervisor.html) process with name `KVServer.TaskSupervisor`. Remember, since the acceptor task depends on this supervisor, the supervisor must be started first. -Now we just need to change `loop_acceptor/2` to use `Task.Supervisor` to serve each request: +Now we just need to change `loop_acceptor/1` to use `Task.Supervisor` to serve each request: ```elixir defp loop_acceptor(socket) do From dd81201025c1147070655cd1737e3402e9fc0e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Wed, 3 Jun 2015 19:02:17 +0200 Subject: [PATCH 0213/1761] Updated the 'App. kv exited...' log message --- getting-started/mix-otp/docs-tests-and-pipelines.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/docs-tests-and-pipelines.markdown b/getting-started/mix-otp/docs-tests-and-pipelines.markdown index 93c3a83d9..89281d89b 100644 --- a/getting-started/mix-otp/docs-tests-and-pipelines.markdown +++ b/getting-started/mix-otp/docs-tests-and-pipelines.markdown @@ -432,7 +432,7 @@ Our integration test checks all server interaction, including unknown commands a This time, since our test relies on global data, we have not given `async: true` to `use ExUnit.Case`. Furthermore, in order to guarantee our test is always in a clean state, we stop and start the `:kv` application before each test. In fact, stopping the `:kv` application even prints a warning on the terminal: ``` -18:12:10.698 [info] Application kv exited with reason :stopped +18:12:10.698 [info] Application kv exited: :stopped ``` If desired, we can avoid printing this warning by turning the error_logger off and on in the test setup: From fa2c65821d939cd9be2e3ae6f7354acfcc0a796f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Thu, 4 Jun 2015 18:12:52 +0200 Subject: [PATCH 0214/1761] Fix a few typos in Distributed tasks and conf. --- .../mix-otp/distributed-tasks-and-configuration.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 96f653b51..d66c316d8 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -8,7 +8,7 @@ redirect_from: /getting_started/mix_otp/10.html {% include toc.html %} -In this last chapter, we will go back to the `:kv` application and add a routing layer that allows us to distribute requests between nodes based on the bucket name. +In this last chapter, we will go back to the `:kv` application and add a routing layer that will allow us to distribute requests between nodes based on the bucket name. The routing layer will receive a routing table of the following format: @@ -70,7 +70,7 @@ iex> Node.spawn_link :"foo@computer-name", fn -> Hello.world end hello world ``` -Elixir spawned a process on another node and returned its pid. The code then executed on the other node where the `Hello.world/0` function exists and invoked that function. Note that the result of "hello world" was printed on the current node `bar` and not on `foo`. In other words, the message to be printed was sent back from `foo` to `bar`. This happens because the process spawned on the other node (`foo`) still has the group leader of the current node (`bar`). We have briefly talked about group leaders in the [IO chapter](/getting-started/io-and-the-file-system.html). +Elixir spawned a process on another node and returned its pid. The code then executed on the other node where the `Hello.world/0` function exists and invoked that function. Note that the result of "hello world" was printed on the current node `bar` and not on `foo`. In other words, the message to be printed was sent back from `foo` to `bar`. This happens because the process spawned on the other node (`foo`) still has the group leader of the current node (`bar`). We have briefly talked about group leaders in the [IO chapter](/getting-started/io-and-the-file-system.html#processes-and-group-leaders). We can send and receive message from the pid returned by `Node.spawn_link/2` as usual. Let's try a quick ping-pong example: @@ -277,7 +277,7 @@ You can read more about filters, tags and the default tags in [`ExUnit.Case` mod So far we have hardcoded the routing table into the `KV.Router` module. However, we would like to make the table dynamic. This allows us not only to configure development/test/production, but also to allow different nodes to run with different entries in the routing table. There is a feature of OTP that does exactly that: the application environment. -Each application has an environment that stores the application specific configuration by key. For example, we could store the routing table in the `:kv` application environment, giving it a default value and allowing other applications to change the table as needed. +Each application has an environment that stores the application's specific configuration by key. For example, we could store the routing table in the `:kv` application environment, giving it a default value and allowing other applications to change the table as needed. Open up `apps/kv/mix.exs` and change the `application/0` function to return the following: @@ -360,6 +360,6 @@ Finally, we have learned some new things in this chapter, and they could be appl In this chapter we have built a simple router as a way to explore the distributed features of Elixir and the Erlang VM, and learned how to configure its routing table. This is the last chapter in our Mix and OTP guide. -Throughout the guide, we have built a very simple distributed key-value store as an opportunity to explore many constructs like generic servers, event managers, supervisors, tasks, agents, applications and more. Not only that, we have written tests for the whole application, getting familiar with ExUnit, and learned how to use the Mix build tool to accomplish a wide range of tasks. +Throughout the guide, we have built a very simple distributed key-value store as an opportunity to explore many constructs like generic servers, event managers, supervisors, tasks, agents, applications and more. Not only that, we have written tests for the whole application, got familiar with ExUnit, and learned how to use the Mix build tool to accomplish a wide range of tasks. If you are looking for a distributed key-value store to use in production, you should definitely look into [Riak](http://basho.com/riak/), which also runs in the Erlang VM. In Riak, the buckets are replicated, to avoid data loss, and instead of a router, they use [consistent hashing](http://en.wikipedia.org/wiki/Consistent_hashing) to map a bucket to a node. A consistent hashing algorithm helps reduce the amount of data that needs to be migrated when new nodes to store buckets are added to your infrastructure. From ec9d6a777e2aa2921fb23a4cc9badffbb5e9271c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Fri, 5 Jun 2015 19:22:37 +0200 Subject: [PATCH 0215/1761] Caps and code block language hint --- getting-started/basic-types.markdown | 4 ++-- .../binaries-strings-and-char-lists.markdown | 4 ++-- getting-started/case-cond-and-if.markdown | 2 +- getting-started/introduction.markdown | 2 +- getting-started/meta/macros.markdown | 2 +- .../mix-otp/dependencies-and-umbrella-apps.markdown | 4 ++-- getting-started/mix-otp/genevent.markdown | 4 ++-- getting-started/mix-otp/introduction-to-mix.markdown | 8 ++++---- .../mix-otp/supervisor-and-application.markdown | 10 +++++----- getting-started/mix-otp/task-and-gen-tcp.markdown | 4 ++-- getting-started/sigils.markdown | 2 +- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index c16859fd8..8a3fe7c8f 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -23,7 +23,7 @@ iex> {1, 2, 3} # tuple ## Basic arithmetic -Open up `iex` and type the following expressions: +Open up `iex` and type the following expressions: ```iex iex> 1 + 2 @@ -135,7 +135,7 @@ iex> "hellö" "hellö" ``` -> Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering iex. +> Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering IEx. Elixir also supports string interpolation: diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index e73c72456..b16b44b40 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -38,7 +38,7 @@ iex> String.length string 5 ``` -> Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering iex. +> Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering `iex`. UTF-8 requires one byte to represent the code points `h`, `e` and `o`, but two bytes to represent `ł`. In Elixir, you can get a code point's value by using `?`: @@ -168,7 +168,7 @@ iex> 'hello' 'hello' ``` -You can see that, instead of containing bytes, a char list contains the code points of the characters between single-quotes (note that iex will only output code points if any of the chars is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represents a char list (i.e. a list). +You can see that, instead of containing bytes, a char list contains the code points of the characters between single-quotes (note that IEx will only output code points if any of the chars is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represents a char list (i.e. a list). In practice, char lists are used mostly when interfacing with Erlang, in particular old libraries that do not accept binaries as arguments. You can convert a char list to a string and back by using the `to_string/1` and `to_char_list/1` functions: diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 216de98bf..e44149692 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -122,7 +122,7 @@ iex> case :ok do Note anonymous functions can also have multiple clauses and guards: -```elixir +```iex iex> f = fn ...> x, y when x > 0 -> x + y ...> x, y -> x * y diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 9b7b0526a..19a26c596 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -31,7 +31,7 @@ When you install Elixir, you will have three new executables: `iex`, `elixir` an For now, let's start by running `iex` (or `iex.bat` if you are on Windows) which stands for Interactive Elixir. In interactive mode, we can type any Elixir expression and get its result. Let's warm up with some basic expressions. -Open up `iex` and type the following expressions: +Open up `iex` and type the following expressions: ```iex Interactive Elixir - press Ctrl+C to exit (type h() ENTER for help) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index ad2fcd825..9bced9458 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -227,7 +227,7 @@ Elixir also supports private macros via `defmacrop`. As private functions, these It is important that a macro is defined before its usage. Failing to define a macro before its invocation will raise an error at runtime, since the macro won't be expanded and will be translated to a function call: -```elixir +```iex iex> defmodule Sample do ...> def four, do: two + two ...> defmacrop two, do: 2 diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 8a14688f7..440c74223 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -46,7 +46,7 @@ def deps do end ``` -This dependency refers to the latest version of plug in the 0.5.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/#!Version.html). +This dependency refers to the latest version of Plug in the 0.5.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/#!Version.html). Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage git dependencies, too: @@ -94,7 +94,7 @@ However, if you push every application as a separate project to a git repository For this reason, Mix supports "umbrella projects." Umbrella projects allow you to create one project that hosts many applications and push all of them to a single git repository. That is exactly the style we are going to explore in the next sections. -What we are going to do is create a new mix project. We are going to creatively name it `kv_umbrella`, and this new project will have both the existing `kv` application and the new `kv_server` application inside. The directory structure will look like this: +What we are going to do is create a new Mix project. We are going to creatively name it `kv_umbrella`, and this new project will have both the existing `kv` application and the new `kv_server` application inside. The directory structure will look like this: + kv_umbrella + apps diff --git a/getting-started/mix-otp/genevent.markdown b/getting-started/mix-otp/genevent.markdown index 20d6ec403..b26fe59dc 100644 --- a/getting-started/mix-otp/genevent.markdown +++ b/getting-started/mix-otp/genevent.markdown @@ -16,7 +16,7 @@ There are two events we are going to emit: one for every time a bucket is added Let's start a new `iex -S mix` session and explore the GenEvent API a bit: -```elixir +```iex iex> {:ok, manager} = GenEvent.start_link {:ok, #PID<0.83.0>} iex> GenEvent.sync_notify(manager, :hello) @@ -190,7 +190,7 @@ Run the test suite, and all tests should be green again. One last functionality worth exploring from `GenEvent` is the ability to consume its events as a stream: -```elixir +```iex iex> {:ok, manager} = GenEvent.start_link {:ok, #PID<0.83.0>} iex> spawn_link fn -> diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 51afe65ad..9a36d8d9a 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -48,7 +48,7 @@ In this chapter, we will create our first project using Mix and explore differen When you install Elixir, besides getting the `elixir`, `elixirc` and `iex` executables, you also get an executable Elixir script named `mix`. -Let's create our first project by invoking `mix new` from the command line. We'll pass the project name as argument (`kv`, in this case), and tell mix that our main module should be the all-uppercase `KV`, instead of the default, which would have been `Kv`: +Let's create our first project by invoking `mix new` from the command line. We'll pass the project name as argument (`kv`, in this case), and tell Mix that our main module should be the all-uppercase `KV`, instead of the default, which would have been `Kv`: ```bash $ mix new kv --module KV @@ -69,7 +69,7 @@ Mix will create a directory named `kv` with a few files in it: Let's take a brief look at those generated files. -> Note: Mix is an Elixir executable. This means that in order to run `mix`, you need to have elixir's executable in your PATH. If not, you can run it by passing the script as argument to elixir: +> Note: Mix is an Elixir executable. This means that in order to run `mix`, you need to have Elixir's executable in your PATH. If not, you can run it by passing the script as argument to `elixir`: > > ```bash > $ bin/elixir bin/mix new kv --module KV @@ -81,7 +81,7 @@ Let's take a brief look at those generated files. > $ bin/elixir -S mix new kv --module KV > ``` > -> When using -S, elixir finds the script wherever it is in your PATH and executes it. +> When using -S, `elixir` finds the script wherever it is in your PATH and executes it. ## Project compilation @@ -215,7 +215,7 @@ Finally, the stacktrace relates to the failure itself, giving information about Mix supports the concept of "environments". They allow a developer to customize compilation and other options for specific scenarios. By default, Mix understands three environments: -* `:dev` - the one in which mix tasks (like `compile`) run by default +* `:dev` - the one in which Mix tasks (like `compile`) run by default * `:test` - used by `mix test` * `:prod` - the one you will use to put your project in production diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index e588f6a76..471e92c66 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -106,14 +106,14 @@ Oops, it's already started. Mix normally starts the whole hierarchy of applicati We can pass an option to Mix to ask it to not start our application. Let's give it a try by running `iex -S mix run --no-start`: -```elixir +```iex iex> Application.start(:kv) :ok ``` We can stop our `:kv` application as well as the `:logger` application, which is started by default with Elixir: -```elixir +```iex iex> Application.stop(:kv) :ok iex> Application.stop(:logger) @@ -122,21 +122,21 @@ iex> Application.stop(:logger) And let's try to start our application again: -```elixir +```iex iex> Application.start(:kv) {:error, {:not_started, :logger}} ``` Now we get an error because an application that `:kv` depends on (`:logger` in this case) isn't started. We need to either start each application manually in the correct order or call `Application.ensure_all_started` as follows: -```elixir +```iex iex> Application.ensure_all_started(:kv) {:ok, [:logger, :kv]} ``` Nothing really exciting happens but it shows how we can control our application. -> When you run `iex -S mix`, it is equivalent to running `iex -S mix run`. So whenever you need to pass more options to Mix when starting iex, it's just a matter of typing `iex -S mix run` and then passing any options the `run` command accepts. You can find more information about `run` by running `mix help run` in your shell. +> When you run `iex -S mix`, it is equivalent to running `iex -S mix run`. So whenever you need to pass more options to Mix when starting IEx, it's just a matter of typing `iex -S mix run` and then passing any options the `run` command accepts. You can find more information about `run` by running `mix help run` in your shell. ### The application callback diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 0d9ff67c3..93ff49f9a 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -92,9 +92,9 @@ The `read_line/1` implementation receives data from the socket using `:gen_tcp.r This is pretty much all we need to implement our echo server. Let's give it a try! -Start an iex session inside the `kv_server` application with `iex -S mix`. Inside IEx, run: +Start an IEx session inside the `kv_server` application with `iex -S mix`. Inside IEx, run: -```elixir +```iex iex> KVServer.accept(4040) ``` diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 21da80944..5e8300541 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -96,7 +96,7 @@ iex> ~w(foo bar bat)a Besides lowercase sigils, Elixir supports uppercase sigils to deal with escaping characters and interpolation. While both `~s` and `~S` will return strings, the former allows escape codes and interpolation while the latter does not: -```elixir +```iex iex> ~s(String with escape codes \x26 #{"inter" <> "polation"}) "String with escape codes & interpolation" iex> ~S(String without escape codes and without #{interpolation}) From ab976fc8868396365027e39988010fed2cc82337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Sat, 6 Jun 2015 16:14:16 +0200 Subject: [PATCH 0216/1761] Add Erlang in Anger to the learning resources #521 --- images/contents/erlang-in-anger.png | Bin 0 -> 131240 bytes learning.markdown | 8 ++++++++ 2 files changed, 8 insertions(+) create mode 100644 images/contents/erlang-in-anger.png diff --git a/images/contents/erlang-in-anger.png b/images/contents/erlang-in-anger.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5b1b7e3bdc26f396f770a99da4f61e86be5fae GIT binary patch literal 131240 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

        Y(%U21E;RjcNW#R#>$JnU4mToIlp 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 + +

        Erlang in Anger

        + +Erlang in Anger cover + +This book intends to be a little guide about how to be the Erlang medic in a time of war. It is first and foremost a collection of tips and tricks to help understand where failures come from, and a dictionary of different code snippets and practices that helped developers debug production systems that were built in Erlang. + +
        From fd8c4777ec3346f0194f8668999d281b2fb0dc2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brian=20Dre=CC=81au?= Date: Sat, 6 Jun 2015 20:46:20 +0200 Subject: [PATCH 0217/1761] Self-host the images used in Learning Resources, better quality too --- images/contents/erlang-in-anger.png | Bin 131240 -> 0 bytes images/contents/etudes.jpg | Bin 7677 -> 0 bytes images/learning/elixir-cookbook.jpg | Bin 0 -> 64370 bytes images/learning/elixir-in-action.jpg | Bin 0 -> 48358 bytes images/learning/elixir-sips.png | Bin 0 -> 10462 bytes images/learning/erlang-in-anger.png | Bin 0 -> 130476 bytes images/learning/etude-for-elixir.jpg | Bin 0 -> 19819 bytes images/learning/introducing-elixir.jpg | Bin 0 -> 48806 bytes images/learning/metaprogramming-elixir.jpg | Bin 0 -> 39011 bytes images/learning/programming-elixir.jpg | Bin 0 -> 41898 bytes ...e-little-elixir-and-otp-guidebook-meap.jpg | Bin 0 -> 39259 bytes learning.markdown | 18 +++++++++--------- 12 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 images/contents/erlang-in-anger.png delete mode 100644 images/contents/etudes.jpg create mode 100644 images/learning/elixir-cookbook.jpg create mode 100644 images/learning/elixir-in-action.jpg create mode 100644 images/learning/elixir-sips.png create mode 100644 images/learning/erlang-in-anger.png create mode 100644 images/learning/etude-for-elixir.jpg create mode 100644 images/learning/introducing-elixir.jpg create mode 100644 images/learning/metaprogramming-elixir.jpg create mode 100644 images/learning/programming-elixir.jpg create mode 100644 images/learning/the-little-elixir-and-otp-guidebook-meap.jpg diff --git a/images/contents/erlang-in-anger.png b/images/contents/erlang-in-anger.png deleted file mode 100644 index fd5b1b7e3bdc26f396f770a99da4f61e86be5fae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131240 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

        Y(%U21E;RjcNW#R#>$JnU4mToIlp zC;{_c?&#KQXw!UWH>EH*U|_}a)=>crUAGM(=Slh zva+fTBi-W~!+GzW6W=`gxVh@rVH@)N`eo1upwC{PqPE)TWfLv;5z~6?HIKY=V-6}2 zAG3JIqD3U+D?Z~>yEq+O+g-SHjy@iCOWDm#KUG+_7b6}Do6|pqp*LtVl1%eN?vf%S z<6tZofii>I#OaoE7v{B~08S8B2ScFAHaA#8NBX!}*zA;eLjzGa-DTK(O$u2XXx7mk z4p|ANP0<+Lp}BHw+Ys?b4;%R8Y^`zS0~eWDx&Z2@UKl}lO`0izT)GCnrkKHR(z62>d{)s~%FW$YqcMHms4N@KIZ zY`}z&cD=U}i|#kCX9(k+&6s&SynfecCFuHK2HOc)`g5TM zXZj($%*=4vLlOXz-Dvu4)Pn^lB=*IK!sSvxz_7&2>>kjW_>4M-!As%V9(`ui?(v4D z@LMbcS2^(Ns>~6J?3<;x!j%e@67NskdGeqshE{242o)@LSY7irTs2kFHs)kgpG_Va z$}QxLt=lvjCBQMc2)wRz7k7aKXN529q}>epRRH$~^g8!kp6EkqZSOqeVZMvH%8`|P zos?|$z-A98!;zmuA0R<=TXf;95$(t3 zuV0?wgEd(aSbEZ7CHh-iEhY;a1nO+ht6HEuCfoGY+(Hu8?2&v1)=9*(Y-LVgKf4C8sm9I`#K2P<(%9W3}LTm zWbGaFr=}!5kk0oQEiT|+WA2K|9}FTiBpU$eJ#T+Y^+qzB)>b85{bE%WGIoT0g{x#; zLGC&vm$;!RC8fAG3UGgT>&WfZ=Hq2mVl-dE!Jb!>{O2&wTW=mp$-e!Tm@Rc`Ii!)C zJaG5U7`gvrw*{RJc28ug^ld~U~np^bn8=7Mc&i(C3oMZ2G^mIbP3%gTTFN#k4 zqYEro`+QDCGB8MW?z06FQo9j6`=T8b=JuG_I4q_&^ z6pu$GX^_dY*Jm%z!aPzl#8&kXuFWbN)){WE9A+-dz`~^Hrb2i}+yd8tpT%pM zL_edruhrT2ktxTu?h$h*ybJUJt!iNqoievuL}qpPr)ui)EV{WBGVnCEI+fDDPdA~z zGshIH$lK&n=+WxdMg>Q|+Gd)$*<~mH=So~bl;RQsuc6|j)uW#K^MYYn3}Zl6Dm1!v zVx)R<_`cbUANx?mC=nXG7`N3eMwC0L&Cn~M1XiT0vXpbLH=|R;Cv6Et)2Pdab4w@6 zMHMTk{qV!?w^o$y;QFJ-XbrkIALNY-zJBM<*jW2KSJv_s3OjZpu^akUvT*9oofD_t zShOY?4VsGZUgVRd6c$F;rEDFn8C`N#x-Ju@lStIA&^s)Bq<@o}h~!g53YfeiK1+V4 z#bUGd_05>Lzn~lQmwQu1_`FP%&$<|rD9Fmh>C^Tyu`6h`ur%o39<8?T&z%T6)!gyH z$)Y@P@akxeTH>FoA3|$CDI~kysZKx_sXB%eATsT6YL3z&v#GgIYHcZiQPU*{HIh zfV43;lWvo~+hTH_|M)yZtpryyQKk%5V1+>KAp;P`!`o9-9yV~Q(&ax=G(iy}PNl)hyWUivI~g%ZAv4hA%59s4gDk46 z!?1~sI)HDH;BUKZqaCKhj=#t)l(%nO(5P6X7_#m?Qtmzd%x@b~RdguNE-rWD0VCB@ z=|8;*q=^&rO|8-yJm)Ddc!$Dfz#TB~RWjB>7EESn3M_PXUPSyoYc;_AaA(PM*=~_f z7(=4mGxo)bLKTXRpBiiL7`vVJ1mj$9=Mfa&EAR?7pWX>atc>XOI^EWBETK;Pz9@*` zZ2sb56mty)i#BB=G&+${Bjr<&rAyKdSrkgR)_u<@Ev~bi1|sqJXVJ*y*4@|gzY0PR zG|?`!$`sTTI;-!wxtkc4b$Mr}WlqilWx`|kknRl?eDYt$y(&&&%m{K8G#z?HfiXzOX$!=DJVwq~?w6g@;XDkyROjl4Bl~D)a zf-pY7U8DDzONBL0iQRtGysaWeDLYdm&|w3wPb89Ljjn2MRpGwFi-KOlKPSshm$BL6 znt}!w2!6ZgBHHg+Yl>8o3eAv99U7;bu7ERkc!fOt=^MR7a}D1RH2Spo2}1pwpM7{_ zzlYX66e6Go}G3J*FI+%fh@5wJNf0C&IupIn7d)l|f>n zxR}dyX@IM%&*b#2Gvu%UTW%B?^_;O-4b+rG_*j1pmNgcT@g zq>Y@d`Q)WhMF0brBQh@bP36ZDGK)>FusP#-h2@x~MGbAz4Ud^Z+9w5>1XRTk#pfQ2 zgbT|?S);GMxE!9tx)5-y8k4yOC6Y_}-PwBh+ZESmOJ6{^JY_|PK)5;+su6LFG`6Gt zerx4mMriJ;7%4aMdL&B|9PjR^6hl+qY3|@>`}S8IJF%2R!r)f>*lw+_f`^ypcifMF@$7#1Ht#i8s%tRv zXt>9;KQLa@fWPz<=#~~FcUO{D5vwYE48N_glpn#fvcgiAf}*x6^3#+G*F4E=d3DF8 zrX|ptCE8hgJwcvs`88BhcX#f${7@Ao~o)e@>gMTm&`x^f1+&Z_65JuRW zbPg5zl;re4&goP?r+WZOuX&eO=o4EHA*)xj*Wor+vabh;w z#qQpo(!Dr29jhD94Cn(}Jsqds`0&Kyr_hk+#8j$+qLTIeCo(FM-2%BT4+Q8792Pjm z4jPpHp-Ky>QIFP}Zn=bgzbUw5%E z0MXhhY&nIsFzJ7F(6?UR)HG54=)6h1*#m`vNruv95m%6Bna!`m_v%n#8##gH1VV@Fn4P@Kp-@Y%^-;Sx{rzRF{35_wiA zcoS@k=4;&=;ze1mwPn~$GE4s%JMIcUZU;l5098mq2eK8j1_F(Z0o}^TOE00g zUDVMN7**nON+i0u7VjvQVk9AK`agJn2D_50s=qk9i%{X3QW9*gL8 z`mGbk$9lStFCGf)3O`>^SMpE^*Qg!{JS8@jn|pO5EkJxR85sO89ZE~Gy!tY#nUCN5 z=w-=IKmEExi@SC0V7lDj&!uI7ZsA<`W_D@8?+-8L?G@d>?eQEI1}qN~qodxs+A6vN zso!UHDCfNsPqGg0O1Kn#F^2T&yhkS1g;c3jm@IkWp)(u>PUL==zat9V_{NS~?zymx zApi}V#AmXwih_oy1UFL&H_LJOViZ`5s9mv!Dv|{XAK6HiK?9CoKz&Yj>vmL@zcG2i zoF{s!MA_~;f=`;u356Y^j}@O~V_ImrcQz5V`sd~=@qk6}y^^eviO7_ZL|aHfKtcN} z$?IEDM^`Hg4)4X4bxCvSz>+wQVHoxB-tG>D6T+(B8R^(Kusd7m9qa6TZ2yhT#Of8IrR0bDr z087*2suCOf@jPWwAYW@1JY%!A;0sKJ-?e+~*GzI54@DP{Z62n#9E-a;m+c%E|85G~ zq{ZDgw@Grg#mCwUN=uwFaCDOyp$6cWO?;HJqw^x*j%&(uIr(6EO*IB6?qr*)@Dcpp z?}N^;bitJ6zklOEfoakCPrt1u0>xw7g#kD;k($05oY(RZWo+8-cU(-ym(AZgQy4!j zOWVQ*$yiF`q(Zkbj4aOTT|-LO#UD>jV5&)1dUt4aX=xlwP8{`g3R5Pw-c)%c;jFHBCUmqqKFmd3J2v~U4$F=WFiqkT( z=TyKgJov}a(-QGeR85f~tihncc*uka;q8>O%63f|5zeO3s$hQFi;y&CZJ3AE=1RQN zPG7CgNI`AYHo~gm+wg)Z4peO>?r!GInqSAv68-bAn-+)`6Yj?3sWP_1wWqXJIsuQxAW5J&m&+LeZF4Q)JP6@^PmO?aC_{^l(l z{poJMzcbCbV%{xFVq*iY;~&g60CB4RFx7gXrq36^?h4O(Ho*5h7OXGRMw3`bOa=3@ zi>aMiNOH5G=}R%&N~kJyc_Bh8v(_GNs*@-W&KXBIjfo?NNK)u)Y4vP@1p{o5jOl_S zAqY0Mec|h3RLDCBF%LV%j|EtCmJy?SPW3ITp26#LTxTq)E^tu~O~u5*<#u=$lI6ek z0B@|UD>I_vvKS2ANK%W~5}XmP=Fk>aVq_YRIjN&~-c6slD^C(0deS+GN4WHbLY?6F zsg=SZas!Fr3&-Qf8|r;q7pbJi7;bKcoYU%Emq65j@@Il1(VSE@nVW8%BYqKlCRB3Wv;bxWnTne5xO*K-w?lqdGNZXV%SbvX3*LLa)x+mKkXOJ&%{E9^O}T)N zZVcn;X$z;gSj!VO!6S|(UB2Jd$k0sTHMnF_$T4f?icnU+9;IjfHoac9XeN}5G7S_@{QP?Y+eCuWU|)oC z-z(;f(F<~z+i@X*P#GNO*w92acGKofg#lA)#R|Ay^ERv@O??(NU_~qSMFghO?3#cl z0GN`ND=M7ICM-q|@F6IlQ3 zENT|eZK65N!>#KG^z#mPYdG0vN&$J00T-Dmtwj<3 zAgB{>f<5b9=$o>1TtcUVn+I#90Rf|-$upmQb+~*-#QnID=Y(pU-u&aO1P4-&6JlK=`18>&7N6aavYzM{Oz{xhT7Uj zfE78Gf4;Zn)6=KxJPS{KeVbB1tyJc*U!Sx3b64ymK}4i5S5)G19FLE9Lbj>0QppWQ zafF!0V3%}kY|t>OO7}hA?|I5$aU4$$$5ho|B4idxu)a$lPUQNxR|~7v{>=9g#P|qN zqg}j;Fhw~P|G%X0ZM;xAMm_%L74V6|HE8(nE3e^!Q!&;LwlE7_5So!el^Xs-? zkilhF`R4~oOnh>&E)*P=iaEx&ovc$kGv_LM@KwRmB~Bc4rueGdq@T;Ss*#F;)K|}Z zzdxDM%bJMlB=|L4Uw=ol2hGGSl*(r{*I&Mb!gb{u!JBf)D0(g%ySQ5X{`xI}4w(<{ zSKH8CihUI~8;MyxO@o8PzRRNi5(*8gJ(?cQu-*>89&B${f{L9=NbQI<)lp=~NIlpF zS!tB5P5)OJAAO+;giWfE>dFy3k1Q9kd{Bm$**I8yn_(4VCW|CPKo0^e&e?zSSc%p- zlou8!g_KR@xvA|&U_Lh3)+4?hlz-8f5HXZY7=!lyT^`evVGiS%QvGO?9%k`KMB|nU zlUk{*D8b`_)poD0WB}2L8nM$lSnH~)ntH58E-uYj?)SR?|D>)=-(`tLdw7w1_wHHO z-?=}bw2PsV7!}fL7c!X-F#~aVSP2-9%_#x%vhL}ae0JZ<8`lOkRJ4cpbR0g*z0J?n zj#4WerKv*tDa3E6U?}{BEQ>$e+3zr&ze1%2RZD?ez$B(YM!iK#p#Z!$u5PalH-@c< zaFGcqCWh(_4Kj)#8LghGRh6(c7<8KKps7+F|51_!%;%)aG$BZp$~B4#V$E$p`#9Nb zpdsh4`pSPCoxO_NKoEde(nh=bTX`*8KcJw4djWI0HVLS+KscZ)Q-yE@<11XaaNHzM zkisO8kaT&GJWXCB-=2;u?#Bkt&d$uv%r_hFzn(N<{?!?`8H$snjR~Q;O0A1|xZN4j z_w%&`+N?lbB6Y1)?P!;?5vB|SN4*1l^R9EZt|}NK1`YHad{ucR=QYC>f^AjTb5(Gb zr~qc4@3vNIE_=n7OX<{Qoq&4L01{b@hnB&punObKv$nlX`D*Qx{=q`0pMU@T#1tc9 zt|Q-{jyY7k+TOjnbLbqEuU+#91WP8S+2-JH9LR2`d&iSg`?|-+!*lKsS2nQ*2>pJE znS`@rZ$lK zw`?AQb2p=DS;OKa3C(gUR+alJEhQsmp9vt9F$Y%9RDL%`6bOb_vdMj=F<{vx&X?E zZyDGE6-h!X6GkX}pMTsRKDj{<$EQ7FJ?x+I0Mgt+^jpWlrMa`J*jD!YE}tMjAGhg* z+U;(ssgn76+YCt7*#=_LTT#>IiGSxeXg(HIwuno(F*GYs+brjiSrd&AqIrM?=o+5E z$ZqHElO%w*ti;L-B=mOJk?n6X0l0n>N^4cm9_O;<;FZ77qBB<4g@_{SuQysDZ(bRb zUx~@31c(Cdr>9!d`1=WP=nV+@u0HsB5?L;p1#M`_NkshOG?xOii%j zZ8p7c!v|2B3X%I_;UijU94#JUbEI#X%<_d{Ltfyb4gj#2c?$V4|I7t+-=02-&)5Ol z;{aD%&{JwM@)kt|Fn+FfZyTOnPI(p^0dSb@T#9CktVt_oDLq2r63cP7ohZI^nVkaD z@(N^0N;b84es3ALOt!P8!5B$_Hm51vfx`|moY*wMyL+*>P-Q>QjhriqZ5Vj6V00IH zo5(1hDp}VS7|wUqQq9{C`mQ}z4LFy-)}0qIW?&bh{OaIzm`eC`_J{z zz?#2%dB1uI(dscL=spW#vOrG=%{3FvqZMhEakUPsFxZ#}Vq&1|g)kd>J?wm12am3|b2f2Pq%ng9~;)pBR|JOEyaTu@poJbG?d# zVCR5tJfqNIXu;Yf0wdM60o_)pED5oxTLrXy;&B8QVSAdj>AlX0b`9a>v{Uh~t?H3* zt&loMbxXvcwRZMG2`GI?+G-7UN+hZAaDa?KI=GS(p#z+=-Snp^8~syZgZv58dJu>2 zE*XP0zzAeix=_~bBViH(yMQTUL#Ylo3@f0FGEp%Eu|@L44Zj#=kb;ji6KMnFPr7<= zhlY50N!4tyoZ3oRa-bxp;IHXU=EqbcYg+b)de|Y@aj_7zwnUgyaSzx|$SHa6=0OVrXbW35Z)%ts<0C$_EZ1 zMbHX09}rOS2_*Q+pTKVli>MOE-lntj&OFb&GtaA<&^g0|bQq)rqe79pJaM^%NnH|;@hq(qv zr#-)ot{PZ1N@+w{st8eoNFZU8apNX3 z8i?Q2tF&$F;LM0*7a19}k=Q1aN%WKhP%vuQ+)xEhtLQ+|3ch7ApakgG0a{=Mou1Pg zk)UCK3h4a8p6Fi?HG)(d!&)FY-O9p?kuGsXo1x)MqsstnYn7%8DzQVYpebec_hZ*A zH%Z;8R5>Sk8DFhXSjE5T1S_`FOBaNj8G3hcAZj$(5 zw7Tr}lne1Z&&vltS~=O7cF&VnR{>om@@ zep_VDM6rcyJGNpvOktz)5cgVMH_p-F3H1Z$QlXG9$GAMXph`}HPx^Q}OSm+sl9+5t z03az+K8u6dg`%SbftxHRsWwznrEXB-6N+iV4CSnRG&L&B*rUrQsZ$=eql?TGe`UHp zK0qBt*|+b@&ll#l&2HVAi~2CDpsInXDt-#nqK_!U>hGf%CML#%->#SQz%Zh&MS*ys_tF>h$NVq0JIA)hr#U&YG zJT+^VlAh`k6O7TUj|!inh=@rzDD{9i8b!89WiXF8T^KBdrD6af1D65(kW5RmE_yu2 zBzEG6)Oka;8LP{hQEz)%1u?cAgB4oqdf`C$3WVo?fJ5^~(<~FquD1lqLisxGq;#!8) zN+dg4LznKNh#|Fv2c%K(rz#p|Ue`%!fy*KU+{RU;FFd~T!hW>fm?f{N~v#3~hxY9<`Ss48}IqS=`o$9U4w{nbC8yg55nuMgF6RIaU)Oe&9K3hC68 zC7l7%irfnkKz67|*mV?K5P|BHa|B|4``{?Qn4Ny4n-tHk0`Kp&)wVH2Tkw^UOl55qF@dEyMItHkQ(^09t2o^l+^b&&FL zb!odApPIz5U+nv7A5nI33jV(vf`ElG6Nq1pi@VaFrR#lGj@dIjHbdW~L|w{=6GL=` zVy0n9VOFX^AZ?<)LcK<(>xLIATsaXp%0{gEKJk0N8aM*H1t;LCXPx`AW~U? znow703ZBnPjMkFFT*jmAtda8l01+)S$&3b?ZN*-Yrb`7B%a#Fj2!Xt;Ol^kban^Y^ zv|Zan*Am%B*B4mp$MZ2Ux#v-;@f{31SVCE=>vzMF&nMxdR0&l0K+!QvwqaAp4Wn?B zr-O#7ugma1o@wL>x&@RaR8TdD(IsFZdlOl5Za$mfwn~>gTy}PG92KK4zx`qXy$u>z zrN>ZG4M8GBJjiq?b4jyXeJCRcm*k)0TauV$uUx%J0Oj2jQbCs(N2d#kA0$P0i`om~ zI3TNRJBoDNHL$R73&qIs2)Pmp3Iq&Rv`e~!<(Zy{3AmPwQqq4!OLC;}2F%K~BakDb zqL>+^)finpilOFpoFj^gtWp zckx?zimC9}3{CcGs}u-i3w%*_X+K|>p}IwC!bhthd0LMdKw?OtBUYrUB5pc_mW~*k zmdg$vCzV8e@c6|o`7@J`IXXm`o-BhI&MJtsZnWW65Oy54VMTOc8jn)=iXt9c6baGQ z8H?aS4BI}H6g6vL*Z@=x!VeUkLRwnEBFzAVMSU~`Gqs9pcDRtky(v*!4P=RcLk@A- zBP+!{L0c^71PYI?nsq&qB~)PVmr+o8cv;z7?xQsBC1Rxu@RoB@;=g!6jB=E=V%94 znoO%w_-~NOptop@*4$zPNH3aL7BDc2PN-#&q7gZhUleYU86GYt=~Hn9XPSD63Pho<*WoGEn3Un(m z8cT8m7dO`w_KS4Srfe_DYG%#gm!~)9-UVs|+ji|zb}fAL$(xJY_T1aq-G;S-F@mCx|0vC=Zq=_nRKzwYZQ@aVuAB?(; zofF!bd5@{CNyye(lmwKV&`n*(jk8bHvUC(f{beUXho2z@;I>9^O1;?7U9||!6}tuy z0pYh%Wa7t8Wc4}F2}&U4T7N&8s5Izfq7qDsv=7f5EcwtXB0)k*hOuz;9q@n(paMK#&Tir3)xOU zND)v3Q;%G=J~_kr5_2GZ_XkvT4g0eO)Ohnxa?%t`J zSpuRSjB#hKr~2d5z20#FId-^+1NdpF8)N5+>%AC`thA{nP-bL;k&l##%OomW9r~1? zKVL2tLN8QJuvNm?xq9f>Z_B?wAM1r-LNA5zf-(7w?0d=WKJBl?;_^>i8td@qP>lSb z=qV#kfwq6TOuNPc#OqsSc6Le(JF~SzFZU1gTp!B839^fMjPSaA8wX{`wSE5J`u9gf zTQ7xMH=4&Tl>;RnT((5?4ZJ1XfWFFAKDl@A3-=vs;PkTjQf}|x!M5mQj~x^VSwPg0 zulIh)2@8Md7*&#Oud=ds*CtvxUwUZA+J0eNiJmCS5iuAX)~sT0g|Wi}^YaG-mgC_| z4jh=je||a0D?U_dojuz5*Y7_Zj=H6UYxi0sJ*PtW^GYo8l^;0AL4NA%3P}tvRaPG3 zl$9Mj)=h+ADITu;F#kIDTjx;_dv&XuUHS3V?Ps4r>-mB8rJ!46D~J2M|GHf42g|7< z2Wv|IZuV_=h+#M~_2{A1A-e`!_Sps+9hzkSkiLQiWzVkJ#ck|>8_&JwlK zdjnd{r1PNxZ&1sj_C@dHC5G; zL_X&5(^p-7?Ts5YuNJcaP;c$! z2R58~>BY;%ERYjSAk@8wVPkn}6bCnK*m(Ypo9;NUld$3|cF8QR+<|HjN7bz>o=qTL z`EdJX{}Od=KW&y_ywE~n1uB%$`n42WD5sV}IkZqvDG1_L#-XWlupqJmqMVVm+7=uY z?S^vb1_qqp2*G(un#R>MP0Uamn-(rwGln#oMq_5;or!;dzZWn3F7V1_dG_+Y&-46F z&GLc}9~&~PdTxZvbhEQVNFQpLYG_tmk7KX~?S)n z!J2hQ;%X6h3%d^@CUG8*d|ch0H5NT|I7<2l;%OadiMV69%|&><)9xb=j|8ww)_lItkv`jt}-n+;_yX)ORx~BZa5U0YL>IPlDQHkIjlCCwYvn|Z) zrf4^xFmmPPVsViW$z}4gdFnK&ihb3oaDjKE*Xtn$2gwd}+k{kr3rtWKMk*(8wE{ud z{_ZIW*A3XHzm#u~a|CakR9wB1}7;4r&z-ZK}vyFO(skyuLg}U|pQpmKOZ4Crx?j z8O$6S!CIuSQi)jVGQQ;M@3S4DWlBX8@pKwfz{|tZo0d&AAZhq9Cy|)}jn{M??Bw=6 z1{VJO&=sU*%G5OH!cz%}7?$wh2tXyMsz^%Wd*@4}@TLQM@d#rR%YZ#ehWAUgx~xoR zyH2AUKw)hZK4Hkpc@wV`jSQkGoK^@ZhhV-aA8I>YvBDFDZa%l{(=5p6=XG`8B=QB- zA2yakGb+)Wk+^DXX_eG`<#Rv%WJanr6~E1BWw*B&_;LI8cU!mCFsW9CHxHcnniZ49 z%`O*CY)8Osbiw6n)akrzx3t)iIXdZk0h$rP*?`%+Z0-thA@b7x-$Oif0fd|VFC`kY7~v!Jj|U}@y;8(S9_ClwO0lIqj;_4lc? z>PS`!g8&6jJpBx`^+0ZD%G7YBVf8WGpAGai1c{lzb&k1#nD9bS`}Pj117tx;REua` zVN?t%%Y~#WS|u!`z*rUvqX4FfE;BdJTU)Lr0#St@n^}X~J0(N(m@r~xVN}T7R4Pf- z7G;`(;@5^Np^l>6tahI7JtWO9ATo@aSDL7OW)7qJL(BTj<$?a|2TqWfZ?=>wN+Q|W zSjkyg`OiN6cG}F&IAi;*uRr~CdwXe&i!F3`6Y+0OCq(U$P~`U@OmzbTM!nSN_>2P=VprZpNBb1wY>7{7setrV^!CBq(=K%-&hBw)4#`pTnC z@SS{R+D~{rbg!nM5OL({{c1Pl93ezLKe+ZFK z*Y{Ew37@?4c@oE~Z-%x|OqC8l`jhWwd*SspIb0YbYywWKPEMlAsMDiIkN)}wdey1f z;_ymhN(DXYF!oC%&Pa%Su~ZSG^Q#XmNKmu;Zg_n6VQ)}Uy8hlV6L0aGV66cHnVETm zvHjicZ@1tRHJ+7K*%_W9k!SP4iSe<{iLuV~%8tN*zUH#t5v^?J?w*i%(dEPY6Buln zv7f)J?dk7|1GGtHBtxr@HA2VO@Aeuak*r_VOMDlS({huO-%dX6hqD{5q*hDx)l13Q zUZ)WRc2Zbo_TK52eJ_=W^}}8(m;~`M7gU=4`XD+tGRtBipNlpZCzc`!*AGR|z#S3E ze1T9{uJ++=6NJSTie+H6;G6VB>o$zB7_iE|blAvHYSxupk$F@nr9*T$tlC zMF!T@_ehws!|oCAM4r*hebPH0SbWw5;3b(D*JoxXNMUbp-C6=(J2u9J`@rUT2wD&$ z82AIA7@@F86#sc3N}Nx9mq`?^*|`S9D=P*&D)aJkyt5quKdw`fhr{xG(1KHKbX`Ua zW*oo*aNe{_$Ms_T8oBTre{d{fWcr+oiyxq{qP!+UaN#5EOZvW-VxUk}K3Tn~u2tFm zXVoxq$8>;5nQSJ}%+W$2f*YqFC+7*+bT_3TtkgDjh-qL!&fK;-IQRoCN+j)91}QI( zgNjuNc#mv_isoS@zQWQVp@hK^Jj=H%5f|&=+|#(f0>+HjrqdxrF2c{L;s>5u!Tp=rVXvXJ=zuJyX6GRKF$`^8zeHIG>-QGWMxK4;Y0&(B=mOzQFkZ7fIiufgW zlh5gLEl#$c03mnBdiu2Wl9%SaVDN!Q=U0VeM@$i@R6uL++ntyPD3oOgs@k4^{zcX4 zQwcouv2{Z_rLIi4FmwZxM5G=u>MAv4ECgtE3qY^Le~25u!8Z??3b4A_iBEp6hRg zuF0PT^hWf=6KNL`_nIYrwO#9@9svjQ1Bl+G>y7~QNa=5~D|f((z4aCbgdcB@??9O} z_Ugz;Wf&I$t`;9Ne`$QAl9=X4@7i%r??$;;ym$`o+7U3mcnr4Dv(bTN2qW*s+W{rO z4GNe6oVen4dreEL6Q+0))#fh9T%cpMqp+oor8Tm`=DDwSJ5qgnLJ1W7kwr2zhL)53<=ue?}v3ZI~aqiz!H4n;>>cMMHt zNJd@j?KTJ41oj5I2)jgpxxfMh?m)SwOg_6mTR5yM+=sO{hmrk6j?avERdFNyf5qXe zIe5JA5TfqzkAKDwb4yKw&~J5P7sJo+cyp~*EC>V!bOkCIgd!(t;2l>uuu^nbMABOovCByWjSRwgb1%fEFo_~iMCMaSyLt90Xf*JXGLwVX5|S1P4CJ4Ix` zmqGT|_#?4oVP-?1Wj$J@AVBXuP2=V!(SwNf#5dSBxUrHc2vMf#HeoFdxRr?`Yd{-< z1QQa@Q5{|w(#gLG+2pgcjhi=kurq)8iAzDVR;$7oh39YBCt`b*LKIdNakHV!frqPH zQx~%eut%^qxvjj5C>vXZ!YYM@aH$OETETNV=OXSsSER-aC-fvGy~(4s#W*-!bYAWS zMiqZ#Yvk$@0=*cYeKtO^^v2E_HzgrIe}C#ZMAxFQ0K5RtAnYN2_i!09esW^-gEeTd z%mbTaX#ip4Jzc0PDJ+~~m)t{i3pVGinVC+&1LP`b*g#_wIzdcl9H#Eoam3%k z!7KV|{%0o=z1?o^=?QQv@kI{@y3AcY@v%+}uFU_!QR4UPtw#MxdsthhDlb3XP2*yT zo8~R=u9ueH*`KH6(!xlGZ*u+4sG{GWo}EFPOJrinqH~wLbE#|*#P2!ehrtcP3-q^G z;NoR$qNxTnuj*5b%;$C+2ppar)JzvVcf<~9C>7LJG|&SySs9sZSUV!r49PHOS_s0f zg+!+Xn&vw<|7Ip8Wj>K8@Z!Kec(A(BCf7C3omr0>rqN?`Kg2)gdDmN4u*u~EA$Ze@ ziT7eA;d%mzq(4Obby)$*LcVJFAn$3=J!3R^l#m_R6jC}-4i^baTE|*IR3sK2H z&p;d+1QrV?7U)>=eIt4;eZ=4wm-V~KZNYYk65F{x=(Axj@82MXZ~Mo-;ZlS}%lzO? z(mm?(a+hl!hB!$pfjGXi^B*2j4vFeO zv%-JD+fabst@fe2Dl;M=4`*;<5uFHq$JSe8x$xWHw>?MJn>Jf03&TH4%^{itY#bbRvp5J)oX89Ze(o7CFUJwkMF@(7K39DmN`LrVx}&A=ZC8}V zQn_Ow)OjJ_l*-!tG2!f#$rSfZq0Cgl!|aqC8q%gBZQsxhMq17zn+%-~u0BdWeMVFU zz-);w2E?MHf&z_9UG$hZy&Vm%)@dkZaG%o1Rr@O;YIPNh!N1suM+DH#;Gmgcq(FMa z-IS;_R~r7Z#-6_-pIg-W+y*wzw6|8JL4iV%MkFrJdQe!nTGT#7XiK0A!2(0n#$H90 z+w-DOg@sm;TrAZ5!>Kwl!C?sI6EGT~DBB7zhn=f=(EHPaYmi};7d($0g4A(xqaq0r zI(+8NOn&DY+5!e}FYIBqm#UwB_PnsR*$NaYwtTKi2LSqC;*`pb4ZTq>i$ z!SjJwMGt$-X1zWBB%ocw>Oca??iVdLYmAe@4&R;9Qlp~Ff3-3nfUZ|qC={2KpL#Y- zvnJI^5H37a-D?jSqRO)eZLlHK4t0WD>zTp>t&=an$G$gqiSRD5vPpgN*-KeW8eZRU zql$xQqMd@kNB%YIq19qv8f^F8M|pU0Iz#U&b;lC`&LkeQeLE`R;BRV1j2 zLm7@$B zu5Fc&30M=)s$%llS8rjkJ6O^6=+Q632zHlYv_j&ved22d16)tZIi`Tp-99<_0p)%4 zV9+gil}m#*(~DlDL&{)SL~L_qm^-969=~&T7G13#Q~4>Iu4Q(ffPfx%hs*1cha^~S zE>8L;RpVFx&F1)f4FXQ#)$26-=j=k9U*0u6Y1fanH!fP{4Qb?xTmk?>HQ22>2%Qa$A$$!MHGlwawda`!}Eg`4nQ z1DmTV810jYYL;|F>!IK>55-z4MA8{a?eT_6UWW?kbLBD$NUMDFRwCs@4lB?#!2?Vz zx)@~QnsJpF*Xgvv&w|gCUV6;2Fww7x9f2LfK2J!#usj4-zU@L_nF1AF0WjM|qWOiK zBPk2&j^RgGmBzL|jL{{g@Ip4+y6DLimn#9d9i-XUDPLjZ^Y-npZ?8e_YV=M6=`C zXP$9+_|n6`ra{WF?*>Lii`Nmve}9f^Tf;cv>)Am(N5=%c^wjs=Gt2;SFyIYya~-WH+~PP;B0Yt z{=#evvTTG4&p2qfaCqT*Kwc2wD}g!|tm&lVdowzj?EC|L(@?O)i63~m=XvPBFZ*$( zzO*6Q%2#fI*I$9cvL1nrLgKmItHpIk=vX@>oP$ZGDKVS12rQ|bsa8U&2rV`(+oREt zzW-Y{ps4ZmsvBXXK->rb0i^9(?viuFH5{Uqn$2p3Rx~jg*B?C`lpcs3Rs#Zi?o3oY zT5q+8{H&B?1-X7Wj-U>XQWj!73%_XoB{7GG9GiV3ce{!YDx>!P8<2PIYvo!d4}k?r z&7YaOt>Fkj_^Xe_F!Oq_kdgV^EpKQpAie$Eqk>Jd%W_)N|~^27v^BNpW~~O*6;zt+XdJ}VmrL);F~tVNkhb83$-$$mDDlQPm_U7q7``XaxzMUPtX9Ph2$0xA+*E| z&}fh~z@stg#5Mw!d@Kl*lCd=cLyBk5`9EJ8kXjv^rDp~oSB#F1N|+uhJh^gybE|M+ zV20B&b}Ja-r42OTRVq`M#me=x;T+ITET6$7e7_AV^E})_Ku_`~ByLNK$bu&N2IP1d zR8~gfbGNL#w%#j^JbY$sw93pO^nghw_K^hmw5-BZ9X<$OKK<&?@4ou(_Vt@a#gNxw zQCXxL-%d`h4Gj8zj4XV90v7rFZ`zWbIrQz(&Dt3Vkrh#ZSbVK%}wDwTR{DcV~@ zVE-^Vg>ja`9_a4uED^TBN#&-J9)NuZ>TvI3s?R&HG9Vp*F-qejJO6X^(n$Y$UgD+91RM()xOObdDQB5*h8?iS)mZ@XX;&l0Ru zEbHkNm=k5t^_NeV#zi%F$(B7inaRJ^kB-(`n42^fcsqVoeZ6&@5l+D9mmvV@pu{Y( zR)tCMjI6R;$g3FlWhN$k{}@lq%>b-Y?K_#XJ;h%fiEQ^rI{L zo4u&P1mZ0vsi{b&V(pXKgak|C`r%6Z<5yqbet(P$zen%5MMd7Cn}z_7Tpt-*A0ytJ z1G0K1GPd`yvlC>mz0)xJ8e26Q4+E>~j406dA_cL)!_LeA0#HZn1Oi0ed2^*q#`n=t zECk#<9*C|O>D7ieR_2!m#_O?#A4MMB8Q^G`Jg0NFAh941pRyucRaK?cT6_pB#@~8< za=Ma^0$t7&GG+20-p1CDoB`N|n@Bt9ziLK)l*`L?x>=$fJm-|5F*^oDSy+Nd4bKip zMdSB9zJ1>|+8-nfaFGR?nZE;XugbZZSegwU z6~%SWz_Z>Wb8M9sT#qRI=+VrKbI*L7R;qMJI^3Xw?eC+QE$4_!c34za9zFlWa|u+% z&?=ru3V<-A)69qw#Eqe?X$02I2sDihjWn%S1BM!Zv$F-cG}1)as!o|MbiWj+#uV~Z zJNGcKs0x(WR)8BI{MRDL4Ps8o)YYje;Hz{PVzNETetLmlu2S_)bltz%TpOC7lD@KG zG4xIR62*?VeXELJ;=CvdQftYj-Mlexc{y7uU0FO$P0359WBG$_%u?ieR5+6vs$e@L zzQoLHa9R)$1t%y$4%#UkxtznXd0a^l%%cvxd_0W~r!@NBtkh8?UG}crU%o#*JzZy2 zPs1u9>FB?Gjg35BGo7PuLFTiAh#f(=S<8VbV#%S177hdp8%1=VT+MWQpj#UyejqR3cmR2B<0VaK$89v zhA2kJI*|(8ctY5l1=gxD)P)FleXt)jSHyM1^&1{uYZxO(D!0CW;>duAw2Z z9DkHEog$70euv}=R9l0#sR;$_}!>*x|{<*_rF5XdHE?5jI45ANE9;r+I?w-4{alYBVT!bAP!rS?Gw zPEH_d_gV2Ddc~Zgvd@jJ8Ib)_E|pRh_Uh`@7ZKP$|Ac2^U~Q3B-Ea3wrLYvL2_Y+x zMU{PWHQv)Q*C`f96l1|&`7Atwyw~km|HPFHomsLffZCgO89-!v09GP1VpF%XlEW@M z3j`~mrCuW%F@6qHThWM`5@4M;6ao(QC|=+oH(lBKSjE)TVS*PQ!b)T^Jp|jLVsM9y zq&^f06*eod3QqN?G!Pw#w^(Q;5|tVTTr3Fu*|>uG3@FaRh8E%&CEEpkTUuH*or3j4 zKSxs!GcgD7X%>tI)f%f>9nH=}cME49LsT55XC@xm6=>LpfvqBwOu??CLkKF%xTloj zf`oZnt3uzb*K_W<9FLVpmUz+p+><%zPo8wKln(URP|)nR1{mcaA(;yaya(`-K8B+~ zc^UjNF2KAn`FwhJ$4&!A!%MOW`G z%*{M(dHZ2JJ&%O$7}sf`J8$ELR^BZ`bl4Z)>FmZlX3Ce{TLjaN|pN)IQ$+R>SU|Jc9Qr?rnOsLY|hzS{}r7UP=KSKuAt(u4? z=j38Qk%7%U<@f}6OdTCQeNwPoD>s>YwhB^{j_WBWQfMP1$&~ex)x#Y7*Us7q*6PRB zyaQ6VmdTDheH!}f%g_$?yy6cF!R_ddC=}N}Ap?7=XP2%RA+hr~$>wHe!XZ3QLp$rV zgF9#{%*hYk$BIh;R{}a)M5NN2{bGR{z9~-@FumdKLJR>suSy;q;^GjGFi_<3-MxEv zVL=RelG$8nyXs3tN!kpJ7;Gw=q2vtp%4;}~cx2-x4%yi9Zua>&X_mTn?E;%E#(}9L zSUCI8EXQALrQ{#U4;MP5OB);4KueugPg}|Gs_*YZr0l<9FbI(fl(-!yg*kjCT*AaX zL3k$Sx;C{!rlf>75d|tXZIj6W)%R3%A?4Yl+tc{q7!|Q?_zwK$_e0pM90zZ>ad>#2 z)xN6*m-x+|y1LCHnORNcETycB8G zH^qBI4evG}uw3pzp-m??{kq~qZKdGu+H^Xzd1eN~L)fz%*e5@I@9e!-Y?a{%`Gn^S zfo3$H51&DfEka-oh9@*qsvH1K8jfBFtO6xp)BDRz5rdD&k}NI7Nk)MgedIb2>M25*0$EQGakh{{sYZA?l# z^X&KY?~H1Sis$150W9z?F17V=&wN~vQ|rfd3HZ>c@?=80D9$FT-NNl=d?M!{X+^bcMkH3Lu`odP6KfH(hzntwmrP_uJbSy(VVco1H!3 z8`;Ut&58Y}Op-Dtkz+|q^}p_Zi%pL#>d=F?ma2rZN~gwQ6-{Xl^6Uy?uCDmq*E%EU z6b6b-cuu`ZG>uIfjk~r6eDY`ECIn}(I|ugbxS{>=%A9vCJsqob$M?>gP2Faj*RDw4 zDUzyi4#bq{*t%T|s-{7FRJntC1(j00dVp3J2fsMQbwFp5Gu{`TqJ|}HabdTPgu17zRfPE&%rjDFsRgUkg&z@b|gLT;VcKcem}~Cq}HhbE(Qn1#|@%A08T| z{ruPM5e3;geXy~_!D$Z0llr1W5=MV8ZW9&1P*jNH9Y>o9B(CnBJ^Sj2v43|K%*smL z3~Vv~_~XujG4%Ffgd_drjySbF0%J@_Tjm3;c{@b|(-4(xttsH0kQb`2S4|k|wR?FA zEM>g@-S3=+r5bSWi|b0*#mFLs2a|c}$)ueHZc?PJNA(a-MGZv}J1CLys;bILbIZj*9*VKZEV5gbZSKw=XV2dI<6!KcJ8vT= z%n*7!xKzboGs|&XDuzxrAkskmz=#?3G|*$#o;0G6saFNl$#t34*YA3lUKkkIC>B9D zT7o0qdw1w^GF5RpAB$kA=p4eC{Xdq@wC9B=48v1XonqS2X(`%TTKldY`%=VOYTuWX zrWi|U1yNgUA(kM7;H{L1Jy8;sB0@wWRHVcb4IhY*_(b9dxK25xolbj(_jyk{bDncw z_w#hZsNU;?!7}Nd(S?4!JF!B0zui>O#1mDK$><*(TJXA+nV?M)(r1QPx!;(M!EV8l z;}Ye!$3 z!H2`7*$*`Hl zNZQN-ciekLyWFsxOMypg*LLm1sd3oi&Ru)Vf5w_(ZDG&uJ;!yZP9(@zH%xC!ov^uI zC+3%%)ji_0(I3O`?UZf%di1&o?Dp*iIV_uDG==*o1s4qIHTwk#LGnyo27WMPJq|_q zY#><_E?%@a)s3f3j9z`TcI5eER6y;usaM-g&rA7I8h&x2G7!&C6EkE$il_T{_^wmg-k zqVA(83c)RN*Q2z$Hf%m}hRp8IZoJZJ3x}MZJ9g~;L)Mhu*Z`XWLdbF*d+#QdzwwOB zQzZTp>a>L&Cifn=xD6`cXA{$Fs>>E07_x9~RRG-Ccgwm3m+g7H_vEUhsn?IGuF-AB zoiA6oefj-z^B3Bc6)$xoj3cVn@M!xUy6$;o`iotBbC%2>a5u#O45|Lgx;dGST@vL` zIPNi$%$pmkm%8_F+pAO0w!MzOE`pe~rZK1G4uvy*JB4Na67%~Ec<%5^qkq1gpO`Uk zPfd+G?aiYTe_y$BXVTC?_ffAnIe7tn!EPMt>}!Ky;rPB>GnT3??!fm%!WSIb?F9DsEG#7D!?A&M3h#%=)6F7sIUqN~N;z+k(=5RmETvvY#h>GGTBC{%O5^rZD z-m(~zpuFiey;Y+Ni)RcNG+_6e&x&(a`zO8|H};T{dg?La?m$RSqlyJb;+p_3&TqdC zodM-2aT=|OKQ->3mhwk;zT_FV66QN+Pd(&i@%&}h)Of3Czkabu^{rNFcv_=R?ddew zB}p}O?Ws5dwZKj1G>U1{N-C@_+N40GLcc-@Ag^7R3*s}X`m#`^s&~0sD@OBpd=OI_ z_i8jbTpz9;`d2{wb~{Mc2GRF^?d8_3F5%Qu{9k$;n%l{;qZ2xavUL1=wA+omNW1M= z8r-f_DwO*!&h$@Xi&kWjTq41fVlRg-$*k-86reX(A14^qFfn98is^&#&G~P_saDl)m?sB~@?W>#L7_pdVFr=8Y z1H;r6M%nBcERUz=m*=-)S_G+(78oegUDGhIhhbCTHQdoNtcDy@Id_243yw2vnn+}3 zo|uZL9?LFFqFB39@j=3;2WVbHB%_955J#hJ4$*yULy@^3^nEnSf1rL;@Xy$ABOqhu zDPVAlZUj8iRMD(*97BZWO&rJ&Xmt-tM~tb+XuHb^2?4Z}%ds%s7k7CA?eX|YO0lDE z+vVkf4a(Sav$7chRwnBL5soa^g(;6@90C{N%VMS%hZ4oDhz>2qA^A)5x+9SsGOoI$ ziBF23LYN5pF#ri07IPK+9ILbE>Vd`c_}9@qX%M1D1EX6`RL|~APfKBKW>RZ?d6ri+ z18JNVLO>@9E{BDQFI}SAR(PePn7rc6G0gz6wL;mM5Mz>>T_fy{^CMEGh_?zXstJE! zn~u>Omm%m02r*!|Uu8oJVRM9fhR;901GsRT4rD6hGeE{95$AQ`oMBS{^N7dNuDnMz;9Vt0C6;QGSb4Gj_xaD@s=A-c;=6ql?hhD`#8 z|KZIkkd=^s0HqM&xkf0tk$os`yCnh~4nhj^1-LxZ>Ewf9izrUF(3`hpCuWqMr0$Bw ztRbzjmOXp&6f(mtOlc{f`s%^2mkmr*8LfnsIT2H<^eQeIh@_D`vsDY3b-O5Yl|Yo3 z>hgumTgWId-W*zrz>2zxG)mozpfNJTDx$7cXPX8*f%KVlQYNROhD~-8(l`_@D5tRX z!A`^>;s!5Hrz9+y0Lo-u5FhPWT;)+%Oh_PeOdF`RsNjm)v}q&YdOdCv4vBVe#NH$Z zKipVAv6xB?r;ZJY=e}OM4gVo|G)_oZ6^M!+z@Q$fr3fql=}cL-V64rTYi=XfPgadz zz6IM341Ey6G*K9kl(|P|)ORBeGhEO?^dPyR)LqL~sL4@)Xjt{T8}DkWdSp8=wW`{c z)@f>gPcyerYlc+8w^zR!^6BLSD=PwPPBTSlCqmbzx8|3FfwEr69*tCE$VeeK5YN)Q zIV%P&s0UUjT8J&eBcc^WzKJ_uYq|t9j~>m3RACww1|tnK7#$R^13eaLhUlVJP8>Ld zqemEbpQLUe{}6|f9a}Z#sdajnuDXnHF~(EL)!b?Wf7CInG0-LJ=zUu%oO@Ks0>)_} zcPCK}E;W33^I3Rdv9OH-#_n*pXy?XGE{7+P9S#Y-rxWC?smJ1$aITB|P$H5)qCoO8 zoPp{3_Qf6z<`W1H{j+ytB+}RAoJpd)l?wxQl;i%tES){e(@+%0Z<;iHyUlH0`XV$` z$QO__>(hXng4yAqBF*;>MNJ4#O#G?_)vZQ(MIgMCru(7X8);6M=Hsnw~$CD z4Ahg?Cgqp>*g@c+ZB+{62nlgCr^GQwQ5*x{fg)2?w6(l4DP)2mEsPeEo%nPQ`4&(? zDh^#owO6>f>g?o}ljq}vcSWv33+SgXTTWt=82_c_ThcDPHA9!(HF?;*&E!T3@UYE$ zEWQrVX6F0W4Nx)`3eHbOwqaM`RQ4e|{yYq#e|y4^WR1CQyb_ocPPizFtO$?iTWp^5 zUuWF8Yj`GNSM(fQi((1|xWPN?Gx7V>8++`MS$o93=lLMfyp9!Tv9tllE)cm_*E@q^ z_x#QC{S&GJp2yNM@p03Di{m2S9T{BXVp?XB&dbK+6qTZ3p?P82bio2yotgAse-C6u z*oHh%WekJP7y9;IT*n4RCFj^$OV}f~M*NCF%we}h*GO8;Y{?Ihc;vb_Dd&%Gau)fU zbYf&bh~Q-+=}TjUXS_L@RzKq0=ki9yH591z0>y?Z+5}TIVutZ-br<0PjJPd{D+EYK zid=Bqsxun&$uF23f;t#>p>bTl{s;s8>3jzSPm79~tta>H-C(|2pUDN#DrL-i9mUq8 zyOWXB3j{QKXTzYVqG*U|SEs>nGmQzn`!DXldc`X3cb>;eDri_xV8t6%iQQWyQ5jXu z&1_)GHZ^d;zlJBtNXzv zMU3Y&5-$>$k&3A>5RgZN=q1K*Ax|5jRKi2xd$}#MS`}xuB6wq0$T0X7F+N(BO&r35 zu%e5iFG0BClf`fweL`)3Cpsc!L@}nGa1NZbg=#YSEEG255kB6kbvd z8p#HSDr3pEB7P&K#Ry9B>k%USEJn4S>%9iqbUi46f+`1e{Gh*<9JE7(hN6g#I)<`7X>% zpy$dk>k+F<(TWcA0Cgyoz#yysG$hoNQVt}GF@>6tJjpA}RcqhsVih0FLqF^y^t=sO zBJ>6`8B7_kH$z!m(2L&E_f!ZOap4sNhjva@ktBkRRG&Zp{6g#R_RfnUR(K@{*c=E$ zp3(gIRZ|5J$FxeR4~OHCf`NY!lvH75VhCPSf1u6GH56_3O~y}z&A@HJNkpC{aHu1r zj02OAMKl?A>yR?kIR8Hk`LxcUTgOxsc0uYk8i6h_!!;jUe0VAS#k6H#uH`etcYMlz zX#`udnYB)(Ga+5LO8R%1lPcb~@ak6235E_Ag%&%P9F8VF@H$H7x|0 z96*4pI;)A?AkHLul}mo42N1BVwtU2V=4MA3C64S0wkSJ@VdpJ3F6&E=kX_Pj( zYs#7kcl%?bvw%4V&WzZ@u5=tL$IDeZ7z@(Dm`T5LeHvGRqZIhx-jY291$&Ea1``YD zk_bqQ6~IiiM?Rk%lQP2HVVXnOr*~$!>WOHWCC*^#Biei=UPYntE(u)E_eLCGwZ+!C z4OjwsewL+12ea>jf=#-i;1umb0pQE%JMNe?mJ+WlfH&&r&yQcee`O6JPcBsW0)W8x zp2!9*O^EIig9`Z$nb41cu!L=DkB?FpNCTBN$x12PG!fluPoq0nsVVQv;G_)*s!7%xJQ;x|F^1Vr5Mf>{A=!BjMNcFd$QJ zMcBd|B_zbY;2?Z%9psljkPhB^d;KoYYPqvOSTcgZ&wy7PkIFSf$`et*!WHY5Wy$N*_K?1-~v&T33T5h^?`ggiVsyd*;qquP*M z>A;Gzs6=INIBr*!y98ZxqX}!~ES*E?gk3MRrm7!NF6#}*jk-* zQ-^f#=b?`7IE;bI^FHtMe!tK2`unus@R}fA$B9Qo)*xg73_JsT0YqS?_ypz5^$niS z+64?Z>4<0XPT|oSik`4$(^oOB2b!1;D~-n2+@X+fB9huCWc2$~Ni9udkwb;1JXFmt z4X*86rCO>N?Ss6dT1uaLzR}u%y|Skmme7DzfYjN=vkpV=3bZzAjK~Y6E}h>3&W`{+?uXSdEau{ZoreaVIZ8rPs6N0IM25lSGLfE^CU&bJ@B~>L znd8fs19&f?C%`JSuG{UW_2WQ~($v#&a<>Qw!0aKayw}ILbgH{1fL2)A%SDfOoSa~F z!|@H2WBF>)6VHDGJXLG5pS)UyCy;~40~hjn#Ig&BL=3Bk(pVXVloC2|^%h~jf`W8K zDdT_wme5V5QFFC<#nJkzvsY+-)nH!$y7I@}LIc{CcGNE&vGW+^5^7#M!~S(Y<3Ab1Dsr1iV6ynff)IQ+#>5vF zF=iblEL$n2#htONHzi(>%EEt14Ct6(AP_$eu`ppb(mi3k4uJUbB}`18Ca`02iXxUo zi__S5Rne=(xd(Wm;T?G#J?3o2@)=U!1RC(Fb+MYR7z*51X_-D?%iz0wAA(l?rsczf z4PUJ`kTO9ZHUq=e(9tNO5+Sxh$6F%wtqAFO-b+YKW>6Yf( z85m!dD2YhzFjvhRM&nSaVPN1wPDP;<^{qpoEg_cFz~L2)i*N#B+RvULf?hA9A){2` z0rd`Sp^kp4Agdixm}D6F-Veubi+OI`B^IM0g!Bx^m>5(vf!hJfrqa+$%HRL|NY|;E zODX`yPHsQ||B+xXS;DYxo5%pnq68&Ri4I`|h+QpKW2QaKK+u$H#*1Em)e9o{FWU4h zNNA!BSqg)35>cNeK`8Hp%gGuk=7bYao*}WK>Hq+iy1*sH*a8ij7GCQS$yx2rD~eXo z5K%H(=%bu^22_|lnvRg_L5B2LOOiH4+SZtvI=-s536Syvm%#aq0e2Q8F zgynOD;{yfC0Gh2`(@R|(_TZ|N&!EBCIGc3vN+D=fbo;Ptsfc1C@Dg$4j(S)N8a0_Fji zSakf;K|%x`Cnj)}ILvVouwHRcw@q07+L4RrG86;`M;opv5qhp~>>Jyj-B^;K=to?ideLkiL^n5Xzkhvw-S0}(mAk?Ub_)LcfUYhwQQ5rKA;NyM51#5wKI5>J zN~R$YIK!&NPbrVKd=^GQuA5vrZ^^4x^x^FS0f=|6FE13S@fbi7z?r!t(-Tm@~elizMW z-aUT*%rkzT`17w^y}px=e3X-a^Wx+0&ySz(?!SNH`4>5!x%7E`Q-oDWzZ(>NL`DVlFg-Pewu86pKl_VO>=?yuzv27f&1MvMMDGo~I9i=z!LMG>Z5p=5!D{ zj~x^15g=d(09p)elBvN(xkv=(OcP;AmLy`w43EV#@iUp1k( z(OS)yDIYD9e|f`{n6DzcpArVvxHBIiqGUuAT6~#02e*WECMA-J$k|OGzE@})wwUWs z1`+%I4AwnAZ|3N_cp&-0y=(>YK%r&=(QWMRq9hQ|E~S-GO|;y>n+8+ju^#F|H1IO=OQ z>s}ljF?K5nprNHI-dL)Qj$Jh0P=eHSH2XjoCrv7qeHxPGKx)#JH6$Ap(FWYNswdp{ zY$9aoxW}CW#WoOxW!E!0+`-Z+DD*(Ay2!_u_eua%B)8d|fQ%|Zw2Ly|9mo(}7rT4qdI%foGB zI0O3r7V7FJjV3C+BVkn*T`FP|@~@D=w%Q5fMqsBCYqIK1Ba0L+2u-!ZI0)vra?j)9LO4uBA0S0X6M0G_vZ zb!u6YCEyYagge9#HEci&psI8)_ z)*xBZe#MlOaFn<`x&Z;+d?=;uLMlrd0>6VH+S62b5uU6?DLoX2xC==MlU#*CyEC@o zF;K-lrFK7?v##`;M;yIrWM)?G>v9>8IgpszIDH*owi{2Rl==;UX$})=rU>OAZuG1R)(s z^5=l`qOY7)j=NpjOABV3ud`G#7JA_*8AaOgw4nMT z!wf0QRT&Vwih6W&JTjX4XhaQKF{pBwc2+s(PQ~Vl?i*m%EVI@p5Y<4b)f}qAhN!d~ z7UEn|24_cExd2VnpcW2m1T_WZ0SBhy$I)J{08aADEh&J|ugt0*)GS>ym9xD9#ZH5L zD1(s@CRQM7+UD`%!c1`0Zx!Dky?%lA@d#=T@xri>pUXJh)n*+4)oR)!E;ueJ6RE!t z{(94alw|&E@BCd`x1u<1Cr+B@*j1}IeGSw!;D6v@w8n;P3786+@lC=QaghcM9x5;L zlEs6jD`Ckt7>ZG*Ktl|Zq>^VziUPJ-gECg_nhxJ zzF+=p`&LZ`8#vY=7-;qEF1c3#AB3+fG#F{IvCT#%bP2X4p+^H(l~Se*I}|oBnj8C! z)uC7)cxOc9D#F+D#kBxo&B`GP@j`U^r`?+oV(VRSH}0GZ%wD-+Qdc;xkCTCGthFu_ zYn-8u?t)zeHV<@^#B$3e4$iFs6vN;K+Gh|Fh4ALA!Ewq53<^hlbGYSatuL|?x z&=NxP!ZN$XK}TeVtUywBWK!Vs!R3H@G2VW7yk|G4m*DZmSwxE?J>O|$nd65kGZyzt zqh~{()+6&*Y#0C_qbqDG3UJvuNC!>Vwg@@zjjPt}F)N=JH^3^sUEyN_Et?=A5!MQu z6X!umCWX~xU}+@`34&XRP6fwe*|iR#3aTITTqqXcR3G4>)dsK!_(tgj@WzCof-!0xq+Hxz@)}$9*2sy>Y?WlXpp*Kkr7rt2 z9boL)Z%}k4X6ioR-)+lY(MGrT*pk1xQN98zNIB3fELKUVY}QA6pvd?+Hb|lzN!H(> zjZPA(n1Skxm~Qq~s|2VW(YgbPDqPhhai}jDhIJu2xFvMb<>0(iBqAhLglb)MDQ^pN zBB(T7Y3~X|?-`Z6I6+}c4gynPol&F}M(r$4{ctr-vpR)I~poXYa#P;W68i8w@CU(@Q z-SrTEwkmoF(ZPbRWK-ZeMIL zpGsZhbIj3;F2L3;>z!_+i3oSo1pK#}n8Enkcri9na4b`k7rig9kq(h=*3D;lEG*O@ zxOj!VT(6K$VqIQ-bj!Slz6r`Tq{bM#iv!l;Vd8b}Mfl1mJ^h8Yy zMePGK0}Ek85;JxK7u&uoc@~)OtX(-pR~#rdRCwXh}DBE5p#?9_bQGl zM10(dFDonEM_u}iTeoz0!8B)WoJ?LQw%Ggw515Z0t}Zdb3% zHbDW?JcC4ZG{ZInufg~)Rf#K_&`R_%$P5FnfIv_*ImHJ}#{GggcBv8XPs}_5Z|tG9 z8wQtWsXbGD`@a+?&vP{C)18SEGg`hGeL4X0p z%ANVKE>!eyCleC#eFsE4$sV|8ni*d${AbT>rd>qRWTH?&sl->(|}S z?|=UJ*WF^sfA22Gi=7nny}xfUem|DGq>P_K(%C!B1^3Fki^X#Je*Av<{rkmY+tdoN$)GF~j3#5~GyWQ?bi-e#_(>r93SyLUXB@DdQtB1p<3)|RAu#& zH^7W&*Rn&hMpLY~Ap`--hspH8*2HK%PBC)r0KV$>b>Owku5##}NK9nLy}RA{u#CK> zKvKBgjs5bq8Xe|W$3Ci_ziDvZeZP-KW}P3Hm%waCMy%FFvDWv~z6;1y#+i&KA|Jpk z!0q$%JO(%q~y2$Sxw@fg@ZM*>-k5&KR^|>h|Q56FPmwA2@TO=?Y_#l;u!nDkCsov@t0`OguY&BS%<*SCH6p{aa$Cl-f)6dGz<0#bm z{S;{!u`H$fEzHvS*LBt50o$F|u$6irr)H_qKSUsJg z@^-Ct%uRGIw&1Yw!qroe$4NNZrq9K8tBXkK6{0GTRfu&F4U$M}2b&t1)6&oj99N}t zM#GzLUN)N-PEtX-pzo{Ad;LHbEbgNroWnvTk_ zk+Au$K*Y86uB9QBhZ&1@AX&QIo>R3UAha^BDL{AnZC9C4;1QDpq?1;Dt_aqzof z({#OhS#RTl;mmy^qL@HmTmvYOX_qn4JpN@Fdq7F^Db|*br=>!BLZuuDECtb??d9W#t|SpfF>5K;DUXNeM_FeW$>Lwxn9TrR zs2Daobditf=uMDn6)PJLopqHX&vjTJ5K&wi!d&Ne5Xp2(z}GSUm@07)5FSDRQ8F){ z=c`D2Eb)Y*IkJ7n^}?6Pc0Nxi<_BXGFlpvD=KPiu7esiY|u3kymN#UmgjA|kqlOF~LaNQzHL zM0kw^h=N=LhG0M-7=+kZ*o6Oex#|Sqp#!!7btphQ00<9=f(N|n22dbL1)yA$`$qvG zNkj#rT~FT3{dE!uK}Eaz0=R_&1c0C@Pyhh<@r=92@8kvn5IXv3Wc#KAGSA7^sk-T4 zghV81wBK}?$=UTpZ(u;GZL#j(FX?)#nLArLdZd3!Im3r5t62KA@-X<&G*_|~!T;k~ zqh@YBMU&q40foe)Lemke)StgMJvo(#)VOy!qM199Byw4ri+%5@#N#7B|3<_W!1%~- z<%0>L&$7P}SLCU`-qE|MLE8hjL$9&IBO2M2?k;(iLi6!To4c*4qW4wEPsazjoD|l# zeRh88o0iYGwxwC$epGI{*Yc=raI{jNc~)$Y@7Kq5<(jtsuzROUVxF1oFwipknoK`k z&@9Q*`@Ug$6Z}K%p!>PjT-Z#6-s#LmHqWSb@$?M`z}GvPAv>rVsun_&6qL>P>%QE1 z@oJp_n}|Il069UnV%-Ou2|gPu6mu^0Yd)Zc&3pcPwzVTyU6=oY)9t?&{J$*`74V`m z6nE-=jL6KeHYJ*O{Kr>cZ%crUqq=8yLjWEX4O0JDp#UHlsrW!J%FQ?!2tt8K0Z^fM zNV^~)rsWY}U}Q!rBRW!3fe=uyv3uX|YHGLTTis9{^ijPsz15SeI(K5LAhjp%yL-+j zheE>Rchlnzozy6{!I*>6*cdbxN40I9RskkXnrV)GF_&X1_59i_4aAnul{dqWI2^2E zjo2jHnjCPG&o~%fVH1yBBEkby$qP+BHD)_i39KrabWh@x&&+ZQ^r;(bc|T8}P2Nun zGMV;j5gn5r)mNbY+(;%TkGjO_d5^x2VMpb4cWbAXOOiRSi+(1|j%gR9MzhHvHf1=n zMCD@IB!r&RIzl@|(w;R4H=13wL{ zemsb(j~1_{iV@fgZ*UVZag>c~II6d-aT5)`Vc#EoyavdBPB?N=!zBX+Xt(t^L+I^X zr%YT^?jr>xjt2muASHr|0!BysB_gCxKmp_7)A17UNl9x#pysaG`-Fj`^l=?aL=22P z{MywAv`jLx7LRIvNe$_FB!S*@VQbaRCB3_)6isE$oBt&kz1vWH-WL)hce&D~nB#Y_ zlshWvxj(v|+2U#YO>@3WAKZJd&)}wj}5tj--oF<;X zoH&r@f|c%1`(6PSuQ#8Ymh6q8FDxmz0$5OTp&2cV-klh*x64`GX89zyaMWkDhuLdu zYodjE^h*BBVQ($t{ITv!|6>AwKX#RLms7f;RI?%TuELz$mk-tYSr-CV?kId8))wE_ zt%`QeIM=i%%^xl!LFr>s)?u*|v@Hp4CmEN&r@iS#NU<_SJ-u$P#4&5X)}6;*Fq}YRUazS`mEVj+N3Y_emI?~Zo z7A2$j<{Xh+qM|HVy;-oM{57g~k<*7{!#<;`XyByA-LZhVlMnj?SF6^JNCI7Y=PvQ6 zvL0hKABpYUZ%U zex|V&M#rbvq8|^OL7&%6l8~J`>>YhgunsfWINVn-bdvgdh&a+3zV*=mFtdo=jvfZ$ z&EyN#llUkcqw(a70d^bF@3wz-zM3JxQG@W_*eHR^kjwfP2A&^jJF3YKf6rXV`BC)q zLoChd!TxFnKdIyB#z>!})&h0-jZU8THc~v3c|mFR^2?w(_hI?7ZIgb#`?_b!q>^o; z=u95bY!io#DVkdDRVk;MK1f}qnOC@c`K&BW0;+(Qx%f`R!TkH)!LUgFh&9UITx_|w zdOLMX&1SSuH^BGH0+(@YWzyT2J;%_hG=oLe*WBBe-q+InSN$g!C-@$N{RdHhZz%tK zF(AMGm3*~Z>pL%mzgN*Fof&WcmL^r&Qu0 zPZLeJ6fl}B>f-Wn_r@T-QRy4Z9Xme<*J4={55ZE6c>b4Ip_t+Fk@HagmWqIy&0_)SrP*FymlR=@pjUST;jnXrXiBl*ZanRQ!UE-7+d&PPg)Xjh?*H4BRoe`ALGM;NZgDYc8C| zv?CN&oec=bg%nq3qeo9Sdt!#{Kj8>^8=CvBT9|DJ2#jGFaiYjOuv-|9fyz zbE1^tmil|-K8C?GHj2m>AKcQlDS$ngO9U;;W` zdTA{_R|u3)#yq=vbf1<1e#b2?r-M;SR@=fQATYjj`QYY&N0kKq)QXa@HV$$Q&&!T7 zQqeIq2vO4hpj~1s2H>JUKud{1i^O8m#K-hfjAC?F!@R{bMcEV9rh!Y^wPw}Nyq<2D zz8~g0dM=j392feC_@0xR^%@LbwzK?16mRt;XLWzLuW(RtT2F%lW%bANip4cMeTk&S zWDGJ51WacBiB8a*fMifc&r*<2_N=l>3W4p^%K22lMILU3t3H6<|D@W$$5g!Dd??Gj zmolnNk2iSVk4{+45ZIcZ^T-#jRxHMW72z7%?ph`Sr*OXAUgjj)MKcx{&2heWWq!bpHIr854LV z%^Qm^iDwEBg3DHLbtd~WCgY$$uy*V+sdiXhlOf5NkrQXWvU>K%=@y(bl|EatN*HD% zUQ3o2o0F_#zHdvOk-x9`XE#nW!&E{VYi^JLVMB6=jQ%jJBX9W!Tzg*MMybGMF=WP0 zKaw9l`KsG6s*hq&yKGj6)Lp>{?wsML6VAn!Qz>9=Wk&ZcAL=xwOc_b!1o30T}%=O-bMm)ao0;!5Rr#wb)i z4tD8H_jbU`*5L?*3cjHkh)quD`&u!bE;Hy2EN>b*FWP?^PL=V)eRsL&nVCt~v&54p z`QYfq=QE8M3l(+CaTrX-Y-8T0o3>j(3}w($qm6HFMKY2&37Aup5``)Xo4hJ|8#3Bb zNxD`X-j69a99|HHr|y3Lcoc;KWSKMMtDVh!Q74Q6Mxk{lxG&Roa4F3ZkRvh{Vn|3t zPMw=!L@!=$g60#Rq?KE z{c@S_A_vvfQL)gMIbv=wwvXCSJ8w=bWSlVU7UGp$D!P~uj!mR}&*y~hFMK}|S_=F{ z6pYld#yJAT?x##j{)(HCVHnbfBGb*A#106+qvO?*k~W9B#sy}N?pJpl@GSi!ZkD72 zMX3lgQR2VAPz2`&X?3tJCc6B)0njlvmEgzGai@Q2s56}s6-jQnrx97v7~7)*sM73z zGFgM_NC+UgcRdn6P10sS(Q46>VNXf}Fg*9XA_R2{!%sfTxw;;#qgiPf$SC(SpnPFc zC^f8?%HP?luP6oL(fgduQ@@lcq)Oep>dYJQLp&O}tNFw@z>#xfVtV)L=Myr64`mJc~eYr(Akj z5>hibuy=gNeTq&lQMHU_Ax!+>;Cfd;QPvY`T0?T_n(s6kuwmRl01l}RP9`<8lg(Uw zwuJ7ROrk#9kC|qeuBGPbpG29n>HKJ;^=$}9%_mhSTM=X{g}rl>*X<$x&C_cf$yY8p`Xu^I)T)J zMeVVePaQ{8^Zr5?LfhUsdE4U?eTz?2v>_^0b}7I4a5E>5_qi{3Q=`Qp_5|*&%dvD$ zzaXmhilv8+?{I?NHi&u{drUCbKNd(*e0cHhaOhRCp@vUdhnNoFYs?{cjJ+H@|9RO0 z#HR1517EM*vt5G^r>Mjbs&VhC_A|8u%brl?jfKyshpb(x$wG4~JC*+G*|`N@$R#&) zbRnlkr6PI5a#H@r}bQ+t%aubQsDTPBxft!;KdW6-`jxx!~Iy zxZJ+*+QFvzCTl!xT3H*OwwW`U`;hBknNvV%rMZpd@yZ*~$axkVQ2Hs<^rCp;e)SH~ zvu-w6;sIEWUFHodp<`}D=rntB5#LPXuCGVPix8x8+yvkqk^1T8EI_<2v{o!dP( zI_fAh8P?X7qM*b*o)>a7m^QP)ML?1a2bj~(csv@%f8hqdbwdoMa2fxpiG(9f=GVOk z;5s3N2Ha$&Jn_nm*Hx+e22l9bMUL>^0CC|rK-BLyl^HEK)bHlon?^F=Kl1X1EmE+N z#@6y>Gvwm-cfa>0(&0Dl{VS4F&!AsO=*4#^|B2)V8w36gK>B~7LE(dufbX|}aOmw``TIN!&aoN?-z|no4j-}s+_;tPqeV^w3q~d<^ zTR%g@sY43lzXbDk52qR~H)_6DI-QSO?U~MeFBqI}ZQN5&Y4v_M|B~D5WT92i^mwPu zA9`vrq#+#t8V7`auc>h^$|+wAsw69D&C(+q0jX92-bsgU-0A+v#lgUVwwsHY3y4s! zf8|$9Ab>54h~yPsRv~yss^jTg?fA2J?LPfOHmJh*mc3HBTX)T%eeeb1dh3JBwFx~l zx#Xo+p^?M36My=1dy@a6`&*xJO&D^xr|xQktU}@A!x+vJ;`IdqoU@7lk2-{ zC#S-UmwZV5bQxG`9`G=ka{L)Fx+$6AX{v1tJ1GG##@gW*UVd~YJfpW8KKe%yLQ`1ba4w9f!w z?UDMOxN1iWYTC6#+gtgQPsuyLpSlvW`Q{~C7E8AigYcGl$eolmpt%ne{1H^FGQt^G z0ECUL;)!Wl9XEpoueXBr%!J^a&f7}S34K{&S>g{7Xt%&`Z|9;-0M;BQyC3fmh_1yS z-04_#_ixt5L^MU-e}}Q{q{ZuxwZQlDH#usJSi=3Y=EDU`PD&}taZZCZ=2+ottnAXA zGG`Vi4c?Jn=vGSj;Rj(4JxRSQ2u~Or>ELd7Ipg_V4=_R%vM@-WkB!>1sbH<&-HkW= z_}-<-AW{%N7HcSMVA+NXqkM?cJSz&_ozVR5F>fRWR7DMjib~Jln^76Sf`|H2p;|Dp z94@nOfVGBLeMq$qZs;X(^1eM%Xh%!;oY+GD1f824!3sy0>3=dum+aKQ_ByBxs-cE} zJZCf-WWU=#^kutCS8B|5%ccW`UV9TP?MBm71T9;Xsev%rbJ;N*nPKLuG6hW(FHwV_V z^bDMckmEtEc7ySR5#w7Mjo$%xcgK?8;bV7h2^Qa?R1E> zpS}MxWBR+-v#k3=UP_=43x|Y1x%h|Ww%PlAYrl3H;QZ@Ef$dlJ2ZEqL{LT@+}7b6kbZ&Bh_>N$V8XMCXtOKIV#&bC%o|0SQEKE zL($u;N9L0ewCw;8|`xD>gJzJnr&>NVd2|=vf!?T!ro9;E@aY^ zt!aJGa(G8*89g9u=c)RrcZJWvL0V?gvekq6g^pn$$&NFv0k7%!u5K?8%U!Wm;FC*U@Q#L6To{!F4gL6L3*M3#3Xs?x~vm19RvtnnT!nZ1NooOyI1)yW<)Z8zG z{=$Ak1ZDj-;(w6}a`-ud@>uTduH^tBb8|4P>|yzqixnI`=Xz2Nd5Jwjy)QgtO)cv8 z11ZNh{c`UUnAOtw9{j2C$wcZ86BMa8AmoMduYWbJ_3HOwguI88(mH_h1jbd5{t@>= zS2S?aPRah$2d*JeJ1HSV5_KFC-LoQYx#H^i!QjWNDg4iaKSHPSGR74pT%xz_tV)VF zoT0)grFJ}@ZW=JxG`F?bV-E1CT5(JX3ZYSX3Gs3q=k^A!%dz4{K_AfLhhE0CmTr2IGy4|u+-OVh7QM08eAe1xC}MMqi?!wv4V zqed5HQ;YNxnzIvaTBYBPTPoA9djleIzU8=>Sx74%km(fCMMbJR$7NSBq_rZ(!fx*1%i z#C4b0xbsURq~|tKZq`o0jyaK0sD4$+BYmIdXQzK_TK}uP{hL8-X*>P96m<%;YNy$n9U|?VXGJhN3Z51H?kJ(?q{_SwE zu&{9OaDM@h0RImlAR_z|i2sgv{{+%Mfc!7~L&!fRz{0}+?Z}7-i2qvqUk~1X0WgqY z=3#u`V8{Wm7%*@cFmHVT5&!@O4&kqGz`yWUI1C*8yZ1=2C~qqOq<>r5S))Aoxog?S zGcfD_m2+{v7IRHcx|&<}*ZFvdMyu|J2Za2PPtk~6)cnSLD^Cfg7a%_ zWTr!kqnCHJ*T&Uf zrzcwd@XFo*e1H_@Li}@&kKy`4apTVhlyGu!LAgwMhLmoe@p zVwBfUR^Ib%I|>RvyaoKedZ90#8Hv6+1<(l*mkIy0W4X99B|rW(YRX`9N7{IqFbg`y zlgw>4h=$yc=aN7Q+2dcF2HdzeQ>^|hHVc2>`b3pk*1?mEJZ-z~zn7<{`&9RGe7>FQ z`S4*e#J-PKvcUXB375O$YT;7yd4%rRId`tk)Y<3N@;AK@Z6UugB9}68)JxQl%aA+Q zTaA=0qou=BJRs}OKyv(ZgIc1MGvJ@eeJD51r9PJ4v;Y;wj7ZKWxh{E#fwJhQCK3f4 z#(qfM#PBJo@cV{1(1N+JLTt>6CpoqK({e&K-;TEy_D6`s_AOvW?v7>e4s&r{4mz4m z8#%ZN+->Op1Ff=ysHxWpcj{Ol#n388B7(;}2d)(ru_)Hx5$OnBaud-)^@wZ!tOV*m z<7ww{`#h+B8C zS%kGaIVN|t`j9kA|DL%^_tCY6P$_5h(=cw-zFNkUI;Z3|O1Om(KBi70!SJsI>R(yH zm7GsB75=P%q?oKrk}2s=H_H_^$WXqBV*~fX)bl8w5X&(hNfedGh5|SP`FtNk?Vj<* zS}rSQH;qZLYu2GX)eC;C122(s zDmqY$cqSUvksg_C_*Ns>H=4^pu_>V=;L!@c^k#Qr^CA!ZQ9wZP1cM37N=SgaAug~y z2)t2Raxspd@o32|fUgRfi)m+kN6xTf(yC!m_>_1ZjvRWd6WX=)o~n+UIM-Wkkq-R)qSDIn#YvA=Kl~!gEJIs@JiRi^z{k?MXR< z?6X|uYhRql5cn=v*MfT=R>?$_t&xd7^{SO`u5*Q3`q~c1r?AS|*nR4tD5V2!0txa30JpExuA!u1u zFHA0C1kB(RS#9&AqW9$wvfZ&eAGf6{E`9NbHG<$;9bvRII>wZ0qDHd+H2(I;eUVOoP11toI*#2@M(_KPkgMt2Nvc1EI_?cOE z#WmX_j``V?WwL5dCi1J|Ygu?3H#`2F? z)9h9TX=~51*jG1u#H_hLDTvn;x$S;kei%_u$jXUY0Se~e1?qc2rU+W`^HsFW9-jry zzcpdk@oy;VKa6yh8K!HJU2&zMqvoR9em1dvz#(4TfF*>wFwa=ehB~AgRy1%QhswmY z-mn?R*T)rq?~0povSmKkZe4?TJGv*L&FxOSDG>C7n2M90Vd`;cAN(+1^e_;?c3T^ z93|X21F<4_2fU4FTD{YBPn+4U2!zFnkvc+7$~#Kkr=f~NG1R+JIv4AiEp$xbHW?D5 z_bO8W(slP`m!WY`V9S899U&rge4V38t0L||J&1Bkt%wcK;BKi*M zmsj$UxLRfoc)tCfb?I`FCF;g~3fhMib&rzx{!W}Vy0{wv*z_+rz;kTd977m<12nk* zXpTFA#_|+@UE@;_THf5#l-)asvpf8~*>Au(&_tUZEgejKTaK!RinT!&GW8ES7@g{4 z*9J}2L-dQfzc6zN-`e`0vN6gdM@M?!lvnTdKW!eiP@4P_q5YgMyBs7b8*4tby{U)g zL_$QbGG2d0@JJtlKC=q&Wsp;W(XGjP3UYJJjiyNKuC30E{I6daHd^<(@+SqQvtBBk zcou{+zrV)(37LtsH*l%}0NxENGsp!PW%58x9%JLhk{(+uZf%VoEB|iC{|5iq*MC7| z%{>v5a57pMYQF}VcObVzM8vNm&!Kj5d*8Uo-1!V#_cE57G28`Nkpkd6&MI?E4{upy z9%5&Z9%E1ZDZO}fPPC5UT#Wl!qjwqtT`%AH3$3-zyAe%_Fze+QthA3~mUovnlz zpv62%?#v>|LW(QTW3kn_Wi!Qt%VI?UdSw8>NzjfLM5V3O&x}9$tpi`gi~Re)Ec~wq zFk*RsTM_JE&-vSu-Y3yx)2s9;(<_(!ZKYpI|FwK?@gMZRjsn1gDcDi+jTT9@t9CpJ znn`|K(Bu6H_|T?QaGX(jkQje?dwuEXKHn(`5FEs3j{QOX1^{y=_TuN*taduy{DRvs z=muQ79WKw+EAge^~g>tH|GYk`M*}^Pj^>z~4|8@f|D- z(m#Vq*pGj2rRIJ_(NiS6R+h!~og>_@k?U&;Z5#5rXK5T?Qaz=?#vyQ*l$eqQN{NN4)y<}h9#(bwrYu*g!AVCQ(Sjp%S5H=8CuPLm&ys}= zK{Xlryulp@hLAm=#ac>_M_OlOcbxr50<_0u75})wDFnUQ^{=I^#;0kdC=_9bM|sv9m5Z9o2vo z^at-!N73BLyp(GueT!{Kx=^ts`6F0#G5flD;-Jy$INu?m%zQ?dDppo}qTq`1L2o?7 zoxe)^=oETK!togubFi#0YR#;6dH!FmZ&h;|+Y3kwJrMniivv z1*-^aYXkYjvVgo+NY!Z=*Z%v=6X%=PE*pg#xNe~fXzmx-hyU~d{~wbLAt`9Y&9ptQ z2C)Ie;9V>rVEE^mtL4j0cE2=m_jA=g(@UTNe8H4j&nSuIm;a!nCoB2f2m;W31h#|( zA1&ln!|Z;qD4JY5+%DL@0aP*~J!TMo76#2>*xeeE!7cMv)3lrq1%Ll19sR%dp}z?U z0wV0YfAb-@fA~;M)s=@QpTS^!vExMBwTxkq>v~~$%aC7>(cb*$&Un4pT%)S%_aB~pohiOPs}f!FW|oftqn77x z4eQ@ce7jWj#NVuDzTQ^^+2?P_G!_LNv$kLJB}-Gt+z{hv)|VVhlxHiBO+G7#Zvb(5Z(~oX%{mGk^)qDd=56+-?jg`RVw(n93^ms`rdQS*Df$qlKm># zJ)TwF(A=D8cq58o{gKM=_$d|0AS-dUL6fWE*|#*&1O;|38UhUtwKy}DQyXIJIlAcU zbB|5$Tj8~xzmcyhj_}Qa`JXYOnoHW9+#KkJ4ojGu|M|RND4O%DVQ(iq07q0sMM7N}Lq*vr=fEDi!^e_ZehKJIJ>ffNt`2

        L8_|?ildzIWWuz*f#)i ze9c(4!K%;4e%d30XxglhVa8~_FUeyW;#PR;8Eo}mVWJaDT;uYNH&$T|!KAC!HW0dI z6PcxxC@F-5?T-71mFBic(;N|IVo|3F0(Ku?jKx)}T}gv^H1Y3Yxv-qQU*7;+4=K?i zGE$@QRETcFUuF4;kHRwbc{-(E*=WdKuQ})zFQ~%1S{YKsgaJ?Hg))2eG!F1}Kq7{P z6YgCp4gO>;J-yOT@9zlAMfPI_zhA~f?%5q%&^nQh@9MDKGSw)R^hk8hEjCxI$;o+v%5`orCv(6N+i?}9g#rvBdl{?r5LUGo7 zzJ|68{G@2>_jEl<#8E8WxEev0$l1XP42wny3IcCGYvWrziUvrS+LPkvGCJW1Weg`p z>vZyIXt*iM>ef?EzEh!2)WWopTQ9LL3?|%_;H)*!P9S&wWL8Y05#39eFU5Wwc~@;s z`>O5`<0ry1I%K%-ryNSfKdUNgz*NUjM|ei*cIAaH?*MeyFcg!Idjq(v3Uj*jXiZ@t z1Sw5^NTvt`%lujGf2B_Ug!5t8mmLX{TVHFo(Dej3hd^w^%yDz0S@AUp(>z3XmVdku z#$v$Yz{r|Egu%-Ck)^)z-A%Jd?TijGo)$&fa!d3&YrMHVv7BjZU?am4+*w3basFL7 z8o@J-Y6ZE%!iGNVc_7LF>Xjk#3IJ>M`dx;Fe3;Gg=$Eb1)GC@koWFb<#IYZe`tOMq zjoiQY0z)a4jE3hmMyzP-3n*a05N_PEit7qbc7uvdZW=d;_O{{oHEv6^uUp6XmrZdy zd1MVg%DxdK(q{X|s2ykXvW6)-i*;@kF_A6FR$MpKRk#7%%o=n|$@zwV^z`U+zVMOQ z9-sG=?vy^62nRoU9If@gn;>^bH^wEf5ObR)XF0{ANx&W)7jkra1N@1JO(ej|M5$Sg zH8flCianb!eqW(^H`x4#u-^3=GE{zFGRN@>9x7X)#sM&oqg%nAe`P21yBN<E|4^^y1zZO5dE9CC-J9@=IXQU zC34CGwJW8QH-H-wLG;jK4A9dsXgHpkyex`@M1e~q1|`~PieoIKz?NVpRYQX@KmuTnSLfZ_^M6g-H6%2ce|71qm|2>?=wH=UrIxCDOCL;V`R zkIrfXob^Z;`Z7rTGbGtIjrYk|*)RDkK_;VfX^jAWt*+-HNzal=?F;Ls7^u$*`!XfR zO+4(#ai}D4G_6k3gTlz8qY0RJhKDVs2ildIwWY$abh_#Gm7PC9X9SzAWs8j2nejh1#J8!isBV1uky_~@B&AA~=$x@p#a(iV-tb35!d?w6 ze(!?XN@X&D6Npuno8g}<6s*+~vMnw@RkvFBB^5fc}+(zGp-K7px zb{D=TJH1agX`A$^w?7%G`$2xU3d@zaN2Jp%7f4>FkWt0=Tw~f+hPd1>c&4{2srcF( z4Wa8i$|iXIw(PWw!AJ^9ocC?gEl3EUX{H&WYOruIQa9;`}#FU^JBG}4O(IG}u^sy$OOm+X0Mxi1+b)KCd zOtiiEQ3BsVl6x>4F;{W>H0(NLg+es=SK=GMProio*+NS6PetmEDRsQ()Qdy7Z^OjH zAWlnit9`tQxRdP$^ox#`lH!e+mI2wM7e*&TE{duTH-mH- zU$>cQr{Nu?bD0LC#GFd{8UGa$oKu)6wm2(u1P*-HUD zp#{YclZ>KB4|oS{HLqS3j#6?V_Ugq|NaP!!K<1eU@6|;i9ID4cEoHO(f&P1yYybkN z0C^DPT%xiwFdu=Di95AsOJJYyR4Vvo8|hN!@_P|}*L@_0@ZS6+sTL%fMo>8p)Lhv9 zQ5$hnQfcza-t|`;4Vg-8`-pME?$T;1d_#G?ePd(hXu@wJ_@&%J&z&f1(Iy)!+jzEf z>Bd6aT`~Hrd18f5rar3jEurc!)X3*tMb$0$1+B#Rv zqCR(nsx-cNd583p0{&ifH1xQez;$mAj8&PEvyHOcNJ0~Jx8xr7wc@I4Vk$`mqsf2Axa;-^vAZ`KF>VYzh*u6LqMFk0JtlsSsXtCQFo zId*p1BQ%~W?4=7Csh_eK>*rd1p7rD;hWR6vvX(5cbe2cUw3t6r@70vz+F~^&h+TWD zmD|ar<%_jwGVC;`MW?n1oTic*j*%$T5_6Ez?=~udBqwU#0POvJo{&Nku2l>}T9fYt z|#zmV5@H!&UV53l?I_W!Oe~bZ% z_+J`-em1n>j%E`^sJe=nkvRUSEvd1d>H1Moq!*?e%mfu}Q&V*#E&&3On;3g$FK+#B zQc?W|rLq$y>ct}#ebTZ)JMu61HnA&8cLGSR)%gnT&MWa@Tk?d*ocC1Lx7^we4!Vv# z_U(q*HK1aZhE;@powNf-U(>`gX1B~ujNT>tIR*Cmn;Am<&hA^7==qS^_owf zgUQ6qd{U#J@#r4*BlREIFHZB26n$nfhHzMvR3J(ecZs@ss4J-=0ezgyM7EnkA1@=b zhLsTSi7I=T064YiUSwEm9Bl_EYTbfdY!)LkTW}z5Kc3!DDL_^3vDKf{Fj2Z7IFTPU zSE@KPplwwu6%8J4+L9(r8ImX7++d{4x#H`W%&Wsep5*CbG&&Qk4jgS^Ouyna$?N; zPFO$B-j~inNi#MAJ&FWE+z{+T1T+(h(<=TQ$>ODLnHEle`TmJgUQ`<{X<(i}|HN}6d#`CObTn9>Bof9~f@0P%Kyj~YOy!cj}e_g!EF!^#yynZ$;j z)cugYr&Jz)$4%ND5X@>VGVc}F4(?c2p6?ZL{y5yC8*gXE65NB0f-;rLabqc1S`R@2 z=Zv`2GVOt5PLo|KE6-aNQEXtpnw39PDuqBV_aN+CAc9nkEHPKCveb_>$Gj6gs;+#p zeA4|G?Uw<@;W_(7eUz}|wsBcj5Ca}r7{)BPnz#$*!-6`8k;jXbic<_H0lGTh$cy@J zq~vbL$x&2)G=|tWfCW8E1JBU!%N!|jT&>uA7sU^BPxS*iQ|;?j3A4x`{V7p%#7(KA zYLMmtQaj+r0Nz*aJ*T6`yS1{eQ!icLmp{OdkzwwF8XgO+* z;$KHdiC_KnJ$%kO;*h_s>2o2r#z*6N76~m+?gKOR_z)s5(~hfE^8RoA8-C5-k>aP> z#m5?YyX7(?W3z%!5SMD_GM;x-2lN1O`N(w|7w=4(<-$@@l4A-CS{PFl;tBVAwzhCF z&%Fk56k^brb_k`E=%AV(U_w3Gg`29_a3=dBt*g^GrvZ z2o3(c)X|(Xgg;ZQ@-qkv`ITRpIjPjouXt42WYH)f&T3n!wpS+Zhr-Rb>S|U5kwqe6 zzf-j;QrgDo9F$s3*sqs}I5*21=(^mys3G)XF1SOX+N;Yyw2o_xZmUK1N`iz|c*s+C zuNvp!#@b07IhyaWNSK&-#*_o9cC|>h4!_&AQwl7f<+zE0iMP_I!ztqZ)saR&EEzd(@zPNRsoBQaiaQ!c<&mq{ZXh{&=}eS%bSMgQ z6~jUIy-6!hWc?hUF?+Z>U1IUp9qH-lvQ>Z>OXDH*+UaP zMR^SXGL4(+%Cr^-EdR!}MxhlLXR|T8L|*`7RVwDTcX^>F)VkEW)FP#&5esakymWKr zNOg@FBIt=j;gqZPSGIB-GP4tS13=taBGn;@h}GTnJ)V1V68zMp9mUr#0XSV$0$up| zzLS5yZ79eY9-k&Nw>wd|i8E7K$1u6?Na|+`zX8TVC*Zu3lNTZBT+{K$0cR!u(b13@wIW&t?Y8a+jmw5JOelvx->;=g)mv z6YJ_t<*B6w9hhGPg$^c+@AOtN>9R0r^fi=lQm6wtY5BC@=btUxL#-&^0QtqeO}C}! zQ?KcEP>N!lI!-Z(=X?dDr5M?D-h)4Pl15$n2p|j%Eq)eiHT?QE{a?avZmnUJHuEdh zdfu6_AWdFZOg@~`0P7N^E)}*4phE7to{;dMl$x(ax-P@E+$yCrkoVV4pW#Ymw&LwV z+wT$kuYiZ}`2=7`XLtM#M2(Q9^U`z>H0Ke!_)$V77=BP61Tow%NsEmimW(0TX1}bz zFAn$&F{cNdCewBdjlMAVwSk_@_Sdero-8rt7x<_-{x~UqQU5&alGtYkr)Ovs-lVE z-(Ydk8j$PkpZb$)fh(PM?LL+gQR6U)U&4$MX(A$*Kx{XXJDpyhM(5Zq?fK0l^#=8M z!mVA5{?VG|Rj-$GW?crxM&Wn-B50haU!&yFOi7f~FOuu6)4bf8mOeC79y7GM3Aoh; z8zrRAwGISnx)C}q#{ZPSjdKz|rSZXVr`=-(^G4_M!~>`CzQX`j(iJI$c9sP#GOYHn zZ;iY9!H>H&(Y6djkhGg$TeLHpVhA#4on`wvR?++slStpwO$!^Yoyj5GuNs?9WT4z$|n zm@9Jz3@v@B)z6u>lG_)qvOB9qG&6ObTQDvA{UMZ$_rP7BX7{7;pmc&Y6#GKJXB%8_ zDz`+QLYOUng8ObDCjVsp3uL;b+dfsbqwKCqn$S#}GJHJcxvwZY50T^}FrL`F^sFEf zYIMm(<^Yyf?1sIf(6Q(}CjTDYD{Wq!P__>sm0t42O5Rs`i}^4I;6$V zQe*d;CU#V<7HvN2WsOuoS9mCUHNiF7r^z;{@#>VErSrooiE4wwTbHtgd(A4}V|nFt zw=^hWv{4ziq%rhIE|-ak>Q)zKq+fV$$Vbu~U($C=is@7mm{T-o;qKtWb1wqe){~`q zlo)IyY}WM8Y*DgN4fm^w5@}$(?doTl<9)YFZvIy4vPtdIGJRuW6k<_yC}vW_`sQ3n zG2@5Dcy&XtZKkSoMfrmW&LX%wa>4p4VT@6GXEam+O}{@nT?!vn z)UHkjCEVTZ+S;3S#zQpm9}_#A^7=0gZuL=9CBTm^vkdAYNPCq&nDMBnDT~AfV7=z? z3Qf0TSC9{?a<`Zl z`K6Z-Z4N!NS~)a(x1L&~R;ob}lTYV&meuK<92Zym;cJOQx)b5QVlB%AJ;MsQ@eOO+ zBJR@p0IB#EEKLmL!7X7iM+M2}AK%*s585a~5Xml0IpI1ZVm5Z_dk zn1K2;;`U3e_t`77`wSGEj!u%|P1N!h!zf_mA%EX`xY6T|T|7)Pinsy`7iUR^cU zOYWRMq&S!13N72Q^M22*#aUERmh(A^cDTO6TT7IhvhG{LC!^t>XCnOQJsVD&<{eMW z=wDY!7NZLER&>Q_4wgfMWtBpe*h1jD7v;)0{&t^qsVm4TkaOib_^h3bSek3-+H=y? z6t*on^CEe47S`5nM5LO^W4C?m2dI;Fjor(dvKYIDf^&^)D=ZE9;d+x{Pg){oiG{so z4nsEO4S>q%G^?UTSmF;KFu=vc;2xD(_3`I%Hh+^7p^gciUTMQ-I+vz1U6T8gF9l!w zJ{EpmxdB1%h-LEJkm5W#=x&sTcQO+}`G=EHOSgR+m+d zy`+a3tTc%cXLhE+*-LxTurca*sVk#kG%n8o>p5r3jKuv1{pxruBceM0W%&1NAKM(& zZ-|#?du`17B8VhBr^-Ya1g_j|l}0*3YrX^syZ^Ja)LmJl!BIyAC?a|ur3w4N1!2a^ zz}GjM;KapjkEiluK4&Z;-6G7MU+m`lk-wXjQq}4irN?am%Vull(saG=o0Q`B&pHhWb5;Lc%EQa!p!%%4y z>5G-Fqm~(6G)~xqPmb=n4MxXySYyf|)D07%f7iU}m|DY!-`{D}>S83^G$>5EH`2V5 zw_TT*_wG3corKGMXd`QpGy|571nlDFZ?Dd9!nzxk?seZp`dM>Kp>@vqbY(FsfYY&3 z1#s))iP#68x&{3WqpnFz^Hojz7Y=t5aR+d+E!~W^@h92Ik1ReKAn4dZ+-i9-aa}dK zQ4Kd8mDSpY-qq22>^K3_-|Hc=84=lLoxSW!so_z=F_oHvVD(7jFD8pNW6X{>16T6$Kw8ot${Fh<54)_UKj%;Pbz04N;u z1)jDDnh&T}0@XPzN%=4|v$^C39Q7_z0keK__)#}Th>L@OdjLNRjQ;E5EG^{KQG6K_>K|{hJ^G@qi z!k&Q-dEpf?nq`UB1taIm&j|Y^Mov{T?!k9XB>Fekz9PKGxx}w&C>NLqqC&2sd!gW; zRig--YV$i0ozD`(Xw@P{wbO_h-uk5NVX}x-4eO~B0`igaN@q~C3X2xGSzZ5?X;EX2 zCKYS?E$do4YzGjQJyGSAL<&ynx0UOG8Jjyr2MJ4hU8bV^r){|?VRon8YOMXfB=e3R zq=NOqhK>%#b#s_(*y{x9wT!{nOi_*;ikcZI-vcTO!HRQFE)}F{WA>I@#5oMj`-y2g z`1@(+lxbtest{jKrJRyy&o9>q7~@e|_^WGz9k*qK4RF__PiFBf_7XP}VDjhf32!k1 z+ysHpPEU5Uyp&~QH{VP=#%?3$5RCjG^Gp+C)!-@n;iGljb^+-|8{Lo=$u#Rj z;QVO$lGe6_mW7UWu;a(_jAtTj<462uf|#osWoVVkvdnsbW&PR9%GW=?cc{4w3AA$~ zzy6KK?a#e|@*W=pDTKgl?mJo@QC8lT*~sNu-h;_wQc0?7?kQ6}@!B%9VF|n+=*pU% zw{a2}1atb`JQqJUOhFh7ukYxw3~1P^C>X_zyWu4}RZkEf1*KO$azLh!5qV&G0^rY! z$ZA%0<#gR?6s5^obu@}OuWPflzSflS+Xc92#s6+vYo5g>)276b&>WSYjw<=KD#1sg zun@gw@jVy&n2AxUQBMJb_i%B*JQA67=;zPaLvB18#gOr4cS41-RMO`SN)5s0Gt{Jf zPYhH)j8%F`q2=3g(XQ5(x^l_jTo>AAvoNu=9}g3}o8^kk4=DBTvf&)E=M*t_yY}Dz zsa5m>SF)HMezw(FDtg7x9nQHAR+9qMYRbM{{b~xhb>>vb$Ys zSN{2Q-Tu@a?%(-*OalRh67X?@Jv6Nn9^YZiOjaD_4h-QEP`Qhu3ui7pd82>#N3SOB zJCiG z#j>w5^l@kJI&8D6@|R0$5E7^-U*d7cl(VXOzCyaxI@53*pZ__CW%@zFh$DqN6S-_h z41U>P|1gRy*#k!^nM~K|ZwK8-HgG)? zp}%?puR269I7I&N#VWYstz2A}BfL6&MG;Jqgjexo{NeLU14@%yPvF$ja!F8yRAFv4of_yWGQN9A`8EhHb+`Y za;-Q=*uhyzeg}&vW-x=uo?x2uh_soP)wIC^_?9Wz4t;JDlV7-0aoI2$ z9GuIzSa*&O$H_4wO~|MIzF~@2tV#pT!tz)bh86_mJP~cv_Um8?HE{uFTs_U z!_x^K4u+n)vb++gO?7VOEkY^>S`6faAPAA@!}*T*Wv`pw==+iRY!r`*gPKyb$M3YZ zCufdqE)}Nm$j~hVBL>FJjzz0#LUbg*Dj? zId>utvm&pKVs5UMyX6@b7oO@_ft_)z+_jB1ipCeF5o zbP>DFS=9}$83T_xC;vLnDVD@Fx#Uw@j5Kn-db-EyZjjvW2E?~bb^kS*OIOeHw9mme z?eVJ)@SY{KzR0nu)usH4=7-u*`L6z76rqfc+deC<)SQW8LW|z`N*ow;{H>p-a z&8*!BqmKE*pnXBB_O=OY2^QAP`%7coh*OW~RAox-=>g2VluD7VZt{h5@m58@kYj*o zzb_||W8v2*cg0{iAlO4jZLBRWqO0~M3Yk!27%a+wXD4>s7Sy`ClWNH!)Z7M|J?>YI z=FKZ=y*B{54U33pQ23u-0{#|gh4#Q5@(iCBO*X-@LIc%U+bmHX@u;8^yj4t4nG-Kn z+8tOJwyasU*H~$y5gZblK~s6`pDG>mk;VSC`PhdpyoqvINX75PA382sKso5?VO^9f zog1NpzQPIkg~QEzT^0?oy!YS9ieeux+%Cs%9au-8Z0}DZMYf(_Zb6DQ3GKu zr2B(vwNf{qnp)yf(vugRl%vX{cz|-}-o2`RJEX{g6t?il(^-SnC^+1d&he{mlgA(m z&Hb^h=f-UV`#$gSU?`5I$dKn&@nPD7NPoN&{2?Ps2{gPToFWC2P-*lwSzkZ!q|4aB zDmUbJ`sf#C;jMfO8luHT92J1p)r1l8L#8`qg0dpRPj2h=!|LBJ!Laq2wQ;Utt9^eu zfamb0+VPJ%V{>~Yzb~t;^kW578_OQMw1vi1Ko0f29r~5k4>z986Hx5WKFxzwWuW^t z8p`)n`exuy-~J>ysmp}?aW=6XZ;VMwcXk_Fvgdy`om~ZINPxg`SyNtN%SnWK>)BX- zSTSN@j;5m414MB$qw+yNT>}eX<)+AQ7A{u(TS&GBtdirnPKs=Gc^)v;1RD%YO zb2+Ck3FhV%v}2$6%OW@^z-f1iZvbC&b9@Ch^JIgQO7amej%fN5O}2&kbnj|ZXC)qG zYs3?VhjQ_PMh?|%N3gCs5nR~_ipp39;Zu7ZT?zCs7S$rEA$U0!agdQ;r@TnPBOTF= zIT4D7brz8P$&30nBlbgo=N=@yBVFk?E7_W1(($W+gAL)4VvV|l)XHR8w(+PdqJx)O zxr+PN0*#z&f`6|idZF%6I@xJ`mn>&CBs%LRvKD|xU88vd1U?AS6|?Ltp}lm`b$PrL zzX4EGf*{V44_)Q2LS(NFO1E6{@N;c=REuqVCS!AcdMfgrrt+uzDU9CONuPhNw1#3B zuLZj+o>Zao4g#Z)FJosL>saqxbMHir_oP9yw0cu3n*f@ho195 z@cmQ-e%U@J&YkxK?i`n7#FwybX5FmkHI=3}=`ctBrY`ExLbb_z&p&F=VZMF;T=$%$ zxcNLvmA-!P=?$Q#X#F|EWOOA?Lguxlk!L72SAQjSS9-DvB!5M5u*hBXh;a?gRQ(h7 zcspL|C*kw7Ki5Sr?CWf86i*`D(#Z1P5Y&ABN$C7b*!xd}|5F3-|IqO7gn!ep`B#I} z@xN*KzY(@>gOp(s^YGd6{s-Ia|3};Yw}0jha8o2mR@W4%Yu=A?=v~|+%rK0cdnY>U z|N8g`Y9v?wq`?g@gQaL~{kK&AVv&Ai?TU~|W8j|uf?0l?tUmhrj#*qUjY7wsz5yk} zKUA6@Lv8Mq{qzP(LzWaWow{Z&P z&%RiPMgAJlgYitEA)68#v6NR3hxwTQ+)VB`SNcuV%u2E5x5N1-*&sjZxm>-j7u$;Y zR&O;cZ*;R`NS1|?M%Tqc`jl{-iYs}B&$E@&PD;>>E-|#E&c&kAPaO4D`taJg=$6Uc zE$(b2a=t3^X0vDoNYlZtcV~cn*zrz<|7L}O)*u}gM zuP-)+mo;(*{?H-$NrW;lb8C^%#GXFqmuqmd@-l*w9m!w$1_-GgC%JLTvy>pNIZhfZ zug^n~>u`-cJ8Wfb?VS}ODB%*|A1q1fHP9=6jn-9MlxGGXDa`mZXhyXzdPQe*$cgwE zNl!!^-hGa&szMn#UYzdWtfV_$#~|JBIVx6U_R1{r4OcIj;+ql=enCHC}GM*(8n07}7-`Iv@QTZ1aiDcMtR11l9 z9t|X!K$Qw4&R@z~v#)+zbS&}+iMJYv`$QMKXubh@buFjf0FQ>7TspMYs}wlf9kexb zO++FUHS?zqnKwT&%Zgn2O}&14SWc6?o|zv^x4k~U6Hditky(r@8~20qBbbdFX&!C* zx+#H))N`2=P7%C;oY1pK##o9)1KdSlp}>^ID2NKo;l!7MJPlKatK>S-xr=J9r&;?L8E zF4@*mRIS;PjABJOt-ssbb>CxM3HGMyo&EuQJDWhx7z&RJ6bTQ4gHZ&-5|RL7IX!RcBHhuAz#mCW5; z5}U3m<^Qd4kH=;^{yd`M)V)1QJZ<-tU2J6^{V6L7J0Vc-7umWhYvn6oNus>O_TkA} zCI7rNj~lA3Ep1X?K_Zh_JS`)cZ?6Z!$uugUZkt}Q6dn3e!k89v zFKS;};sxPeRMm?nIHD_|<6=?HtofO=25}7ChEUx9FJ2UFes7&E@_M2o8)R9YFi8`G|>}y9 z=PrId^Ty+NAlFo3bPE4U9wc?NZ3To|jMF?xAD;uZ ztyMkAh5YEuCegJbpq(-E-;a|Np;Wrurftjjk3cHk&9%b7nidl2k|sTVP_lUSD1HPv=m2aQTttT0f&VA5QAQJGq%Gux$uNF(w)^|?CbP;{*=)63swCV#w~a) zjq~@GIKtDXC*F3W34)fqGC|xFpf3pQGqM8Le#S_NOsn9)zuuO(wGRLysk{OS)RRL zt?|T@U6udnTKGVtrC8x!FO>f+tGMxR5^l;%fe)Us&KHl_NvomxV8olwX?8RAGitSC z;d!AURCB34wuw|^rl2MgdHBQR-m;LW0WP`b;=K$hlouoN9IyzdK7*Z1N2`dkQk5^^ z8TiEO>0I);&h8t!pxZ0?oX2=#_NJdr*zkII9k>a9pfHcTY-r9UZ_L;|mZ36Fb{_L2 zYB)tpS*?T6THoml2Z6p8X2!(V8m@Lr^3u)-^vPyq-02fN9J2eIDuzRq@O#yO2h?dr zlb-v}(pNX`)mpqSH$n&Es0Kbtaa<#F{vB}m>MOWFVIlEK3R6Ev=1lv-IE== z>1cX)^h@8WTbj8epvP1=kA_zT@P@525r`V&6?32;jozE+P!297<1U zRCou?uEcf+0p0qio0fJ12bzQDSih}sxp9|O!5AByLRL9n6 z^XnJj?2TqL7hS@ow!hMRH;kQaD)K6jO&@w?I!_Xb}TV{VDGikes97C%==nwUOuK8=(Eq8$hJ-=naq-%dDVi z$aXPscADWm1iBJW^aQba%J`(Bt8KK9QW3lX@Y)wQl+yR`99LUr35~w-D)KnnzVxRr z^IeobC0vPrhtA+78HhTfx*MO?aG}mRW<{{01ROIoQ8uv_vN&<)w}!5r2$x0=`-0c3 z>Xr=VQe#m}b`yqLJNGhii#rb-h4$KX=$MQig47Hlil2rI-T+VaeW_Qmg0lX!*Z-de zz5hMye^~l|Q^EJ&oAEy^{ny5ujVE#|EOY$-c@ge=oQ9GK7&E!q@u=P;rDj^TgAS@6 z6w~@$Xe>u=?BE9&^SFd*$~_$&VME$aP9h_fEv4#1)`Qu1=kF?tXB9c;^D}U8D+}f< zY!~>;_Pq|CclEv{oKR|VjJCZdNA25?3Yk*)t=n!|^&;obM$>4(Pev=+}RvlO-IBV%*Ne#uLw9mxDV%jOOBe#Wwhe73h8z}dX z@w1-T(E`oSQk*g<*n!|@+2qz7*NpEJkCfvaO^;-;jIC{$7@g46{qlAD-L6{yFV@~ND2}M>7AC>n z-Q67qcXxLmg8Sg^E`i`0+}#HW?iMt-dvFf~a_4!z_x`%y{dcRTrfRCEdiu=SXYIB7 zti3u;%UOiHtR1L9`;!Ud7%YVM=t;Q*KpRJTSAx@i_w+ykyz}HMi%x^%kGqa60bWF5 z#{(11LOLyv%5g928T2_9RVx5!KAplI+c5Oy)2BKXR;!vOhvSG=z|rE&YE` zjB8f(H)E_O+;0|91HaT?WM>7;dm zvNJ0kC4;ZgR@R%Vs~sCTCp>RjdveVY7l?M5|n4O%d))zdg`K?XN3JKMnA2Evy zOskb{&6hIshF$~{2-DRxGt@GIT_RtiG9y`Gb-#bfu60S0Eo+Fke_y2fq1NQEaO5(q zLo-?4kZVb_B7SuXl~qaPoZO0*)sTaI(AeEy)=(RyoE6^GvG~rkw3NsBi)0b!3M{Y) zyX~A=-dJg$q~+hFRa(VJ`)7Gq^7@tN8}*g5^GURMT(0n)!fn{~YiDQ5ORdfF4io3AwX9c!M;7DMOmTAhs#62=EZE73k0KkZxP!%tl@t8D9ZzFUejYD!Bz1J=RR0ISeicg;#vXzLpoXkUkwGNrT0Dn|RKYXro( z1;l?An|gLNtCJ5t)p4`o7x<`lE#r6I8_~jkm+0;#CHx-EXBePk{jnVTVA$b3k6QCE z<=2~2s{O%a(0!U9P6L_)ajx`dNEO_V`KWAa`ZY_$mzeu{&!6sxnu9c>_A_gk3i*?wl5%qDH& z$#2ysVyD&IGQn2#AJvmKyOl^~N-5vm5trR8ru?<0)#f})w^DO_V{3u%c;^?*9KeZL z2NI*1y|&=b5~OPZ8TIU&2xTZHmZah8FuwvqlD)-paGu@!~&-+9*aSupHz-DVIBst zO$WvN)L686R=J(^@-n=!v+1$$^sNukxQR_e)w(!l{(7_<2TWVr%fh)kz4Fz|npi4E zxh~6ig!$Fmj~Xvbl2w{IGUnOfQ7M{V(s{*z_1<$gkn4FZ!5ZOX&=m|MY*o>Fn5h2N zqz=6l-e)%05085%*66qhP&ev-sW1ChVABW6*eM=%=>=5=JsSP3`AnZ(gM>cY^h38+ z9{dt_7+ow_gN1+8QOi#+o3ccznZO?rHEpH359ZaR>3Y1)N!7mF$VoYQ#|YZ&jV(>P zZmQ)LKuJ$mePQ}srFqDuEhKcI%1OuIq6HQnsZ?jDs~C(kCSuI1%20Yq5!-s^01_Je zrvhd1Vs104Y@XLhIbV)WU;j@)g%X_SNAh0T9IjuQO}ZL0Z%S>&^ae9p)g4*Po0 z(nTj~<@FqGJfog!9kfc3&+{+!HCR>~=k&lJJ4NQ)Uvt{&l-BxzI#SbB41Lz7ODB#J zE{`m{R@^t*k(yA~oog9leN5`8V3InkmLQXwOXh zzBv1T@L+;7uXcyA|3SUvV{u{^ETNEP?Bj9OxhI>OCuw zdJ?S?`9(Z>?WdGzjCEm!^#X>|#fN$1S9_HS$db%7US&$mcKOAtAxHb3LDZc6pHP;s zM`&6Y$#&MuXXv8k>AgHPbw_ezu>D$4_X<#nB;aj4;F-%6%Kp;h`lHYNGu3cXFJwPh z3%_uCvOn57)`_Xbsau!MMtF3XamH-F)0;6D<-J<=4H7V{@t8fE_r}Ep-IOQ7cRF1< z;#O@wEcBcGYk(`zP^3UJ#qX)oCKsQuha_0w@ZS^U<&pSrDe6gF6#@!+Nc%k83nc1^ zVpH79LU|GVVfy9;N&8WWjM7%{-$&%#gQ|fLoo>cCi9SbS-(OV}b%3jyE2>F#tav#&UVJRUwD=j?fK^wHAiM_4jc;zeo z==~C{zwF|Q~z{4R1@gsqRo%MjhsR+Z$d6URtCq38RNX;R~zuFkET=mrO`~r@dhv_Wk#n! zikB@iC2oi7h@)o;a|2$z79oSh#ULID^BDD7C6TgHun0Je$3`d=YMk5!WRdXm)}b|K zpNnyK-B$Fl3j!EcFh*F6bmxs(sacT{xqC#bv8vW@DL4unJ68OX$&N_;b^ME`>?_zZs(2jcJQ74FmNj?4McydIUn1$AZcDSXC- z`$>v&o4F|D^9IU)aVfP+gGPruZq`jfn;VtR@j9->d;lc}ZECz?d#qd<0G)Ue$$2Tv zS%&|wTZ6~9EKJ@iw09&-;H>MXKbb{MVRG_HrB(4ieMku}jkCW;a@!R&kMQwrH_7!- zt9|OQ@0q^fHp=}E6xFQl^eS1+$86+2q%2T=9da=O3sP4wIAJd{48&M5nwFOjM#!-F zO!v8|#6gTmB<4wUSu|=&g})q4AXeb(<))Q=tH;f=C`i6w@kJ^cs~D<+#6)Rx)XiGI9~E-WoXCT*BOq zUIO*nUs6J5>#_{TZBd3LB3AMEcQy;VdNiyB&_^>nw8qqRa10Ye&ADXOPOfeAK9VHr z3LY(GAOlsx>c?CIjP1aV3z;EpefM-U{W5qQ?ffg%h&99-#_te1mkf(Ta49DkyAil( zf|tBS8Rb_{x`?NO9;MUZ$&3#K}Jm792W1rkzXQDFIxb(VzxX##+IOO5dF^PBU3r*gdNEw|Qc z-O5rlK2j0Sf;XB>Z7ADF6R)-_3YHc0vjOk4@+Zc}39_*y;0;JT#VhM~_lh#YWu*vK zv?dUg&+j|3>_;%j0tE_OBpLqp`%w$DS;~-S_!%358J9Tra<$Tqc(qw}`D*!azuNV0 zC~Q7P3 z|Cz~@(ZbIq@Ak*1Gf(jhr1q!AiTwg7!m!%L$+d8AgT$6a$7)3fufiN{>^&1);HgLt zypW%B3d%YSb;ocn?n)}kBbufk1~Aq_`FLi8K)og8J@RZ`;x9qI#(<>^pXF2cAehmy zAzx&&Q@7SL4D-Y`@w|W;iBAPW7QWetZR6725PMf8w4AtTcmCc14KoOrd`syn589|< zu7c%NTZ3#yG3B{X{b!oG6pFGyJM`m6MI0;q^#5igUg; zonE16Y+S9fHf=?0y=)7%($Fq|e$>zA>+>r$`L*6ed}3UV4{0bKhfp4WJQQ~S6^=XD zuf)?}a!A%|^bF&C4X@US#J}5ElanbZ5%0B9_>Rlz)N>>SUN7NjLK)_~WopSmQq7+D zu~2E7>a130pj<7PQ(9OVq{=$cy+L!22l|R_2`~{Odbz69oQVboeI-~rP3M;VVtLIlLNvP3Ys=e$aoOi=|K`YTl5}}0 z#0{zxeT+>8pD@Yo8#y1vZ0T;4T|&4>k2hH+4lr*YnpFz2ycx5HgbY^oIqEHjgv(PwUHV_xnh0b*bCz{~p-SnSQi;)+6SQwf=b4Tkng4xEh!gNkj zby$zj6T8z@`tDiy{0D~t)71&(ab*)fvm~3lAjKN33W6H!Tw^w3)*^4bN+=(h4Q4a8 zjUN$@@4{2w6o36KB)^*yS9!M~G?2%N7aDHGzibrP*YMd~Xp^+b2H??8SCTzY0cQFXKrz-gq$`q)eDnK{YE}rG zvaS5#eB8|m1d_W6@h|i;Sh+3B$YhKsNzI25itTf`+cn{-8!IHbqPNSC;F^qzZr{m* z49F~KGhOodBpx7_!N5ooF?SyBs4(uBS!H0NiL03UWFfYhBqr@C$$yUn zkX61?ou|gy1dJyiD*-GbT?!`H%xL;_pCaSJ>rDSiKoU$PMVl7Qe>!rxDz zn6*~VOlmqGr|*1VJ$MGE_1%0jIXy@XjgzfrC9E-T11Ty-pyuMLz%MJredxWw+^&-c zS;}k)%|m_Iw85@q9VSHvDc5q6icBnQX$SSS>{cs!I)o<$wa}j-8nuB7~v+Rz8 z=k`>1u2sv%LwS@9(4}^q5Au5Oh_N&zVe5z_s88D+YA@PMKjiup?rN>A_@ZDqNhPhq^^-DV-vVmZWpTvU97dB8OD zXdP}K%(>HA{IvD!td`z?aMa6dv&JJuyPKOsM4>UfYKNm7cPXq2t|~GLvT!Qo@7lCV zeI*Yy{$6OlO{Z%8$hs+L)bm^$EDmV{fK}h@;kHoUiG6587nr`*`&H*#)3Nt7`7u1YNT~ zzZfHr_3Q6&C-yH$tyvHRT3!4`35Q(NUG;C}_Bt#xsoAQH>~sdkyB(r&PVczlv8(;% z2jiTG=xyQ-Qy)@DKC-t%qBHAs=L9kG(`PL~oO#yw;;$tbN8cEl{z2hJjc`OPg;iE- zuUC45HA?++8Xvwh>ro}1*k^9`$1p~JKTj}8_%7`xk=zhwWrJE(ADf4NX@BT(kF5Or zQo-^$d%AkeYbI2EvwJdo7f@xG66At|8s7j$u-V4rn{Di0zSghX_x+tF^*7eE0c*sg z7f0f!NLe_ZSqx11EHfO=<2IbjZd1fNceHfSMXfE^j@bT&P1ZBQ+Da9qGw_3jdV#c* zdXC@Pufjb!5=Swkpur9#&KL(RX#MA~3=M>v-#gx$L9h3{lLh|^?E*6CsWfOcoV<2l zL9|SYW&;v|o)pzgY4X~+gP!y>7Nb8XXcY6xmyYF99}%%or}XT-Vlh^ZrD%{g9NVkC z2BRUE$l{VxgNC17U0I+r9{LaJ4mZh>&0Po0?P|5sgzT#mqYZA3M7OM(RUQdd09Y_HF?wqp0jU+D> zVn&ufLz_Hw196|VY21prf2K^07{m-|%#^5(@fFyz7{Tvjm>2v(<00@W2mS|@y-o|t zFQC=$Xd-Z$)3e*I2IRL_1yq+w9GiiLXU5vV8b6oU6J&R|=ZuTVC3>9?fd%1y(P8~@ zR^r>k6oXt9@r#yFw4AIOBbG9F{-df8;z>6Tv{5}TtqK2gt0wOP;yikpJTf}N3ZRt)v$WRnB&7Uc1KZRUfG3&g$e>2Y*0x<=Y8K0Uvre*0w7 zQ1!{NL5jOtd4WdHs1v%e4VXvOLrNL)zdZ^MK5X(Z`KZ&v_bcC01&;lnnR2UH1h$u> zl(zzVbh&@}idUP|v?+8A%QMzg!E#k;A%(xF)V_UoWEi|57g`+P!f~~Mqu{IflIo$? zezVPHigqNYvoVJb4#lwN>3sXl8GSf>&evRN?YgrMQ zY10w$!%((gtqA0wmq79|`@Hn=Z%3r?X>uJ?=RO6ETm8EGdJSY3J4cRH-cb1M z#{}U}%h7u_$$)q~`2Ub_u(`~08;J57MIz9y+G=h;JiH=~)Z`k5j^aAU_ zfG9EHtc!H_dGT;v@4_cR7P+IQ*(~E+G$W?87D*a=5N@Pz2zGwjC7~_ zWKAj6#ad@6oU;8{$7`jILX*XYxAeYOveYqUL)72gC;n;(mAw6|ay?0`(W?Nfy^Ht7 z;r4Mbf7ojNgVLt5c_|VpMd8yf8jM-o-lx4%-yOEt;lq3|&P7htnSs;tcM@}lqrc?I za&%630#ws13O&eszLbz5vQ=ooLmPgG8DbP6I7ZD!r#5i{5D5dY^%oI5q+DD`?lnju zK{lsEA0nU0=b6UeWTbL}fsm8x17EU&^=)JT{bGa{7<`tfz49ZONd6>_VQprsVA+E2 zh{<{1N~vK}+xqlZbg(SqNJ*??@pZo}*cs=i4-nvvfo)79KP7$LyP(LT* z`)(p#yXLv$dg2#+B*TsKSgQ<~ioU0ZjEO%c-a_Zy`Hv>Euk|N^dhS1Jz&kpd*VR|v z%m04|g8uhmvH#;s2md|Cf8Q(a6Y1`DJpbo31%{xLHWBrqx%EZGwkd*xU?qE6&3^tsl)&rNgz>%cAzGrS&aM$^ z_Wdl$Juu1)#8FLbSIr}Pozfz)#9gssgj##9c2gSbN=VCTi#|006Z4@*SsbH>1jr3P61h?s*`}A+7dhoBI+)56c zlwGMRZ2S1P(QnCC7Ad5a&PLRau$^6*Imh(imwbg?F#7bTOP-pvSR z*iOe1Hg29gl>hb%F=SB&2vVZaBzcZ{Ygk6h5UVLAA7PkOvD4Glt-an1m zG-NC5W0Ch#XnmH;+oO%?jx6t}$)7R#QEFsNPlMwJ(ZveWfRkHa(R zTGw9V#%+3EOV&AKp-|iruDNhbI#Bxl>i`@GEz@?2zJ;`1#haMSs{i@?jY9mA6xgBfNfyhjHuRSO*I2O)VRhM-i ztjta|-+D(y&JdX%a$vO0+9|s!+#Mq@IjLv|*qhJe9`LPS-9dA|&b}`FwLl+zEbi^Iq3fJlT z8O}d&+-#-B9B{t|rjVVAb|z3T0sHCQ%Sl8!)F=y4ON$LR_0?eDg(xI?APPi8G+6K~ zz3@kw0Jmr90eY{Nq=!tti+c|ClTY`jnN)9qRlR} z!Xvy&WqDGou4-)(zdo}Pk+HxH`#6mAdEf_6FSd^La510pWVD|r(g3BooZI#GqoPsM z2YHdg^Ie*W!*lkssCFxO02E(sHRR8l-tqlunv`e|(;nJC=UJgb9nIEkKk%b8VNS5|Zu zl3e~(Tz2~vNp)H#V3BmQAfc-*4njBC6mAJ`GJGR+=L>Fa8Nu`cKT!G%R zT*@#n6)9|YM($5=zfz8mM9(UXpEbX1b!a#b?lEpi9bpv(@QlL*V42($pmkO(eV+KgH{fJP|+)DhTsY|g=y9o zBOCWt-!<#*d>zjDIM>FXVO4vo2}5kRxLeV;uFy>WOUN8BzGUQwYL9?XTm;1;VIfcm zu6Foxw(XLZh~uZmpsb*a*jm?!wyQT-p3RR&xNnjGUutp1~mp>xI- zRoGL{Cxv{TREOg)Ipe58y*P5hZ!5{vaNsZ(XF6Gho5mB&L_4gQUyi~^0qzhj?Ufb(=puT&fq2XnZH4eOtTTT0G*aA<69VQ`m zPXA8{OYdnyZ^psH!y!k_6^SgU*8G;d=kno%XH~PTvxK_ss*r8fGYg&piWRhb)yt~+ zol^c0DEUr#9wmr@>RL0Z9`+fJ(R!;-%HAk#SWsvi)__QlwohZBL|ur3^mn0<3`<_v z6jB^OwDeMjcDAWMNT$&S;6Su1?P+krnekXE6=i_AtB1a5(ap?CIgFQ=!(3GHE5}i9 zC>C8~k;RTXRSmF4Ts{<`QZ&RC;M-;GoEAdpk7KONf~P&W>Rj>T?vZXZZk3f;05ILP_+7gq7>%+>hNW)sT_obg)b{n>|R!fWt$VF04Hu7 zi)EFau~6wiBkr0i&@R-@(1!2w>%@#xq*=Xyig!@T7*S`3qPVknjnr}hd;AuOBX#r! z<^3EJ%?=CBX*@MM6Bi|1CTB~FGr8?5oMECBQu?N~bj8`ziEnFWwO6G>S`Cx}XnhoK z()XAL^&%P&O|g3ZpMAvsu!C(A)N79WvWP{TvvK=o-U{Au#IcU<=zLE|J976VY~#7n zI8i}mn*vL9XB}sB8C^f~80Z1U&D=KL_)*wBT9VZ|9VO_M0xQ06MSEKyCc{}D8VD3E zde&-eOL|7kI@AcgVK-xgRi@S09*3(`wR%#x*yx6OMM6?^Hm~N;`$7(lP!4po73ENW zON7wPkPhPT(;1&Y_PM7NYVhvrjh-tF3CdDiAkC`eQX~FFM8>ZmTV`2HDyaY|tz13v zbkxlX`7eMa`H5l)+Z3fDgs@Bt;b{XuLt>1Hik?bA>TDz&;&>-FL#2%*OOY&0f{Rn^ z)^_%r8Hz3vxNe;V?3BF$nRq^Yk-Y57{8b{=qtD37oT64;LYXhQ=B;oJf`Rh><=l+P z2AGYl75gHk`G38G#!{u9SrCHMb8yPboXJ9n-Guk{Bct_F%eoF#;s$ zT2t8nSWRre1I`Ka;s@I9@tcXXs1Pa&ETS~6eXgX?T-;z3%J1#43-%Yci(=Z&C>K2p z*JVb%^QNB-Bsi=WZeAN#_r&ZpIPDghR&e8uM2SmtQEQV~Sh;!*N55)cRoB1G?If%l zb2X{w5Y6{9gsG**I2^4&^A_h6VeFG^pIAfqlZIz(*6XbyMH&`~)Y|67l9bk_imKbb z;)1xtrs_bWvubpNiSWiSE0&M7uTBntTRl;I{Unn!+TYNzwc{6_wL60thE(NVv`Y!? z2i3ae=4Jp6lIxZAIw(aZOSpNK!XU;u&h5KBp%7<-dIXjTHt;5T6; zdG`91DlQuJ2W+WS00mraHQ{f?Nn&C_w4ZB?ik=@ej$8SCdzzV|=b9%Uy=QaiC(f(< zZ0IWM5Vzv-4FS?ciI-g8jb#~#*utF&pBti_mhyqlp$qD}zlI3ySTG>My3hY{SpN+D z2@3Lp2<2Q@T$Y2y0Boh<6Ibwcy94bK*J1AsY{0C+8qAxct@hNxh zFu6p()nT7l=}8>N=fO8)8AXl^xfu6Tpshi?8{%Dngg}hy$2ow#K#y15iDACPQLma5 z3k~qAR)&0QMs!zlKKi?FQu)}rPlarwl8}Q-k5lmbUAWFj@+~&<>*k`*D|dRXxkfzd zP$SYvig&HcC3HUp+nML6?V^d6j(?ww@>rd^Mx=HHR}QQG-8n9qiLZMRSbmR1fUoFJ zctm1@Ph_bjK`U+@8Rpexq^ql6@~5vGnA8d+!q;gnb3}E zth3^-MylLZiEJ>eBQ3B%j@OQ9yitp3iLyPTDWSwvrOqakze_8N@g4D0eBgY8Au^dH zCZ129V7fbQX5ny*J2rjNxC+mYhAvj0xQ^w`n=o(|3P6xHyq!R5191$Wa77&BUQnO?0Ld0fCU77FQVx*`1qK+ASE1{RtVH$JQ)RCC<#jc+$6Ob z@6s{ZiFN2*uI*D#B7G7C;9gxxG(&A5u+$A%bM#ip;ofTfHj9lr>IH!TjlCx~GAMXz z46-J8&7*>jjV`ugEIR`DQcLxwR(C1qyf5VUWDG~9sl#|vPr5Vis6$W#I!MpRx7K0H z?2#=ZPR#X!Hi_RwhwD!^PK%Zw{IEZXyZy10NS4+EywL^l}7Y55_d(IWtbrN;-MFz`p#gEL6-;rU;TFM(D$eDCaYJeR{*cnLn(R z;K=xHR6*$P|DZ~bf07yJnwJ+%l97#tOl=<|LY-yyUhSUI$27RJ9X9%@OC-jOC}M{@i9wjv2A#W(5?ai4Ro2Dw2psXTEf=})h3i7;_g|!6%MX-SM3H} zYHcGvKS@zNg!UEm9u{ZgjHe-?#2BlHL)!ECW_?HE(KOI-eM&bMI@UE=x*4`rs$-Y^ zQNK?xMsV2dUS4&8cr6-xkGNrfKRoqQ9#SqHMW%+=1H~_a@QIP$fz_^)VV(Q0U6ZWm zb+SrTrnkgh`)>ZL!QTth^qTkIHt!CSY*22Oa1I!We){@N@l|5=m~=?DH%=;eDlNLQ z6Mp>*Q_VvTgW6WYf@=EfJ+lBmHN1e9Vt&c^VvZZ~*Oq;{@bV}3(f1b^x){3~A(fpT z{n3lDi>u*aY#Jaefit#b z`ZL{ehv|tPL0MVzFm>k^Lgjg?oIOEUS)LWEX#wnCYloEt-XgdMm+yJ}tZ|Eh8@KHT z16u^JtHLts#Ss;hwf5FruBvwlD7oM~6>K&YbTnsYtbrT?ADIVPZ1VlDeTh;F(0B3j+#5lL5o(RWY8X|AEH_7CWYoD( zVdtJ)mrE2(VVTa5x68`p6l2a>LmF6OOM1c}gUO4Jt=WH&ZN3QP}tM#6J`ib9fcre|9 zcb-c8p3aB_Tc9CG zER0ye#Badd&N<47Fq@h>a>Dgo2&=vf85x|$l*L+mXPNS|k|>}oWBb$F{66_BeX_e= z-lTRDv&QcAMjftTnSnn)(Ih|CA8#UL=Qd` z3v0g8HMkXyPEDPMqYh35lzXToK2b4G76xGCYM}zx;*Mj)cUwLM;vT#3Ix0pbDu-#~ zrYyq8Ri5}Um6Nq~rn?C69+LT4*l2b*cBPWF!CxU~N+hJUfiy3GEliihw- zS3`#`)IT=mf#fGJ=OiwBe&dM^#j#oqAd)Kbv?2r9d+?b9G~B4NtAx`YC+sYqncgEu zmh-6LYx2ya<-pfTJ_@(YDGjRu0OxF>d+nv;6?B4(Q$+EGUxB~6itGO086W0_p4-j+ z3e@gvHs-2qAk=$4cv<$53JPD^_?my8SA&w!$;YKTe89}^#70T8Zqw0e2)^wlVnl$` z!mIlL4C3g~!vRcH+j>@8bYP7x#((h$GK}(mvU3T?8fw8B8j?p24H-C9d9a3uL6b)Y ztNXRWM?txRP{lXTT7I(Bqkv{A7;6c+>EeU_L2cnHgxIWxeZigo)Yy2<$L38$mB@02 z&ZKRTT)LR0g~R?;R^VKtQq2H3)$RbwL!E!{?{W_9;s<7Za-^*1&t=Q-nhhAXnUaX) z$pK3ae_nU0X{%fhO&QPwY^Mv|L1fLW_M+uMOd1bg@bU$o!$NSzvCToAqX&=pv4=C< z_=T;13DG_g3}uKE8x{kkef5tzkGAD@t!)KULcrYTH1PN^9vlCl+I8M@Co$dHg=2cn zxSsH5RsTrWbdp9hO&$IfM`Nqa=@Bc;!n%(^+oiLB7#9ecAqN&3d;&#yYXsXI)8}3P z=0|j<+NOub5Vqr%bJu;_r>ck(T&sGc<}uK+uqH`vw`8-t|O&pWoNd^?wx-B#vJfJVpI^qD>Olab3B=lz!v9wF@^ z$tA_VdM0Mb8Qps!Vje0Zp1R#{e1z=m^Rn-?zz1I~{rZg*PDg%0!FJ0Dm9>$THV5 zCKfk7YSRGPu^1Rm70*r><<>06mftgpG-432!~S9^Bw4+Y8Jg|CWo~=-Mj0T^_ATx7 zgE~ZV^&=rcq)-Z7$Md^8>zNosrR@GY+UESay~sG&>>Rl%HF(MV=J(@NojxiM)!FK! zHWIEKC=mVlifdHD<~qap)#nQ(VO!wBFRlmU%pL&sB6#sqrmBxn**vYq+Ck07s6W-I zU%kl1`!Z}7r2^*5m)ZBdHbm~sSGn*XZ=z${jMtt)Qicdnc^_AL{zy3Oo=V#pzV)&PTkbs!ZPzH*Z7MzYqz^Rk zH159g=x)_0qY()p$ix@j$?my}_Ni-&ds*Yr7+m@E+UAGX{|0ZNa``98A#A2D*PBST zFCs3U`XCcj(|!!7{LF(>H!zH8&^O6Z%NVQO39N{i9*RA(rhrC7Ztou}w{pO0za%MS z_T8-V3VuqA+sin>9xwZLS`RjwfYCI~ywW zHmuZ2duKU*jfMp!FG+*#$ppL^rbXgZKC$NdnY%5|8fL3>kKo5njJFOZJ?8>KUBQhFyR(WUu5kFBK^ z!{tsEL4vF#i^^Jp(uIf+*Pn4nXp{oR2 zcjhV?Ph{@0?4~ieHOu~i!LsghcyW`GA07tS9GE;J#0Oa4vfciU^fT2$b1Mbg*>5!} zCM1TFs1an3WnE3<>ag6(9LgE3kU2Z>Jcvd{kj}Q6;T@GM!5!DSE%ib%z`DaaMcNe; z7@JY*Jjc*w33DK2&QegV3Kzg1#Yn>yl`%C??qU_i=8*`66R^R4b!@_4zfNKp+a_Fj z1n_gJ+iFyyJ?hqEx>L)Cvm;w_T*fe}cud_A6(@X8rgtrbJ%(wlos2)P^MbOS6-pFH z_hX(TbOeUF#(o~P;Q`@h?Gpan+j@kOvEL%rFTJR>7W!*x+ePbbIcn`Y zNxP^0b!JxX_O<0x{@KfrafQF6KirQ5JiTPeMm$!=fjDJnJo7r8Lopciusv19`)Q;e zL<5fOV?F6kKdu`YDk+ft?asE2+NblViS!F8aTr&ihFs4pWRv3Wm@qBsOO(sZyE2iQ z)792+nEk49OKuy@PQir^hlPtSBRc3lJYee26xv+Q?a;dBwwX0`_gSbiOO?g(fNOoY z=k(x3Z5V=!>u<1`1HBNP`%|3lBirc@`=_wN$r^_#_)xX%L^UipA^uzTR49ey8hw!% zbc2d*K9_UVO7)>I`RgB*5i;|0@nEO)W|>&|uh~7S_1cGB_eM#9?d-{HGvJGmY{hP# z!0ac;LPn2f{*W9!|Tcox?jf;*Tp88&Va2zZpQy7<_X^SOo12C1-%*_F(0 zvgVR`K0oPCz!1Sw9*2y0483OM_9UsGEq+yhq&_c=}m*V(9(>YSrnvSaEOM&e^#3oxyZ7Ycek zKzQcLgNwu$(4@}q3a3)%6)}EJC^f`;OW0xm#SHxX^+F%zhx6{hH0+^0A%`tDLp8zY zEUv#dg@PXfRXbo?mwo8Yxg%kyV8Xb8>P^`LEkI_OUo2^tog`ErC*Np?xJl;^Ix_Dq zDAt7+us`k~Dy6FWZ@YuHA4$sWMCdF^^E|m0-P`c$g$rg@x5F|ixav9uddJZFR9j(1 zW3?g>kAMQBL|&uyNp$^sF=%p5CdqD_If3pYo27X;%QDj_#ht_l3(Bo)ss+ur~W=3S+=v(6*uu(o38-XELdW{Mj)b$c}b zQA8RRvmD$G)KN-6ztWgL(QL^>k2(ICGZ!+CZ)o>-ckJXg9a-!tJtS#$T6)bSUrsh+ zAnC}@{z2JglP9F}utM z@0cis89M6p7)}R@He*pejE12DItiZ(Hddo5+4+ODgik=6RX~-xcsx= zs-0&zw#BYv6v8*|$8o3Q7-9Q?(RHWafPs`XHT>(l_)@?_y%gRs?9;4e94gv$-*GG% zlNgR581J`+qhuGQlB|Bb-2tH}dn*HzO5LwDfn(DAu+I@3C~y0BXvj{agVsJ@rF*Yl zj1OWvm$T7^glpCj2xPvpb_Gc4r728>hd0E;X|nU51uC0aD#MOAS&CAei|itXlpxJK z3*=sr5NT@@!?Ql|)#6u$^4x%0?6=%pPx4(%g@t!wJ-W=*pu>8t;9r^G>27rpY@O!P zE=HVb@jtW8PTiuBsWV6O(}onneqz0h3a$U?d>AFyuI*IZ2ZNekHV$tnF)(-9rgy33 z|7IMF3%P0M;K6{{Q#VYK(iig?^5E?oK<>vy^R9^R+i@9`!E+$d>`%BP!ti&zMUjt* ziDaL1PPbDy+w!hF9ztE%nSOF;%c@pcaO`D}7Tt1%dx_cf8f^=adoCH@6OGM6i$)Uh zT#tMWW4txz_Z|k8%RFrVtRaQx{=&BOpWE3voa_iJowS3t%TQ5{wAcIMsF)o&7L&FR zD`bvgAK_ksT&Y_7jx28d9f55)E9{*OCe2=SE=OmSxX$Fp*krsc-ljv35+3tdXC!7N z>T3;{j=d4@udPsRnWQKTfM9{@kw3t{@Y9kJ)3{vl$azED5`RiYPwqpbobwNK_`28O zZe|mnpfd4vkhp6$FA@f%HN48HVlaNuA%&*v>MBxwe@;hzupPG0($bdLq=ex znVFquy4}<<>Owl_LzdcfaAJ-;^Jp`M2X(ZGy}2H-44JRVlE2*m<53mG4I6dJB3P=) zFgK@Cv|*n!(~yrI60j<|MY5TAl+FEFB$(PMA^ zWvwos8hc}avhGsHn%~VS>Nmnx_pp}-=+s3nHf8S7?O{9t%j_ow$7n+o#5<&i<`Ypd zwN2AC!>H8IB^#vdu+nYSf9#($Ft4DN%wyIXLF4DJMXcMXHPYj6qf?lQPba0%{i5g^HTx%anMs&?Mh<3u7Jow&RzNn>$|rl`x7J9tdd^sMe@p&**^Y`1 zBp-ulWGgJz5FFWVJ!k9HH>o4Ir5MfXR!74K1BhmPZ%48p4n4Z>Z?h4^1%qs<@d3t$ zeA=w`hSCvWNnaz|W&i%gE}>c7_V*dfXZPh#h|29d`_8Rm3@h5V{m_@{A&014f-G+# z4BMp1M+a(wV?9hWfUeRh)5R5N0XtGNtFSABiQpAPTJ_Rh`cY+H)okI%Z0d`(h4HvJ zGM5Aapw)}%#R4rDg|z{=^*9qiIlAB$!jv*@>=QIo8K1KNvAJ-((-Pk9PVR7L7ZzP4 z{<_Eg^EAc>gZLy^7WS1Ih~a4S#Q7oW=H}rUj&co;j3@!zvRqf5((Rsy1)%&AF;)%x zTw#*b&LGtI65(9&QPyIwk0|bgU$ zY%2?lNZP@U*B9ZNNJXzX-vH5X{hz@I=8#Gl(Q$y=YSEi@Ii)gRk$b_1_WuClU;*{! z!MMMLFm`I;iim`eu+CL-pu|Qx)~s0;Qf6*O9?xQ~-%K+c;O4&8tdO|?=B58V3369% z5eG(pd9O&X(i1X8Qn@qmnBW8mo{XH@eJ``g$F&g7C|XFT_}g8^St7g$eFK;qs;^;< z&Qv)oz|tWeAC{7{@6g*-N9(g7+C14vdJ1^%;5s2~Di?O2@bvg&d42LTib{eP8o-W)42y(le_qs~kSU$`nH2oqW-Qa6g#w?RX5WZ#Avd zuM>_tBUD5-Pk2eC11va8BXoJX&Pyu12-mC+?sZh@<7%v)3%?y8wiWo>@O>G@Q3uwE z!F=~IgbT+wzhXG-`cg z3mHkzBl0yWaI~iDLzFG0!me1<+TUWZ`k;UO2XveS`CmlLZF+<&6_V5lE{-$UAJFaS zHbko|H~3s$(GyCrj6syZM-mq}3Alt@G*Li7`A{+w??+Gh?0{ zy(yQ_m5H2nYjLbAbW>b7z~0j8(cH}Zw}0p3d2lvYA%&x0_emIWv}gCM!1ecx5?P)Z znit#(J%1MrAK96sL?Ft#A63to)}P z*8c#wLNmS{iz~-W(|4)DI*hp{l&$%^ znyZ60#h;FHhSkR_iir3V1-#CFtb?p78kE@9YZ0Hot*;nV-^vCNNKPfH6EmKaHtZWT zXKvoY7ZD_2e_k<&Z&UB!nTX!f970Cw$mUnfnLDS9I`bi<2GVlJ<2&#cS>lPbqrV=rw{ebfwm?DqfN#nu92hVhC`TqkU6O+iU_J`_ z(LWadJEN|V`I8K`93nUv8*A^Eq;-KC%gM%&J6`;Lhe$F~Q+?GtMKXDAYH}_>bz}c- zgmo@2^P}q(t_kHlg8@r$>7tj(>L<+sMr9w4R6;zCaa{r!x9oUlD@LkWKG_I?ByNZA zuQ7#b88-5tl+tT~qospXNlYy7(++&T*cYmk?;JKHcJ(pf_32*BreT88x-G^ljEQ5q zO!f9Ews6^eAN)JxsG)Z4J+sgY;% zz){J>hla;2Imp5JFL#s2dfXrSJ3wx0HoGr7v{BO2Z8Zmh*#yp+Z6ZNb0$4Ip)&Y{8 zDD0^}=@VKlHvYz+8qmkfODxiEHcW>sn$e7OG#^}#Oab?ElksoO9!n9&LoFf}w-Dp= z7{4|IWPf>P>61V5ZyLm;J?=W7XFI&bAQccQz^06nzA?ysN|N-M{Xy~4r%ECS*XG<4 zKC1jAakOO`fVmgz#CtOGncl-DVQW7|t*mbA;5ONNpuVlFMq_kOq(8dm)XLal+n_O| z?AZj5QvF{Y%`}muvreKYY1M3#plvfT`GnoLAEsV-BLqbkqR99C)3+<@pY#@l`f+j@ zRKuOd-oQ&LKm~TEYJS5R{`1Vp_W0Z6A`uOSbA^9{b|0<*azC^uk*I11QQ_VsO@M#YG4;!4QZ2(M8ju-lt@RSvb{p#c_dMLsYF5+ z6;Y^c06B<+9--cZTZ!sL|DdRNbb$9>|J6A`RW;ZzC+F3jo16PTfK$i+0Fr7bV(pr- zh}ePtAMPXFi=XDv-;q^3i!(C8TgI6}sJ%%#DhZeT{COaURj$ zUodnnw>2Q1I^W4bE0e9k)0(Gg4_C%j&&4jBbasq3!R3EwiuZk_T(iQ=^5}5~$x^Xjk9)tsF%4gVc|oHCpHD0obArWY zZJR_PkPXBAXtR4QVWs{Bbh`5#i;Jm@${fFe3OUS_{3e;HWMJ#~e z+^HxQ!BQ+dTM400-X zYtj`EqDuL`9Rf^GPeG5~x;u%&t@QAe#qn!5k*0=xy9 z#!T@Y3>Dr~;?M2GV=9R5ru7n4U*o-W$k|)Cpg|{9ulgm5BbGP@2@75(y9HT~!WWCV zEuYu>p4E|wswI=!*^V&9oj#kTnqPF?C$~|ci1~>-{p$9n>6=(NILA<77IgR&!P#}@ zh!OyR52Jr-MH_xCo?&mBmggqu&9W$Xo12{mKXwL1rw;zKjL~PPgwD37VL_udE<(oc zua$Z<=hv@*n6*Wj87_d1EMn#$;}6DEq>MoW%EH-XH`8RG=AKhIH`GJs@0{cmSx8eu zB^iDizauj5j7$b_qC8MaH;!BX(C`UlmmI4^73o)m&gE)%D48O;va^ju;*64|0oSY# zNjW@S%0dzJ#6C~A$v0~bR)U{W#C#grYNe*>8|HC5Gi{tIDYy;2&}F0rnGkek2m)Xw zatrQUFD!*w4#=RErgA9eJ6s#|D#umtlGU?lz_f zP>(qk0Z3aH5zQJRa`j97+(KCVh{hmN++5l$lq_|=_)jEWJVF3GNcYeX`QHnL@ z4&>ecFa<&G;r!ERC4u(Jv{J&-iTIU*`yY?_C5OBG;4oiy+kXJ~A#v{zLi1m(QToga z8FMK}Qtl>$JJYbWUm*TZrSNYhx)!=Uf`8MWZ8{B3CO4gb2KA9D1O2VjF!3dkZ64 zpA^vL+N&^&6h$GP>#z!!QJB7$-V)-ig0;Kaqi?NNcwMUAy^i!K&IQuI?X2^ExaaqS@?8DyHc}iO25HtGIO0`PQ!?r3X zC%`$umuZ_)opCv)4mc4YC*u%qwmD_17S8Z>@R!>oC3<}DNHimNdv55^Ub&UPv`L59 zYPN&0s#R??R)!!jd$h(%iZqHZh$Ja{maqehP_ItQEeqCIov6ZQ)U<@87B_|uRt&9M z(L7b%$WaTatE$@wM+*zJ)xaPLe_i#;(-$oGPS8>~bj#UK*x+?Udl=m*IMc;s!lFIC z@7AM%AUqP#K#QY(*-Dan&z166xNp&Et-@~HAqQW&GpLzPh`7SX#X7L7I`ka{Vs~20 zfIiEHwVP4XPqD@t&!HF1%R4yC5`S;qaa$=DMWszLU4JPgN!SD^Fx=X3Nl@4k`nF_k zetN%*6D^{VZ%E?pM376M{2Hx$!)57%_@0K;o7Bpm*+y2o(b109?d-xubnGiMk05tP zcG>79L(97vMsyI&06X(<*>y=UVbr z;A&{Ixu;Z+jE8P)+`LDx{$|7lvq{|=7Gn?GE*euOlrS3>q#WT7-~jW%^kf=9*0G8g(fqfNui)FVM*l<wbD01n@0Z+{nc{$srP4mH*ZD z--X`8|Dp4L)_te1{=W@V^goCBzlGnG{@bAcoA7@N_azvizYF0H{jmNIn}-sNG5?<( z{+|l_|5NY(*O5o(W@ubZBEmU`PER?u8ZCE6q+cNb!&OgIFp*xNC7%-nItl!LQ}PECjT+YQ@4KB2*Qlnl;CKh2S^ z44i1w%&Mf`u1f{aq^1+rf55GdiNQrvlXhqu+aY>8HJH18&YW80utH>yHOhEgQsBv~ z5gS~7O?n)=ERy7aJyDE=@0ywZjA{dE%U%5&mB5M#d(RXQ2f~y@o?c8mJO&;RKI}_cV z>uI-QEABA-Q^j7VQ~f6EfDxH*_*Al0UUrUA!p3ajP4HnhIfB2m-drWxUxj;4X$LO!tUc3*Qb@$nm8-^v1Jo#;7=)>c8 z%^rsVE1#W%<7~XE4a90)d0;=lle@v_K?+S~S%VM#qhY1>9J#5?c?X z_$I$HFb?F_XcZlGG96ZoPoSq#x{>h1Ty9-3Bjat?_i`owWl#Pue=-mW9`4afGh}GZQ;nvKwr&+6 zuOlu14OeMhr{{PyfKq&K79}Uc_ju83#NK%d&Hn1O-;Hl1hgU7vl1kQS*-io~FGB6; z!t(!Ev*B&Peo-v5Pvjhy&ZIF0j%8^39=FPcXrccHK(90uQxpW3Oh-;MVtt=+D-`~xTtS}V-r@p)ly@BXPVFE*QLJE%d9zB_R zo+cHxMtLshHin)3ibi{d+DxM82GuKLbvPX#&reR*d8ZVLgURE+7>f>iZ~>tD)ts<* zvJO&cSx3Q%Z637z9iz5zyt-gdUc6);_^rsG9Yt zmCN_9qbcVu$Y}NS>g=$vO@VqBCWiWPK@_;s-|mC!h~ZQ|Y?3tVwLwSdz3( zavcNB4sp3syb>0jz(CI2r)7YCB&4zuKjXeR=-Cs zWs+G$ilp&PS)X+6ioSS3z?15cf!_4oAE-kziAk6){({pUsZo4FzwI`edT)rD-HJQH zbpupO*X#wxmEENwPBy8&GVXx)j z+UF@dJbjTXs%BXteL%ybHp##O-1>Boc{KTA5p-$u$B=>LzgBFhs1|cdY{X2ytNgEU z)WqI^VV4_$?YW=B;!beCh)D3JCM}X}ZaNA7K91U;A^DqKqh1Q3N&d+hy#>e`k>aOg zwqM|BuPtJ)`vVRoCGsmEhSUKBgS?Evp<32NpHRB`l{9d3@!z^f_4#lB(VB-h(zv;5kM(op!S`gW_j8rp^@URsD*pWbGR4y z_`!@(`}O&^$wW}i7y|Wo@UGzQA)7;jaxlUi{MOmLp| zvGQOLTa6B4#<3cgnsbK6K-9~a(EjhJtO+$n>aZGGMA>#v56lNxrJk&gPo7aji--VW zA{7ozwVgt4s->?$2I=`8BNC_h^rPO~uy{j@XgIK#Aap|KM+7`*5of#0Hxt(;fQcdKAr8!(-$U^6>o}=(BU1E5 zG|4%T_A{QbwGMEp?c1hzLE4vXPS(ceL}3&b7?$9?v(k%vd(;|eNVM-f#5n#7WT-r} z>tN_1TfG*)nEwTCZNqW9yoa6o+|s4FfK;W1ORp)~BgbD$ZGGd@BoX}F?ie!cXev{N zPRu1<pFZ~REV54re+_uPiZZ*VYx zSWny`GyrZvp3a^cM3{?JPFaBpRRn?kM&kA3*C!n>XM_}6QzVS}vJmT7LzkX0PNx3@ zSi3?3Sw6+x$LyplX35J+pBFB>|* zfFaFXx+})EdTNHF#&y~7{UNQhH>^*6(jN?4MitKx+ZOUZqs*k2WMqVnROv|5-1$@% zOBkby)}>UhBZbEB8m{LX`^0TmBD4SK3mjq};BtIf16@xO`7uL&br@G2V6-!N z4g9eZI`+A~=YRI;vk*S<#j0Y!$pz2}B6_=5CJsfh*zu7QQ<$Bc5~Iu2?+LNcZZ46F z;Xm~#CFg$7*QfzUr&Ctb05mJD74#CkoR5cT^98L=wxek#p}#LeZJg+{22A{TyNN+p za8l=I*oy2|=AW?e0Mj*DqsqNHc|M1RUa8H+!N`92EVzX)+%h}JI!30(4}ZzN_RmXn zP4KwCm(TDU!U=%xsee%QAjR6`My4NrGKN5wAaCnb=k6=m;{`-PSJ*gMRhvxSL;>!) z`)}Q(Ru%12t%Jk{qjmzx$e8$`B*0tcBd^=J?cb+J5knpH=?{T_Eb>JoJJx;*KP63N z4j1R2tY5@5dqf~GYz~U=5HhN^RAl+PrFoR2zYwc=xe%|n}2uo>~ zG%g}~tn-_Bc8d|-7eexq*aQzy0{t;OmU&IZcTnq!sp zBw1VsW+53}93>xt;0_kq5o3}T5k^fZZB@Egm_Qq&^pFP&UnuDj+;U&Pkns0z-xAi; znDDRd!Z}ZlG2S&Tu09VQbd-1|8@QxlStJl7%o0~8LANL^Y$IS_9cJ|zHvQTl@%Lks zE1*>lWkgbX+sQavj9$Q&-g(Xg%e0Edooo~fRu;vB7x`QLq}yEi@bLNCeX;8iEvKTw zCdv={p}TLUz}R9eIn0Nl>gp>R_@eCnapeS*-sQzz1nF_p7o!FC;giq;8m?Peas?Yi3AHNz=U>kpaZ{>W_dggLIRaRqJAPxC_yS4FUwP35#fyVy z`38&QK?m|w<*(*DIQuM&f9n?QU$FHGKLzl|90Fgbe}wDy*?y4N=b{&rQK#*La3UGC z{#=^NX-1+{C^)8?kGcqwT5L?COhX>^XtMG;RX+SJ@`aCVS?iM}apb`(XNlbj8!x0g zKM&z+FlzD!g#OCDw<5v2&V><;-mtG1uinZT5UvL7_29T{J0TeSd5W}6YFR7Hxai2A z(q6IOH}Esa+_|!1alda+5A8#+nrQq?+^;`-ZuPZ0T7qgmFe1FYEtMafD%Q1tYOFzj1RlI{j`oXeF%+KWkSn-1f873!!uFZEQ(pR;H@78Bofl{hbze9KJVjy{88ubkofD*W{ z)Wo0U$1@_$h;M7EC|S_&*y#k#w)WL+XM8c#RH9o?uU3BC#T(H<`>Zj}dRds$4nef| zzG$cs#ja<5$kbc-!Mg5g<@;-h-bN~ABe@R!$;Z-EHjA;D=j~S%3d3tuz7&P`?|W4Fl+9}~r`eYkSy#$Knh~(??vH<9|f{GO>$VGsx28ewN-A6XD zmOl}yB_(PdVXl+H$g65R3DTEUn(i=fjuE9!lGdoSOMCLxwd*WX?JxzEnSyA%Ux!KP~ROxmgTc#UbKMgcFD1!vCn#>Uxq#^7=(z> z+yr^%hM~Bmi((F*{c9dloBS2@eY5@VpC!sf@361C(+{V^(wSVp>#pj=iN%LWnI2^3 zr9(nDQf>mJ)hv-44X|Cx1|%n^KjMNvqze*;fzsd#uYOFw@W|PIng1j|=~kTFY209+ zTRgTc_BLLwmI4C0wk{qxZ>Q`yaZ*+oZ(Th{4LDX;k(Y(fi~m!xY2e4@E26K!{6NLB(LN6}H~Qd5 z8^uSCkC)B9Ew1Q5q=_?rr+-T)rw4OrgVJ#@T~NVQh-eccy-vrV6eH-l>OYch&Qc_L zgGRXzhVhl}y}%Zpdq(cHx|O05+&I0ZP5U(i4T2H1K#hjx*P83pVlz(T)6~#JJ0RR+ zc-Awp4F^9=7-&JP6PTiq%a>I6K!>vr1nyf@O;O5-dJm(3&N(q1#EXx%dTO_vEeDWBP4bDbC1(>Tn=qc z(ya^q2Oxr3jt!o+47T=dXO|irHaQ{s@rSFaBS{-4Jd!{c9Zu@zZSnqvd>qU$` zoRp5_dSe5!cfHa;0QkjyM6rYi{TpQkD-gbpvwEDJd8eCKAQfIrW9*wsI*{0U^@yN8 zQ0v#9+y{y_b9ceTi;4A6e5*CqX#M(|IqB4LWCdriDn^M0hN8;!jOZ7#xI$$ReB#jC zMEQN9yk%-g^q2%S4uIM#gk1V)>`o0S!SbP@wyzu!qZc*cq>og}DL9MO z^)0@cV+G#hxX`5UNn{PFxRXuziVbUy1WwbsaPXnHsXVELgjydXP%9CMH;jC7UM~8H z{nfK%aoq4ZUK>!`A1Tnfk=L2NR)Y9mzwqE{ARdj=_Mi62i^ivXK-Ebqu`Bw%gUYxyIRn_=(~BYm{eSQ6p?;7R_)H zPL=39Fc`sWqI$8cUo>_o;1*cC(0_eODb02ZG8aKo&%49EFBBpd`j$)f$FCO>cV7Q~ zU5$g!ZTr#ApEgEm!Rb_vN|o8;j9-_epHm(hz9@b2BSG?a>^Iv`fKW>M4LzzwiJPjaN7M-C!b_uqi&O6PH4 zO^@NTFd4ebjlTkz1KHt}5PjX)3DjZgpcd9LMtV6QDMR8ra9v7(C-ufVYw;D4K}s#f z8`=Y>iraAgOq~&U_S$D1Dhl?-R3SkSxEh*JcG9f)a+Md|or7KJTeObIT@`U1>@KBF zX@DrD_m>2~=G47``!W+o8~j;0Kv>1BZuKdq_9D&eB-r_m{z?6N*8HVfz8NxJzcO{W z@0nggHFQmy51j?VIycN>h$0E1z#z-8rnTa8M~nQGebS=(t)P1?*~ikHNg)I0wU`I( zkx$A<$9`XQ^wU-cT$%MRSSXxUmHJN3(+ukl$StN-CZIpqkprp ztJmrpb!Shi==m79`G-zV!WhH}cUMUSaLx$gIkFHuP}DlEkflVOG#T}%LVNfojQ8Sx zR=2(*7%c~Rt`k#oai#!<`XYXFI?@xZE{KSTyaev8eJB+urcmYv!&%xUR17mb({(_Z zc7z$TLY37I=?q2O0SI}HT}oRA+a6^FwW>C!Jk-6Q5OvT61Lei<2zM;fy>BGBHXtw%x)Qns(-QsHcm?9^Dk~NWNM7s zh79Mz&hOD`OR$da@1pY^N$H?)F|FiHp6@s@8-sm_Jc_GJ1s0|Qsy>>OrcYVoMUUj3 z082qS$P@xU(ztw;J6Xa^3he)akT-_bOhNgPIBbz^Tx$OV=e#qc+k<@DZJo<7&NUt0 z@xj1-za{|m(ZHuo6)WF*`)^I%ay?Kh&_*K$;zdWAOXyFXr4wnz!;)3b@2=U|cUVxY zfJT1$H}7S`h>^C+7L!{Zm&yvQ>SAY?wq&ktthkcC(vwgG?&hA_<^8UsaYN$905(eX z@sXGWoUc^rVR)E@6-S^GbDTD3*|*m?Ar^qgnB@Ul8Eh`8rd{*eK0ImXshdQ^E%0;H z7)zW80V51?hYVeI)51yvX&()_@}LUy_)qgRyb0SEMpy}HJ6|96BPWb5{v}YL?s!(N zQ%SllDtFHNzawY!zxNk%tFKV|ue9%p9WI3H_Uf{yilWuqiJLt-mwSi4u^_mTSq`JA z2W^fUzl6|I^ChA1Rd`Y-m8jxqBm1d)rub;wvtIG({~0}jkUGx0n&B3vDV7U!=+N7+ z+01XZ+PG^UlxXWJ$b5T>@J-;Ub$A-MitvJq5R5~AiW8?&_PzQw7AuL;@G3gTRaImS z7aTfMy$Ctd8$Ayv#2*U_b+i_fA)zAO*D5x*E|a<*8O8kA0J-@z@OjN-Yy0^XrpN)K ztj>=BYQKG{RK7t@X86Phc7ZqPjI@=9nu<@8dY4g>QlvW*uoA`1mZ|27EAy!@>sNGh z9KU-vc^!OUa>N4B;qb$Fb~NC)$!2>1DKr)nCmJiihyxn>ux#$e8)VU8dY)C%*lLJs9X1d#8275}F@*WA+Gd4&A;)eMW@yp+DSG0h~>nGQouQ{`dl8e$fjue)NiNsbXDp&(#NT1e_i*ZNhD?u zgKmVjcH)wz7V|V>aUe!x6EX)ii460Z19TTsz7eDebu*EVM`DRgO5?-Wge`+A^akM{ z^n}R98BYQ%J1QOG`_yfN5aBut#Sce8nSe7>tO23+K}Kdit<;)y{-II277FwFxHSW_ zUhZ|1b!*-rA|edUG8*>C|CX%u^ApWFyem3qYT1cC%q6c(R@)2y#j!||KCB(qc2^>&SSF3_`I+$@I0B!^jZjbMh z4<#cg-34bNrK3t{?6f)26GncSm-KQ9{i~@9(};j1UC!m1OVe@fvq>tTA?3c^5s=bw zQ`vd@?-EmqF?1iFRAhpQT{*xi)eyCym$~I1(pXWyvIEW$E;Z|}2qaXMWx2*yyI8ER zwe}E8lI~kG!{DJ(h=>RcjGE6_*I1LEVWtIC7l*F%)VN1m!$O^YlLu`pi(jk|XtIs5 zsZ1JgF!LI1g_5>NDU5UH2$K>}Q`kxjIG(IX-!rJ(BYD%0PZ4pLRB-JO_ekv~U=7N% zp?S;{fIw%ZfrPqUZ9vbZS;*E!on>U&_!yN>4PhG;;52T&+SL%7dMP7Blmd_99dt*`5(#`n7wn4c_`q#>hcjLI-p?#x>;{K+aaMt&|+br3R1L>Cra%+M%!6K^60zk_P>sM>T#O6~czw8d?m!2)?7sY4h$y!NswF zYd6QkY@hUjSM1GjPj??yJPgAG_#K>k{@mLN%d8#E8?r@=#HG4G@cHf@5x)2{JePIf zlzWzmeiVoT-^4!uEIA4>MEwd+UtJ7%K;ZRILkPq+UvcVU3IEA0e*?U2WZ*DMHzc&C zdYHejn?qxx{9@|gZS}o+z`H;nYq61o#~VL9u;`Z`tvEr+p2CM9w@~s13X{K&`Y2AP zgF)<9Me<`?5>6WV3U5hZ*KyMYRNV^=2<+Sp#u@m+jd^T+QQulwJ^^yYaviJVjwNc`emlA$i_fN zKFvkG{TW%`h(p)L!23jCG9XKr1 zD2@rzk(n|C0;R1U4rc&yN(@R%+4NlyvlR}+o5;f3H-6C)yJAbjUtG^4a{ z$LcQTvv#^@J6n@co0>B06qJgZ1~=oZ{1ol8TvLx>77#UCsbZsr*fcc;JVZv?S3~Fs z21SQP3@1sb&7e*Edh>9(&W`GEow{v?2gaU-7j_ZW5Ef3`JgaCzvBG-X**xUOD>aR z`)&VnS!bj)_ZnVdb+U5dIg8BDEJ*wiM2*}SvW-afC*|Q5utnwBaaYIZv$^$IMo&*` z-bo3toe~qF@X0+5xFv+SM_(l17W*N?oD?Y9p4vt-!ju-r;`>$pbGimv*dL7hzY z!;M83B-M8E6?lcrtTB(MUn2t>RinlYNcOcslAM$@?IULAfl~Ydk4`*9I;jd^mp#K? z9SHi)V_P~r`_iZ}%sZ}gX*(VgYP-h;RXPbPR&(@N0dh{&ViBRD zqtZ3l@;7|^iCzwN9?D3Y!m;U$(_+q zQxA3he}(Xi7Sss#^@XOk7m2>zlNI%Pz9k5=1VMXun?RknHXfMLh&eyxz z|4+EU=|uf)3wi>PRCGNc4gL`3uU(v|x#JdnX|(*WpM0%WS%)G7vATX_0( zcV7KehH|M0)Y!&uz5ry?#G^-Ll=+uYkUi=^kY5}8!c`f_$JRBQq`hNobIfmJbfn>q zh_kTMqwokfhEi?;%P+#D1%V|)Z0wHjzG8!HrgQfp(zquIfryiI?5~;IQCyaRYNc>b zsM(Bvn~U)@p#|n<0(_IKG_b>-s>hANDXO715P(hp?j-S4y#Lgt(e)6TqJ^k(fiykmzyQUBKVA$J&;oM z#X)cXY~+Z-xk7-nh=_Ba)B3h8L>O#>4McHFJWf>z`Ljl+BF}-e>yY&B@*daC{PZOP z?e`t%x#VzE1~Fmxb(m*9CndbtH0gB|7OshC-`X991r4Egd;q7*S9?dSz?W>{5=b~E zkmDn2OEdM6Uh(~HN?~c3(D=+_mES{dtN*kexl8mw0)XRF7rD1$IVAm(SC56Hd@dIg z81tRpvrY%Sc>ST&6la|n*_uRaa^4M;A2#yy;d6Dp5y9ajcZ-7sj^cWu-59p2!a36I z(nPSD7d;reko*XkIX?zRRO;cI9?J3)4vgP>=Qk2OL}_V5WAMD5*JX_=O? z>8NCnx<| zlsY-?`<e0hl1oOR+cAl*hGj3k;ZGxCgjKX`u4R{A~;rN1S@3};A3PX>G^97-Chs#N(cc} zOdets%@13^CmmhKBjPy51|GDJzV8TA53mk$&))Vt8kPj232t7}X_M3I-)8}*A5jme z4~8-mpPWLd`2u1`MmVMKUZ}x|&`j*^c5g}?U zS^_3_6LshTsO3Ip0!sV)w@gFPD(*GWx`}ki(U17R!=HpWk8@T}X#pVmI1x))8mn>t ziyiZnwqz{*wO{mMoCW^@bg}Wn`!Ne(o_#xQr3PVp(8u#fOb=c9GlWw44xB1@b3v6w z2)(iNm8RLH==``Z@wFY$wfBmM;ii0ZiF~eNYeNO4f!jB$K1~nF#og5K(qrtQE+T7^ zC_>@-LVsIE;unb7EmMEoH|-@mCvS|q88iQ7`_A=A4|atz$y!MjfJAn4gw&6E%G7X2 zr5g*2n)c!Wz9LX>RIr>6RUAW-uzlS8jiDy_&cnQCoZbnkG+cdn1{6jO4ekrsd|YjN z(v&eL&wX%{TLcf`eAnV+L9GO`Idg8Lzvubcu2Za&n5bmBhD=uz%<5mnD!Ub=VA*P4d6 z0irLD`BLh-Jfx)IW=5)QmmW?YZHTlCIo9Jl2Aof5`(xCT=b9`kHJ6?DE~{8WxfDZG zJ{H&C9ja+czLEL`Wz9C~s&L;mToCv0SFPgJXemQjK-O5-cRdw@S{@1dSRf=5X?|_T z%zBkE9prtHh^;J?|NccR1rkE?D&_twnIF^BJ28My5r)Fl*7MB@pNgnbKHLm{hQ}WN zz_4BSuVbAebpQ7e7k)~gn}v8%Q!Eh6)WeGp1?Ig$`6G|l=|2D)e~)GOOn;=jTGnKi z=nQ}{#23)}zAgog{fe4DS{f<6_aT2!AtJ2_=zMwIh?Q_{73Ojz<(cbg+VyB8w;Rv(4RpM0V@T?e{-~k2bdAf95l10>O3N%g^%qV;6^F_ zTn=<}%>V3dScfEr)j-<^hlkA)E*0)zAL`4MnSh74LZBWB)qmv{CZM7LIF}nMgDROo z%1P+`W}6qe3ZraEY@cSzCH1kTKP50ZSWTm#p#%<{6^q6cQQcy@w=@|}$a~~%BKwum zvlnV8RqY8iR!}EJBh4Kp3l|_ZB$Uf%P#|5SbR$i(eMXM$0?_2$w+-?D7s$*r?2sn zxUJWc;TG=>9@pT9aW{ixs(fE0*oIO9W#JM2t0GrV%FJ zg!f?(mLa>gxM&S+6+qAlJQ>Ukmk=et8jgbvmY&;amKc>3n-WAvENpEUV;CP#0G7gy z{OU`C;qk4JCLxWg+3k;%d5W2bUm&ySuv+U~qSL*WfO}-CYKEC%C)2yIYVz zu!KMekT>6d@BiL?b*tX3dR0?>dUvnhJyUh+%s#8T_rg^~A^1!fxn$;K&miO#V}t=? zsaR&2&a=ecdNc`(sLJRKMQz?_81HzjQPXW<#X*v4)jkXZ=&@n`GUv*k7^JI)hu6HX z(}S3cVry!ke6+{CTJDs<4^=!NU)4r85!+FBH0=g8r!=`OREzc8a4M`5CWo})fT?T9}8no~U$H=-xgOO~|qKrF&x zh;5%{FxK@KK%(DfzgBBpuiu7lcH~XClTJyn(!=}n%*y}ax4Tzlfu>x1Vc0>BP8M74 z-QMQ?z@4{IaYytjQ-U@jJMKx_xA!)@9PJEh@1Qa{33a77le$!nQ68!~0QxUtBPaQntT2ut3bJCt>fYnTY zu$Rjt72@D~SrvluCS!nYMk~hcfJJFX+6*SX`QXZr^WY&|`$JS#kOzFYKH%b0i}%1d8(Dl13<&QJro29M z8tk~Xl~|}eDmvMj-#`_?ISsVJ06`gO{!6fC>k#Zu;apMZl9hE}o06^vPsBKWu{-kw zKMRV{F-ipYBqMobBv~IhDk!&1ORg;}y03Q3ve+45wPh}D^3?nopW!lv)B%53T8eHX zi6$)9Skmvl9|@(9k9EVLeSxS-C&S|a*By*Q(B(n4%Pz@ zSd$`Vr0}>YI3_@43E3k>H`u($3x{@5rd!hr&;+E&LiciyIwK=YR!vrL(ALo~rZVbC zk5ORO0C1|pd25RVTxO6|5BQYumqICMfQdhyiP9P5ncB$}$iHCjNx~rz3Z3$X0IfxpRKU%|oRz0+SljO3 ze|K@_bt(E5qD#8Mb8+a*pbQ=R@)W^K(KwwG=8p7#qAtaqogS~Exmp)oh>USo_E|9|0&D%n#%oUggIIUZ&hNl-rl2;1F{WhgEa4JXro#rEwN*LMHv{h6{xrM8-n^T+_BEdd8U1jgS z0L4yL08G^}-B*67Q|?~F!-MP&kE6jMNTReaG1$i8{-a9)48N$R{5W~Y`xnGSg3;3h zD#s+BO$Xd@8Kfxu%BB_z!@~)Ov@T44v!BJx`Wym{s$-^PK?H(Xg6&a0QGWQU(koK- z&>>qhRGL;a?A!DVPAn`LynIa&0M~q&%JmyYl2Lj@i~2>3vEyV!EYd2p@*<+r;3B5b z511Xia=kTTMTid|8YlB^o!CK`iD&4yflBS-+`j6Wnyd^!?LQ!I2Bw3La!XJ0M`zYn4kn{2s;7+>N#{4YSGv^o!Oz;H1PNe83e9 z1sb#!5jNkm`SOl;lj9zm>FTly&NGD%rh_D2eEu0k9fT$-D%vi1{udAoB+E9fx=CLQ z>opTYfy0KTk5$g0y}cpaxAOK9(S@G>y~JDHmd|R0f+`2sEdHAUk8N$F3bOgLN!}S% zI8WUi5LQ&`z=1mp6=VygTBKtzehuJQoVOBVh;+`j{Y9;h*{LCcN{a!XqKWF`Tvvn? zJt%j9WavvQ)5#Z_zWBk9+dElrTntg8L?@h{Dk+4nr6p_R-4fto*0!o^lGq1V9Wmf)$qEZ3kkOGqiG#Fo|^AV`xJI(HiNDW|5CXLUI{;Q*b4k z$SdGACN0=^eqCT{CcfPI;2wu2`hF7j=}0g$6ZDh5VKYNcBe;W;vJc)vr=a3cTc2EH zM_(-J@>iTL2f{{q7lH~3}H0q82d%%nEnZEd_!>zPCc7=7C)s^%>{iF3XMm+ z#&|U1rI7(zONNqWm6A$!zIAMLXV4B2F=0LcW=w6#FeDpUr8s9ZSrxR?XVJb9 zT`m80A3$uW;y|TZ%u&4@m#FZF$qLth#8hU}sGC_5aVX*h8{x1oHCQ3JG-{b~0nLbP zx2(Z!W1cGu(!#e3=eak=nEA0qY~_FaYeMXoA2cd!j6!`#A5a2RsuHK1N?ybp%%MxS z!K3<#7@a8rxE)9QW355>f)n4ugQHYiptLR+h+hekg!-X`!Vc_rQSE|JkF08!{1{?O z$-_$q4?7aJOqkJXI@_)u3A)iw)GlankPQ(jj=YmsF{tuEN)swQ>L6e%rh$m4TdY4D9ffzaLxQ0;%W6b1$J^~0}r@@Ck zpj|{l6f%%gJ?a+@Z;DJmM{3-Ds^eQ%Bc7@_@hbo?clij32s!^0Z`o2ifLz zSc6O=+`62E&hNbEQKr8JjrRcUE=jsYTqc_qy?kUdYOp1q&ujzjhx{tL1Kfy6){3n!ut{~Mz5ACUjzrR)EO6pq_hZrePnoQU3t zuK#Ll4yIL1$v&I6n1XBKgORNI&9Xpc^}y*$@oobZRt8Wz4x{%;|K$j$A{TsWa56 z%rj2H5Zc)@_|CzSKXDpW=78-#cTYEhhI57N7L*_K)s|jOWwFj*X?i46#wVG%83M9T z*%$^fqj_uiU9eyRyi<;yCw!V=l|6IG2jJn)r&6G%;nP>b7B4WJDT2@Q4Oc~@$b&I# zmHlSO5DS{5gf)^E$WNxK`KGOAFg4w}B|5oi;P-ab;JG~D1?f;eBda5Z?z5{uqckA( z_(eZvolc=?Iu%R=IN&FDwNUFnK=6gJc97&2X3Sm-W~C;!V_mDU#g?zN#*J!kn4js&3y#4S@3T!70)TzT z+(oj3$ zjKR*@4Ym0&`~xg(qa>G;=W5@1h-ea)4LU`V4~lNG&q2q62UuM=>z*Y0ri8xTSFuL$ zWC5@N9#Dz(&^j?AaZV6ULrSjZ9t~dci_9mlWlDU>J3nZM{`DsPr_dT6`ylKj=Ee#q zCMlZvF`tIWX}cc5=#W)>CiMUv5FM1tz87~ka6ha{b6aAPef&b9bSW`KmfY(_YDlp{ zFAA>$;Y{~BDFiictM`+HY#rmaaL=$n+)pLRvTidO0m4`B7#LsG)#MSm0Y;wA4tejS zP7=7dAqh`ul3RXdt`md}WVqmFLm(mWn0*M@En1s(z`|7!>f}2 z$@(sL0LUML7!*RMSku`VDfyIm^;EK_#v^Lj7xK3Un zZ-jWle*q~Y42M}VYl9z0kul-HW2j9*AZ*WD1$4N(&0MSrv6xj8Q^FQYjJFk z(WPTWcF>M}0$^7Sq7IV7H_wX_cHYurK<-i#$Pr~O3;;wv2?hohQbIu6tf03_eygc4zjKGk4W%CQ=i z%)G&c>I_nZ9!63}XTl~&XMXz5Y=Y%h>p?6RpZFO!gGsyOv>7L(LMvhyFI`5S z1vO)~%gifug%a!DWZJI4)M*0IoC-}?+(eC=C{hhLffjG#s1wjaZxV4KPU(*9Qx&pw zxb;VacWU^(rEW3H z?JNz~EU?Y#l1{g7hb=5Eq0oXv7i;=;dBe;0lgAE*W$T4|P*Er12>VjO^Gc3BR{opo z6}ACC)^N2mF{jOxjbd=U*=AIEFHwdG&drCrEH_-t^G^h5;t2${R}AXYrSXlAH4Psr z$Z>(Nm!6XfTZsGaiYw##QV9ms)h^-_cpoC5&I9>tDNlKsWK3C4X5l@^TepOPUvSw;Dwa6F;Vlaz}Bx;_4(`~|Ly z{A=ZEg=Z!P@e(ObgVbL=|a@Gy>(=^&H*1@Pfl>TW!?TgL5=>+{mM z!k5E571Oat3DZ4cG7+w2E}5qbx=y6+j8T!3LPf_i7C1O4I5CsYs?Se{ij<3ARSsHS z<|%Ku(eH79h>E0b=$Hhth^%KQRT=iAyfx_Vi}Q@7V$@AGci`54ql$=If0o>NqCjD# zIo4)cRU~uucj?Q~CZP5ZmS{=FkFl2?ga#{WucWG6-XorLq~BqA0`=n%{Ym&@dArkk zx*E(_YvE~lJc=l2hng78^_pd?4hUZDNLfpHb`_C#LX@rpO2~cVv>YP9@O&7pvBoy3 zIIv^YeN&-g{_*FuoTpH-&1YqL9BGsv9nHAx?vaxk2_zm#tv~Y~d=yBf?nx=%!-Ff6 zl15V|^i(hVpsOzsTxo*})^SgJUe4m9XJQ$_X_ZKjCU2qcl}l5V{gdn^VbGu?r2K7& zr&G%;eK&=S@nhpV6#gXS^h;upff394FcweSAQUW#yq$7BAgdzvt~Yu8_;W>%hfS@tT~L6*Nu!f2Suj@J|afe<5^C-dXv$LSdgmAifYu7ueQ^}!~2 za!!k1E2puTA+b+LNi>Uj+N&8-;UEe;R?O}U%!$fDhYAh(4!7(lE+v*pR61Dulz|Yl z%K34z60yf|710Fx<0Di|#JNv{M4AbbC7w7{@{;#ndp3-U^)!vlYt?(ZawxIYSb{AY za^(CKUr)%vz-iSP1FcHJ0DdV|te#aaz)F#>pKU5p4y-?ToZs3Qv`8GY75@oy%vG?u zfDArdVBtibpbMlv5e(Ss&C-gltN(D?UqezJp_RExc6zLhzP(mwWR^bJ;36Ik1d|GD z2mF@XiBW5F{81@p*~~jLII$XI5`M&X#WOo*8-1KSq$PfEVx>9_A}ZC- zRa&VS=n$#uAo~VMWTlmxij-*;x4wR>7UFxQ;iELz{4%!Z^X~7xc5~gAQ6v~u-FI<6 zg&nuPH~nJn)bCphTP5??^l+|x3XQ`@<)bF*!;oI>Q3@OnnW=JcZXfJkJe$ymASzjb$#`V3Wv1C_LOng=>vVKul|n9mZGps%?{@e z1EnzwSBglsE8YO14DU|nq6x1N)yQuY++-KK!@HXU-JM1q?ogZyygRyo?l)(OX2$0n z+rD>w(npN5wIh-s_6ywVi52gby4h%#?&=Us+|%9PbMkXAzlUol;arJ{DLkp?i@~|y zt1%q=*z-vNhPY|P<3!n<;ESJs#je4a154smQ%714aX#0IVGvV7Oyv};3kjWE>@?}D z$psiEMPBqL5v#fU`{qg`9H`^EG+l}8*Y_l}J=7kv$u_An{bKXf@1F%0$45Td4f#Nw zOuQ3a_iSwW()(rl{b8f|oaIMazTZDHWnu*>`yl2Y*2iB)SN~wVi@)hhy!^|)c*#f( zeE&cF7cZGJ!m{_};{?FHZ1rsKiu1wu-|119HWqOh4RYrXPzBg}cCd_jhKmdKwW|$>_tWJpbA!Kt!pDC?EkO(b6bv*hG$I@<6bu|hs}dqs2@O%Jgu#U9RW88- zDIuDbsl}Y)O+$C&Zb$c6>gJ(T5ar6@<^PPhkVFCE_KmHFjW>=k=6Qrv<8vFy_v%Z3 z0qRD0{S}qH6=xm3h=E-FKU=-#9c6^Ko`U z;cnud`3(H&$@63ZSOaI#mY+!f0wTJR(J>Rfy*dlC2FdX$UgfIpUY;sRFxE(Znn-?J z0^kX*@d{P@7w0K=U!H*pw*=R>w?A%-q+gK*b$>#sZ;biYU9M>uXvA$22ot5cO78fi zNZUiwi)RXTa+k#B;V$TEZ_TqV67xccj2_WX_YjjzvBpitnk6!WsVD*$F&-ivvwgdt z-(Nj7X09PnHXa4?jFPod;(IL#_?4K8B>%Z)A_bu9sI(T+;Q-qQ@KY#P3$WH!E)obrt;n=~wx>AGa z*lpP(uoAL5aTc?sFTtYGP?@4Udp+*SyL$Osa@ikN4X{7sQ^;+(aTBF6Ae=V$(gBhq z6{3v{77oOye8@Aj!Ai`fwfaQ#zJ4K4dB%Q0nu|V|lMeV(KqZzq&9=I_mnI?Ytz$p} z?Xi^3y8#NK+Rp*-uT$Dp9*QeVxW!`#&J?nMX82|m-2?kshV#3>%*P6w^{FSt}KiHEP_1r&x=w{>@$dDr9^`nzzbVHO00$FM2+6y(W zZ=&wk@0~68S|v1f*2p}!y)5MO(K3``Io}1*>>k{SmKlo9@?=bRersKK=+SE=#R`(= zZgj&eJS$<*J=hmwH&)KvEB zP?SpY{iT~Ct)Kh+Cqg58s`vToEFL9FSEI*gUwI6lY}dIsRRJKXud12S)SzLz}kAD~2{ByZSsVbSI&L z*7VV!l5WiBQ;2Kg8(P`0?F`#)F3~$qI3bmOK*D0s2h99hRlRmw8twVD00kYzz)!VC+scB|nmtsUw6yLHC8Zoui#{MK#zFC&j8Ir% zeU(S}YY8{mwNp9tkL_g-r|M*iC$6eRcjZ>k2y8Wi1e=f>l@ye9ILLp1hRKlTMP@!$ z3^n%}>SC-XiQ2b40YQ|vSep3+M&^JtH?OcOB;+w=DcYF%4lQ>+g6V8!{&sT=4_)qqiSRzkY91WVS{9;-mlPpD;!vWVV zAq_Ed`ezh*=jk29Jy#j!`j;mu!iCK`ac9u(_x>w1nuYp)6H&`MhRSQF3bk3Yox*hQ zI)30wDgxKfHz*$V0OgG*x-kNKTkmwsDex4j=rS2aW4^fEvw?^CmD!Vcx`d`+DKCBs zL*35;yG}QhwF;5yY~zCa0c`ehJxZd1#Hmi3zDnEHvCzK&{Nfe|UF=l2+OsAX2VO_B zgNOSgt%L{^$|iBNgCLxQu465g|(kI#Tu*^+q_gC2bzs4Y6xW`u}4S zM6*g7?&B=FTa)z037Ni9CYQ(W$o35*KHa(LD}v(pwjHfl&S>y0#yKS}`7CS!%;!ud zk5vcfk9@kpxsr*00p;3Uwop7pu*uZhhjrG=1Hi`qT7v%KISbx_8{%~)Ia*e>jv%;b zicl4(Q4{be_I{Lv1^g&8h~y-Sg9#fCm9`eA%X^k;UYi`#!tdE2eoN3`rhlNqZMo#| z3>bidlRr3{?N!lis+q&_K`2}|}pQBy1d7p;D>rP(*Ham@hz{YMcTg^R9->Gj>ZW zk6=4l@X8$KFnNMxs4RzsoM7A&^JpWKA3hhg_a9ntFq>^M)f|5-`>e6$*}!K{v2p6N z`y`0;X^;m>w2-ExDu7$;bc8x~s5*^KP3Ue5hHC(ts=HiqxusQ#*%ScBB9y+(xz9o6 zp9rUD-0?;U(q&1pNA_lh-;Db}6cG*ufDpgRGcNq4lT^W!)T@%ZkS6) z>9R)qoh1uZkHhYq%j}!GWe#mOjONukcj{Gbci0pbNqiwW1Q@;NnEBamQUK>s$rFXZ zd~lW>oggXb#SkV!TC?azwcv=G|Fh9w zi=7D`&E8+>)23)Q$VCtbFAmB*Jg^3=9DX2Snsx~(@jY-s57wQZzD%J- zS)I&Rx%|{_GcNjtdRQ*i#wX!doDVI3Hlsyqt}b$E4mx^Qec9$xmgY|si7j=4d>w9z+(=JFxbjfExCew(Tn-_($= z6h*55y*2fP`K=pRPRKQ+@W&{rV_m;wV?Kx-a8Pl1@N$1*JF_`RF5NErjO^eN;drM4 zMrI6G4pWtkT)ZcBshLY>q96uRbI;5v_34QXB7J9dl zfKPZHdc7hj(@)tk?*=EOo*3c7!mXa+7kQ8(wbh^GY}I-@B_Rb;_R(kN_i?EJ%K{IA zX0A?kcV7l{XGH6-O~^!DKF(RtTOS-(xF{CjCe|>Zg7p@5c#xCrkNKzrc+7I`7-{31 za5^!RO2G-M1Ne3Edjj?jwj*xf!G0O><=vc8-;~Ap7z%NFT@XGJ)YAu~Ifr4MuC!{J zRaukrCcm>^7OYR+1|A$2uA=aq4^m?WlWvGzDy?hC&(M`o{GzC`)_a#!jB@n>jjb+q zNbhHb#7fvTU4gNB#JLMzb>uLCG3#X`x*=Vgl zefjWYlEvH3b0!@42l$XE%3A1wK&83#r; zHJlnntN4Mivv|?F$~;x+J8`CX?LMM_-S{8%-I?~AD_EZNME4fF_dj;-#gi?iIiaee z)}eYjj>Fdm2va2i)?YT*8_NfO7{rq$2S`)$^Vk7x%g_=KO{q>?rrRoaM(LELBI#Yt z(&zy0psW~dD`he5&c(Pc4(h^n%B@fhUxwU(bfB~esK=LzTdnhOC*l;)15Be+TI@%VwbL94+RjYE!XnR@wVb&gCiHDE>Y(1%&>M=Hab zFSO?thc|`6kjv3aE(MiAm-wyCD98G~jje9>;6%2O-tgM0lm%reOGq&K*_VkeKU2`0 zlZb*9tpJ3@%>2HbTS;xVz-6$2!H7B5fRgfX97G_j3=nQswhJKKtrcBRQpXQT%N*~L zW3&0tU+x(xLS!pz?o?;R5gQWPIJPfO%-DSblLB)T^p^RhyjS}iqb)Bdp5uM3T07FX zssMxHE+(t^rw%@y zj+VNIR{Uyb^_DZS>7*f((HVo0lr;j{H+>F{oOa8i>W>s>Up|YkS|^mUbh4_X*>%x{ zvm^KzqhBtwop)!&Nx;pbPfm0>&n`<=y4d5N((V#Q&s*&g#*U{lIKiSmHUvMf72a9*YqS8!P9P9 zAc!@)Jc}~wU1I70(|G-mY}mg@e=o2tOx(9^+u6fSssz)ZEB}-iDS()BxKWj07IYO4 zwL>x$ZvF2!aSE3=F-EAWS-rq0Cno|m zBtS0)->iEIHvwjQw2nzUrAGQzz3 zLqdCjlD^aNol3It;>k^xQf1kx+g#s~_Y@_E`}d-o*Ag3!1V*_LvFb8w^yC}iO|D{> z+T=*-o=^?Tc#J1rrla5?AB=nPz65@zT7}_{%T+>}-L4~lE0*4Th5_qPOFUb%kjD!f z5`N`FR&$3<&un)OtEI=CJSB=G9WTt@tUsaK9taw(yI2|Roo}LsHgel5fkxx!HSa|x z1*WVot1t{-PW+=nbt~Ul`_75ed%pb!eX#3uKFqnH>f3utt3;wW*bc=QCpiyD?Y*l0 zrsB;2R@uU?OPCVX?U^8aC-1Lr%dG}Z&|UEbbZuN^Wsiwey6yT(b+W02F*!Vycagns z)@d{0#EzLa>HfEh(J#N-o{i7@JvWaB-VJ~HypOK>7mS|%v+?fnz^38#qxaeZ__pU= z=wBF!xpmcl3&D`~40PW1ymI$wfzSB$Z*BDF+*q!UHXo4I1$dOI%;gB^w)40{KC3y- z&^9JYcWqizj-75gVsSgVw#X0h3( z7*07lb>kErlX&b{kgIycnLUy)PAEhkS@%Aw=q#~0uRCHL5l7$)?tJs+khKcGdfJuO z1o!PoEqbleiQKwV0SHfYd$QjqHk|dk_^x#F2+4LzZse|A9DjaMe{>WLZcbZ6)rgW} zYpb?qw*8g`OPpYQbqDTS{=*%wY(Rzro~rwwK3^b_82`T*IA{cTI9O=ND(63u*uNM! zkQxju5R=j@#We(yllh38Q+()7-7WMUOH9?=G1aN z62_jnj^|B(S01FDIvRLrRIXwvpKBg@h}o(%jr9gI`~@iZ9*eTJx>-F{cixa?D5t>? zh=es?wv1wQ(UA*hsBXF_Z>8EhQt=FKb@<+@qu8E;Kfhnx5_$#9k8X6r@)3>9JbI@q z#CIfjXmWv2nvDGk<@Sgph9lceCe1dAr4>=gO^`SGfem+OepGb6GjNV+=J}C^^Rp?+ z(4n=_3!b}Gn^tfu4hrw*Hj*!Qzut_7xNtX!taXGxE=mmXVXrQfw~M+|$wQUyHc+Abq3YhkepeoTyTBubY$0aG*aNiZ zZ&88y>0ouZpNZ;!;FB9#Jr#8h>Of8>LbHQQfk$rf_d=;(8)=JMSdx)Fa&EdtUubVu zWM;;Md?q_?JQq6roGy<30)zP_=6BQl{J6=`&dxD?p#oG2>pgXmFxyE*YD?<&$Qfy^(BxIC%o%g*GoO-cu30 zyMeV^=vrD<>8yjkd;K|0R2kECVoAibJ&hk{4qy3)lz`ABZr_9r*o@Z1?--{@y`bjL z2<%nXC;V$6H!)hd@QeB=yXjad0)4Xi>Sjyh0gXl#)ZccZJ#f@B!m&=aK1JvSQ)9mW+pr zwSZ)acX3AJz!{UQTprV-5Y|nr`@=z>AZ*LzGUVo_qfE40+*?Xw51~r}a!zpr0E6dX zcD^W0R>P{6P2g6ln@5nDD_LL-Aw{$h zNo}+Y)Y*WlIDm#YWx{qV6{+*{FcIW&?la;da29z{F!V!+DE&8ghus(#uJ$uFJpVuJ zpygc>dwjrC1r?j*B|ETy!c#tD%BF>y*D}@ve<52k?c)ai!4NO~_R|l2xdxn6fZ)a26yTa9D8rMNs#0OK%t0SCL?uy$4~!# z|xvY5dXWsZiOsEURur<3m)VIN3-pzaYfIa8s#s*_E7aCS$3;!6uQU$B7i}{yj z;!I?=+LDwnV-XW6GN2DZpzkIhL+ukfCzrnTWMWwQkF=?ec^rl)U$x4Yj$McB^z51j zp$i~k7PBnEO>6x0jQsF9fLW~E|GKpv5Nc@!129|Ma%mf4|r7`KQ(~@z(M__!lrVS_l#W+0J`?6;Y6O9XtxmK5b>)cN{hN zqt8WaDy{RN&jmZyG&5$qmx%D;ry{u*@yUFgq`fS5H954MKgOEvp0Si|{$f4Wz@tc< zwD~XIg_is@bQ}bc5z7&R*d!!Hu1)Ru$UO5n>C0*Kk|i(_zsA52qR0UHoWU;wk|U?+ zBFtURR7)sQ1=k8+g8j1HMfZ!M+h7Lx8*&SGS^@p3IYK4k5lJ~%fLyE?!Vphc)8NgV zTrlNZ-nTG`d=3Y0Lc&9qY@T#N#41ciDfh;vb6tJj%#jWU36{>f0>cL}pc9J(_8p1f z;69iAHl;sS1jS6S)0j-+ZeJ%Yt~_X4{S-+S)qrQcvmAo2K))l*dph}6nobMUiJaM**D zUXEKEl0jXat@TV5PooF#WI80DGryc%x4CX?*`IuAUVHtV*&z6b1#tBrP46NzI`_Zy zJ0WHenN@9K|Nl1s8Sqcbg?em{cEzu#O19s<1W|_LVw>$I5+LFPgj=vkfDH@q(S_dWm;B+xpLCkPNR02m1f z1PSPU06+i$0sw)4eX#p)fr5a91_A~HhXDn7Uj;z^b!kWk0Oy59-tG3$O_82h0l<1^ zoRhT;000Sega80bGtu6zz5oCi@C_~iL|=^aar2`iD$K~2kJ~U058VLXItc0yZ&ky~ ze7VqIdmI4pu1Lq*4uH280xqsS<+)I^1-LJl09+m(ypAwuiqEviDAX3psehf=%$j?9&4G{nbq9bvIWu8@5x z_H=&d|6jVeQoCgF$%Kqa^G8F{X{vH|6#wPO(?!v+69(6P1J^}*iI zWoi4BsO>+R|J4tCv(~!CxY=}2AjG?vb%`X6;VeDzLt05^C2j2bHI_hJEl9Ged%L4m zzr|D;y_~uIx^1&v3C`~EYsuk01LPO;G6^zmC-()!*@swms9P0xr;xSwOu3ek_Dl(v z6)b+s@EEr?C+;1v3D+q%WjJRj|gU1Y9QJX*W5aZaZO z;)@?zVLmRp96xz%w)4Kg@4Y@~KTT@t`qdSsRn1P$ak4uYf0-*P`OlC`$kq|X+Q2+n zCInCw8`o=N%6kcuL3nBCy*@C#GNyCacU;7b2W{QS5t|}kq*0;wqReW7P?Y$OYc<*b z(0EkXT|rJa(f(k2ABxD0$b^VqQVHRMfTYzJZ)o89Y^>NhIdf)tWa%JYQ6 z!CCYC=n>hxIiTL9XPiimjPA#uDI7nBiD!8A?3j-g=!u3B=3)mRhi$T_0zc%CNE);q zv{vt5HYe$7Z-Lv2D=2T1?janlhps%(ab8P#khnyt^ut$(#|WVNGX2WkK@+l;Rbt`_yoHt`0z0V9 zf~kKmtoSNkX7h4a;?VVs+hIi$*e$I(Lh<-pRJrxzlo~ zM7+u=@V58EpFj=o)(O-}eD{lNZ^1u|7=-xVj#zPGa&TVIwr5jqGU82;vOmvg8$(5) z&<(AxbS&x~lOZ4DBTSRUjrf~;`-jrFBl}kPw9mh|&4y2=Z|Mf8xmq>aFb`Vw^9K%d zzDm{P9Ri9kxZ$Yo*KOl59?K0qU#G ztH6ViD=OEc8EbKwGj_t=>=?>IzH8yr!-o9)f4mtk4Oow?LF3qh@H@ae$ng$+u}hk~ zwp(&N@G0C&9}|IN z{oA9>CK(=DF0fZ!HK@0{612r>R%>kUPSv^3Y^E&#mh~}T*X^Lqo^^NBUydHf`~WR+ zyxm)cI8ldR|GZOcqCAT%SUzVK+T$_)gD_saCKoMos}z`Fcj#ZfaK-jPPoccBn58OI z*GKXB4MrsP;YaY~RED1VYwmx1>r2Hu00G-{+5K|EDkW@*v#Vf4vD_ncH7b76k@xKX z*^x{5$=Q8y(W6_b=%;$k^5-?U%F*oIWg{P zRu1JWnFTp^)oT8ae)y>w`!6G!CV#Z&T1e6BM>X=T3Fik_c;nY$z&w@w&#uJJt=;c) z(&R0dJYBujso$8ZaOzu7bE;YDQ#SGB^?POfz3m~4P1!S+vNiO_T{S2hA79Ie-Z60y`fz_vR5ghTKuG5rT^UJ{=(E7E^0lf$!r@cW&1 zSBD;V)7+`VP;}Ao#Df;O_{i||ZsqBJdoFhiT#B`|pLWm*O}eG7hllgqv7Y#PIwBlv zYB&BziOy$M_9@*@cGNuGr-lvaco)HVtz&b-7T;5zBA0mY{s&pWLtwN(&ee@|s?Cyk zbj8+Ns_cqXOa^TZSD@Lw{zr+p@a*?H(WHS}=Mu*=h7a0<;x%nix5G4V-))r}3B3LX zxPU~2u6z7giq78LL0=$V>%IREL4qi*VZBMJz?9i`b^mAEF?~Ys zm64nE?v*F#4+UCyy@(>`=l%tg2`ff&oE5Lj8euz=$7R1AJ4r0Ko9T#-0F34ydRrM_F}RP+ZWV2d?%Z z$BTmtuh`!`Ab8C5V?O`sptG=lZz8TJ3DHQ<>F6S3=U)+(WAIR2dw@&$s(h2O?#=!L z2X_xU{Eg@OaxTL|hXCU#r0RJrkf6-l!%P2R?(Tpe>5R9lyTpTe!Re0e)?)h|P~6tB zR>Ggj=j8S2aqfZxLr18~|7-DRx4p?znK$(-)g|vmJ2@G|v0XO53ZH~WG}uyYjOSy* zM2_7Ts)(1Xr>M9ga2p98ghM-fQC?>7)3R6l<0&?vuH(Yl5fk6XhmD59?E|+%gnz5YnSI zxi1HEMl+0E?6;l4vXx>99^FSOgv!q?7wi0)(iH?*hOvj za}CMb7Pqz({l2I_>wM_6-2H7~Yh4)vh_Q<^;GuoK`D;JK7;vR5rGJDDzq;n$ye~v#-@QkRVMgyf6I|dtZIJ1thOFkCs()3}YAI zkEQ_xe_IPM$nQAg!zlhL;ET>?FaVQ?0ok%Zi=5;GTLw}h>2ap8LrT3AUG{tj5SU8D0PW!Jy37sB>Bi80 znu0LC&QRjp*BNlLU}L6K`Q>X&H=JB=|81qC1=nuQwKV9`jAssd)$wZ#$AMLCMA@2^ z!#kj5dQ+S>LtVd}tYT_OBHv3q#D0Hyc;Uk7(P!O_oGMxRtGdBvKPmP@X2!QgH>$I* zCl20BFE1_k1w)qc7Z1_DmT(-&%5z|9a|3K|uCY1btA*zs`R;h=vt5pUeF+?ns72b> zyXkT^;%tWLd3<{<*|57?{S{G8HIrhjiMeUCWAdctMgQw*@MUcGX)?&LqBGU+&$J<3 z4|Ax)M=H>wI(Tyb2*r_$Y?NpNqWUgo8M;L`2KJMfp%O`dxWa?Ayw|d6POCG?pbJvB zSF+|utKZDgP%(4)B)@qJkD?1eCG@KD?w9&u8r88+)m5~@A9`x;kMIeGqrdcPurGlB zw0s#65jVyi9ehoXS`z&&@BTx(@#g1ufL`mIvFgkpI&m&p-u+tzCyLnff9{cfMsJd& zNfxm;{%QZG!}9(275Q@Z{>&@qKO|-uXG~wTj9WuqQjC8DJL`5&H8)Dc0DxTh3^Q`7 zGbe)nRDQGg$9OmpKf=h5=oAVB?6=GLFcc6VU{C-UI1(}nDl-HkArUbHBbxvk2`f4& z6N?}jhLEs`qLTgJ0VWV6$O9e@YkAOc_VTHzL*Da6& zeJg~+u>(*1D6b0s9O|?ych>uwH_xiiy+=!{{SVMj8zI5bIhb$du}mbe9$Q zR(j*xMZch}Zyz}jJ3$jfb2?bIL+wq0c}vw+Fdm0242O=-M|nZvj#B@hTN7(~X=e*Z z2a-qO1^U`GMiHsma5b7{ht|;i$-Ioc7nvwnkl-Kpl4n7{~7ijAT_{t zuR~m+#MGla;>md!NhDy+pp)PKlm@{jAW^v6Q?Il5Fp}@!RZePe6aiyX*~_#i*fp^@jwCxuq$2YYL6>m41=&o&l-Bk8S|~rkx<(zM zTzt7B#qR%MAcs(EElJmyt(QMWlH85(B#ups^(p%_lkvPRhMW>t1}078SA**3*bx-x zlme`Q0B73NUA=#YUQcoe9<`sRZx`yEqJ*K_|6CUiKJTW^p=QV=BAr?!*fRWyyhAVy zN5-vLV^@=oqGl8a0%eGi1h3kXv(m+@RA;h>BwP9ZhZpvxzF7OxOx2y0O&`ZEd3@AS z^Ky)%B}@r$}J{LA?uuA7?GnN@aeRP=%(ZFD}Hv2K}$2$jUh{46WvO9W6E_Xd3jQ}sj}!TvVkyfNvq7erB-s-Pu@voUKl-0&XNu{~RatsaMWYdpv97>`5hh`1fq}h(y&QXz7Zc zz9M+5Qtct3n8oit$8rP@Lj$AiQ7go+Q*%W-+G?Ax%w`}{N8diIVn(oLO0NNIBz9F1 zN61TA*wNS4fLCJC!oT;~MqH97fi{hT=nYhTHU@t)F2{P)>~zEVYvQj}A8V0s*j3G| zm{!-U16B-rTbXdbJcm#)cqx2|63%W%PcyGkibrkvd(@QszEiNPxVqRv(>HnoOla4U zzL^VYo84l@bdR*C3lO9>N; z-b!tL&mrajTH*Ky2M7xLFnk3pQjWg0{&C6OqnGojfaytl{9n`?Mv;}+W8Q?Si(K;! z_|lf{)!1556mgO*eG-i7iq`Ldn9oX;65L`7j!`sX>Al_Xay;XSv$?sV44H(;a090H zMqIe1_2i@R;A2k}L0`^(fwi_E%Mv1`S70v7h&xB%$BkXWm`z|hGd$b?0wr#Y8$6DN zxuL#$!V02M;DzZ-4#B+)t1-XSyI-*ri~2O!I-Y{R;TQSHG-M|Q&}kM_nzZ(sj=}75 z!y*Rs8~GpgI3+aD8e_AO;Dq|5J_U^0$iE$%3)_eKTU(iEoEJ4#%4B4rrl}6O!Na{l#tn7c zy+*P_N`H{r8_YwxYT0Lkbta4|N3ePI29iRM`_Qb>sEsdVUNUx)WwY$3v+lV?uI^!2 z?N&bm5C>BAXR$-R8oQm7&v)aJ$BHKLxXDtmnj~ph@d0WSZQylT8X=D{B|ORV?|_Ts zO8!^^rFJToV7RuNFKt{xgvJBmMb@1!+Dy!Og-z%vO?-!xv%2V_W3W|#TD84pSUfm0 zCMI;1_Se<D(1u=%a7&=@mA3R9utBTkL&)WLQ`(F)Jeou&lv#;9k?0rxmDTD~ zhB7H!A<42C3Y@LRnRQE>(I7*-Dme;KrKi{_l9qqldVX9?44dV+l}@G3Pc@vHZ#DQA zZc08bZt~o#k!l^F>#(WSz#K@c5w?xALpR*oMo|?;jA2WEJCz}yWIH|ZJ&Ef3s7Wt_ zt^WC`|ei5ZCSKTPI?+Z zc}Y29MzgL@sWWmf>4IzJ;!fMg2W^BeO+M@cVc9I~+_E>T(dZt#!Kl|)3Nj=mK;5Ev z;bdh(nkGLWj^gmo@~q_>v^B8BfgM;FJE*>Zzz^sxGIEa(3VHsW{QZ2!_)gu@gmr6 z>Bu`o5W}$9v88NC`;rxQ%$3iLa$birS))p%KJG$8OD$dNiM0{aZTFzBhtlg=eZe()c7X1 zYnZQPk|M@9EqIW^iA^g%;6hv+-vK`^W^KZ}np-MZPw;U&X*V~Q(R@-1VbZn1zA*(q z9%^EIGMBb(&W(fr78;{A-XaaWM%uRNFD@HKlp_2Mma)GG`ujZuBN6E0izsUyUAW82vM@Em3JMrjFd`(v0-tZV>MET@z%rIqo$Q zb-A0*yp_MgGI8i#lr*7xkta;#jq)Mvm z(XCN^e{5FG^o9M_J_6G$V+iAMg7{e{ip*KA4l8!J?uwDtPqQe)JFPueox2|QB@6l5 zKA@y0CK3U&0(Cr?RJvxBY58)uF7C;ur4Q4`#)*xnNs7d{j*m>kbO-B`88%Dv`i60D z!sqW#Suet4aokL;S&>kWC~90UC1t0!HjB$gRsq-t`l>O*-Rm(60fO}=LUcUfN+e?y zFkr3ddoTK~oEPxEEJP@CkW_6$XijxVCTQqGX={0lRDJg=K^rzX1rOd>Oupc~sR5=( znuI6wC5qNW7w zx&(5(K;9dP<31PX4LS=xrgu(@{50JHr9DNJj!n$1CBn$!S6B0+pxK_V=fb=7DxRh} zJgo)84t$)fejC`5eXjAtd-UYQu^Ly8g%?WWVrD94Snt#d>43%fv=Wp#zQqNJ%@5@Z zugpq+(K0o$(Z#K59dTGhctNyOzn4}+7#1#H_1uXyA1 zQ)NyIxq-}P20Jt zxY;tz8R|`qVwA9Uw~9+*^$!&s4Ai{bO8+DHaug4zpMh1GUhM{{znS zY{yV>1{0x1JH-Qh5L|q-JE|`**teus8vIv+rTQzh8vJoLgV1^HG^R9w%wAsbh6E2_2_< zJ{@N>WE4qHoUMpzW#S1;LPL-6sfM@vQKwgaXTovE2CZ5WZ93jnU~Td?WJ6%MCWeAS zACtzA=kuBcIwZGT3u}vbLe?H_Yo^2($?DMZ=A`l`*-1}T*m)0b;mMFLdM3nnNo!i!dqa;TWB~dB`teP53%EU&gF>V;` z9|rI{1ghsLysMBWH(I`vHUFvBCiD)t-s(tKEfL5~9NlpimWMtlV+$MG&P@j`4D7IM zjK2@(n8Ic!Zk4ph4h%vAeb!deh8;0vDalIHnF{y~T=)5BYyHqbf#y6$B9&Z^olRo+ z!ePe35Rlakl1D{;@V@&0z_0xL-*{0v=bE3`NZiO?3t{Rt5)Dyd7m^(YZbLV zpLVq3UbUs|aP7~?B$HYwPW6g9+W1X@M30f1Qlhz2eWYPvJkEGBg3$ZB_w(P_-`s*4z;w_?a zw-3+qSLpabO3$NEhPd{dy0Qh67`2tsi7fKQFQn3JcZVxtSGZMy%HqAc5G4#w?I>WL zsIU6eipJI@&$CH-EJ9>;LQ>(Bw10ruRR47wDccI0;^Z*?B5UTjlZT0k%}CrH^dL>N zn8JCb%lP_BV^#LjZ=j!OnS8#{Ut}k0m3euX#mb}=PAku7{+L&%QF)b5jD(Z@)m5#} z%Av&RG>IrGyrMZMQH_I3Q)V>ULEXp8KvJ39Tx2jKX^88wWVK~E<>+$(tIz9E&*Sn2cF6BBA9%5!HM~_P zo`})zOulon7`xotCjMgiF~{D*ZA+0kW0UVUVpf+KEx&ixX+ESHJu|;BMh+VkIx)>! zw|DC5u^wo|Y4S-OIG?qowbDtSM5ff9LO1Lm8`hbb3{`6qqKat6E@`C9X}6@tKa^c7 zwZ3}zQ7<@8GCFon-LmIiNHX-RRmb099N&@OKL~%01g%W>9K=Sa-e!%}(!z+Xjf+G) zG?NR#NS%56&g$IoQ5|g#HM|f@JUMV8a55&rlzPKTMTKNmsH}`LHmd|n9i?!*+{dxy zi{eQaae^gRS8CZiU~iToJzMhobCgtjm1CT4vR;eGc}%!5vTx_czwGL2S0QDH67NOl zwnphn(;juPHnUbnmn+>kuFeedzm|6lABSgWlMh-YYAt$fHUB_z#Eyf`NNWp?`GMP~ zr#O+azBk%h$GJ#4EoF{T`*&{SrF3K4U0GydktLeNomG7@ft&Mn~tqDi|uQxwkD^79uXKuydl7^OVtXyjRpUXjCoW8d1ny{sV0P z?ILuRD1x;758TSOmxg2yzGGV%skWvG;@cT7sI$UbHTdBtDl;uZP^Nr6*(2~Bx%<=% zShLu5@@v9EEK&oX*8CHUH za1;ur+A@x09q{(vV;yy9XLe_6DMTh3D= zf`Sh?ngE%gvj_|u2zTA+p6$AKUel+3#m)DqMwF}i{!p~ZGEHn0W;OnFe#PwbSl zndU62Hpl<1N&!XK+PanEMJDVN`rHL4I2XvIY+L5~**z=+^DZ$N@(xEIcGmW=Bc`#K+^6n84YqAzPPKuhAi86LWztBRHLbzBz* z=^db&xQd|jcdF{yowOqvUswB_l%!a-m(d59qe`J|mLh_UiM4VaCfv9N3m(iw^! zHDS>tFam41B#N+)ksC#NHK;#Vap2k7Ev{m+e$k|ewQQmdVvTt<$|1Kg26*(#HDa3J z=|2uZk(U~$cr&`Z!WNaRxM0Q7Ez?Wd6|OfoaxHbq#R5axxL#Ug1CHri+Q?vYn#sku zj*JS44&GZb8F1{Xot(P~_3^heDwtGcL?NRgivN{U&auW(G}iWft)wS;+>rR{44Y~QE`DhUd z14{(1_}AkIk=c7!t&y2YkP_a14cMp9n2`tyPA^{wrfUb?G}#WF<3=GCdZ#m7wn!l% znjiD@dsgbREM^)qb7A@hq>In``WSW4U8X4X3O=8Bd5uQh-3PSuvy`H_p%Eyb2AM!Z zUz=IzbDOR^_re3GX_Dkv``5IJ)kuOqNoYLWf`_uUsGo!~iRHCun`wrtYv)fkj&k=Q zPAQ2-mVx(EuGe2&YyO0ic1)uBX&(6!+`o1askxL>taD*J32bOJeIpP9wo$j(^nw9E zkVG*wToVDN%wu5*sA&5~J;`F9m9IR*P`2oz{Hl=am#mL=VJS({jSLq@Npe`1jU=+F zwz#1-$diJSoch(pM-`>f!3LDVVrve7n^#$~l?Am~8E^3Go3@xe-50F#aJsWq zwl*CnALbrB{@HT$R0=A~)+*c93el`*!6>nkOg}QlE+h!<0{v=zcG`WG&A-qkPVwFW zo~SrZtsoX6%Sr@bOQ>E=8oTyWaW*OF{K%$_-zDk7WE-V41A~@-?~9K&ty!T(5{JUH z?U-wMYyF6^wSkD(lG0)HNS91v=J#vQgxYGGd2Ql&VfRT19u{X64XTs(EB7;NGbxME z7tg5$n?2(LVFR)Eh?j(IZU0Sde~|tQVf@K`M}Obh@yoXtsiH_4L~hAfN0r(Q(@~@j zC;LBXl6Q}D)c<%$B>a)*|NRIN3Jd}m{Lhm`AOJ835)m?^pdvAol3^_NTlhlaB@+B|)9Z-*tRi%z1RS!BorUH{ZaQpRjiIUE|v-&Y>vb4Sl&!>bB=XS2UP^*nnYts6Y8=dmh24TgNjw0I#( z>aJu4jvSQ@aw8-zTgJ~{n!g$Owd+_1@f^NqI8T%o6Wc5~8rRU^#Uts7b3d z?X2K-OlF)_&xn5*SkhITN(ciN^&K2J&+DXah|P=FYp{mNc{|Ww+;Eh3}&K&AJxCH(umeNU-ahB?Bq5c_n7RvG|>jaIz^=?!XYp<&@_XC?~62W*U7esrg9?z1mD0_l==*x7Ew7TjI+KJjjriEx-%I~{U5 zGoEK#B)yBEgL!sDg2Z^-(E|9p0|J({kZCfU8TWRhuXwcl&#q_=vKFKV~vx^0$;-c;Ao%wKDyD$$|?ci@a8~M0hpmbDRrN8+fy$Qy0rJsnFq{O@H!BJFWP@E?0rR``VCDi zAl;nwq`cU^OMAg@mqF2FtyE-`F$KJm95X2!HFIu2jT?;@dNWAlo**xMA-*uR2W4kr zycCv=BrmLeI33ZWkTPjBHN!M2F(m$v)VfHL`&%5X7$z(`va-cL6)G;0#vl?zpyxU-WhlZ66CA+6ANqJuf0~nESv0fR}_ksR&NoU(hdds=)G4RFG+yh6Vv$z+k*$= z9E%RlrtpVoZTOuDM;6T=;R^=o%#8TgJKD*mc?To6CQYr4X_A@Hv!TOIHss6|rFqId zw5~`emR%PlD|?omMOks362VO(_Hr|!Pwd1@^7jJBFNcANLd&u<^^yl^wnhV4u=5Ya z;8PHM`o}OyAg?UkqOnJ2w%Pl+%YFTs)St$^PBNR{0r;o%I0{3060hZ1^f1iIDR;wt zj$#Lu0y@juljO%A8ot_?u$(UxCY$vxw45{jy7|Z9REO@@TtHWO`l>T{E_q14VbbV5 zx=pZ|N?zDdY^UCj;2BQDYIN!&27kAsP+iZP_%be~U)R8rV^hT?<9UKG!^4JSYK^N^ zW%ZdJ_0g%oKNmvi>#nk-tpjz!U2euj9S<}(UFIH`EI_X2A<%>S#4#CJ$pll&@k;1B zITFn%{z;-^*0){qt zdd1n{1RztW3QsU09CE9$^D>8teOBymrE5JU`O%PY&S3sn;~?)IOKdcheD^QM#m$j zqu=F+e^QDC*>|C>cK}m4Y81G^wEgwY;&{n5e7}t<58s@P z3^`;}Sm*=~vq;-#hfrc|lwuY^SYbjHa;;ouoH-lbc>u*kumkXHG;dJ)*t2wE^IZ~N z72=wun$)xSvsliA%AA*$#V)kZU2M9u;nJ&wNKBWzC>sv^sME%QDH$}2*uezR4b^l6 zT{z*FdQKgybnGV~X(1XU6KTYX=8CwY) zc`7UyQK1rcHzF^eWAhHxy6^Oz#=0k5kIsAq3!eOC3pQzwGnV4P$8UDe+7L0UFxs%5 z2kQ3QkDSIx?y}Rv~KtR>Z%w+feaGqM# zCc?L6YvhX^EA8QHu4pxbDQxq}Ki$$`_!?h8&h_iG>2g~gy4^dFc=NDs5v znY5szstKcUYQ{#xh47=6tz-{;i~nA}n+c{H{j=eM+Au;x<&%4!pgwYQ<&k;ERJpHu z3zecmE5TV^`j}L3*{=}<(Q>2jqb+5p2xormVO7UvOh~lMKcSs(exuBb%dotYdZmNh z#PHG2B9tyaIrZv0NVqS4idapGy!e-uRT1sSAKs4%V8V}$v`Z! z;w(_ALDNh(WGW*v?Nyq2lQh~iE{6V+^(OyxYWf>IZ)`)U->NwuR-`yd8X%>isdM9w zy)c2{txu*|4ak#2d2y}$0m-hA4o`WMxM*nKwZ?)B+80z)W^g_^{@l#q=8#nv%U9VT z<3ij&=)T81aJTpXeZR5%hIMjGd=bnCFN1n$NZDXUR9QhNg}FdgPn3@r2Q6ZDlUaXp z+;u03K+2;=jg~mpkyaLMy6;a2uM6yhFTr7H;|OKaiWd#I9B zfDSvJL8-eVDp9QE=oAzCSQKCw_c=;yHgjy5pfdS^ninmF_Y!oW(y8u7-TD4wp66J! zT2vD_153U)hs6xt{<9_}LAx`zVl#9gBNb2w%(Up_k1`)13eVs(Wx0`1;?lhfRpucF z)3CHzt`;c!UNOhVVeRqV&)b!*v`VLl<2(mNK>kOzOf4y^5I!wyJ_OG3*dr>AasmpM z2St3+V7KZkKi@zpO`#?x-oV_xwr5=Ax6dq`{E1pN4ElSa_Ef1b(mT>Y8B|+k zhT7HE=N^AL6PD%FD zC=fK;6O~Aq=atZSSfyEEwIJ=-?)PNYvMy2#&(ObzvQAuqlH@Q@%u=gmk}H8sPkR`J z((Kg#sxojXrfHU{&(%#y6xlIdx0+~X&8q0SuK5(A{wE?lMd$V}8)o&Kv$KCqESff} z&o{~E(36FROH8I9DPtTpqz5%wk(wPr5RvS~?hjq^eEN%7Z88|aJb9n+rF072P@&z( zAoE}hd(AP4kgfg1#fIbxUn(sX)^Wt>%2~~&jIN=a6y?8$Gq@5{vmLeU2wMzq&N`Ax zp*acye3kt)aU-N=6{m!5dn;By!6oiOCD%-(*z5I;w<7M+ptf>-3tlhrG!5p(a<}Xwt^l!2n;s70i#W>{;ZdwtkBtiINTsA2K(Hq7v_y_c5vmYC6y~d2nde;eam-FAV`PIt*5_{3)u^6}^ zlepXGd;xr%PWX$rmWH>ga4GzgW*~f$Ri_{}_lSZvJmeHup+4wrqwqH#B=rl`EcA-$ zB+2v+QHXixKhf&N@J4(11=k3t5!(GKztftU#wr0z&-BogxW!O;$L@6CQ2k-A0=(_f zL0LWlS+LG(Rq&RAd)go4^I-hsg$5UUIos50eT^bJd-Suo{V2dC!7M$zDTX?eB3=e5zp+1?SNnLl~43<+A5~&wj|4Q>oV~xHA`s>k2`1pZeEJp#A zl$2vmJemucLA7eV^uh-7-!uCxI`t6?5}4gQnxPae_t|hSOmoU~P_-u;vJWhsl({8U zs0S!lqjYDG><6lSoVfj4zH1hhq25M1lZ}uWdN8Up zL~*oxR6dGW*Sg#DEI1|AVWJY&GsZ4izKUM0=o?zX*=KT+RUxC#t!@vOLOv0|)$u4{ z8~B`+(8MHr z(pVa%;B&CKknJt6DaeY!QE*Sn&hTC<59hj$khCCp4Y< z!_`N^?1Q&|KR@j2|E1_`eIy8}5COozA4h?~KK@hs*Fkb1BmmJzcF@q?k1#H;_6kv; zcjkIWf#IK{zx+(kz%`NYfWDmny`6KAbGn13=5}AIF$q5&j}Rt#;|$qyC;)F9vkwMNr- z%USYl?Ye=#LL$-h&;)~VZtfuWg$XRcahU;50!=C6i8HOe;3h&o=le!2K;n;ou8`=- zZa;a1&_E{fxf=X+JegMl_9>7j&=l}V)d7oZW*9;tSO#nuBN4i@*>_|XTRv5cH9DJA za~nXNSHZD-gOLaO*r&~C9psz&gAOEc36=CE=G%?NiKPf&zYS%P3rD6>&?qw3BCGnCj`q7R#XukGi5&$1bq#3ymL2L2=E$9-keLWdN>^-wqx52tJcpl-R- z1V9p%@L(;6mqYP99kVM}!M*);pxyxkK)C*p+-M1_kg1?oJxi?Mq@3u}8XYHu-~vv= zrPj9~YnR(#AUgPLec)3-KpmFYY=E1|^IqWaml7sCT@|LhB~xG`8Yn9en%1GFZ*j8m zZPNxrD5Z)is=WtTu!zoq!vPq689On#z?W&vz9K9+cx|xc-!DP>_Nhf^NGjnv9CM>z zW4Y-mLyF&sVg!8+M|*w+`U4=t*vOkgPGRec1u(N@1#g&{ba5T|J-UJ0OcG8&gC#M_g%xn7bxu?AosLVE7r@#D`24bgZBe5-ts!P` zV|2sn!hG`FJUqQ#%kA@=eB)e>6l#2$Ww6Igd&(8Y*Nl!#`BuA(Y20L=L-XB%Zv>Y^ zog##vSE3JdUOJM_xCaC90Aj6y`A?v6f0~-{WK&(NsMsa(T7ty zX5)%?Wk47OCbfhQ%m4Mzlw2Vix0*l$X_26;&EEC_q5Xs4B-c?(~r3cvs`l|?d%1X{dgO#KRo zQ5hIEBEbmRK{Y_HD_{up2np&DDEw>zz>z0`ga*aBZgIXX;q6$Qq6pezSQ*IdSqNT3 ze)mDby%9YVSHp7$zxef|H^5O2Tys#qJ)X}&NESIhZX7uGJ;UpLfllz{4g$6+>;kV5 z%+2E^*nx-rVEZ(IGGFj2J>QH-fDN$+oK*=OaGH180VIv9THa+32F4t#&{Ye0082&$ z&;sCz=@BX*rX$j@%FQMX#xHV^!0HAgczYHe0ztW7$Qk7T7(4*jJr1!!>#FDUsVZQG z#M}Warav4B1^m06MZONl!5=`Go`yOF5a{Tu#mQgdQ2K~I-(cb$j_|iY4iWiD{-yle zU8fx0HiKh0U`T%5om@kR(*^+}8h3u$x9pg!5O8<(hMyw{t><^Bs8Ff0kh>6=T^03$ z90J4u-*1p!+uVepGq8^b*ak-|1&Ntt_Czd(ip$4vgtZHZ%O(}OfN8uur8$S%YxAO0 zMEM3Wd#k#yf!6I2!Kb_nY_{N607Ak1X~g7lG8pS0mHI1VPXfOxBCLM4d@IbH2J8PBV1H zU`8y2YvtH5LzO534ntVT+~80g*3fW`EmI(Yl%hFRxn35!U{ri`Nd#VABT&R@nSmw? zafmeg<+v$OLqdYwsJzxt5@X}$Qd_o1e_jfi9j=fHRwAXOiQL)#Z3Ug zpdM{S(Pp~K)7>c~l$^;WNVT7duVDUytepX}BdErNWQd`?F#*aKhmv?~Kss)q45&(Kx@{2LFo3y{R zH3wZA%z#utiX`>T;w8k*qc_pd?ZcWWHVZMstsx>@tkcEnyA8`%7 zY0VsB(zdj7Ke-OdKE$0hR{{^@C&Qmqu{`(Fo2}e!h7JSfny0`PJY;$+0l7lZh}Wlfp320zN0$m)WO+ z9kd|TRIzyu*`i{^^D+Y6fdB$F!V@j_;ah;cOdBKJCvPey(-DR&A@DhYN#Va@3%1nF z9@q-ZX)z66{MgL}a36pt`$e?|MM`UO`@v6xl3H}tt?Zo%PXZ%e1qYaa`9z+b8=DS| z$ch?^Q;%s=aZ-RQ-Hd^y$vC7(hn*_$9PO@=SpJnM45D2MkL_?;ENW42i03FL_PK^DCYItQRY7vQ6eSSn!9z zwji-m@2|e_ga3=SzYdD4>Dou(85m&j!CeM-26q_TT>=CdBte2(@C@$m?k>SXAR)=% z?gU9l(BQ#IAV?1P^S<}c zQ4F-2V^g!1&a}d@cI04Di7+QapYpJe(ELg2*sD?$nF4tiV*?-!9n0k7`+*slcCuCL zgC27gMqP?CkhLHks;OQ``r~}-B|5Ub=yFv75ED+dB-)nzJc~7mUK2to5{3&f^%KLU zs7?Q^d#=QZXGo|iV}c)>vJ%5KG>Xb4(2p+QMH}pyT$XK%0C+@zQwaFcf1DM^oa81} zEi(*IWA6;GUs)Lc1@QHM;m6di6F4CR4_xj)Fq!=XJ*~V%MN$&lMwMp289i2E`zGr+ z2NrK;*{fxTN$1DQ+jD4Jnfe06bjD7+|R@Q`&tk4@5UdTsEv7o=muv2n{gK64SR=P+k?@{9$Aawtb;- zV6o`>J7=9s|0~y7X)VH8BM0U)Mv5k+|N43IUqE*jlV|DK03O?5EVRwZwLtLBkhLy! zHs#o!GE4kze_A8dU#6pL(W_#O=fmQwa3zm3+f&@ft(cY=m;&Q4W>OpguaGc$Usc8xAk6MOSjA2!YNNNK2v{Y`*|^$g4`od(groUIgFu zYb;9c$V@o;xBAEW>;3V*RO}6WJm9q)vtYfSqw}cU$40m$GG>0mNVmBh!n6T)s*Q^} zee&O6Mb7wnewPQ+?}?yMDnd(94&S#EUf_nCy{`_4Ccbidx-X!@ z-r8^1pKwAF&Zau|X!hEa)S6V)uE{u_$ZbasrJmErklbPCb8tJ+XihQC^p0pwrof%- z)N+WO(3ebR{0qZt(J0?Gszv!P6>ZYdHacA=LNEnKv9_Z&Y;QYu$*P{eWmMD|m3-Ql z{9Hq(Jj{_k2kq;QjfUnK{;aod8X&@1Wo_A#-`X4Pp4IvO&mdrRU3y9qBG@09%@Rm(pS(CD1P zDb<~@Q;OJ+i1JBcosyJcTqn(~P`;?_saDj}VvhSb=t6u*w-GF(f7Y~fMVE-6r?vJg zECo$n4@$Q)+%^3a!<%nh#18wkYKXVL=#bAr+{feL*eoyr%ztL*RY-LVKmN$+M&RP~ z-n=_~|JYvrncJps+`_vs+6h_)odXJ`nWir>rW&0Q^mx|(#oXA84$$Q9>BzxLD8Vd> znynNJp-VY}FKjpiY8k13?|{r*hPlDf|`7c7MTAi z4Bw2OgKC&zvW#d5%S6QgCof~*2ZA2T9yDbUKf$od^(Zv*1DKWxeQFJn7ZM5KZ1RFk zrlICfK}Pr}^~fxQQ`=3Lr|c2(oh778MP5s9>%)EGE*ip2EMExoO97HpgwKW&@|Hw; z8K1wLNEDQ!y>4uRK)C6v(Q3<^tP`r@r>oN5!a1;s)T{Y#Ko$_@2c(Kjs5Rw2F7eF% zwZIqmt{|vCWe={p>RA-S6tdBCa_{|;V8%N=(xH(Scgs>|ZS7|fypYZ3#;HC=JyEBO zxEnw9qvN|0Umvjx2$eCY@i4{)nrBso@jrp2Qq511UYkY`DHFeP$h{<2!WzPkb*b?j zC_BgY0H6Tg9pYy;j-8nVFIZL%7H3+5eV|W&De#EcY^3`;+Hzu5nmnDqMQihvQu^wYnC>a!k`+++2iMRHVwOgn53|S*SXF_2^W;0z9ikZhO5u#L zq#%cxB@Nh}{ZoK5eJwU{yDIc-{XILej)bUZG0IJTVy>oli2&dejg+<_9C8+&5pWQCn1)tZO+%wa^otMW+b<8 z!Zl~a*#PlYB(yALHrdR+cYq0<4n6GCFCY$P6#2XB(g@qMV`|FzhG+#ww*HmwNK9a2 zKPRqHZPrdE!e1a{&O5edHn5za)~%oFA~ueXh-@Kc@pRrzDb2`Z>XeaDTQ%7k^_XJ-mkx5hF z1T`)bj9wS$fI)_rPWe}eu9c7hK>k8>!X<6T? zfnegrYw%EJ>VBjV4o0i|OHWH!i;s{xd@&b=L&2}t0govRkx z9B`n=Qu;3d?VriYoYNq<0P_Cn!YCp;`ZD@UIP}g&3o|Jj*yN3Az_J>oNN~jke`MuT ze-!>C7&xayXIZ2?61>KVMa_6vFtMS8ok$QyD1Z~>}Ordfs^w;|3YhH@NzXzet|Gdek`ynHRj|?YY31{T{M}kO}E_5%OT#w!` z11d!yc5!(?L;NSGkWnwud8891_uLsJ&YFDx6d-Nn;z!Ld{LddJ-`w}sBVl)w8F)TK zH`o8zOxb&MXYoi-{)cZHFfsr}(H4E07?Q&i-GS0`&?t$zh8;=_5EUYghv&zx%kEQ3%;*v8v(=3w@pWyW8 zZ)fg_f6hZaF*IttxOol`i(LPU`b*fv2 zOQyyWkw{4*h@@6BE@?cqb20VNk1jbrl0_pr zNsc9#-*=Sp<-zbUC~X7rXZQe>W>ErHKt?{RIO}k%uSqM>2Q!>oIICo6?Mb$PK*8_d z{z?+Z6zMR);;Ltshyu6C(<_03dQ%=>rGvMlMt4W3=8SIX6O$Yd{2UZN9z`jXTnZzO zV!4aL?%S3Vx;9#TIduJWPxlAVv1M8bSDNG1ASt1q8bQ*)b2{37V7dY`EJPsWi-#?M=mnT)cSB4< z9Dpx~xdkg7BrGls(iVK_u9NzdZWXzSS5tbh0M=DxZ!O*O5&~l()D}eNY2eTiB-XuS zN_xVVZqoyHkYHBiW2pX;umgjW3GUas+V#AABx170Q2@Yb-OT@9 z$9AsHZV#ruk0VlKvkhRn2|y}#$L5On4gv6dVI$Mp_DAj`y(&tBBfwgiX)3o)T^Twi zdM4Zp+!IM2)i|9)r``JkAkWAFQr;NcpiN{H)%D-+R2vb(zelL?*y+A0>;T4*vzSt< zI+CY)ko*PkSYcg_h>3e&=+sSn+z(u>^Z~{XWlDQx>B{00>>;e%RKS<)9n_Cd;O=R0 zOCV{Qw9(Ns8UV)_N&5rsbq`QM<8xO`J*7O7`M6MLm>lrkS+d2*?TaGntMN$+i&$MT zQW72ALMz*_C7g7!QTZ%U%Z$T>rz+KYd9f~-rH!8iCVD!4_N~R{0~`E)(T;S!P8F9W_vgO%hf<{F=sB& z#~JRbUvZXKN}`ue52p16}IIer~_5txr`^t zb(wiuE}(~QM@Ug#rWp1OmkAM}1}`^ye)&CE5m4m6h=~90bn%Dc{V%z;gW-d`N%u8> z-JWCzdM<=#Zp3Q=k$~XvCtTkZy*pJb?}=Bd%fW1H6vpzkMltC&Cs7nEXmuG6es+r6 zYc-nng0e6U1qvI8kwNbClfr`C!2f;fAzU~bWlu73c;0rKENFz6uvn|Ln>2}Ga$u&j zI{S7sE<}frpyS8wLZQ5?PIE9ztVViXgRl8uK~-|idq1CXw-DY;SLCGh#-!nrQU2=+S}z%^40nSMLNGdH&eLjvTEQmf+5<4*##x|(WF&^f$vXMC6Ttg?t{D- zOm$?<&^=!_w+e!UKQ0aRf@nVjJ(ba24-Q6I^nnARLhCkiQvXg3qbW3baqVzHw-)9$ zjtp(=TFk+&5dm@i;~C$&KE8<-rHl~Asa!8ZU@kr!V>2}h2d77vsc~KVG3gx`Pj7~( zjoa1Zq3ny_JJ=kDU-{7UNz#bFaCG9Ji{bfht0FOjBXuFZL28m1l)PP;v!cR*_EN0^#q zv;4_6tg?|H@Y2gv6Od6q>Ih-%d+ypeCNc0JImSz@=rqb@t)-lxRYR{tfK{z{R~&VG zSJHWS;dFYHcdOGAHYEvCz3a%!qXRsA%>g?Q9eDw; zmg&NtqEJg-l(Q=vPsI+~Q0~08~z;f$0NgBj!|}mdOgOqPENY z8lJWbT=qMA>`ulPI{TP{#6)f0l~EV>tnjZpzebabL?s5+G#e!H5>?|Qf}aga5!g|& z`P!W|I^_KYEUjZaHeuyrMb4aC`8_S?1bly+HZ?ArjY z(6=1h!Ihar;&UXF5uF}AI52^z?#VQK(r1G?{zJ>pkNpa?UN@r&MtacHMitpoJ{<*> z$u|)_EyTg2uH*WZUiTih$F%9J1+af#xv9)=uG!G(?VhI^{m1Xw_U5N8O4d?`XF9MJdqszMKnUP+FoT-v0$y z1UkrB&z=(0O~?KPF1A15e!FgJj~XR%Ip+O&N*hdLp-j*<7>VPRV<#Xqe)^x0enqx; zd35%YJE^%(by!+vZ1=^xw0?Pds#Qc6P4M?M!nLd6YVWIi1_0{z_GWE; zo;OB=N^!y}HvZ4Ru0^x7ylQq%e{jD@>7xRV?A}?`^k3e4?ib#_Qbn=uJm$>9Va3tI zFEbDZbax)$sr%vl$aGI+e~RXf6E!NH>hU~jYoLa@n;Ji&$77JxJ-Cld19_&kkgoNt z0!!La1Sd1{B>m(9d(Xib3(sC(OKQLZmPcwk!H-}G3*v*t@wJ8h)Dz!yV(BgVDv;-Y zZLL*PQB=yAFsw;o_PT0B6?)7hw<9|DNM!`HEZR2P9~()d2aU{V`WcLu6KxeDHquPr zfnzCs)2bjF@N>MH;s3Sdq9uf8B^`&?&2MWQU>&Pbvcmpbqbvh21|81^1w;aC-;+uU z7RfF4EM=)p$)tSlE5V*#xP+-DUQ7#9lxRuzFmyODGE=wH=D*?SX(S($iXkF-O6ZD1(s1FOT zNd(hmsEiO)*#+gTT8+GtV3N)PLW*0IuSOq!igJ+1blkka>I$6l7-J`d_i} z(MeiJ>nwNeAh)zzbLq5l1oZ84PD^K&Znsn%{k(V~%C8E&BOdsw9vo7~-lP!a$TjIbz;rlXMAwqVk zdd{YG5pn*HA&Xnss!!~sdYx|3?dU>ThE$57qMtQTDrY=I3f0hQ@+Q}NyWlrr&nVj# zHl~6rrelJ(D@jMnUNeMW!tJsENNG|8OKyt1^b!f#pait5>@hMr@pAxPUnImT9=rk3Zo}W{t7SVc;R@76 z`gX|buPbS#CYx1!mM0nhfh6!EC~_o-T+d~37K_7ZCylokDx=FK$aW>-87LgeqfA{R z5&kLJlLBTE+|&&HbeqqOs$-hSlsSapHM0;-NOg@LT#gtJk4DIM3M7(RxzNlsg~E0e z+R%voVvHHTWn1V7#OMDwS2R3-4zFP<&GUDR(j%N~fOS)#4 z9C}{I#Q1yoM=ZeS4U5fn>|8S*A~TC3>=h_C_mY4NMq0H=x{>7^jfHFxP?Butge@;f z^d~OVR2rEXSda5-ZHJp@^2|iUlhc+8a4+xqQuh~fMhe1vpn=bXMks8e-GM#teE8|V6?Kk;n>0aIUZ(On^7hlu;CpRv zFJ?f=hS-X_3+FYsO2CK3S(5#ksW}uaYL|s%42)ox?R<`pvk|@UC;cjOXweF+bzsD# zMP#n(Z#EGO04k@PuCmnX;{gXzPL*M?c z{4Z$R$0IGl)#(*8iPTKl5ea>!-n4%KQ&zj%yrIUaLZL`;0$jmM8_^Ve85m-*l#cVw zR;s}(f_=L-72o$RRCyk_{ZkVGWZ+Gh)`4;WQ4>Hfdm|D6Nq@>k?1tMt#3xwlUoN`y z?VX_Q9~J6$-l=ADFK5trQ|&s7KX(Pm$|w(;nf_ZTk6MLv*0Gsc59eUd9D1#|v;)e7 zainE0KjNfympyztqm?#K0{Jpvn_s70s`Nv0-lA0OWrw~*29#g@z&hNN@$T_lbXS~n zn!T)nF=AErGv-5o=`H+34xJRo!)`0eU&N8$CiHsEP7eLSLCW>|BSZV)wV%-K=i~^& z&)YFqE+;*gwwb#R0v}pUckjW&#iq2e12wGIw}}haBYM5w+g*u)c4$+nQjo;>(R~bK zRJt!2g#I~pow`sUv!!9OCuNmqwU&h2Z~s;kkh}(uHQS%{O|1aSeOKuk%BqenTCGUe z+E2$kIQZBsNR@J%p){(BY#Fs6{#_17M3!CE*H9HHn7&KH;c!OwH~GQ2S4*7=!T%%D zS@!kP+xx_X-?Es*LcHs;qmyoWqqI{$N4zu9=?h=;RkekN1wgQTzX$(Erh73h1v$O+ zM|WaY@z?27s#<{v{7w2?sC6t(&s92F%AKiM34az#s}odkG)m;=XQT-%2~wM}CF5Dk zA-h7X>(?61?u2%_M0~e-(^?)86G0ka?j^sG69URoh#0 zpc-psygl+NPde!rqXh{*el8M|^!a;Z$Xc+uH**@^VBrf(qDBZ5#R51*8)B0Mh@3wH z59f?00FhKjSpWu6tW*zRk<;^(GfGA`vH(x;Q8VyFH8N zCgI=%_9@|^qF#lVC+gq5OzJyt^EW*TU`b`Z;_aZ&xx58ULpA?jBY#$Fg!S8(>c4ZQ zH`nhC6y?Keyi)g{%DN8NBo(bFy!H56uEMjA%wwQRjQDRW=3)&@1>>ob)f*8*8(+J9 zn-FfPx*~Pr3C-P9n8fJ@46+&X5a9RjVmoHc-p_wdVq#-Nu=42Iz@BWzgrT*I^g1`T zq3-@|eP^uQN~$gZrn9E2B>Qy-O|9svUNf~z2j4!aw^TfST6$>m;8c>Iu@Ii*N>R+M z8m*#s>Xgv)5H4>4LZ%M-bI*-?>;?bdY+2kOUbSCDR7z-DN`q^L%qX*C@7%VQ(wKeQ{ z?e)QoDOO0|6(2t_=?8EwvXVLr;sD~>7iE}o)7$m#j_hGA)f2Q|UF@tq4XByqT>g>)i0U0OHjd)@DM zLQ<*GmexeW@0&uNOVzOO=b_}8%rSlo$EMXSK`b0!8;xj!`fQM= zM)-;V&z<=6C7{RC&FqqZsJm0}q{+uH4Z4iZiUo{4UhHA-r85 zOTYThkRoIj`xm;xgo%?vQQ^#{4Z8!jZ@RSYvhJN-dL~CyD(nr{@4*9lU)YP?bcT#a z04u|qYh-hotQEUhfNVO|l=7D2&%a0lqa_s=vr_G5sMmVbx z0HNXw!kMpu9guJx71$|hmbq+^FD;%^M72=78 z68N;w9}$pSh817C%jc;sL6F9i$Z*Wu8qU?u=}z8s$5j8N&|EV%M&S%u<$!?#bPlHM ziIFAA@dywr5%25SA(@7-726D!dis?P7*ic8Nt2byXK4#MA4{_|XIPVrYYeQYttrm) zILO;EkvNxY7%CVgVKOssid4>uXwx3i*<|C_SDKP(CwbGxye<*rU(6OMN~=Aved-1# zE71F?()N1vzsjW&6k@+VAYzN{&(;b zU7iUaspktH@)E?%S4PS7H|sM8MYB*uqbYpNw~5u&D52HDrlzMvOMf}6<)(+;MI8OP zwC9b%URi}W%c13jeomNnos5*kS2hYqM%#o`&)(R*Sf7dJx-qja)77$d?_)f5$>b8r zBZd?V2Mr}OxBqL1>cdn6OEmB7IN_s0Iy*zdE>5FHk>f(vQb)g@B~(#@*(mgP=Lu)G zKB|)7Uk@y5kCqW1NGB??3+!Wed|eWM=L+hH1G5YJ2t;W-;=iOzRaT^U2}@zAJ#JkNpxn&Tf@q7DT@K2{BCZ`hE}W9D?j+ z-IlT-{NTrZ>i>+e!ltm)EZkr5#oW;XU9Kb91jN* zv3_Wn2bVEtJSirLLP-wGQT)q`#4bcid;M92vk0{!^POML3Z%k_;Q&XB$VBh&%FwkPf5#3dID zT7O)MK3!Zl#KjtpgJ#^4Z1878-IkiirG1cc5Cyd_yv!%jG^ z3eAf;D?c)KPd)ATinomOLY zDyX{!>NPGRrM1)QMfOWW^;OpGn$A4T)6AC)Hi5_XaF-pigS@F781c(925(SVER>*H ztgW*r4`5=8Up`ZeJ1QCxQ~HfPge6hKDoWQQy*YsE3Nf~wgicniek$$*_hwa-cO(+x zyR|YGq}YW)a_kGfh4%_MHVD4%?666ym5(JCkpDzKC6LMk*J`&=)%`72&Uu{hl{O{i z-(F5?5R}MH75>m3BDy{Sz7P-0A2txM`2}HK2xn(UHQC`5@1-8Vw(@i0^i*={-@|$n z8woT^#@NX={cupGS^7!ck`{v`BO-&Y0}i5w*b_DrKNACgm|^b(Q#7WP43#^A4K?Z_o#@#Q|fw@6-esp0y_N}i4xGP-%T?y`@YMD74Eb{_F6@{~S#J`1|bghfE zU<578ozUQ2(oxg1toTs5e>o>m28MSs_AjK1u!l{xetVuY#1K_v%gX*-0DB@5PugZ6 zH(PUpG$ATryzNNlDeKI>X(D%v61g9zOkw&oh*$O0fX<2w(+P@u+^H_pIs;vqQ)GQ& z4_u?TgK>B%5~9Jj-zb~8;RJTs^V@1wR!_A_Flt;%f0fC|@6IS4?2Ck)xTHV9La-Kk z^`EG!+B0BN8d7s+iFK=N z4dsg}7+}o0ONjdmC?u0B+?dv(oWF=E*ei)WmswrjSzy*Z&!$z5i}c@Pw!ntS;F0xG zaWg7b(W%xhnw`q;^?xP&B2YcjY195;=GCeVF@ZI;uX?S9O)9d~G5g9+KZ2d|oxvZnA3XA*In^Y*10+XZ9NsPbwsR28D+g?)71m3k-pCv@~oQDe9E-gxV>9RKf1km-DNAcc&gNn35TNlCS;( z60`h#+bu42e1y3OGxxJVcg~`LeY?2VmvJe4}j4ERDr3j#|+D zDD<@xX1xDv-+ybPmfKOx(26GqFH`vG@`TtYJZqAFr=te+mdPCXiJfY~?MK`o-mq`3 z_BRZFO5YsB4mX<|0fr1mn}HQYr2=+Q&>uEt?Jwu{lDxDOU;5uw6&H+Hn>h@o!;}V0 z-lo52^!b#U*%qrm#m{eqr4YEKaz7pbzNrlZP%x6OpJGRI;Oty$T z!K?MA*ys@?Vu948*lEhLoolBhTC5W1T0P%oH3iWN1v+_BP7k7A_+L$R#FR>Tig<-i zVdd?ul^&GhcW=NlCDz0(2sAb;dzHsCDcFzuZ-$Uxf#>k#Xbh1fLTackER6XJcz#ej56BsAty_#l#cL zSyF`-Ya0rmwS+~VVVrc__zeW0Dc~^b(JNBrj=5GeuZ66WS;Ram0+?x(AD?*tPE5JF z(>Z<9dou}}s58A=n5UhzpHc#8d&*oSu-MGi&$=90g$3Cbb1HN7hBwueP%EPiOfr9* zJB&!`J*Jet@Qp80+KC)U=Scf9c62rJ;hp+3Ue$_T0#N!pG7a^^V-qGkW_VK_pJ$ksfrw9E>0s}(4P?Qbt4A(h!MyR=PZo)Wg!H5N5>tqlFh zV9$Zx%r}1l5sc_QsoV>iQ^UsMAf!)z_8KJ?e%a;%kH-yJA-*Hqp26~a>HdsGIWBl7 z)(fdJA^If!lz+JD+mnAs`v2Ff#3d}KBuMTtr)T$F&HeNbx#L%ye*xY%y0;}`uT~!n zA9l}6e*eGovoIpk8Zbf#=Db0|DRsH$+m_sv~{4EKyC7l^V$RzD-K~T52P>V?canRnW=L zKba1?iiP)jT3&pWBP;;q_~+?oL&cvHgW=239sZKBHQT(3Wp(!+i8kUb&XhdFheKnI z-^aTGz6<3dwcpQzK{KohMd*j4ZemUu*%&mOCoxH%YE}M`=d%h!{-6l)u6QpZ$2Eqv z#1oLiwA<~nkXwsbPzH*GeM#cK91BckOkW{DQP^l}kA@E`#ZLKB<2~q*?@qAhqU{>qM={7_yro%t-$^NsIlw21l&(;?J85auX~J1%T4?LXj}jxn(W$U%(*+L22S0 zC~H*}?11cPKaaBWT)(lnfP58uci%52(w6%s!`jAy4 zTgn{c5F|@8Jx&Z-FvWPTej8duH9xZ}XVRT61L?I**nV2v53cqMQm%E9M}zq19_gRs z{rWC2DnoA-UnR}R^pU&>#q0-M{^^khHdM#Osn`+46naj=5#Co(OKlTgYBdh8i54bh z%1M^Q*vuTx?#guz`K0ro+0+1^2FyUf3gx6q+TwW$$r~Ns{>F0(sTaX$GrwR^+FPyKPrY_5`qA?FROE84zEtI8o%2^ zF`8qneuF91?Eh!(UKOPjy2Qyd+0j8XdhL~8$=L%HdS5c4MQgr^rm*1S&}Ys!cHlyw zz8|dMfS&77%zt`POc#bhR3e`6g)h9f1iJxf@_I^FB{PJZ2VvUr7+R-}o1Pxvek6|j z{4`27Ud*1~tz^uF`=TW2mD%;u)#JsqKDeP&QW@~u1Jz-T3w@7{k zQ`oR(7llq^1X{!sZvDWaN{gS`tnn-OWD>&YenpA1RMuz2sV-w_wCy*)|NIa)uc8r( zo!4Li*@|mRZ0$2!l-JlZ{M!8sfc^#S@GIRSU+tFhZ@fCG?)XN`r-O=;^(bshG%h9n zgz0_Da53{}y9yb0r(AmRRhJ(rrK2rbAv-z1BO2XK+LAl^nGPtq%?Ve;%_nYPc5$NA zYhjx-69A(z7Q=t%{sj#24NP)zhbb-N?2!i$()6E4dh|DwPu3`ZTc;rI*@i|fWzNE> z;+XjqIxQtvz58R1^YZ=})w<2or@SPuYaouED?O22ZW&{x(FQ<@-zvI)1_9F;lEabY z)cE*wILP&J+*c3x_Aj#2A1EIFydcE*3-BMCzC|_)-mg98OS{<@H7%UGKQqPMk-#e0 zvDbK{#DJW`B(v=C78;zV+q78kk&eYX_r})4AkPJE!BoU$%n&wiKFeA>9*t9>yvn5EzQCx8D4uzeV)=N@ke7| zFBp?h2+H77BV|msP6FKvSFiUVGGWxmscMB_*#!6^_uEx`v=p zTTX;$AtYJKa71za-WVQ#Y!ew*e}(%O5F&D@oO#Mv=27VwPRve$IfIG-xMel{?tX*Z z=lhkQiSjlqhuk9~b#af|)Ok-}gkzYhMthAY`X|OyDhK-*K-ziQsieEBCib1^_%57+=p=1IYE21i*buW_MdWqM*nxt}-k%*`IL=szc z$$H0sf4Ox1mxW8g7Fv_@1uh! zpr|!WtUp5iJE}V}AB01nZs8Mko?3lEd)*sxiuHjL*bp|g#I1$Ecma?qXn(E^dvf&B zR2KV%k-hV3>XwVKe!O8V$VCY~PrSQY}fYS}F1UXyOWvl`KSUd>HKE zSI@VQ__-OTEUIB#0is5=TjclnO-%bZk%&`|_rqI)D!r`W&Y*%EE1Wl3xF%QVZ)tLp z_2=k0Dp;8wN%j0RDkVMW(3f7G^ztezVQV98a*oNT7RSp90ko{|?F`jKUHKk{sV#x- zAGsLLRR$yp?*_QDZ&p&&Ol3s=0-`c41#z?kdRfLl>*rw9b|$aMMt+L=3;3A-SXy*z zmhjYS$Zz48;=Y%nt^aeoZ^<&qYKI8Sg`zQkcm6(P)xU`4%VkK(rOauZwJJmIuglr3 z2SXs!@cqO9(lD43?@!$;CV}|wYo)Zfy`|j6ZGk_s_*3aw-t}j`#0-!j`6}ssc!->AN%C8|k0zrC- zTj#n*i&`T0_ zQgLoKKfm20*5>yz`0mk@rHBb%lMXN=Q=KyA*+~C zQ3x|ubY2#;U{ZA?sa>m!08X}30ESNhH7 zn%CC1`>)R)WFUV57)N#nzI^W#S19^|5Q&B>&V(xzT|@k-!V9Bc-}cM26{v)Q*w+Z# zZhs&nTB(@_u04Z~i3YE!nq66U*$YHo1>TxzY)4_I9LxSNK6YQpBzfE@*N?%q_c>nO5QftgX{3}cKm@JWE%=4Y%Z z`t&;P)yPyzQ=(RQ?0&WEy3EQHoj~Q#smhH9iJmTi8=++&CJtnUG36&rI3?{6`&X4? z!(m<^=&d*h%`>FY7=q})@Gfy!k+;)m%1y%ezY@GsyH2|rm%Z`137K2n)b0U`&p`H!^( zmg5rD2gWU*2c$(BJGYbfT#@8;5t+Vv0s(G!G4ClrafS%En%?wV?&Ce$0j_zI!)odW zJq%p7rbumWEurjtP-$Al8&)LlYf~){Ju`8U$-Lh(w*^d^xFd4uoEVR5WXw;UOobDUyCRXi&g)WfW307z55 z>L7E^GYlmsI7SeoB;YA`roG!(4pf$14^PCC;CJlwo$_ZcFIhbT#(9xz1oxSm$n{U#R;%A#sj>eBpTO!v|K4Qgb z)(Dr6BLEO&FPy7cDxc2L+?uk`^g2t`Gfj3q!TiLm1rgQgXNezp%3B38e}74 z{7poLfzkXU0Tb_$t&O*2x*&(~eleY?6!5MAKnCwpr?6+|aLBL85w&%oiowjHd)KFVfcco#;Yb==6-Tmp?!iMu{6Td(Jg4?2|;p8 zusGR#@rp>p<{j(x`(e~OaPObrpwN|TcQ>?_Uhq=<&ze4o-;+KebI^;rUw!EcufGsF z%KTqty=7D!UDE|R_@Kev-Q6X)yXyoGFgQVj1b26LcL?t81a}B-!6j(mxs$x#y?^ff z=;@iY`gC`7on2k0s&lLlw~(^Mz_SgH#U$AdKzr%$VP9&eLC0Dpd>S*Hd?ScbZ(aEhV1BN2TiW9H z!_Rw9Z4-}Bm4z`)*BO}Gkc$%}*_-B>Hk>>qH~N!}Us5*T3FDU?x%viAL`Mn0g6j#$ zF>64#Y@jY??m(XAmfLQagQ$+NZO@iLpPfl1sc0r-CeLLMueUx0{c{B9>1s}h15rGjmcv08U_(6cxW^=&c@cy~` z%($a{>=Rq}w@WWUtk(m4g1C601G)=ulhHMx0^I*A0N8Uj;aeaLR|xxZql+cD4o zb?02A0g=+8DQ0$nc<|vKkC9w8dimEE1D>Z*Yh`^pm!UkHNGL{FHGnG)l(4B9Rs%0J z$cEC+e?_7gY1aorm;y^JO3G5`of7I;9!tMRn=CIfrE-T~3H!Y{#qa9NHKc3w*oR3K zbO5Cnq^HIYxPCKK2~L9osmDJ0X9-r{WYHE;1*$cyUC~ey(E&6}Qctq$qBm3fy6w=( zB}Y~LzVcz(SLf*5lTbm*dVL9KrKQE-( z#vQC_b;1!)>0rxIj>?ZL4eKMJrUf7YwU3QhNIAZON`NCH^y>!zE$LshCB6@ULXf_> zCwxc4u>~=bO|wO$-}+ce0)Ri*CY(W-cp7QZ<6sD?!GDoh1Gdcd%39vPR6lijU0kgT zU5p{<&sxYVJ`dU)Tl^qyv4O_&P`#D}OD|B~>u7Z$r#t~`pnuSg zf!BEbPclZd;O0eX4Oj%_CEN*+f86EV!ss7yq9FZU_*WA z^`bMuDK%nYOXDv%V5}z>cX(U0h%(rpXEZ9zuQFMbwRpm39T&w+Syr1}PDZ7MSv4dSL>$01mh#74t_qg@oQ*qhS)2F_fS#6lHTjHFRR-$SjdmhBBnv9CWfcq z-HhDlA-G3{B*(NLbw^BOC0jV{0&Z6@aYT21K%1OZw#;(mB!hODs z>rcML8w>f=&VlaCf+@k7rN!*UaUCC8scz=b0vgX^DQ~cY4_gmI8Ax3M9tI)gW)-Ka zA*YV$kZTDkezsXcLJ60%o28$D7g3vx91Finfi|eOrn8H0Xc6C?WZ2q+>-FFM3A@oH zcMT4N-y)--PB8&uV9fFM=rIA9O?9+Dx{_5%b@6YE{}x;0oM66@^|1ApqB+o`GAIm~ z*D;#01bE2(jO^yjC5Quy^>()Za0GjB7o*aDfZK7U1?Y5%!)cWsm|o^ghXOj)&-ILS|mnC^k1!x-)N|o-|3R; z7hz(REPhchLeMK@C$FL=ODYz&NH*GVC?Lu)q9)X0%Sms~SPTz>~D zHC6hg#$MjpTWeOb!Ey&-NRDvle?Un7lXZ6$ARO>+JKSoY z2!H~^@&%8AFm{)2OgV#wjRFbS=@^CR*kTgH%kN*B)Nauu0+T9G_0ZMSTCrD&Rn>W_ z?M>_j!H)K`m9G_%VJB23Y2wZOa1tL?6@~6q{w_KrBZob(0=@wC#=9gaOE3j+f6kJ! z(;;3?mbWwdW4H0~#C5prAUnf_oDQ8&fFFtIT+zj;gE1eUM|_$61Lgs%%AENVzl+B*08sa&fniot ztm6p9giH2r0CJL%hu(v~L4(;jQG7E$mqeV)S8V8c09W)lm!X--7HtjeGD|x-AicVh z1#>>-r``A%yh+`Nqc#h>7W(R^5DE|6oum&Ur|PUE2#L!&6q!S;TTDD2WImcO@a6L2 z+(|u;9sL}r+%Xj5r^I<(1C)laV<8_7>=E-Cdjh%Lk1B~UNq1LT zY_Bb~6n@*3>!oN+tl}8DugWA(vjq$m>xsv~G6f+fCF6#QMUXTNxNK|@@1|0>C`X_I z>zPX@9E1ekW&eg@(AsJOvCp9~K-RZsSXZBCJLpl@v1{Yat3$KG{WZT>?=Yv-D>N4h zW?A3F>y1&kmfweM*E>0UW6!iM5+hwm*HA5JLY9JujicY=>e50#R<3BsC(HKX;b*B2 zw)U^MsD2dTp&=gKGI1n@q&toV1<3V0g8(_Q5=qT0@Ib8;AJLo>qNWA8H!u?y7h z{!8eO`HF?7NX)c<*Z~-8*Yk*o_Kj$qndDR>V*6^)NYrQxm&uOmc@tufCf2C|70T|;;u7*02BuX9hq1mn^7g;*@moXkJ*6p2 zsshvoVN2v42T7Y7+i(@jOtQ5!D*~rKvrRTF1^G8}=^CI?eX55KT9B<@bIei$Zqygo zD7e|~AqvkIF*<`eP3Wbe)?k6w(rR@wo8n~ggoF={;S}hyrov$B?#Zju7pZ@NJG8bi z;EG&t9+^kW^|aEAn)wHRQ?Pla3b+g{QVPG$lX8!kom=^Ppd#jR+ed2823+e3d;ET@ z^G1MPK5}8rw6p9P6O3xJ6pxa`)OoUUpRrz%BTjdqPd0&s7DhE;dLy5vm@r^XQCU;F z#a|A935SZRvX=1Nia>fY2!*zwi>>W+3&onA@e^B`RZi_UW!p3gh?-3S1kH6l zqKIBTPti`0rTvNUA>3ZoiuH0gHtpW}Uu2EMnH~_CPu^7V5hbLhnf4btT$RM4Wq#;^ z424%Qqk@^AoI*5UZitA-Ndw;Bjx^YzQXd+I1wW7#PVoF>z{ns{NL<$Rqc%e?^|x_* z!cYDhu&5ZSJ2uFCgHZEa(EJf4^gTN~opvxN@eO?F(&Fmng`CsS2m}B;cA?Wr1f+Vn z$v>{c@{w^CRkF}f9WXK<}Lyc=mVBiK2CKM1lpwt&Kn;IlAcRmh&Wl%82bIHBhW)YS7_nuU+Lf|$g z4xDopx~ua+P@4A-$jA?AHaiC7t>0QReh5Met#gar~2dcBT1STRs|!Q%)(_k5J|sXB*cueDV}CtW)aLYrSx@ zO^`A63A$J?qm)c=EP<{yjH}rioGrNtPJSP|Qfk&yUqwuZ8V?@P4vV1}>jV`2{O*MG zP&j-Ou4EVQ$bR3acxmWNTdW^ZTaMm<;!yHwY*%3yS9oc|e60TfZioO3=ukee__T6N zzLt8Aw&H*-PXIvAnG_{_04Z6D(;pL9XiF3VfJI?M#1@w!**%azhg5wSn>v%Lbx2BW zet?^+O8oYJ4?yg3n2rVh1U0vL43$lrSdN-DghlIvq&`sdhvDb^oXg}Mv?b%sk!7_- z`b-Wv9WnVx^1)$G)QheAboxNKG=y`8vkIA)%3uQaN=%YoPYL`4+g1?NjUpb&YW{rI zI%~l|b*3^kXRhLwem?g)LUtmA7RMC9X+V`aA}s%_WCO}sf!UaVzLr^n7_5z6vEDkz z7}7A*;;e8C1=Y0$Mt_@aiF)$je0`&IGK^U3_I>z2y(!WSmSX4>pjy@w#t9zci)cJS z;j#AVEBsy%EX`-e=m9&R-Vnl@l1CL|6ZuXvIAC8;Mz9gEE14kUL;*Vh>k*l%htSWX zikDdDtv72RHsAiy-$GrSfroo{#}LuYO|L{s*HYZrG(9UMT)H2Zu*Lu<{@xC{bFRn| zxIltq(+(@|@i?YFGy~%gmSYykulZa>;5xSkScL_)WePhq0-Huy>-S<7|i=fdlWvie+zlQh9FYMf?b-TrY)m|ZzN99E-9bDBVJ|Fy;2 zWD~9!v9Y>O&lS>Lyn6WeCyL!ujsE2*%&gOluDd_7P=z9jy{;ukbQQl|Bo*~HJp80I zc})&bu43nXnoKZ$7Y__8N9!x47>xj;&elj;Ql18icZP)8v-qC|1W*?i`(x@bI;oGj zLhqEb$Qnm=!WtNa2hc7{4ogI^rwg3XLTiH(?bnh;8WZV7&OtBfdE3=As zvNjc(e<#aP=(Euwq3{2UOlD2lPu+-e*c{*x&;2R|lNLO19vxX|Z8Joy!V(kA`3pLi zI8DWYmv}XQ6*fc3;XMn=e#>v+2T6k*H-a@~Xo@fv3F3EXMgC7HFb$D}(3L!;3^q#* zZh^IYNUT-ufJ^0eg=qFLvGv5diA4*I5u!*zwO>r@mJp&GIC5yz^-SE;8TQ420L7ao zwkYvEFEM@(23Q5={HWVOG_u0~y_26kj8db*Ms~<)vkQVF$DhS0gu?6*3)eQR^>1;Z z54ON^+-KA!sy_B)LP#|FoOkd*b)3HTxIVM1Laa*|PfK)YsELnXd!87~L5*x;%}a1J z{rQFJORs`N+Q>zXiOD$(xT|D1J>ta8Tm_Y9&DzQFj(l?kgFt1wSreG9vH&%)u}E?2 zUK~j_OCtfIeUYHC;e=tNd`Z0oO&mC40i6#8YGP4}%5Y<%dA3||*cw`^hPs#0{C*Mt zax`R%;xU#c{Wn2IEoW5 zC%e5rrZ>vz5;r41TL0WU^$P%KhipW&l|mV`8Ifd+y8NOcLGN!2BU$3=ht(;Nq$I|A zb``CV3Gaxf!sw+oyU#Ah8wQY+u*TD-I)QmJD|vdu{GSVV-4K}uReFyNg!pA}P7ALv zzZ5#EN+S``rxF`kQ4r_15dE1Yi;G3BmE~0kgTHiJGoR; zk_w6`g0vEg#sSy;B6Y+cHYGAkU>VCAN)6p(F(Y75(RIg%Q1Z;Ya&&D|N)B*3#<+)# zEohUQD%F%erE=Jy6Tyl11xsqp(lvVmyQkorYa}=stL4q8&En43J?Z1+@>6!&Ags-< zCaN}&sac>O%?9v^yYQ`gnWFe_Tr?lbhq~KfD$IitEV=9cH%bjXK8Z^_GTW{iT zBzXa-S2KY?8D!`f987CWJ!|lHO{!1)Z_w%C{?;{!P1+QhA@Pn8;)>RvNR4$M|ZX{a42Wv6p_ z>%!Q%=UTV|bP{afrpqNg5XooD&>Kgt$c)P>_X&NC0swnqWa^b!w4;=o5V;NwAv-h9 z(boBnuse*&a}GTYyC8i`Cw_#ih1r;+bJ1@H=RQSwyHP(kaeZIIZYkqWaP>8aK+JIW zkIAhQM!)#Q3-`abO9CTG^gPi!zN`vLq#wZmr0KCkL<+U#jgq>ijWS@gFpyY(KxlB) zgNlw+D1@o{fI6I94HY*$+o<3WpXoyztZ&rC`ID?H8d5A+>L_)x`iAYTA51}W8!ii1 zp-POY_3Og#5}jw*3zE}Tuui6M7!d@bYuF9`qVF|Qh>}%>`Ws4C^ zkmi?=?j@7@n;BQ4drb7~y$jA}p6&DT`zA1na&70k-~~W9H^qB0y%w0MjxIH>ukW=r zM-p}8db8+@*Yw*y*9R(PobywMR{pRQ-tE%XEyQoMEiaby8Y}8ZN#%iEZ)pe#xhI9^ zO)d>NA0##l{0ZZUD96Xi)q|sc9TFi1Z`cs2UPK@}_T<}*2JzG1kaGG2USO?2l=RUR ztt2oKdxeWp3F5-}helcatN@La4^G+DEE(P`449!qJOx4o&3Vx0GJMTL`RJBAc3T$d@KZQZu z#Qy-t|Fq~ofWSXgdLH|cp*K4LCPipr*k1WSD(rc)KN|P{|H}LjUjXM*`In@HZShWvgzTI8x}K_F?7X>#~pqS}^W@Qe8V&yR>r z{a+eu8FpQThOxXNG9tx~3HJx)gSQ4`G=s|Z71Z1%2B4NrU7T(8I2)0R#cJvsmWp9= za{B`sS~CG7YK9f9R=mfH1cnwhkjLA;bt#W!%~I$_O2x(8Cd1 z`zsLo4j)iE;Awc=+nN@0r-sa7Ft?;$U_5k+PcBr(XHXa=%*2$Q*Pp9`kz3}vSryoWn1Ol78{}j_X~$#L{bwHx%Nblg^d*m#W_@rXO*1l_4q(+jEP(pDR}FCMa>u+MJbdBa(aEXRDZtxd3YOlN94sC!GG*uEtdi*VzB zVaIu_mjtZ|{ix2=K`DOG@Pm?|%z7}xsyccfqIKT+CNXi~aMLq(T$~!OXQONJsD*2Z zd5F^zrSKVT#P)2i)18rS>iD&&YMU=7gB~ zb&#Yi)wj+Vo2Q8{E*QgWgX1hI35gaKOo*Gv^A`_Zoce1y-3dZ^k`B7Tx&aEratsQi zIm&(b7@ETb=UYUuQMGw#juB;FKW`!{#bvfyZ}o1`vNmkBT^TE9W~S`wXTpz zmoC_~y52Qs2FV*7)2d9nZu>-4ggk0ojZCgNs!DemIds_9$d{&+<()2A6rYTLH}bY` zf!{Xm80%&z4#8fyD5ozhy(GzGnuvYaIiYPPwqSo>u@|<5USUoCSgTcHg-FgouA#3O zNnVHF_cUO``Abqd`u^!w$ydqFDeM0dMoLxt6lo6fTTFzZ0jZ_U)B{&9ECbam_n zam2p!me=vpRE;t%ns{>@%JmfZ<>H&6c*UKNc!!UJuG{aLa_Zyxb)~6AM$_a;I+ISC zHsucoysOv;W`z3+roxHHe-z939{e?wsipxBBi@60Alf5w5UoBcZbf^S0ZWMo4tlgg zYM9S2rELsEY2GVp>N$|h?J$G>6R+rSH?eb=dI%hiav-2W8CoGYKe(EKZ}G6H&7A%@ z=(OR2t_A%iM8e4gu#u;ZJs_^8mlY2zn@hgITMjI$k&o^Y3M`0IhQL8R(Lp_GJHK!g zgMx}y=u;d+EdyY8J{JjU1Sy@KnOHDL1#Ki@T%4PVIXZaQz@NcTntx^(a$L(0W=A*z zIzxV5y=DNzcw)3KV_Vfkjz^RpYb;v!F~f`rf88Q+=}`?86eOtS$LuYC(L%>anT{|9 z`~h7ge+Qpq;E#Pq1149L>*w*3bC9TH%FZCoBAxfPlbg(y|3>UGfm`|vk8`Nffm@BJ z5?=^g!W4^oBYKC<;$WFC!Yfkzuv(8@f`^-!C>a*TfD?i-B>Zo>jPi#MMBy}iW{ zj9ui{4ACiBW@r|3-(?(KRIc5*w~%>LPE@A+6_71dNhUU7VVswk%Ov*lMdu#7bExj> z?>U;6cDt6_!tQjul$fl!XJWitaN^-jz! zc_D-Auxct!+(8(t5R%fc2q~cA*_>mA;(23fGY# zq5z{C*%JH=R~)JdjM9KdqE?v*EkqLjz+vgujYKg&hrCuU0hfzQSsL{Y#c@0-ka`9|B!J(2tH zXgjhwuU0Y!Cqj}DI0Ff)iVbx%;ZTOb)~+1nTLiBVe$-xVnPT*519M2APV~1n#ocf&-$XnTiRlcK+?q_iui!YIOhMnUb@lRftBrGK{UD>> z@za`_SdLX5M$j@xZ#|LsTm5GyF9d zZ!ODImirdG3-7JF5u^YA`U{|$?MH+^y0^ikT?0l7Y(#UVpI&?I^+y*6^^)0pxCAK`ku zWRf0POoVUc#xOb|t4e!zQ*GEFd%BPQ@Cu*~O@ph%)p+0!`M1i?x_#>%SoW!(Hr$49 z`wGJl1#NidjD+l)+YC!gfnpO@el_69+E(o5y(Y}rcvd`Vt-HEsWCSvH~@=#lcif+bC3&OU}2+8awp<$Rc`bPn* zPAM1@1oF0tmcjo3%^VJNa`xtW&J=OxdbqnAHUOxbmG$2Oy_$kea&xdxb0Nb~k*Omd zgYkw0vJ5{v7$SW0`Had7kkMXFbyC-r0G0w%7*+bqOJ(M08?}wY&EhgVc(Oy)RG2@J zbBQ9T!%Zn|i}b_3N^Dp&Bti55)zR^s>Gk}X=WW@iwrghsx;@d+VgWaDAd@w2b zhsQcGhs*8tVpKV%u`JiCz(^G2u{6P5Pn|ss!xfs_FAv%mUAQIvSkC2&3CKFzpRo-L zzaXU+e*SfM@v{N>`UY9iP|8I=VZoTNH;xSREFqkQRR=~t6t|0PuU$uY&mauQRDcd! zZLimAXflO@JZ?suJpg{h!n`I*1aJf9eNN{a7Y;vdJC>KJ8k7D=sVE_swlVN!9FHRb zZ~3?uv$pz-%I1w%9fU`BKWjJWTFK|tX>u=>tga~8F&`6+Xnq948n zzU6nXI)3fT$D_3EB1cO z5p?tFYiyG?UC!;-e%E}&DJ!jAZY@&%)cEUnnOCdTz<1Fli|;oz<_k+Tw!dq>tw8=u z)^WXkPX2xR@E<^X@)*IZ)z+^+?JkG3uu1pS(6_U@Q*L*aDK()sbJ}#vx2+$wJ-D8E z$ogzor?xBTOlJ;5iIlXo+wzZ2!^7png(1zd5w+4-tYNbcKEGyv-jO(Rb97sKQeK{A z9b1@3tF25;S`Zdur`cq>@P7dMO1B(o8&SN@jaEB+2PQikz7{K?!iO)1$5IF$t>A}O zP;hk9gV*A8KWA;Qg`lS1k;QOb|B9%kq9emQ{Y9;xcDA}SiJ@Oq3V3<$yiBzDYi>=i zdh5wwFlU26H#9T=?tiT>|AIL*3=}LJJOBX$6N{Xk2OS$iX~rdnLqSEu!L9xe!y#p0 zK)?fUZ-U3||F>xXvgTM6nupXYzI%5Xk9DpD)V8eQ+h_6H;3EbNbiqlcEu-fy7c6y( z5s)6O+_L^&wz3(z*8aSR0k`R)P=sL;!1WV{rE*%`rF*&#!pdR0T%3j_0AIr^zdv0) zt6ynSO${NIty?-Er3e~L6d{6~V%1OY7s}Ik3#~;|-T`=6Aw*EDwqrcaDOPNfZqEGS zICA2Ob&Ze%3v0M{E0+a(;ANO01MzGGa`Jt3IWF>gD-L=J_6pU)(?sn<3ak^_^?Z`V zFNXHT>3DLzCB`ooNQZeok>RhW8;Y&CHkxg6Vdr;d+SVL~G!o4O4L5$Vcflox5> z=&=L4G~fzc23b97o_4k?lv59gU?sFpq$~yLdVe1-N(ePJ>r;Zui5H{6QeyxBe%h9q zDMX^469{3#Q`kaO$~pFpYj|ml z%=4T8FuKSa8vX5jz$&A+r549bGdeV;D#lr!Hw9jgAI{|FtYEqA08eCeSP=xEWO!`v zp%=c5&6owL(FjX5WqXciMrGlU$M7MXS)1vK*ucu)$Lq!YX?^`ZB6%;1f3+ZNY~}1O zvlbP#go0N%`bu*%wLM$Qj4eYK^G$ zO^^nLfH!*2@5JAJH?1TdQ;Ei(apS5294=#9z!}8J2KxB!!&>PmLo1bP zzN3;9V3$-z$`PR#`-b}NUK&1e=K+c`BjMC^-{AIT#}$*1W=oF8#c&+~A+D-M#mHAs zD5IFIfoN+GGq{snh6H%UAAPjIpUg%D@1jX<461y!HDA4Nb@jE-@XpF@AlNMy`sv*E z!ns)Gkg|(F=_z%@tos^zwuaI?SySzKQ3>9vS01+R>f4beSp7lU?cJu^YPEy-Pq=L0K>Oqz6>?eA%G8o}v7I+h zbpFAari@OV&WJ>V=X_^b1pUu~e3M)IO#cB&vdRAJ znZI85zQ1{;bQ3ntuyVa-T^XkKl-hRu;n!^bNy8T{z{?@N@#H=+$N}HJ3PxgWP(PX8 zr@YXtVxBh%tap0zvP?h;Hd=-=Zl4R`huKGZ^{=lxwzU#zfXOiV8AJ?3S?8P5uv>-_*IP=LoeFFmdkyNuNM zl79$&W4JnWpu~&KX& z;rAl;-Ne;am?oGxvgYWSf*n&iz^sZJmNj1+Qm<4nQoru6|Go3PAq%(i^qm_Q7iWTa z1=bk-)rx_<4V;E!5bWNHbKsJsak<>vxt{UvPctW5#A8yfi#u573;S=BSE_sXu}I~y zv_YwdgTkCsoyEK22dOH9I`Sqx>?s=xLGauu!QAV_K@lpjh}qY2j|D~lJ4`^+xTn)j zy`OeC!D8pxTh#Bdp@Rs}8CY64U(fS2P1($Nly-Ye1;1B8IED5xeLmM#FLe*y>fgbN z92L!^e47V9Dfg7!NX8W9Z&B0^WMunM?0Y08P2}o(Lzr>uCe4w@h2f!hT5@&Ew&dbC zSwqgr^^BXF|3q~QmI(O%F1KHT{T6LwNJfE&EgVMuFl;7p#i9`w;iR72XzGsS!ZW~9 z*J&Q$-Ua?(Yx|7%)zxa^wt~J|ZK4Q8q@ z8>|eblSC(`ebLF^Gx5U4xB{lVPFOdNUd(T&EYw9av25(#dj6WLYrQs(1ggVJ{^BEZ zqpF8~6)WQ!nr(_&Z5+?SR0cT#vo?qdY>)lj^g-++_g`lR1_}-y?r;6`|Lg2faA5vz z4Gly7*U_P5*XX~7<(xwoli0=Lx-t7dBMEVIp2;*XAsJ}DKVCgT_WnfcB>%apc=U#} zMohVVH>*Vx+E%a0nTvOG4gV6^j$B6gu53gza%7$~bM&U#d5Z`W`cl8%yjA^Kr#Ae$ z44*3c$G7FHEXZhMEy$_D{PRwKZmU39TuXfjkv2WyE!=$Hu6#>#j~8EisUAfgyrUOx z5cIZ>v3tpEEx&geWgG=-zw#9anvrrWf00@jD-F!_$h5s9nW=cR#>jDIZp4stSptk+h!v)HnvmaiL{)H}L^Jh!*yN|t4Fg0J7X^ram%}VccBz+;{MSMGV zhUF=!jCd4=KeN{s>>-oOv#t<`F`8q{I3&v|I=|L5Ian5(;{4q%epjD>kC>_6y@}Y# zQ}^_8l9)@x6+B(V62cz{q(l6XtTb~cNh{}!X?gOZ-AVHh?PQ5HC^G#YV76|`gQwlR za;D_VgKgA9jeVm}Wcw#KySI+HvTB7Hf??3RVlJ8$QI%X8zF@^Er~tOw64lcjJ1eFn zP*zfZlyFh}mo0H=Q|d}FSIn*U@bG}VK=@3YCuCSIwpgMJLLwPVg7u1# zD`1%M*Jbh<3eK-wl1-&qcWlBp1y8Fd5_Le-Kj62VZA8xR_^I$U>kjct@&UfK(g@Xq zwK)vSzdxnMF$>%lvb4C)>znrlbv?>wrGik7>R7w=Q75@{29zcj?i9#@w>-Hi!Og^u zs9*UPVnCQSUAtGH0K7@Jd8q2dwxwO2Xt&4A^GWFlo{0UGk(!)pm75h(SnW=I(3k2_ zeeT)?7}|3Jx1WOAjoY@3!j=)#Cm($@H=?yv(-iRbyZo7Uv|edax{4Y z+83gXDu-_`N>54Ydo=FO0?rZpNRs=yEo&iZtk-(}i8j313X0_HkjVsSi%*WB~(ogXr1o%eGu=9;9=2x=GJQ(af6MzM#N!|#$v zwJvbu4H6w^c9quFAv`To;N3%Eq>GJe6oXK%5vzgPyk~;&@X6^MPfd<5S6lOQJ{8$B z!ZXUY>0VfUKVH7M67%Tqwt;srmDiyJby%B#3r_pW7oez`M4lvS^V;T;hq#FMq9b3` z&aGvtX(VTu!#st0qKJ%HC5P9!j2wY?hiZcjqD?6X&7Do?(djljhU#TN&KJ9n_g0OD zJ~VNyQ!jZQoki|nq2DTZo3PZ}R>n##+)kv-og-;@e$@ZS6t)3TMl^kwo<`VVku zh%dpvdtAY7xAo>ZVYX#9m5d? zuL{<(@%__LNPjcqC(0|!^QoQdiRV!1%5TSk{Yc@-r<_K3ii4BlXRa5b`fo>^B;(l9 zAYkYrttx)I9G{(|^m0@6ZG41}|8%5gJ&Dt{G<&=Z@3U(^#RUKIXCEi)r8WOM<3AP2 zEdt2yxo%Uw0>7WXLFA(c7naMx;{eSyVxdwzOwwBWy`&o{9V}Jzv z(ZRVN-Q1PX5(h}@4Bj?4##qpIyZ(vf+b|hz&ChPmqS;aEojXK8i>c>FhyFmbuS>7GTXrUSCtwuzummSHPqwLrM*s8=eybm@rnbNWb=q5WkA^HYs`y$j508Ti;cZTj-E3bA?T zCd`+7)0OWAG_-UuW!oF_Nyg)PWdgiAckO!j4pD1J;YpEBFK+ws$KQ_q4obh@t$!>p g*LH!oLoo#ho`=!%J@G}$AeL~`SGD(n?7y}D2bNvF=l}o! literal 0 HcmV?d00001 diff --git a/images/learning/elixir-sips.png b/images/learning/elixir-sips.png new file mode 100644 index 0000000000000000000000000000000000000000..cf84e6d1ea205509e60630cd86f09194771d62ca GIT binary patch literal 10462 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 U?=n(4^#A|>07*qoM6N<$f-h(O-v9sr literal 0 HcmV?d00001 diff --git a/images/learning/erlang-in-anger.png b/images/learning/erlang-in-anger.png new file mode 100644 index 0000000000000000000000000000000000000000..17aaded61ba89f7bc61974d68fdfc0698ebbf8a9 GIT binary patch literal 130476 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 nx^42N2H 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 literal 0 HcmV?d00001 diff --git a/images/learning/introducing-elixir.jpg b/images/learning/introducing-elixir.jpg new file mode 100644 index 0000000000000000000000000000000000000000..735c033268d43da901e2764e4d105d72aa8587b2 GIT binary patch literal 48806 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 VP?#-t{a+W8cE*XkUkASz{s%aAO@;sf literal 0 HcmV?d00001 diff --git a/images/learning/metaprogramming-elixir.jpg b/images/learning/metaprogramming-elixir.jpg new file mode 100644 index 0000000000000000000000000000000000000000..75fa4190ffaeb51c7801a29941447eaf3fc2f2fc GIT binary patch literal 39011 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 literal 0 HcmV?d00001 diff --git a/images/learning/programming-elixir.jpg b/images/learning/programming-elixir.jpg new file mode 100644 index 0000000000000000000000000000000000000000..432e37f56070be495ee4a8b8b494199bc8fad0bb GIT binary patch literal 41898 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 Elixir cover +– by Dave Thomas">Programming Elixir cover You want to explore functional programming, but are put off by the academic feel (tell me about monads just one more time). You know you need concurrent applications, but also know these are almost impossible to get right. Meet Elixir, a functional, concurrent language built on the rock-solid Erlang VM. @@ -29,7 +29,7 @@ Elixir’s pragmatic syntax and built-in support for metaprogramming will make y

        Elixir in Action

        Elixir in Action cover +– by Saša Jurić">Elixir in Action cover Elixir in Action is a tutorial book that aims to bring developers new to Elixir and Erlang to the point where they can develop complex systems on their own. No knowledge about Elixir, Erlang, or functional programming is required, but it is assumed that a reader has a few years of production experience using mainstream OO languages, for example C#, Java, Python, or Ruby. @@ -40,7 +40,7 @@ The book starts with a basic introduction to the Elixir language and functional

        Introducing Elixir

        Introducing Elixir cover +-– by Simon St. Laurent, J. David Eisenberg">Introducing Elixir cover Elixir is an excellent language if you want to learn about functional programming, and with this hands-on introduction, you’ll discover just how powerful and fun Elixir can be. This language combines the robust functional programming of Erlang with a syntax similar to Ruby, and includes powerful features for metaprogramming. @@ -51,7 +51,7 @@ This book shows you how to write simple Elixir programs by teaching one skill at

        The Little Elixir and OTP Guidebook

        The Little Elixir and OTP Guidebook cover +-– by Benjamin Tan Wei Hao">The Little Elixir and OTP Guidebook cover The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples. Come rediscover the joy of programming with Elixir and remember how it feels like to be a beginner again. @@ -59,7 +59,7 @@ The Little Elixir & OTP Guidebook gets you started programming applications with

        Elixir Cookbook

        -Elixir Cookbook cover +Elixir Cookbook cover This book is a set of recipes grouped by topic that acts as a reference to get ideas from or to quickly search for a solution to a problem. You will begin by launching an IEx session and using it to test some ideas. Next, you will perform various operations like loading and compiling modules, inspecting your system, generating a supervised app, and so on. Furthermore, you will be introduced to immutability, working with data structures, performing pattern matching, and using stream modules to generate infinite data sequences. You will learn about everything from joining strings to determining the word frequency in text. With respect to modules and functions, you will also discover how to load code from other modules and use guards and pattern matching in functions. @@ -71,7 +71,7 @@ This book is a set of recipes grouped by topic that acts as a reference to get i ElixirSips cover +– with Josh Adams">ElixirSips cover Elixir Sips is a screencast series that provides 2 short videos - typically from 2 to 7 minutes, but occasionally much longer - each week. The videos consist of various topics, ranging from exploring a module in the standard library to trying out a new project to building a web-based Tetris game from scratch. @@ -84,7 +84,7 @@ The intended audience ranges from someone entirely new to the Elixir language, t

        Études for Elixir

        Études for Elixir +-– by J. David Eisenberg">Études for Elixir Études for Elixir is an open source book of programming exercises. Each one has been designed to provide practice material for a particular Elixir programming concept. The topics are keyed to the chapters in "Introducing Elixir," but they are general enough to be used with any Elixir book. Études for Elixir can be read free online. @@ -94,7 +94,7 @@ The intended audience ranges from someone entirely new to the Elixir language, t Metaprogramming Elixir cover +– by Chris Mccord">Metaprogramming Elixir cover Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages. @@ -102,7 +102,7 @@ Write code that writes code with Elixir macros. Macros make metaprogramming poss

        Erlang in Anger

        -Erlang in Anger cover +Erlang in Anger cover This book intends to be a little guide about how to be the Erlang medic in a time of war. It is first and foremost a collection of tips and tricks to help understand where failures come from, and a dictionary of different code snippets and practices that helped developers debug production systems that were built in Erlang. From e01c946028eff784d45d9366306455f517030ce9 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Sun, 14 Jun 2015 20:31:41 +0200 Subject: [PATCH 0218/1761] Fix example sum declarations --- crash-course.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index fdba98633..2c1ed7372 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -493,9 +493,9 @@ In both Erlang and Elixir, a function is not identified only by its name, but by **Erlang** ```erlang -sum() -> 0; -sum(A) -> A; -sum(A, B) -> A + B; +sum() -> 0. +sum(A) -> A. +sum(A, B) -> A + B. sum(A, B, C) -> A + B + C. ``` From f5f0f984cdc903054d418dd0e9df531a7bddee4b Mon Sep 17 00:00:00 2001 From: Don Buchanan Date: Mon, 15 Jun 2015 18:27:38 +1000 Subject: [PATCH 0219/1761] slight typo on file name --- .../mix-otp/distributed-tasks-and-configuration.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index d66c316d8..e07bdc070 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -233,7 +233,7 @@ Although our tests pass, our testing structure is getting more complex. In parti Luckily, ExUnit ships with a facility to tag tests, allowing us to run specific callbacks or even filter tests altogether based on those tags. -All we need to do to tag a test is simply call `@tag` before the test name. Back to `test/kv/routest_test.exs`, let's add a `:distributed` tag: +All we need to do to tag a test is simply call `@tag` before the test name. Back to `test/kv/router_test.exs`, let's add a `:distributed` tag: ```elixir @tag :distributed From f755c7fdbb1c5a9f4d8584b4046c72ab161c612a Mon Sep 17 00:00:00 2001 From: Douglas F Shearer Date: Thu, 18 Jun 2015 20:46:37 +0100 Subject: [PATCH 0220/1761] Remove potentially destructive comprehension example. One of the examples in the comprehension Getting Started guide contained a potentially destructive operation on the filesystem. This commit replaces that operation (File.rm!/1) with a function that poses no risk to the files of a user following along (File.stat!/1). --- getting-started/comprehensions.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index 1b92fbb9c..1a1c68fce 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -46,14 +46,14 @@ iex> for n <- 0..5, multiple_of_3?.(n), do: n * n Comprehensions filter out all elements for which the filter expression returns `false` or `nil`; all other values are kept. -Comprehensions generally provide a much more concise representation than using the equivalent functions from the `Enum` and `Stream` modules. Furthermore, comprehensions also allow multiple generators and filters to be given. Here is an example that receives a list of directories and deletes all files in those directories: +Comprehensions generally provide a much more concise representation than using the equivalent functions from the `Enum` and `Stream` modules. Furthermore, comprehensions also allow multiple generators and filters to be given. Here is an example that receives a list of directories and gets the size of each file in those directories: ```elixir for dir <- dirs, file <- File.ls!(dir), path = Path.join(dir, file), File.regular?(path) do - File.rm!(path) + File.stat!(path).size end ``` From 900c0a21491dacc2b3ed7fa9ccf18a140c77325e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Bara=C3=BAna?= Date: Fri, 19 Jun 2015 15:43:07 -0300 Subject: [PATCH 0221/1761] Add a Elixir Radar link to the sidebar --- _includes/elixir-radar.html | 21 +++++++++++ _includes/top.html | 2 +- _layouts/blog.html | 1 + _layouts/default.html | 1 + _layouts/getting-started.html | 1 + css/style.css | 69 +++++++++++++++++++++++++++++++++++ 6 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 _includes/elixir-radar.html diff --git a/_includes/elixir-radar.html b/_includes/elixir-radar.html new file mode 100644 index 000000000..add2b8e21 --- /dev/null +++ b/_includes/elixir-radar.html @@ -0,0 +1,21 @@ +
        +

        Elixir Radar

        +

        + A weekly Elixir email newsletter with content curated by Plataformatec. Subscribe below. +

        +
        +
        +
        + Elixir Radar +
        +
        + weekly newsletter +
        +
        + +
        +
        \ No newline at end of file diff --git a/_includes/top.html b/_includes/top.html index f409b1506..2cb2f38b9 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -12,7 +12,7 @@ - + From f2a61dfcce0d233e7a1a7a9857608e2290e3af18 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Mon, 22 Jun 2015 20:38:33 +0700 Subject: [PATCH 0223/1761] add anchor to localhost:4000 in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 100b120ba..b8fe0c2d8 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ In order to run a development server (with live-reloading on) just run: $ bundle exec jekyll serve ``` -The generated site will be available at http://localhost:4000. You can stop the +The generated site will be available at [http://localhost:4000](http://localhost:4000). You can stop the server with Ctrl-C. #### 5. Make your changes and push them From 395625cee8d263d5b416c7f9f90def15ad3834bc Mon Sep 17 00:00:00 2001 From: eksperimental Date: Mon, 22 Jun 2015 20:43:01 +0700 Subject: [PATCH 0224/1761] remove all plugin dependencies, except "github-pages" --- Gemfile | 1 - Gemfile.lock | 1 - 2 files changed, 2 deletions(-) diff --git a/Gemfile b/Gemfile index f5f9ff381..97355ea72 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,3 @@ source 'https://rubygems.org' gem 'github-pages' -gem 'jekyll-redirect-from' diff --git a/Gemfile.lock b/Gemfile.lock index 29f02ef2e..de86246d3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -124,4 +124,3 @@ PLATFORMS DEPENDENCIES github-pages - jekyll-redirect-from From 0aeebedfd161dccd62ea5a2a9c2a401a6d31c588 Mon Sep 17 00:00:00 2001 From: Samuel Tonini Date: Tue, 23 Jun 2015 09:44:48 +0200 Subject: [PATCH 0225/1761] add alchemist to the editor support --- _includes/code-editor-support.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/code-editor-support.html b/_includes/code-editor-support.html index 190d219f5..25064f381 100644 --- a/_includes/code-editor-support.html +++ b/_includes/code-editor-support.html @@ -2,6 +2,7 @@

        Code editor support

        • Emacs Mode
        • +
        • Alchemist (Emacs Elixir Tooling)
        • Textmate Bundle
        • Vim Elixir
        • GtkSourceView (gedit)
        • From a1e9db19d44b0a71a3f464549c0974411aa8d402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sadjow=20Le=C3=A3o?= Date: Wed, 24 Jun 2015 00:38:50 -0300 Subject: [PATCH 0226/1761] Fix typo on Mix OTP GenServer --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 17bc4fb18..bf398e74d 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -33,7 +33,7 @@ iex> KV.Bucket.get(:shopping, "milk") 1 ``` -However, this a terrible idea! Local names in Elixir must be atoms, which means we would need to convert the bucket name (often received from an external client) to atoms, and **we should never convert user input to atoms**. This is because atoms are not garbage collected. Once an atom is created, it is never reclaimed. Generating atoms from user input would mean the user can inject enough different names to exhaust our system memory! In practice it is more likely you will reach the Erlang VM limit for the maximum number of atoms before you run out of memory, which will bring your system down regardless. +However, this is a terrible idea! Local names in Elixir must be atoms, which means we would need to convert the bucket name (often received from an external client) to atoms, and **we should never convert user input to atoms**. This is because atoms are not garbage collected. Once an atom is created, it is never reclaimed. Generating atoms from user input would mean the user can inject enough different names to exhaust our system memory! In practice it is more likely you will reach the Erlang VM limit for the maximum number of atoms before you run out of memory, which will bring your system down regardless. Instead of abusing the name registry facility, we will instead create our own *registry process* that holds a dictionary that associates the bucket name to the bucket process. From e3ad8980c05376b55dc306e3caffbc02aff835b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 24 Jun 2015 19:18:01 +0200 Subject: [PATCH 0227/1761] Update dependencies-and-umbrella-apps.markdown --- .../mix-otp/dependencies-and-umbrella-apps.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index f1ad02b50..073a52220 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -82,11 +82,11 @@ For example, if you push the `kv` project to a git repository, you just need to ```elixir def deps do - [{:kv, git: "git://github.com/YOUR_ACCOUNT/kv.git"}] + [{:kv, git: "https://github.com/YOUR_ACCOUNT/kv.git"}] end ``` -It doesn't matter if the git repository is public or private, Mix will be able to fetch it for you as long as you have the proper credentials. +If the repository is private though, you may need to specify the private URL `git@github.com:YOUR_ACCOUNT/kv.git`. In any case, Mix will be able to fetch it for you as long as you have the proper credentials. However, using git dependencies for internal dependencies is somewhat discouraged in Elixir. Remember that the runtime and the Elixir ecosystem already provide the concept of applications. As such, we expect you to frequently break your code into applications that can be organized logically, even within a single project. From 9ad76a8108fab7abae9ccb5134653115e7441f28 Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Thu, 25 Jun 2015 20:09:04 +0200 Subject: [PATCH 0228/1761] Upgraded a few links on the Install page to TLS. --- install.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install.markdown b/install.markdown index cc0f6c620..963383b2e 100644 --- a/install.markdown +++ b/install.markdown @@ -39,7 +39,7 @@ Choose your operating system and tool. * From ports: `cd /usr/ports/lang/elixir && make install clean` * From pkg: `pkg install elixir` * Ubuntu 12.04 and 14.04 / Debian 7 - * Add Erlang Solutions repo: `wget http://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb` + * Add Erlang Solutions repo: `wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb` * Run: `sudo apt-get update` * Run: `sudo apt-get install elixir` @@ -79,7 +79,7 @@ If the tests pass, you are ready to go. Otherwise, feel free to open an issue [i ## Installing Erlang -The only prerequisite for Elixir is Erlang, version 17.0 or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](http://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/). +The only prerequisite for Elixir is Erlang, version 17.0 or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](https://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/). For Windows developers, we recommend the precompiled packages. Those on a Unix platform can probably get Erlang installed via one of the many package distribution tools. @@ -87,7 +87,7 @@ After Erlang is installed, you should be able to open up the command line (or co Erlang/OTP 17 (erts-6) [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false] -Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](http://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! +Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](https://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! ## Setting PATH environment variable @@ -96,8 +96,8 @@ It is highly recommended to add Elixir's bin path to your PATH environment varia On **Windows**, there are [instructions for different versions](http://www.computerhope.com/issues/ch000549.htm) explaining the process. -On **Unix systems**, you need to [find your shell profile file](http://unix.stackexchange.com/a/117470/101951), and then add to the end of this file the following line reflecting the path to your Elixir installation: +On **Unix systems**, you need to [find your shell profile file](https://unix.stackexchange.com/a/117470/101951), and then add to the end of this file the following line reflecting the path to your Elixir installation: ```bash export PATH="$PATH:/path/to/elixir/bin" -``` \ No newline at end of file +``` From 7763ba1ba22e7ac1ca4f0535fc1d38badce3beb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 29 Jun 2015 10:10:21 +0200 Subject: [PATCH 0229/1761] Support Elixir v1.0.5 and Erlang v18.0 --- elixir.csv | 1 + erlang.csv | 1 + 2 files changed, 2 insertions(+) diff --git a/elixir.csv b/elixir.csv index fb8ecc3ec..b056b0680 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.0.5,https://github.com/elixir-lang/elixir/releases/download/v1.0.5/Precompiled.zip,release,1 1.0.4,https://github.com/elixir-lang/elixir/releases/download/v1.0.4/Precompiled.zip,release,1 1.0.3,https://github.com/elixir-lang/elixir/releases/download/v1.0.3/Precompiled.zip,release,1 1.0.2,https://github.com/elixir-lang/elixir/releases/download/v1.0.2/Precompiled.zip,release,1 diff --git a/erlang.csv b/erlang.csv index 6cba0de48..d490b14ba 100644 --- a/erlang.csv +++ b/erlang.csv @@ -1,4 +1,5 @@ version_otp,version_erts,url_win32,url_win64 +18.0,7.0,http://www.erlang.org/download/otp_win32_18.0.exe,http://www.erlang.org/download/otp_win64_18.0.exe 17.5,6.4,http://www.erlang.org/download/otp_win32_17.5.exe,http://www.erlang.org/download/otp_win64_17.5.exe 17.4,6.3,http://www.erlang.org/download/otp_win32_17.4.exe,http://www.erlang.org/download/otp_win64_17.4.exe 17.3,6.2,http://www.erlang.org/download/otp_win32_17.3.exe,http://www.erlang.org/download/otp_win64_17.3.exe From 2326609389039bedb572240a924c9a35a08c6e80 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Mon, 29 Jun 2015 14:02:49 +0200 Subject: [PATCH 0230/1761] docs, name variables consistently across iterations. [ci skip] The method `defp serve(socket` is shown in a number of code snippets. The first one uses a variable `client` while every later version names that variable `socket`: ``` getting-started/mix-otp/docs-tests-and-pipelines.markdown:defp serve(socket) do getting-started/mix-otp/docs-tests-and-pipelines.markdown:defp serve(socket) do getting-started/mix-otp/docs-tests-and-pipelines.markdown:defp serve(socket) do getting-started/mix-otp/task-and-gen-tcp.markdown:defp serve(client) do getting-started/mix-otp/task-and-gen-tcp.markdown: defp serve(socket) do ``` --- getting-started/mix-otp/task-and-gen-tcp.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index d2c956bcc..1254c2421 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -43,12 +43,12 @@ defp loop_acceptor(socket) do loop_acceptor(socket) end -defp serve(client) do - client +defp serve(socket) do + socket |> read_line() - |> write_line(client) + |> write_line(socket) - serve(client) + serve(socket) end defp read_line(socket) do From dd33db6fa64c3ae8aec4d7f707f33192addb2ab8 Mon Sep 17 00:00:00 2001 From: Ryan Bates Date: Thu, 2 Jul 2015 21:38:19 -0700 Subject: [PATCH 0231/1761] Clarify location of KV.Bucket.Supervisor --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 471e92c66..522ad6230 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -227,7 +227,7 @@ One possible solution to this issue would be to provide a `KV.Bucket.start/0`, t We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. There is one supervisor strategy, called `:simple_one_for_one`, that is the perfect fit for such situations: it allows us to specify a worker template and supervise many children based on this template. -Let's define our `KV.Bucket.Supervisor` as follows: +Let's define our `KV.Bucket.Supervisor` in `lib/kv/bucket/supervisor.ex` as follows: ```elixir defmodule KV.Bucket.Supervisor do From e5762249f2f4e21affdc177876b6f64dd3f83b58 Mon Sep 17 00:00:00 2001 From: Jonathan Arnett Date: Fri, 3 Jul 2015 15:05:50 -0400 Subject: [PATCH 0232/1761] Minor grammar fix This is super minor, but I figured I'd correct it anyway. --- getting-started/processes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 7afb832f0..21f4e3a08 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -76,7 +76,7 @@ iex> receive do A timeout of 0 can be given when you already expect the message to be in the mailbox. -Let's put all together and send messages between processes: +Let's put it all together and send messages between processes: ```iex iex> parent = self() From 93463c0535f0ca909651a78d0a9e2a4506ac3b5d Mon Sep 17 00:00:00 2001 From: Wendy Smoak Date: Sat, 4 Jul 2015 16:33:04 -0400 Subject: [PATCH 0233/1761] Clarify that underscore would match if it were reached in execution. In the first example for `case`, we learn that underscore "would match any value". It's then confusing to read in the third example that underscore "won't match". While this is technically true in the example as written, (since x>0, the first pattern will match,) it's not consistent with the earlier statement. --- getting-started/case-cond-and-if.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index e44149692..bba7781a0 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -45,7 +45,7 @@ iex> case {1, 2, 3} do ...> {1, x, 3} when x > 0 -> ...> "Will match" ...> _ -> -...> "Won't match" +...> "Would match, if guard condition were not satisfied" ...> end "Will match" ``` From 5b4c1d2ca144b4617affe7c5b473d3b4ccf010e6 Mon Sep 17 00:00:00 2001 From: Wendy Smoak Date: Sat, 4 Jul 2015 21:37:50 -0400 Subject: [PATCH 0234/1761] Note that variables cannot be used as map keys. Reinforce that 'Maps allow any *value* as a key' means that variables are not allowed as keys. --- getting-started/maps-and-dicts.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/getting-started/maps-and-dicts.markdown b/getting-started/maps-and-dicts.markdown index f7804ce83..8c56cd321 100644 --- a/getting-started/maps-and-dicts.markdown +++ b/getting-started/maps-and-dicts.markdown @@ -111,6 +111,17 @@ Compared to keyword lists, we can already see two differences: * Maps allow any value as a key. * Maps' keys do not follow any ordering. +Note that variables cannot be used as map keys: + +```iex +iex> %{:x => 1} +%{x: 1} +iex> n = :x +:x +iex> %{n => 1} +** (CompileError) iex:3: illegal use of variable n in map key +``` + If you pass duplicate keys when creating a map, the last one wins: ```iex From cc52f51bd3281fe6d1fb742ea0b314d0dacc9c58 Mon Sep 17 00:00:00 2001 From: Wendy Smoak Date: Tue, 7 Jul 2015 20:50:33 -0400 Subject: [PATCH 0235/1761] Clarify that variables can be used to access items in a map. --- getting-started/maps-and-dicts.markdown | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/getting-started/maps-and-dicts.markdown b/getting-started/maps-and-dicts.markdown index 8c56cd321..4d5aab192 100644 --- a/getting-started/maps-and-dicts.markdown +++ b/getting-started/maps-and-dicts.markdown @@ -111,7 +111,7 @@ Compared to keyword lists, we can already see two differences: * Maps allow any value as a key. * Maps' keys do not follow any ordering. -Note that variables cannot be used as map keys: +Note that variables cannot be used as keys to _add_ items to a map: ```iex iex> %{:x => 1} @@ -122,6 +122,17 @@ iex> %{n => 1} ** (CompileError) iex:3: illegal use of variable n in map key ``` +However, variables _can_ be used as keys to _access_ items in a map: + +```iex +iex> map = %{:a => 1, 2 => :b} +%{2 => :b, :a => 1} +iex> x = :a +:a +iex> map[x] +1 +``` + If you pass duplicate keys when creating a map, the last one wins: ```iex From ae5e4b8bc850a1c5e096037eaf01c6f0ff2a0b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 8 Jul 2015 21:26:21 +0200 Subject: [PATCH 0236/1761] Write a foreword about domain specific languages --- .../meta/domain-specific-languages.markdown | 46 ++++++++++++++++++- getting-started/meta/macros.markdown | 2 +- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index ce1c2905a..c7857655d 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -8,9 +8,51 @@ redirect_from: /getting_started/meta/3.html {% include toc.html %} -[Domain Specific Languages](https://en.wikipedia.org/wiki/Domain-specific_language) allow developers to tailor their application to a particular domain. There are many language features that, when used in combination, can aid developers to write Domain Specific Languages. In this chapter we will focus on how macros and module attributes can be used together to create domain specific modules that are focused on solving one particular problem. As an example, we will write a very simple module to define and run tests. +## Foreword -The goal is to build a module named `TestCase` that allows us to write the following: +[Domain Specific Languages (DSL)](https://en.wikipedia.org/wiki/Domain-specific_language) allow developers to tailor their application to a particular domain. You don't need macros in order to have a DSL: every data structure and every function you define in your module is part of your Domain Specific Language. + +For example, imagine we want to implement a Validator module which provides a data validation domain specific language. We could implement it using data structures, functions or macros. Let's see how those different DSLs would look like: + +```elixir +# 1. data structures +import Validator +validate user, name: [length: 1..100], + email: [matches: ~r/@/] + +# 2. functions +import Validator +user +|> validate_length(:name, 1..100) +|> validate_matches(:matches, ~r/@/) + +# 3. macros + modules +defmodule MyValidator do + use Validator + validate_length :name, 1..1000 + validate_matches :email, ~r/@/ +end + +MyValidator.validate(user) +``` + +Of all the approaches above, the first is definitely the more flexible. If our domain rules can be encoded with data structures, they are by far the easiest to compose and implement, as Elixir's standard library is filled with functions for manipulating different data types. + +The second approach uses function calls which suits better more complex APIs and reads nicely in Elixir thanks to the pipe operator. + +The third approach, uses macros, and is by far the most complex. It will take more lines of code to implement, it is hard and expensive to test (compared to testing simple functions), and it limits how the user may use the library since all validations need to be defined inside a module. + +To drive the point home, imagine you want to do validate a certain attribute only if a given condition is met. We could easily achieve it with the first solution, by manipulating the data structure accordingly, or with the second solution by using conditionals (if/else) before invoking the function. However it is impossible to do so with the macros approach unless its DSL is augmented. + +In other words: + + data > functions > macros + +That said, there are still cases where using macros and modules to build domain specific languages is useful. Since we have explored data structures and function definitions in the Getting Started guide, this chapter will explore how to use macros and module attributes to tackle more complex DSLs. + +## Building our own test acse + +The goal in this chapter is to build a module named `TestCase` that allows us to write the following: ```elixir defmodule MyTest do diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 9bced9458..16f622b09 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -12,7 +12,7 @@ redirect_from: /getting_started/meta/2.html Even though Elixir attempts its best to provide a safe environment for macros, the major responsibility of writing clean code with macros falls on developers. Macros are harder to write than ordinary Elixir functions and it's considered to be bad style to use them when they're not necessary. So write macros responsibly. -Elixir already provides mechanisms to write your every day code in a simple and readable fashion. Macros should only be used as a last resort. Remember that **explicit is better than implicit**. **Clear code is better than concise code.** +Elixir already provides mechanisms to write your every day code in a simple and readable fashion by using its data structures and functions. Macros should only be used as a last resort. Remember that **explicit is better than implicit**. **Clear code is better than concise code.** ## Our first macro From ec3ea8ea40739855e0f03aec0b0bc7c5ca3e5ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 8 Jul 2015 21:57:59 +0200 Subject: [PATCH 0237/1761] Fix typos --- getting-started/meta/domain-specific-languages.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index c7857655d..ab8d0e427 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -29,7 +29,7 @@ user # 3. macros + modules defmodule MyValidator do use Validator - validate_length :name, 1..1000 + validate_length :name, 1..100 validate_matches :email, ~r/@/ end @@ -50,7 +50,7 @@ In other words: That said, there are still cases where using macros and modules to build domain specific languages is useful. Since we have explored data structures and function definitions in the Getting Started guide, this chapter will explore how to use macros and module attributes to tackle more complex DSLs. -## Building our own test acse +## Building our own test case The goal in this chapter is to build a module named `TestCase` that allows us to write the following: From 3eea7f20752b59020973af6e3ddf045c78bec1de Mon Sep 17 00:00:00 2001 From: John Warwick Date: Wed, 8 Jul 2015 16:02:29 -0400 Subject: [PATCH 0238/1761] Fixing typos in foreward --- getting-started/meta/domain-specific-languages.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index ab8d0e427..aef8b2890 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -38,11 +38,11 @@ MyValidator.validate(user) Of all the approaches above, the first is definitely the more flexible. If our domain rules can be encoded with data structures, they are by far the easiest to compose and implement, as Elixir's standard library is filled with functions for manipulating different data types. -The second approach uses function calls which suits better more complex APIs and reads nicely in Elixir thanks to the pipe operator. +The second approach uses function calls which better suits more complex APIs and reads nicely in Elixir thanks to the pipe operator. The third approach, uses macros, and is by far the most complex. It will take more lines of code to implement, it is hard and expensive to test (compared to testing simple functions), and it limits how the user may use the library since all validations need to be defined inside a module. -To drive the point home, imagine you want to do validate a certain attribute only if a given condition is met. We could easily achieve it with the first solution, by manipulating the data structure accordingly, or with the second solution by using conditionals (if/else) before invoking the function. However it is impossible to do so with the macros approach unless its DSL is augmented. +To drive the point home, imagine you want to validate a certain attribute only if a given condition is met. We could easily achieve it with the first solution, by manipulating the data structure accordingly, or with the second solution by using conditionals (if/else) before invoking the function. However it is impossible to do so with the macros approach unless its DSL is augmented. In other words: From 928453057aeeb85272c51dd6778fd37cc94544b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 8 Jul 2015 22:44:16 +0200 Subject: [PATCH 0239/1761] More fixes --- getting-started/meta/domain-specific-languages.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index aef8b2890..3c9e1b459 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -24,7 +24,7 @@ validate user, name: [length: 1..100], import Validator user |> validate_length(:name, 1..100) -|> validate_matches(:matches, ~r/@/) +|> validate_matches(:email, ~r/@/) # 3. macros + modules defmodule MyValidator do @@ -36,9 +36,9 @@ end MyValidator.validate(user) ``` -Of all the approaches above, the first is definitely the more flexible. If our domain rules can be encoded with data structures, they are by far the easiest to compose and implement, as Elixir's standard library is filled with functions for manipulating different data types. +Of all the approaches above, the first is definitely the most flexible. If our domain rules can be encoded with data structures, they are by far the easiest to compose and implement, as Elixir's standard library is filled with functions for manipulating different data types. -The second approach uses function calls which better suits more complex APIs and reads nicely in Elixir thanks to the pipe operator. +The second approach uses function calls which better suits more complex APIs (for example, if you need to pass many options) and reads nicely in Elixir thanks to the pipe operator. The third approach, uses macros, and is by far the most complex. It will take more lines of code to implement, it is hard and expensive to test (compared to testing simple functions), and it limits how the user may use the library since all validations need to be defined inside a module. From 06b6f2b24b696997fd57f2b2a08832ea50bc7998 Mon Sep 17 00:00:00 2001 From: Wendy Smoak Date: Wed, 8 Jul 2015 22:34:36 -0400 Subject: [PATCH 0240/1761] Add Sublime Plugin to Code Editor Support list --- _includes/code-editor-support.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/code-editor-support.html b/_includes/code-editor-support.html index 25064f381..3eb972d02 100644 --- a/_includes/code-editor-support.html +++ b/_includes/code-editor-support.html @@ -7,5 +7,6 @@

          Code editor support

        • Vim Elixir
        • GtkSourceView (gedit)
        • Atom Package
        • +
        • Sublime Plugin
        From e4827d5483804476fa6a562bf749e212a9641406 Mon Sep 17 00:00:00 2001 From: Wendy Smoak Date: Wed, 8 Jul 2015 22:29:59 -0400 Subject: [PATCH 0241/1761] Fix typo in Processes --- getting-started/processes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 21f4e3a08..7e827d8a2 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -10,7 +10,7 @@ redirect_from: /getting_started/11.html In Elixir, all code runs inside processes. Processes are isolated from each other, run concurrent to one another and communicate via message passing. Processes are not only the basis for concurrency in Elixir, but they also provide the means for building distributed and fault-tolerant programs. -Elixir's processes should not be confused with operating system processes. Processes in Elixir are extremely lightweight in terms of memory and CPU (unlike threads in many other programming languages). Because of this, it is not uncommon to have dozens of thousands of processes running simultaneously. +Elixir's processes should not be confused with operating system processes. Processes in Elixir are extremely lightweight in terms of memory and CPU (unlike threads in many other programming languages). Because of this, it is not uncommon to have tens or even hundreds of thousands of processes running simultaneously. In this chapter, we will learn about the basic constructs for spawning new processes, as well as sending and receiving messages between different processes. From 5f78c376d37eb6f0091ce058336bfba048374eca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 10 Jul 2015 12:36:17 +0200 Subject: [PATCH 0242/1761] Use iex.bat --- getting-started/introduction.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 19a26c596..66c918f0d 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -44,7 +44,7 @@ iex> "hello" <> " world" It seems we are ready to go! We will use the interactive shell quite a lot in the next chapters to get a bit more familiar with the language constructs and basic types, starting in the next chapter. -> Note: if you are on Windows, you can also try `iex --werl` which may provide a better experience depending on which console you are using. +> Note: if you are on Windows, you can also try `iex.bat --werl` which may provide a better experience depending on which console you are using. ## Running scripts From a0269b8b99a913e6559bc846d2c97c5128938721 Mon Sep 17 00:00:00 2001 From: Henrik Nyh Date: Sat, 11 Jul 2015 21:10:46 +0200 Subject: [PATCH 0243/1761] Don't double-escape backslash Currently rendered as a double backslash on http://elixir-lang.org/getting-started/io-and-the-file-system.html. Also confirmed that GitHub renders it double if doubled, and renders it fine if single. --- getting-started/io-and-the-file-system.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index da8b415bd..545bec6f8 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -95,7 +95,7 @@ iex> Path.expand("~/hello") "/Users/jose/hello" ``` -Using functions from the `Path` module as opposed to just manipulating binaries is preferred since the `Path` module takes care of different operating systems transparently. For example, `Path.join/2` joins a path with slashes (`/`) on Unix-like systems and with backslashes (`\\`) on Windows. +Using functions from the `Path` module as opposed to just manipulating binaries is preferred since the `Path` module takes care of different operating systems transparently. For example, `Path.join/2` joins a path with slashes (`/`) on Unix-like systems and with backslashes (`\`) on Windows. With this we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next sections, we will discuss some advanced topics regarding IO. Those sections are not necessary in order to write Elixir code, so feel free to skip them, but they do provide a nice overview of how the IO system is implemented in the VM and other curiosities. From 6aa937cb6cc7543388860778df18105f5732e862 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sun, 12 Jul 2015 19:07:54 +0700 Subject: [PATCH 0244/1761] update link for erlang installation instructions (riak) --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 963383b2e..67edb0605 100644 --- a/install.markdown +++ b/install.markdown @@ -79,7 +79,7 @@ If the tests pass, you are ready to go. Otherwise, feel free to open an issue [i ## Installing Erlang -The only prerequisite for Elixir is Erlang, version 17.0 or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](https://docs.basho.com/riak/1.3.0/tutorials/installation/Installing-Erlang/). +The only prerequisite for Elixir is Erlang, version 17.0 or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/downloads/download-erlang-otp). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](https://docs.basho.com/riak/latest/ops/building/installing/erlang/). For Windows developers, we recommend the precompiled packages. Those on a Unix platform can probably get Erlang installed via one of the many package distribution tools. From 149fc6afd38a7b397a115e8842a7e040bd3d5d59 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sun, 12 Jul 2015 19:27:31 +0700 Subject: [PATCH 0245/1761] correct link to contributors for v1.0 --- _posts/2014-09-18-elixir-v1-0-0-released.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2014-09-18-elixir-v1-0-0-released.markdown b/_posts/2014-09-18-elixir-v1-0-0-released.markdown index ef6ba2be2..dbd4c92fe 100644 --- a/_posts/2014-09-18-elixir-v1-0-0-released.markdown +++ b/_posts/2014-09-18-elixir-v1-0-0-released.markdown @@ -8,7 +8,7 @@ excerpt: Elixir v1.0 is finally out! Hello everyone! -We are glad to announce Elixir v1.0 is finally out. It has been 8005 commits [by 189 contributors](https://github.com/elixir-lang/elixir/graphs/contributors), including the initial commit on [January 9th, 2011](https://github.com/elixir-lang/elixir/commit/337c3f2d569a42ebd5fcab6fef18c5e012f9be5b)! +We are glad to announce Elixir v1.0 is finally out. It has been 8005 commits [by 189 contributors](https://github.com/elixir-lang/elixir/graphs/contributors?from=2011-01-12&to=2014-09-10&type=c), including the initial commit on [January 9th, 2011](https://github.com/elixir-lang/elixir/commit/337c3f2d569a42ebd5fcab6fef18c5e012f9be5b)! ## What's Elixir? From 6b19bac5c49ea44f8163ce7addb87cc478339269 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sun, 12 Jul 2015 21:14:41 +0700 Subject: [PATCH 0246/1761] mention Sublime Text in "elixir-tmbundle" link --- _includes/code-editor-support.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/code-editor-support.html b/_includes/code-editor-support.html index 3eb972d02..30d1f04c8 100644 --- a/_includes/code-editor-support.html +++ b/_includes/code-editor-support.html @@ -3,10 +3,10 @@

        Code editor support

        From ffd4c4182714070fa6763f3a890e6c0b02be0f8c Mon Sep 17 00:00:00 2001 From: eksperimental Date: Mon, 13 Jul 2015 12:29:10 +0700 Subject: [PATCH 0247/1761] add element id v1.0 to fix issue with redcloth replacing Header ID --- docs.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/docs.markdown b/docs.markdown index 6d0a9626d..bc5cdf17d 100644 --- a/docs.markdown +++ b/docs.markdown @@ -26,6 +26,7 @@ Choose which version you want documentation for. * [Logger](/docs/master/logger/) - builtin Logger * [Mix](/docs/master/mix/) - build tool + #### v1.0 * [Elixir](/docs/v1.0/elixir/) - standard library From 440f3a6a19830e40261d0ae3b247972bbc520ad3 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 14 Jul 2015 00:28:08 +0700 Subject: [PATCH 0248/1761] update url to use https. standardize erlang.org/doc links to use www --- README.md | 2 +- _includes/important-links.html | 6 +++--- _includes/search.html | 2 +- _includes/top.html | 2 +- ...4-a-peek-inside-elixir-s-parallel-compiler.markdown | 2 +- _posts/2012-05-25-elixir-v0-5-0-released.markdown | 4 ++-- _posts/2012-08-01-elixir-v0-6-0-released.markdown | 4 ++-- _posts/2012-11-18-elixir-v0-7-1-released.markdown | 2 +- _posts/2013-05-02-elixir-on-xen.markdown | 2 +- _posts/2013-05-23-elixir-v0-9-0-released.markdown | 4 ++-- _posts/2013-08-08-elixir-design-goals.markdown | 2 +- _posts/2014-04-21-elixir-v0-13-0-released.markdown | 10 +++++----- _posts/2014-08-07-elixir-v0-15-0-released.markdown | 6 +++--- _posts/2014-09-18-elixir-v1-0-0-released.markdown | 2 +- .../mix-otp/dependencies-and-umbrella-apps.markdown | 6 +++--- .../distributed-tasks-and-configuration.markdown | 4 ++-- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- getting-started/mix-otp/task-and-gen-tcp.markdown | 4 ++-- getting-started/recursion.markdown | 2 +- getting-started/where-to-go-next.markdown | 2 +- index.html | 2 +- 21 files changed, 36 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index b8fe0c2d8..3b2c61558 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ This projects holds the contents for Elixir website hosted at elixir-lang.org. -It is automatically transformed by [Jekyll](http://github.com/mojombo/jekyll) into a static site. +It is automatically transformed by [Jekyll](https://github.com/mojombo/jekyll) into a static site. ## Contributing diff --git a/_includes/important-links.html b/_includes/important-links.html index f9b481bed..7b9f2179e 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -3,10 +3,10 @@

        Join the Community

        diff --git a/_includes/search.html b/_includes/search.html index 01923ebc1..82e179baa 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -5,7 +5,7 @@

      diff --git a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown index b40e3ccc6..1e61782ca 100644 --- a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown +++ b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown @@ -74,7 +74,7 @@ In order to customize this process, we are going to take a look at Erlang's erro ## Custom error handler -By default, Elixir (and Erlang) code is autoloaded. This means that, if we invoke `List.delete` and the module `List` was not loaded yet, the Erlang VM is going to look into the `ebin` directory (the directory where we put compiled files) and try to load it. This process is controlled by the [`error_handler` module in Erlang](http://erlang.org/doc/man/error_handler.html) via two callback functions: `undefined_function` and `undefined_lambda`. +By default, Elixir (and Erlang) code is autoloaded. This means that, if we invoke `List.delete` and the module `List` was not loaded yet, the Erlang VM is going to look into the `ebin` directory (the directory where we put compiled files) and try to load it. This process is controlled by the [`error_handler` module in Erlang](http://www.erlang.org/doc/man/error_handler.html) via two callback functions: `undefined_function` and `undefined_lambda`. As discussed in the previous section, we want to extend the error handler to actually stop the currently running process whenever a module is not found and resume the process only after we ensure the module is compiled. To do that, we can simply define our own error handler and ask Erlang to use it. Our custom error handler is defined as follows: diff --git a/_posts/2012-05-25-elixir-v0-5-0-released.markdown b/_posts/2012-05-25-elixir-v0-5-0-released.markdown index a7b1a5a40..72dc3582b 100644 --- a/_posts/2012-05-25-elixir-v0-5-0-released.markdown +++ b/_posts/2012-05-25-elixir-v0-5-0-released.markdown @@ -37,9 +37,9 @@ With v0.5.0 finally out, we are committing to a stable syntax and a basic standa ## Looking forward -There are still many, many things to do! In the next months, we will continue working on growing our community, talks and other documentation material. A huge thanks to [Alexei Sholik](http://twitter.com/true_droid) who is moving this area forward. +There are still many, many things to do! In the next months, we will continue working on growing our community, talks and other documentation material. A huge thanks to [Alexei Sholik](https://twitter.com/true_droid) who is moving this area forward. -We will also work on better integration and documentation on building Erlang systems. Erlang ships with the [Open Telecom Platform](http://en.wikipedia.org/wiki/Open_Telecom_Platform) which provides many tools to build distributed applications. In v0.5.0, all these tools are already available but we want to make the build process even simpler. +We will also work on better integration and documentation on building Erlang systems. Erlang ships with the [Open Telecom Platform](https://en.wikipedia.org/wiki/Open_Telecom_Platform) which provides many tools to build distributed applications. In v0.5.0, all these tools are already available but we want to make the build process even simpler. In parallel, we will improve our [documentation generation tool](https://github.com/elixir-lang/ex_doc) and [build tool](https://github.com/elixir-lang/elixir/tree/master/lib/mix) which will likely be merged into core when they are solid enough. diff --git a/_posts/2012-08-01-elixir-v0-6-0-released.markdown b/_posts/2012-08-01-elixir-v0-6-0-released.markdown index 9960ee778..cc751eed4 100644 --- a/_posts/2012-08-01-elixir-v0-6-0-released.markdown +++ b/_posts/2012-08-01-elixir-v0-6-0-released.markdown @@ -19,8 +19,8 @@ When [we released version v0.5.0](/blog/2012/05/25/elixir-v0-5-0-released/), we Our interactive shell (IEx) also had many improvements, thanks to the Elixir developer community. We now have easy access to documentation, remote shells, autocomplete and much more. In order to show you a bit of what you can do in this release, we have prepared a short (~6 min) screencast: - -Elixir v0.6 quick tour - Mix and IEx from Plataformatec on Vimeo. + +Elixir v0.6 quick tour - Mix and IEx from Plataformatec on Vimeo. That's it. For the next months, we will continue improving Elixir (you can see some ideas floating around in the [issues tracker](https://github.com/elixir-lang/elixir/issues)) but we will start to focus on other tools and libraries for the community. diff --git a/_posts/2012-11-18-elixir-v0-7-1-released.markdown b/_posts/2012-11-18-elixir-v0-7-1-released.markdown index 66bbdc1f8..75e557cb4 100644 --- a/_posts/2012-11-18-elixir-v0-7-1-released.markdown +++ b/_posts/2012-11-18-elixir-v0-7-1-released.markdown @@ -13,7 +13,7 @@ This is a minor release that contains a couple enhancements regarding UTF-8, [di During this time traveling around, we have spoken at many conferences, as [Strange Loop](http://thestrangeloop.com/), [Øredev](http://oredev.org/), [QCon SP](http://qconsp.com/) and [Rupy](http://rupy.eu/) as well as at different companies. Developers from different backgrounds have shown interest in Elixir, [written about it](http://spin.atomicobject.com/2012/10/31/elixir-erlang-and-the-dining-philosophers/), joined us at #elixir-lang on freenode and contributed to the language. As of today, Elixir is powered by 51 different contributors! -In case you missed any of those conferences, [the talk I presented at Øredev is available and you can watch it now](http://vimeo.com/53221562). The slides are also available below. +In case you missed any of those conferences, [the talk I presented at Øredev is available and you can watch it now](https://vimeo.com/53221562). The slides are also available below. If you want to hear more about Elixir at a conference or an event, please let us know. Thank you and don't forget to [give Elixir a try](/getting-started/introduction.html)! diff --git a/_posts/2013-05-02-elixir-on-xen.markdown b/_posts/2013-05-02-elixir-on-xen.markdown index 0bbd9829a..a41c5a3de 100644 --- a/_posts/2013-05-02-elixir-on-xen.markdown +++ b/_posts/2013-05-02-elixir-on-xen.markdown @@ -18,7 +18,7 @@ You can learn more about Xen and the LING VM on the [Erlang on Xen website](http ## Getting started -In order to run Elixir on the LING VM, you need to produce a Xen image of your Elixir project. This can be done with the help of the [lingex project](http://github.com/maximk/lingex), created by the LING VM team. +In order to run Elixir on the LING VM, you need to produce a Xen image of your Elixir project. This can be done with the help of the [lingex project](https://github.com/maximk/lingex), created by the LING VM team. Producing an Elixir image using the free Erlang on Xen Build Service requires just a few steps: diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index 47777ea12..4f9e1e5a4 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -6,7 +6,7 @@ category: Releases excerpt: Elixir v0.9.0 is released with support for reducers, umbrella projects, faster compilation times and dropped support for R15 and earlier OTP versions. --- -While [Programming Elixir](http://pragprog.com/book/elixir/programming-elixir) was being announced, we have been working on Elixir v0.9.0 which is finally out. This release contains new features, important performance optimizations and bug fixes. +While [Programming Elixir](https://pragprog.com/book/elixir/programming-elixir) was being announced, we have been working on Elixir v0.9.0 which is finally out. This release contains new features, important performance optimizations and bug fixes. Elixir v0.9.0 also removes support for Erlang R15 and earlier versions. In case you still need to run Elixir software on R15, we have also released Elixir v0.8.3, which contains many of the enhancements in v0.9.0. Check the [CHANGELOG for more details for both releases](https://github.com/elixir-lang/elixir/blob/v0.9.0/CHANGELOG.md). @@ -130,4 +130,4 @@ We have also many other smaller improvements: A huge thank you to our community for sending bug reports, providing bug fixes and contributing all those amazing features. And when are **you** joining us? :) -Give Elixir a try! You can start with our [getting started guide](/getting-started/introduction.html), or [check this 30 minute video from PragProg](http://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](http://pragprog.com/book/elixir/programming-elixir). +Give Elixir a try! You can start with our [getting started guide](/getting-started/introduction.html), or [check this 30 minute video from PragProg](https://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](https://pragprog.com/book/elixir/programming-elixir). diff --git a/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown index 3d3dde987..5608c2fdf 100644 --- a/_posts/2013-08-08-elixir-design-goals.markdown +++ b/_posts/2013-08-08-elixir-design-goals.markdown @@ -6,7 +6,7 @@ category: Internals excerpt: Highlight of Elixir design goals. --- -During the last year, we have spoken at many conferences spreading the word about Elixir. We [usually started with introducing the Erlang VM](http://vimeo.com/53221562), then went on to talk about Elixir goals, saving some time at the end to do a live demo, showing some goodies like exchanging information between remote nodes and even hot code swapping. +During the last year, we have spoken at many conferences spreading the word about Elixir. We [usually started with introducing the Erlang VM](https://vimeo.com/53221562), then went on to talk about Elixir goals, saving some time at the end to do a live demo, showing some goodies like exchanging information between remote nodes and even hot code swapping. This post is a summary of those talks, focusing on the language goals: compatibility, productivity and extensibility. diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index 2ea150586..5dd9bba39 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -8,7 +8,7 @@ excerpt: "Elixir v0.13.0 comes with substantial improvements to the language: ma Hello folks! -Elixir v0.13.0 has been released. It contains changes that will effectively shape how developers will write Elixir code from now on, making it an important milestone towards v1.0! On this post we are going to cover some of those changes, the road to Elixir v1.0, as well as the announcement of [hex.pm](http://hex.pm). +Elixir v0.13.0 has been released. It contains changes that will effectively shape how developers will write Elixir code from now on, making it an important milestone towards v1.0! On this post we are going to cover some of those changes, the road to Elixir v1.0, as well as the announcement of [hex.pm](https://hex.pm). Before we go into the changes, let's briefly talk about ElixirConf! @@ -261,7 +261,7 @@ Dependencies now are also automatically compiled before you run a command. For e ## hex.pm -This release also marks the announcement of [hex.pm](http://hex.pm/), a package manager for the Erlang VM. Hex allows you to package and publish your projects while fetching them and performing dependency resolution in your applications. +This release also marks the announcement of [hex.pm](https://hex.pm/), a package manager for the Erlang VM. Hex allows you to package and publish your projects while fetching them and performing dependency resolution in your applications. Currently Hex only integrates with Mix and contributions to extend it to other tools and other languages in the Erlang VM are welcome! @@ -269,14 +269,14 @@ Currently Hex only integrates with Mix and contributions to extend it to other t As seen in this announcement, this release dictates many of the developments that will happen in Elixir and its community in the following weeks. All projects are recommended to start moving from records to structs, paving the way for the deprecation of records before 1.0. -The next months will also focus on integrating Elixir more tightly to OTP. During the keynote at Erlang Factory, [Catalyse Change](http://www.youtube.com/watch?v=Djv4C9H9yz4), Dave Thomas and I argued that there are many useful patterns, re-implemented everyday by developers, that could make development more productive within the Erlang VM if exposed accordingly. +The next months will also focus on integrating Elixir more tightly to OTP. During the keynote at Erlang Factory, [Catalyse Change](https://www.youtube.com/watch?v=Djv4C9H9yz4), Dave Thomas and I argued that there are many useful patterns, re-implemented everyday by developers, that could make development more productive within the Erlang VM if exposed accordingly. That said, in the next months we plan to: * Integrate applications configuration (provided by OTP) right into Mix; * Provide an Elixir logger that knows how to print and format Elixir exceptions and stacktraces; * Properly expose the functionality provided by Applications, Supervisors, GenServers and GenEvents and study how they can integrate with Elixir. For example, how to consume events from GenEvent as a [stream of data](/docs/stable/elixir/#!Stream.html)? -* Study how patterns like tasks and agents can be integrated into the language, often picking up the lessons learned by libraries like [e2](http://e2project.org/erlang.html) and [functionality exposed by OTP itself](http://erlang.org/doc/man/rpc.html); +* Study how patterns like tasks and agents can be integrated into the language, often picking up the lessons learned by libraries like [e2](http://e2project.org/erlang.html) and [functionality exposed by OTP itself](http://www.erlang.org/doc/man/rpc.html); * Rewrite the Mix and ExUnit guides to focus on applications and OTP as a whole, rebranding it to "Building Apps with Mix and OTP"; -You can learn more about Elixir in our [Getting Started guide](/getting-started/introduction.html) and download this release in the [v0.13 announcement](https://github.com/elixir-lang/elixir/releases/tag/v0.13.0). We hope to see you at [ElixirConf](http://elixirconf.com/) as well as pushing your packages to [hex.pm](http://hex.pm/). +You can learn more about Elixir in our [Getting Started guide](/getting-started/introduction.html) and download this release in the [v0.13 announcement](https://github.com/elixir-lang/elixir/releases/tag/v0.13.0). We hope to see you at [ElixirConf](http://elixirconf.com/) as well as pushing your packages to [hex.pm](https://hex.pm/). diff --git a/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown index db445b552..e80342abd 100644 --- a/_posts/2014-08-07-elixir-v0-15-0-released.markdown +++ b/_posts/2014-08-07-elixir-v0-15-0-released.markdown @@ -29,7 +29,7 @@ By default, the code above will log the following message to your console: 10:27:39.083 [debug] hello ``` -Logger provides multiple backends to where messages are logged. For now Elixir ships only with a console backend but there are developers already working on file (with support to external log rotation) and [syslog](http://en.wikipedia.org/wiki/Syslog) backends. +Logger provides multiple backends to where messages are logged. For now Elixir ships only with a console backend but there are developers already working on file (with support to external log rotation) and [syslog](https://en.wikipedia.org/wiki/Syslog) backends. When we started Logger, the main objective was to translate Erlang messages into Elixir, so terms are formatted in Elixir syntax. Before this release, the following code @@ -74,7 +74,7 @@ As soon as we started working on Logger, we realized we could go further than si * Custom translators: so you can translate log messages coming from any Erlang application into Elixir syntax * Metadata: metadata allows developers to store information in the current process that will be available to all logged messages. For example, a web application can generate a `request_id`, store it as metadata, and all messages logged during that request will be properly identified with `request_id=...` in the log -We have also relied a lot on the [research and work done by Andrew Thompson and the folks at Basho behind Lager](http://www.youtube.com/watch?v=8BNpOHFvg_Q) to ensure our logger is performant and robust. On this front, Logger +We have also relied a lot on the [research and work done by Andrew Thompson and the folks at Basho behind Lager](https://www.youtube.com/watch?v=8BNpOHFvg_Q) to ensure our logger is performant and robust. On this front, Logger * alternates between sync and async modes when logging messages to keep it performant when required but also apply back-pressure when under stress * formats and truncates messages on the client to avoid clogging the backends @@ -142,7 +142,7 @@ We also would like to thank [Anthony Grimes](https://github.com/raynes) for the ## Elixir Web Installer for Windows -At the beginning of this summer, [Chris Hyndman](http://github.com/chyndman) joined us as a Google Summer of Code student to help us improve the Elixir story on Windows. Chris has been essential in: +At the beginning of this summer, [Chris Hyndman](https://github.com/chyndman) joined us as a Google Summer of Code student to help us improve the Elixir story on Windows. Chris has been essential in: * Guaranteeing our test suite is green on Windows, fixing many bugs in the process; * [Documenting how to compile Elixir from source on Windows](https://github.com/elixir-lang/elixir/wiki/Windows) diff --git a/_posts/2014-09-18-elixir-v1-0-0-released.markdown b/_posts/2014-09-18-elixir-v1-0-0-released.markdown index dbd4c92fe..41b49e8c1 100644 --- a/_posts/2014-09-18-elixir-v1-0-0-released.markdown +++ b/_posts/2014-09-18-elixir-v1-0-0-released.markdown @@ -33,7 +33,7 @@ Elixir is composed of 6 applications, all under the same versioning constraints: With v1.0, we are providing a stable platform for the community to leverage and extend, and we are extremely excited with the projects and possibilities that are ahead of us! -We hope the [Hex package manager](http://hex.pm) will be the home of many of those projects and remember the whole Erlang ecosystem is also available to Elixir developers. +We hope the [Hex package manager](https://hex.pm) will be the home of many of those projects and remember the whole Erlang ecosystem is also available to Elixir developers. ## Expectations diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 073a52220..0cbbf5d0d 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -36,9 +36,9 @@ Before creating our new application, we must discuss how Mix handles dependencie ## External dependencies -External dependencies are the ones not tied to your business domain. For example, if you need a HTTP API for your distributed KV application, you can use the [Plug](http://github.com/elixir-lang/plug) project as an external dependency. +External dependencies are the ones not tied to your business domain. For example, if you need a HTTP API for your distributed KV application, you can use the [Plug](https://github.com/elixir-lang/plug) project as an external dependency. -Installing external dependencies is simple. Most commonly, we use the [Hex Package Manager](http://hex.pm), by listing the dependency inside the deps function in our `mix.exs` file: +Installing external dependencies is simple. Most commonly, we use the [Hex Package Manager](https://hex.pm), by listing the dependency inside the deps function in our `mix.exs` file: ```elixir def deps do @@ -272,6 +272,6 @@ Here are a couple questions you can ask yourself when working with dependencies. * If no, use an umbrella project with umbrella children. * If yes, can this project be shared outside your company / organization? * If no, use a private git repository. - * If yes, push your code to a git repository and do frequent releases using [Hex](http://hex.pm). + * If yes, push your code to a git repository and do frequent releases using [Hex](https://hex.pm). With our umbrella project up and running, it is time to start writing our server. diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index e07bdc070..7650a9c29 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -92,7 +92,7 @@ From our quick exploration, we could conclude that we should simply use `Node.sp There are three better alternatives to `Node.spawn_link/2` that we could use in our implementation: -1. We could use Erlang's [:rpc](http://erlang.org/doc/man/rpc.html) module to execute functions on a remote node. Inside the `bar@computer-name` shell above, you can call `:rpc.call(:"foo@computer-name", Hello, :world, [])` and it will print "hello world" +1. We could use Erlang's [:rpc](http://www.erlang.org/doc/man/rpc.html) module to execute functions on a remote node. Inside the `bar@computer-name` shell above, you can call `:rpc.call(:"foo@computer-name", Hello, :world, [])` and it will print "hello world" 2. We could have a server running on the other node and send requests to that node via the [GenServer](/docs/stable/elixir/#!GenServer.html) API. For example, you can call a remote named server using `GenServer.call({name, node}, arg)` or simply passing the remote process PID as first argument @@ -362,4 +362,4 @@ In this chapter we have built a simple router as a way to explore the distribute Throughout the guide, we have built a very simple distributed key-value store as an opportunity to explore many constructs like generic servers, event managers, supervisors, tasks, agents, applications and more. Not only that, we have written tests for the whole application, got familiar with ExUnit, and learned how to use the Mix build tool to accomplish a wide range of tasks. -If you are looking for a distributed key-value store to use in production, you should definitely look into [Riak](http://basho.com/riak/), which also runs in the Erlang VM. In Riak, the buckets are replicated, to avoid data loss, and instead of a router, they use [consistent hashing](http://en.wikipedia.org/wiki/Consistent_hashing) to map a bucket to a node. A consistent hashing algorithm helps reduce the amount of data that needs to be migrated when new nodes to store buckets are added to your infrastructure. +If you are looking for a distributed key-value store to use in production, you should definitely look into [Riak](http://basho.com/riak/), which also runs in the Erlang VM. In Riak, the buckets are replicated, to avoid data loss, and instead of a router, they use [consistent hashing](https://en.wikipedia.org/wiki/Consistent_hashing) to map a bucket to a node. A consistent hashing algorithm helps reduce the amount of data that needs to be migrated when new nodes to store buckets are added to your infrastructure. diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 9a36d8d9a..f640ccad5 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -42,7 +42,7 @@ In this chapter, we will create our first project using Mix and explore differen > Note: this guide requires Elixir v0.15.0 or later. You can check your Elixir version with `elixir -v` and install a more recent version if required by following the steps described in [the first chapter of the Getting Started guide](/getting-started/introduction.html). > -> If you have any questions or improvements to the guide, please let us know in [our mailing list](https://groups.google.com/d/forum/elixir-lang-talk) or [issues tracker](http://github.com/elixir-lang/elixir-lang.github.com/issues) respectively. Your input is really important to help us guarantee the guides are accessible and up to date! +> If you have any questions or improvements to the guide, please let us know in [our mailing list](https://groups.google.com/d/forum/elixir-lang-talk) or [issues tracker](https://github.com/elixir-lang/elixir-lang.github.com/issues) respectively. Your input is really important to help us guarantee the guides are accessible and up to date! ## Our first project diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 1254c2421..f39d0ea76 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -8,7 +8,7 @@ redirect_from: /getting_started/mix_otp/8.html {% include toc.html %} -In this chapter, we are going to learn how to use [Erlang's `:gen_tcp` module](http://erlang.org/doc/man/gen_tcp.html) to serve requests. In future chapters we will expand our server so it can actually serve the commands. This will also provide a great opportunity to explore Elixir's `Task` module. +In this chapter, we are going to learn how to use [Erlang's `:gen_tcp` module](http://www.erlang.org/doc/man/gen_tcp.html) to serve requests. In future chapters we will expand our server so it can actually serve the commands. This will also provide a great opportunity to explore Elixir's `Task` module. ## Echo server @@ -98,7 +98,7 @@ Start an IEx session inside the `kv_server` application with `iex -S mix`. Insid iex> KVServer.accept(4040) ``` -The server is now running, and you will even notice the console is blocked. Let's use [a `telnet` client](http://en.wikipedia.org/wiki/Telnet) to access our server. There are clients available on most operating systems, and their command lines are generally similar: +The server is now running, and you will even notice the console is blocked. Let's use [a `telnet` client](https://en.wikipedia.org/wiki/Telnet) to access our server. There are clients available on most operating systems, and their command lines are generally similar: ```bash $ telnet 127.0.0.1 4040 diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 45a380aec..a09e94aca 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -108,7 +108,7 @@ iex> Math.double_each([1, 2, 3]) #=> [2, 4, 6] Here we have used recursion to traverse a list doubling each element and returning a new list. The process of taking a list and _mapping_ over it is known as a _map algorithm_. -Recursion and [tail call](http://en.wikipedia.org/wiki/Tail_call) optimization are an important part of Elixir and are commonly used to create loops. However, when programming in Elixir you will rarely use recursion as above to manipulate lists. +Recursion and [tail call](https://en.wikipedia.org/wiki/Tail_call) optimization are an important part of Elixir and are commonly used to create loops. However, when programming in Elixir you will rarely use recursion as above to manipulate lists. The [`Enum` module](/docs/stable/elixir/#!Enum.html), which we're going to see in the next chapter, already provides many conveniences for working with lists. For instance, the examples above could be written as: diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index 9babe4876..fa717c5c1 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -30,7 +30,7 @@ Elixir is an extensible and very customizable programming language thanks to its We have a [Learning](/learning.html) section that explores books, screencasts and other resources for learning Elixir and explore the ecosystem. There are also plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. -Remember that in case of any difficulties, you can always visit the **#elixir-lang** channel on **irc.freenode.net** or send a message to the [mailing list](http://groups.google.com/group/elixir-lang-talk). You can be sure that there will be someone willing to help. To keep posted on the latest news and announcements, follow the [blog](/blog/) and follow the language development on the [elixir-core mailing list](http://groups.google.com/group/elixir-lang-core). +Remember that in case of any difficulties, you can always visit the **#elixir-lang** channel on **irc.freenode.net** or send a message to the [mailing list](https://groups.google.com/group/elixir-lang-talk). You can be sure that there will be someone willing to help. To keep posted on the latest news and announcements, follow the [blog](/blog/) and follow the language development on the [elixir-core mailing list](https://groups.google.com/group/elixir-lang-core). Don't forget that you can also check the [source code of Elixir itself](https://github.com/elixir-lang/elixir), which is mostly written in Elixir (mainly the `lib` directory), or [explore Elixir's documentation](/docs.html). diff --git a/index.html b/index.html index da32c64cc..c942b2144 100644 --- a/index.html +++ b/index.html @@ -139,7 +139,7 @@

      A growing ecosystem

      1 tests, 0 failures {% endhighlight %} -

      Mix is also able to manage dependencies and integrates nicely with the Hex package manager, which provides dependency resolution and the ability to remotely fetch packages.

      +

      Mix is also able to manage dependencies and integrates nicely with the Hex package manager, which provides dependency resolution and the ability to remotely fetch packages.

      From 483f0eeea2b88cf5f8751caea12d4245923c3e80 Mon Sep 17 00:00:00 2001 From: Pete Holiday Date: Mon, 13 Jul 2015 16:48:33 -0400 Subject: [PATCH 0249/1761] Amount/number grammar fix "times" in this case are countable (otherwise recursion would be pretty tough), so use "number" instead of "amount". --- getting-started/recursion.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index a09e94aca..5476aff92 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -18,7 +18,7 @@ for(i = 0; i < array.length; i++) { } ``` -In the example above, we are mutating both the array and the variable `i`. Mutating is not possible in Elixir. Instead, functional languages rely on recursion: a function is called recursively until a condition is reached that stops the recursive action from continuing. No data is mutated in this process. Consider the example below that prints a string an arbitrary amount of times: +In the example above, we are mutating both the array and the variable `i`. Mutating is not possible in Elixir. Instead, functional languages rely on recursion: a function is called recursively until a condition is reached that stops the recursive action from continuing. No data is mutated in this process. Consider the example below that prints a string an arbitrary number of times: ```elixir defmodule Recursion do From e6d16b448d7cd2a322ab91ca30b33a9c60255c5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 14 Jul 2015 09:05:03 +0200 Subject: [PATCH 0250/1761] Add operator table --- getting-started/basic-operators.markdown | 31 +++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index b90adc5fa..aba151d2d 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -113,4 +113,33 @@ The reason we can compare different data types is pragmatism. Sorting algorithms You don't actually need to memorize this ordering, but it is important just to know an order exists. -Well, that is it for the introduction. In the next chapter, we are going to discuss some basic functions, data type conversions and a bit of control-flow. +## Operator table + +Although we have learned only a handful of operators so far, we present below the complete operator table for Elixir, with precedence and associativity for reference: + +Precedence | Operator | Associativity +:--------: | -------- | ------------- + 1 | `@` | Unary + 2 | `.` (Both Dot and Dot Call) | Left to right + 3 | `+` `-` `!` `^` `not` `~~~` | Unary + 4 | `^` `(^^^)` | Left to right + 5 | `*` `/` | Left to right + 6 | `+` `-` | Left to right + 7 | `++` `--` `..` `<>` | Right to left + 8 | `in` | Left to right + 9 | |> `<<<` `>>>` `~>>` `<<~` `~>` `<~` `<~>` <|> | Left to right + 10 | `<` `>` `<=` `>=` | Left to right + 11 | `==` `!=` `=~` `===` `!==` | Left to right + 12 | `&&` `&&&` `and` | Left to right + 13 | || ||| `or` | Left to right + 14 | `=` | Right to left + 15 | `=>` | Right to left + 16 | | | Right to left + 17 | `::` | Right to left + 18 | `when` | Right to left + 19 | `<-`, `\\` | Left to right + 20 | `&` | Unary + +The operator table is ordered with the highest precedence operator at the top. + +We will learn the majority of those operators as we go through the getting started guide. In the next chapter, we are going to discuss some basic functions, data type conversions and a bit of control-flow. From 353dc522b0741aa186381479e72d5ae56778fa1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 14 Jul 2015 09:07:12 +0200 Subject: [PATCH 0251/1761] Remove background color from table columns --- css/style.css | 1 - 1 file changed, 1 deletion(-) diff --git a/css/style.css b/css/style.css index fb91f3814..aad9fb4af 100644 --- a/css/style.css +++ b/css/style.css @@ -324,7 +324,6 @@ td { #content td { padding: 0.8125em 4%; border-bottom: 1px solid #E6DFD5; - background-color:#FFFAF3; } /* Lists From a09a7f9a28057308211acd7f1883eaea9826a433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 14 Jul 2015 09:20:31 +0200 Subject: [PATCH 0252/1761] Remove precedence column from table --- getting-started/basic-operators.markdown | 49 +++++++++++------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index aba151d2d..ebb6f6131 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -115,31 +115,28 @@ You don't actually need to memorize this ordering, but it is important just to k ## Operator table -Although we have learned only a handful of operators so far, we present below the complete operator table for Elixir, with precedence and associativity for reference: - -Precedence | Operator | Associativity -:--------: | -------- | ------------- - 1 | `@` | Unary - 2 | `.` (Both Dot and Dot Call) | Left to right - 3 | `+` `-` `!` `^` `not` `~~~` | Unary - 4 | `^` `(^^^)` | Left to right - 5 | `*` `/` | Left to right - 6 | `+` `-` | Left to right - 7 | `++` `--` `..` `<>` | Right to left - 8 | `in` | Left to right - 9 | |> `<<<` `>>>` `~>>` `<<~` `~>` `<~` `<~>` <|> | Left to right - 10 | `<` `>` `<=` `>=` | Left to right - 11 | `==` `!=` `=~` `===` `!==` | Left to right - 12 | `&&` `&&&` `and` | Left to right - 13 | || ||| `or` | Left to right - 14 | `=` | Right to left - 15 | `=>` | Right to left - 16 | | | Right to left - 17 | `::` | Right to left - 18 | `when` | Right to left - 19 | `<-`, `\\` | Left to right - 20 | `&` | Unary - -The operator table is ordered with the highest precedence operator at the top. +Although we have learned only a handful of operators so far, we present below the complete operator table for Elixir ordered from higher to lower precedence for reference: + +Operator | Associativity +-------- | ------------- + `@` | Unary + `.` | Left to right + `+` `-` `!` `^` `not` `~~~` | Unary + `*` `/` | Left to right + `+` `-` | Left to right + `++` `--` `..` `<>` | Right to left + `in` | Left to right + |> `<<<` `>>>` `~>>` `<<~` `~>` `<~` `<~>` <|> | Left to right + `<` `>` `<=` `>=` | Left to right + `==` `!=` `=~` `===` `!==` | Left to right + `&&` `&&&` `and` | Left to right + || ||| `or` | Left to right + `=` | Right to left + `=>` | Right to left + | | Right to left + `::` | Right to left + `when` | Right to left + `<-`, `\\` | Left to right + `&` | Unary We will learn the majority of those operators as we go through the getting started guide. In the next chapter, we are going to discuss some basic functions, data type conversions and a bit of control-flow. From 4b3d3207dc423375430f9302966ecd2f7d4bb007 Mon Sep 17 00:00:00 2001 From: Paul Schoenfelder Date: Wed, 15 Jul 2015 13:24:14 -0500 Subject: [PATCH 0253/1761] Add windows-specific instructions for passing MIX_ENV to mix --- getting-started/mix-otp/introduction-to-mix.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index f640ccad5..afa342732 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -238,6 +238,12 @@ Mix will default to the `:dev` environment, except for the `test` task that will $ MIX_ENV=prod mix compile ``` +Or on Windows: + +```batch +> set /a "MIX_ENV=prod" && mix compile +``` + ## Exploring There is much more to Mix, and we will continue to explore it as we build our project. A [general overview is available on the Mix documentation](/docs/stable/mix/). From d68cf1c6ac55a4586cb8ee54ca3336d437457013 Mon Sep 17 00:00:00 2001 From: Yuku TAKAHASHI Date: Fri, 17 Jul 2015 23:04:01 +0900 Subject: [PATCH 0254/1761] Fix case-cond-and-if document The previous code block says: > ** (RuntimeError) undefined function: if/1 --- getting-started/case-cond-and-if.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index bba7781a0..830e5b305 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -257,7 +257,7 @@ iex> is_number(if true) do ** (RuntimeError) undefined function: if/1 ``` -Which leads to an undefined function error as Elixir attempts to invoke `is_number/2`. Adding explicit parentheses is enough to resolve the ambiguity: +Which leads to an undefined function error as Elixir attempts to invoke `if/1`. Adding explicit parentheses is enough to resolve the ambiguity: ```iex iex> is_number(if true do From dec2a6a45d8349ab26b49a32a2d188df43618cae Mon Sep 17 00:00:00 2001 From: Samuel Tonini Date: Sat, 18 Jul 2015 12:18:00 +0200 Subject: [PATCH 0255/1761] Alchemist has a new website url --- _includes/code-editor-support.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/code-editor-support.html b/_includes/code-editor-support.html index 30d1f04c8..aeb4d2d06 100644 --- a/_includes/code-editor-support.html +++ b/_includes/code-editor-support.html @@ -2,7 +2,7 @@

      Code editor support

      • Emacs Mode
      • -
      • Alchemist (Emacs Elixir Tooling)
      • +
      • Alchemist (Emacs Elixir Tooling)
      • TextMate / Sublime Text Bundle
      • Sublime Plugin
      • Vim Elixir
      • From d46c1bb3904b6abb15d8bca88c5ac5a07414213e Mon Sep 17 00:00:00 2001 From: Wendy Smoak Date: Sat, 18 Jul 2015 08:52:54 -0400 Subject: [PATCH 0256/1761] Promote default values to its own section --- crash-course.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crash-course.markdown b/crash-course.markdown index 2c1ed7372..fc2c9b31d 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -557,6 +557,8 @@ sum "a", "b" #=> "ab" ``` +### Default values + In addition, Elixir allows for default values for arguments, whereas Erlang does not. ```elixir From e3fe8ffdea6e04af7d5561da34cf38d50be9f788 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 18 Jul 2015 23:33:31 +0700 Subject: [PATCH 0257/1761] provide windows installer via https:// --- _posts/2014-08-07-elixir-v0-15-0-released.markdown | 2 +- install.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown index e80342abd..a40d5ce0a 100644 --- a/_posts/2014-08-07-elixir-v0-15-0-released.markdown +++ b/_posts/2014-08-07-elixir-v0-15-0-released.markdown @@ -150,7 +150,7 @@ At the beginning of this summer, [Chris Hyndman](https://github.com/chyndman) jo Chris has also built an [Elixir Web Installer for Windows](https://github.com/elixir-lang/elixir-windows-setup). The web installer checks all available Elixir versions and allows you to pick which one to install. It will also fetch and install Erlang in your machine in case it has not been installed yet. -If you want to give Elixir and the Web Installer a try, you can [download the current version here](http://s3.hex.pm/elixir-websetup.exe). And, if [Chocolatey](https://chocolatey.org/) is your thing, remember you can also install Elixir on Windows by running `cinst elixir`. +If you want to give Elixir and the Web Installer a try, you can [download the current version here](https://s3.amazonaws.com/s3.hex.pm/elixir-websetup.exe). And, if [Chocolatey](https://chocolatey.org/) is your thing, remember you can also install Elixir on Windows by running `cinst elixir`. ## Welcome Alexei! diff --git a/install.markdown b/install.markdown index 67edb0605..68c211339 100644 --- a/install.markdown +++ b/install.markdown @@ -46,7 +46,7 @@ Choose your operating system and tool. ### Windows * Web installer - * [Download the installer](http://s3.hex.pm/elixir-websetup.exe) + * [Download the installer](https://s3.amazonaws.com/s3.hex.pm/elixir-websetup.exe) * Click next, next, ..., finish * Chocolatey * `cinst elixir` From f2d388fdbb8593921e47b5d1928735dc5dcd50f2 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sat, 18 Jul 2015 23:50:40 +0700 Subject: [PATCH 0258/1761] functions/macros allowed in guard revised Corrected and additional explanations added. --- getting-started/case-cond-and-if.markdown | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 830e5b305..91c294146 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -54,13 +54,15 @@ The first clause above will only match when `x` is positive. ## Expressions in guard clauses -The Erlang Virtual Machine (VM) only allows a limited set of expressions in guards: - -* comparison operators (`==`, `!=`, `===`, `!==`, `>`, `<`, `<=`, `>=`) -* boolean operators (`and`, `or`) and negation operators (`not`, `!`) -* arithmetic operators (`+`, `-`, `*`, `/`) -* `<>` and `++` as long as the left side is a literal -* the `in` operator +Elixir imports and allows the following expressions in guards by default: + +* comparison operators (`==`, `!=`, `===`, `!==`, `>`, `>=`, `<`, `<=`) +* boolean operators (`and`, `or`, `not`) +* arithmetic operations (`+`, `-`, `*`, `/`) +* arithmetic unary operators (`+`, `-`) +* the binary concatenation operator `<>` +* the `in` operator as long as the right side is range or a list +* all operators in the`Bitwise` module (`bnot`, `~~~`, `band`, `&&&`, `bor`, `|||`, `bxor`, `^^^`, `bsl`, `<<<`, `bsr`, `>>>`) * all the following type check functions: * `is_atom/1` * `is_binary/1` @@ -80,6 +82,7 @@ The Erlang Virtual Machine (VM) only allows a limited set of expressions in guar * `is_tuple/1` * plus these functions: * `abs(number)` + * `binary_part(binary, start, length)` * `bit_size(bitstring)` * `byte_size(bitstring)` * `div(integer, integer)` @@ -98,6 +101,9 @@ The Erlang Virtual Machine (VM) only allows a limited set of expressions in guar Additionally, users may define their own guard functions, usually starting with "is_". +Note that while boolean operators such as `and`, `or`, `not` are allowed in guards, +the more general and short-circuiting operators `&&`, `||` and `!` are not. + Keep in mind errors in guards do not leak but simply make the guard fail: ```iex From fd1e0bb82c4e618dc46f3e4e78d596446df475c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 20 Jul 2015 14:44:44 +0200 Subject: [PATCH 0259/1761] Move bitwise examples down --- getting-started/case-cond-and-if.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 91c294146..e1516de2d 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -62,7 +62,6 @@ Elixir imports and allows the following expressions in guards by default: * arithmetic unary operators (`+`, `-`) * the binary concatenation operator `<>` * the `in` operator as long as the right side is range or a list -* all operators in the`Bitwise` module (`bnot`, `~~~`, `band`, `&&&`, `bor`, `|||`, `bxor`, `^^^`, `bsl`, `<<<`, `bsr`, `>>>`) * all the following type check functions: * `is_atom/1` * `is_binary/1` @@ -99,7 +98,9 @@ Elixir imports and allows the following expressions in guards by default: * `trunc(number)` * `tuple_size(tuple)` -Additionally, users may define their own guard functions, usually starting with "is_". +Additionally, users may define their own guards. For example, the `Bitwise` +module defines guards as functions and operators: `bnot`, `~~~`, `band`, +`&&&`, `bor`, `|||`, `bxor`, `^^^`, `bsl`, `<<<`, `bsr`, `>>>`. Note that while boolean operators such as `and`, `or`, `not` are allowed in guards, the more general and short-circuiting operators `&&`, `||` and `!` are not. From ed307b83e37528d497f52433a99060b183613979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=B3th=20R=C3=B3bert?= Date: Tue, 21 Jul 2015 22:05:32 +0200 Subject: [PATCH 0260/1761] Missing s character. --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 06e79907d..75a8ad5ab 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -265,7 +265,7 @@ def handle_info({:DOWN, ref, :process, pid, _reason}, state) do # 5. Delete from the ETS table instead of the HashDict {name, refs} = HashDict.pop(state.refs, ref) :ets.delete(state.names, name) - GenEvent.sync_notify(state.event, {:exit, name, pid}) + GenEvent.sync_notify(state.events, {:exit, name, pid}) {:noreply, %{state | refs: refs}} end ``` From 2436f2a886429a1603aa54473cf0c5b2865a9729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Sat, 25 Jul 2015 14:29:46 +0200 Subject: [PATCH 0261/1761] Remove duplicate "the" in the "Keywords, maps and dicts" page --- getting-started/maps-and-dicts.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/maps-and-dicts.markdown b/getting-started/maps-and-dicts.markdown index 4d5aab192..3d6f85cd7 100644 --- a/getting-started/maps-and-dicts.markdown +++ b/getting-started/maps-and-dicts.markdown @@ -198,7 +198,7 @@ Elixir developers typically prefer to use the `map.field` syntax and pattern mat In Elixir, both keyword lists and maps are called dictionaries. In other words, a dictionary is like an interface (we call them behaviours in Elixir) and both keyword lists and maps modules implement this interface. -This interface is defined in the [the `Dict` module](/docs/stable/elixir/#!Dict.html) module which also provides an API that delegates to the underlying implementations: +This interface is defined in [the `Dict` module](/docs/stable/elixir/#!Dict.html) module which also provides an API that delegates to the underlying implementations: ```iex iex> keyword = [] From 6218a91cb2e71892c7603fd653d8aa60dc01b0de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Sun, 26 Jul 2015 20:45:35 +0200 Subject: [PATCH 0262/1761] Add a link to the ExUnit documentation --- getting-started/module-attributes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 13116f5b6..b999e126a 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -152,7 +152,7 @@ In the example above, we have used the `plug/1` macro to connect functions that In order to understand the underlying code, we'd need macros, so we will revisit this pattern in the meta-programming guide. However the focus here is exactly on how using module attributes as storage allow developers to create DSLs. -Another example comes from the ExUnit framework which uses module attributes as annotation and storage: +Another example comes from [the ExUnit framework](/docs/stable/ex_unit/) which uses module attributes as annotation and storage: ```elixir defmodule MyTest do From 7633f71ff2ff0d9237d7373aa2c8d1280204b61f Mon Sep 17 00:00:00 2001 From: eksperimental Date: Mon, 27 Jul 2015 08:55:14 +0700 Subject: [PATCH 0263/1761] Add OpenSearch support --- _includes/search.html | 2 +- _includes/top.html | 1 + opensearch.xml | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 opensearch.xml diff --git a/_includes/search.html b/_includes/search.html index 82e179baa..c0d9f23ec 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -5,7 +5,7 @@

        From caf810abb417a345d0672282156bcc7cb10a9583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 10 Feb 2016 14:37:13 +0100 Subject: [PATCH 0389/1761] Remove sublime recommendation due to process leak --- _includes/code-editor-support.html | 1 - 1 file changed, 1 deletion(-) diff --git a/_includes/code-editor-support.html b/_includes/code-editor-support.html index 8ade86d9d..673404fe3 100644 --- a/_includes/code-editor-support.html +++ b/_includes/code-editor-support.html @@ -4,7 +4,6 @@

        Code editor support

      • Emacs Mode
      • Alchemist (Emacs Elixir Tooling)
      • TextMate / Sublime Text Bundle
      • -
      • Sublime Plugin
      • Vim Elixir
      • GtkSourceView (gedit)
      • Atom Package
      • From 0f061c9fd8f5e9071860effacfc2b8f395135923 Mon Sep 17 00:00:00 2001 From: tangentstorm Date: Fri, 12 Feb 2016 17:54:36 -0600 Subject: [PATCH 0390/1761] Added a section about procedure-level `catch` blocks. --- getting-started/try-catch-and-rescue.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 0bcdd1a09..a05fa37cf 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -158,6 +158,22 @@ Using `try/catch` is already uncommon and using it to catch exits is even more r It is exactly this supervision system that makes constructs like `try/catch` and `try/rescue` so uncommon in Elixir. Instead of rescuing an error, we'd rather "fail fast" since the supervision tree will guarantee our application will go back to a known initial state after the error. +## Catch + +Sometimes, you may want to wrap the entire body of a function in `try`...`catch`. Elixir offers some syntactic sugar here, letting you omit the `try` line: + +```iex +iex> defmodule CatchIt do +...> def without_even_trying do +...> throw "an exception" +...> catch +...> it -> "caught #{it}" +...> end +...> end +iex> CatchIt.without_even_trying +"caught an exception!" +``` + ## After Sometimes it's necessary to ensure that a resource is cleaned up after some action that could potentially raise an error. The `try/after` construct allows you to do that. For example, we can open a file and guarantee it will be closed (even if something goes wrong) with a `try/after` block: From 148ad02e5f4f5c43032f94be18f68df71d017020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 13 Feb 2016 14:25:43 +0100 Subject: [PATCH 0391/1761] Tidy up function+try example --- getting-started/try-catch-and-rescue.markdown | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 51966da7b..2ca77f1a3 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -157,22 +157,6 @@ Using `try/catch` is already uncommon and using it to catch exits is even more r It is exactly this supervision system that makes constructs like `try/catch` and `try/rescue` so uncommon in Elixir. Instead of rescuing an error, we'd rather "fail fast" since the supervision tree will guarantee our application will go back to a known initial state after the error. -## Catch - -Sometimes, you may want to wrap the entire body of a function in `try`...`catch`. Elixir offers some syntactic sugar here, letting you omit the `try` line: - -```iex -iex> defmodule CatchIt do -...> def without_even_trying do -...> throw "an exception" -...> catch -...> it -> "caught #{it}" -...> end -...> end -iex> CatchIt.without_even_trying -"caught an exception!" -``` - ## After Sometimes it's necessary to ensure that a resource is cleaned up after some action that could potentially raise an error. The `try/after` construct allows you to do that. For example, we can open a file and guarantee it will be closed (even if something goes wrong) with a `try/after` block: @@ -188,6 +172,23 @@ iex> try do ** (RuntimeError) oops, something went wrong ``` +Sometimes you may want to wrap the entire body of a function in a `try` construct, often to guarantee some code will be executed afterwards. In such cases, Elixir allows you to omit the `try` line: + +```iex +iex> defmodule RunAfter do +...> def without_even_trying do +...> raise "oops" +...> after +...> IO.puts "cleaning up!" +...> end +...> end +iex> RunAfter.without_even_trying +cleaning up! +** (RuntimeError) oops +``` + +Elixir will automatically wrap the function body in a `try` whenever one of `after`, `rescue` or `catch` is specified. + ## Variables scope It is important to bear in mind that variables defined inside `try/catch/rescue/after` blocks do not leak to the outer context. This is because the `try` block may fail and as such the variables may never be bound in the first place. In other words, this code is invalid: From a0db328e1e23ebe83167e63e1a982730136b5828 Mon Sep 17 00:00:00 2001 From: Mitchell Henke Date: Mon, 15 Feb 2016 15:11:55 -0600 Subject: [PATCH 0392/1761] use real modules in crash course --- crash-course.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index fc2c9b31d..6fccb65e0 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -162,13 +162,13 @@ Elixir allows you to omit parentheses in function calls, Erlang does not. Invoking a function from a module uses different syntax. In Erlang, you would write ```erlang -orddict:new(). +lists:last([1,2]). ``` -to invoke the `new` function from the `orddict` module. In Elixir, use the dot `.` in place of the colon `:` +to invoke the `last` function from the `List` module. In Elixir, use the dot `.` in place of the colon `:` ```elixir -Orddict.new +List.last([1,2]) ``` **Note**. Since Erlang modules are represented by atoms, you may invoke Erlang functions in Elixir as follows: From 1f6c2f2a0b3451c1f1d2a9737510d53a19d39af2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 16 Feb 2016 19:37:02 +0100 Subject: [PATCH 0393/1761] Remove highlight background --- css/syntax.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/syntax.css b/css/syntax.css index c25f6982e..f6f38de28 100644 --- a/css/syntax.css +++ b/css/syntax.css @@ -1,4 +1,4 @@ -.highlight { background: #fff } +.highlight {} .highlight .c { color: #998; font-style: italic } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { font-weight: bold } /* Keyword */ From 1b9287c1ba4b3bed0fb959111372e6098a202d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 16 Feb 2016 19:47:55 +0100 Subject: [PATCH 0394/1761] Link to writing documentation page --- getting-started/module-attributes.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index d176475cf..7f246dc76 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -34,7 +34,7 @@ Elixir has a handful of reserved attributes. Here are just a few of them, the mo * `@behaviour` - (notice the British spelling) used for specifying an OTP or user-defined behaviour. * `@before_compile` - provides a hook that will be invoked before the module is compiled. This makes it possible to inject functions inside the module exactly before compilation. -`@moduledoc` and `@doc` are by far the most used attributes, and we expect you to use them a lot. Elixir treats documentation as first-class and provides many functions to access documentation. +`@moduledoc` and `@doc` are by far the most used attributes, and we expect you to use them a lot. Elixir treats documentation as first-class and provides many functions to access documentation. You can read more about [writing documentation in Elixir in our official documentation](/docs/stable/elixir/typespecs.html). Let's go back to the `Math` module defined in the previous chapters, add some documentation and save it to the `math.ex` file: @@ -73,7 +73,7 @@ iex> h Math.sum # Access the docs for the sum function We also provide a tool called [ExDoc](https://github.com/elixir-lang/ex_doc) which is used to generate HTML pages from the documentation. -You can take a look at the docs for [Module](/docs/stable/elixir/Module.html) for a complete list of supported attributes. Elixir also uses attributes to define [typespecs](/docs/stable/elixir/typespecs.html). +You can take a look at the docs for [Module](/docs/stable/elixir/Module.html) for a complete list of supported attributes. Elixir also uses attributes to define [typespecs](/getting-started/typespecs-and-behaviours.html). This section covers built-in attributes. However, attributes can also be used by developers or extended by libraries to support custom behaviour. From 77c102e798a90f34c9bab30c4e797da4e6bd376e Mon Sep 17 00:00:00 2001 From: AstonJ Date: Fri, 19 Feb 2016 11:53:08 +0000 Subject: [PATCH 0395/1761] Update introduction.markdown --- getting-started/introduction.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 71889615f..e49cdf4e7 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -70,6 +70,7 @@ When going through this getting started guide, it is common to have questions, a * [Elixir on Slack](https://elixir-slackin.herokuapp.com/) * [elixir-talk mailing list](https://groups.google.com/group/elixir-lang-talk) * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) + * [Elixir Forum](http://elixirforum.com) When doing so, remember these two tips: From 4fbea9d2e628e7a82df455fd4e5f4131db53d7b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 19 Feb 2016 21:27:08 +0100 Subject: [PATCH 0396/1761] Split officil and non-official channels --- getting-started/introduction.markdown | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index e49cdf4e7..1a4544da8 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -64,15 +64,18 @@ Later on we will learn how to compile Elixir code (in [Chapter 8](/getting-start ## Asking questions -When going through this getting started guide, it is common to have questions, after all, that is part of the learning process! There are many places you could ask them to learn more about Elixir: +When going through this getting started guide, it is common to have questions, after all, that is part of the learning process! There are many places you could ask them to learn more about Elixir. The official places are: * [#elixir-lang on freenode IRC](irc://irc.freenode.net/elixir-lang) - * [Elixir on Slack](https://elixir-slackin.herokuapp.com/) * [elixir-talk mailing list](https://groups.google.com/group/elixir-lang-talk) + +However there are many places operated by the community, such as: + + * [Elixir on Slack](https://elixir-slackin.herokuapp.com/) * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) * [Elixir Forum](http://elixirforum.com) -When doing so, remember these two tips: +When asking questions, remember these two tips: * Instead of asking "how to do X in Elixir", ask "how to solve Y in Elixir". In other words, don't ask how to implement a particular solution, instead describe the problem at hand. Stating the problem gives more context and less bias for a correct answer. From 6725f12c6ff5824713f8e87567b8fd721ca4a9c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 21 Feb 2016 22:37:23 +0100 Subject: [PATCH 0397/1761] Release v1.2.3 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 21a3c1419..dfddfddb6 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.2.3,https://github.com/elixir-lang/elixir/releases/download/v1.2.3/Precompiled.zip,release,1 1.2.2,https://github.com/elixir-lang/elixir/releases/download/v1.2.2/Precompiled.zip,release,1 1.2.1,https://github.com/elixir-lang/elixir/releases/download/v1.2.1/Precompiled.zip,release,1 1.2.0,https://github.com/elixir-lang/elixir/releases/download/v1.2.0/Precompiled.zip,release,1 From 35135f4bd9b88297147e3a7a1734120535afad23 Mon Sep 17 00:00:00 2001 From: Tallak Tveide Date: Sun, 21 Feb 2016 23:15:32 +0100 Subject: [PATCH 0398/1761] Add section showcasing more useful Erlang modules The section was added to it's own chapter, and added to the index near the end of the main chapters --- _data/getting-started.yml | 3 + getting-started/erlang-libraries.markdown | 236 ++++++++++++++++++++++ 2 files changed, 239 insertions(+) create mode 100644 getting-started/erlang-libraries.markdown diff --git a/_data/getting-started.yml b/_data/getting-started.yml index 374a6f8e3..875fc16b6 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -61,6 +61,9 @@ - title: Typespecs and behaviours slug: typespecs-and-behaviours + - title: Erlang libraries + slug: erlang-libraries + - title: Where to go next slug: where-to-go-next diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown new file mode 100644 index 000000000..3f8c9c184 --- /dev/null +++ b/getting-started/erlang-libraries.markdown @@ -0,0 +1,236 @@ +--- +layout: getting-started +title: Erlang libraries +--- + +# {{ page.title }} + +{% include toc.html %} + +Elixir provides excellent interoperability with Erlang libraries. You will not +find Elixir wrappers for libraries and applications from the Erlang standard +library in the Elixir standard library. Instead, you are encouraged to use the +Erlang libraries directly. In this section we will present some of the most +common and useful Erlang libraries that are not found in Elixir core libraries. + +As you grow more proficient in Elixir, you may want to explore the Erlang +[STDLIB Reference Manual](http://erlang.org/doc/apps/stdlib/index.html) in more +detail. + + + + +## The binary module + +The built-in Elixir String module handles binaries that are encoded in utf-8 +format. The binary module is useful when you are dealing with binary data that +is not necessarily utf-8 encoded. + +```iex +iex> String.to_char_list "Ø" +[216] +iex> :binary.bin_to_list "Ø" +[195, 152] +``` + +The above example shows the difference; the `String` module returns utf-8 +codepoints, while `:binary` deals with raw data bytes. + +## Formatted text output + +Elixir does not contain a function similar to C `printf`. An option is relying +on string interpolation that is built into the language to do this, eg.: + +```iex +iex> f = Float.to_string(:math.pi, decimals: 3) |> String.rjust(10) +iex> str = "Pi is approximately given by: #{f}" +"Pi is approximately given by: 3.142" +``` + +Alternatively, the Erlang standard library functions `:io.format\2` and +`:io_lib.format\2` may be used. The first formats to terminal output, while the +second formats to a string. The format specifiers differ from `printf`, refer +to the Erlang documentation for details. + +```iex +iex> :io.format("Pi is approximately given by:~10.3f~n", [:math.pi]) +Pi is approximately given by: 3.142 +:ok +iex> str = :io_lib.format("Pi is approximately given by:~10.3f~n", [:math.pi]) |> IO.iodata_to_binary +"Pi is approximately given by: 3.142\n" +``` + +Also note that Erlangs formatting functions require special attention to +unicode handling. + +## The calendar module + +The calendar module contains functions for conversion between local and +universal time, as well as time conversion functions. + +```iex +iex> :calendar.day_of_the_week(1980, 6, 28) +6 +iex> :calendar.now_to_local_time(:erlang.timestamp) +{{2016, 2, 17}, {22, 4, 55}} +``` + +## The crypto module + +The crypto module contains hashing functions, digital signatures, encryption +and more. The library also contains the `crypto` application that must be +registered as a dependency to your application for some of this functionality +to work. + +To do this, edit your `mix.exs` file to include: + +```elixir + def application do + [applications: [:crypto]] + end +``` + +The `crypto` module is not part of the Erlang standard library, but is included +with the Erlang distribution. The documentation is found at +[this page](http://erlang.org/doc/man/crypto.html). + +```iex +iex> Base.encode16(:crypto.hash(:sha256, "Elixir")) +"3315715A7A3AD57428298676C5AE465DADA38D951BDFAC9348A8A31E9C7401CB" +``` + +## The digraph module + +The `digraph` and `digraph_utils` modules contain functions for dealing with +directed graphs built of vertices and edges. After constructing the graph, the +algorithms in here will help finding for instance the shortest path between two +vertices, or loops in the graph. + +Note that the functions in :digraph alter the graph structure indirectly as a +side effect, while returning the added vertices or edges. + +Given three vertices, find the shortest path from the first to the last. + +```iex +iex> digraph = :digraph.new() +iex> coords = [{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}] +iex> for c <- coords, do: :digraph.add_vertex(digraph, c) +iex> [v0, v1, v2] = (for c <- coords, do: :digraph.add_vertex(digraph, c)) +iex> :digraph.add_edge(digraph, v0, v1) +iex> :digraph.add_edge(digraph, v1, v2) +iex> :digraph.get_short_path(digraph, v0, v2) +[{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}] +``` + + +## Erlang Term Storage + +The modules `ets` and `dets` handle storage of large data structures in memory +or on disk respectively. + +ETS lets you create a table containing tuples that is owned by a single +process. For large amounts of data, ETS may be more performant than storing +data as large Elixir data structures. ETS has some functionality to be used as +a simple database or key-value store. + +The functions in the `ets` module will modify the state of the table as a side +effect. + +```iex +iex> table = :ets.new(:ets_test, []) +iex> :ets.insert(table, {%{name: "China", population: 1_374_000_000}}) +iex> :ets.insert(table, {%{name: "India", population: 1_284_000_000}}) +iex> :ets.insert(table, {%{name: "USA", population: 322_000_000}}) +iex> :ets.i(table) +<1 > {#{name => <<"USA">>,population => 322000000}} +<2 > {#{name => <<"China">>,population => 1374000000}} +<3 > {#{name => <<"India">>,population => 1284000000}} +``` + +ETS is described in more detail in it's own section. + +## The math module + +The `math` module contains common mathematical operations covering trigonometry, +exponential and logarithmic functions. + +```iex +iex> angle_45_deg = :math.pi() * 45.0 / 180.0 +iex> :math.sin(angle_45_deg) +0.7071067811865475 +iex> :math.exp(55.0) +7.694785265142018e23 +iex> :math.log(7.694785265142018e23) +55.0 +``` + + +## The queue module + +The `queue` is a data structure that allows efficient FIFO (first in first out) +operation. + +A regular Elixir list may not be performant as removing the first element in +the list requires building a new list with the remaining elements, not reusing +any data. + +```iex +iex> q = :queue.new +iex> q = :queue.in("A", q) +iex> q = :queue.in("B", q) +iex> q = :queue.in("C", q) +iex> {_, q} = :queue.out(q) +{{:value, "A"}, {["C"], ["B"]}} +iex> {_, q} = :queue.out(q) +{{:value, "B"}, {[], ["C"]}} +iex> {_, q} = :queue.out(q) +{{:value, "C"}, {[], []}} +iex> {_, q} = :queue.out(q) +{:empty, {[], []}} +``` + +## The rand module + +This module has functions for returning random values and setting the random +seed. + +```iex +iex> :rand.uniform() +0.8175669086010815 +iex> _ = :rand.seed(:exs1024, {123, 123534, 345345}) +iex> :rand.uniform() +0.5820506340260994 +iex> :rand.uniform(6) +6 +``` + +## The zlib and zip modules + +The `zip` module lets you read and write zip files to and from disk or memory, +as well as extracting file information. + +This code counts the number of files in a zip file: + +```iex +iex> :zip.foldl(fn _, _, _, acc -> acc + 1 end, 0, :binary.bin_to_list("file.zip")) +{:ok, 633} +``` + +The `zlib` module deals with data compression in zlib format, as found in the +`gzip` command. + +```iex +iex> song = " +...> Mary had a little lamb, +...> His fleece was white as snow, +...> And everywhere that Mary went, +...> The lamb was sure to go." +iex> compressed = :zlib.compress(song) +iex> byte_size song +110 +iex> byte_size compressed +99 +iex> :zlib.uncompress(compressed) +"\nMary had a little lamb,\nHis fleece was white as snow,\nAnd everywhere that Mary went,\nThe lamb was sure to go." +``` + From 9cdcbf746ac1cbf45651bab0719425325c258128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 22 Feb 2016 11:18:40 +0100 Subject: [PATCH 0399/1761] Tidy up erlang modules --- getting-started/erlang-libraries.markdown | 124 ++++++++++------------ 1 file changed, 57 insertions(+), 67 deletions(-) diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index 3f8c9c184..749e6c030 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -7,24 +7,20 @@ title: Erlang libraries {% include toc.html %} -Elixir provides excellent interoperability with Erlang libraries. You will not -find Elixir wrappers for libraries and applications from the Erlang standard -library in the Elixir standard library. Instead, you are encouraged to use the -Erlang libraries directly. In this section we will present some of the most -common and useful Erlang libraries that are not found in Elixir core libraries. +Elixir provides excellent interoperability with Erlang libraries. In fact, +Elixir discourages simply wrapping Erlang libraries in favor of directly +interfacing with Erlang code. In this section we will present some of the +most common and useful Erlang functionality that are not found in Elixir. As you grow more proficient in Elixir, you may want to explore the Erlang [STDLIB Reference Manual](http://erlang.org/doc/apps/stdlib/index.html) in more detail. - - - ## The binary module -The built-in Elixir String module handles binaries that are encoded in utf-8 -format. The binary module is useful when you are dealing with binary data that -is not necessarily utf-8 encoded. +The built-in Elixir String module handles binaries that are UTF-8 encoded. +[The binary module](http://erlang.org/doc/man/binary.html) is useful when +you are dealing with binary data that is not necessarily UTF-8 encoded. ```iex iex> String.to_char_list "Ø" @@ -33,13 +29,14 @@ iex> :binary.bin_to_list "Ø" [195, 152] ``` -The above example shows the difference; the `String` module returns utf-8 +The above example shows the difference; the `String` module returns UTF-8 codepoints, while `:binary` deals with raw data bytes. ## Formatted text output -Elixir does not contain a function similar to C `printf`. An option is relying -on string interpolation that is built into the language to do this, eg.: +Elixir does not contain a function similar to `printf` found in C and other +languages. An option is to rely on string interpolation to achieve similar +result: ```iex iex> f = Float.to_string(:math.pi, decimals: 3) |> String.rjust(10) @@ -47,26 +44,27 @@ iex> str = "Pi is approximately given by: #{f}" "Pi is approximately given by: 3.142" ``` -Alternatively, the Erlang standard library functions `:io.format\2` and -`:io_lib.format\2` may be used. The first formats to terminal output, while the -second formats to a string. The format specifiers differ from `printf`, refer -to the Erlang documentation for details. +Alternatively, the Erlang standard library functions `:io.format/2` and +`:io_lib.format/2` may be used. The first formats to terminal output, while +the second formats to an iolist. The format specifiers differ from `printf`, +[refer to the Erlang documentation for details](http://erlang.org/doc/man/io.html#format-1). ```iex iex> :io.format("Pi is approximately given by:~10.3f~n", [:math.pi]) Pi is approximately given by: 3.142 :ok -iex> str = :io_lib.format("Pi is approximately given by:~10.3f~n", [:math.pi]) |> IO.iodata_to_binary +iex> to_string :io_lib.format("Pi is approximately given by:~10.3f~n", [:math.pi]) "Pi is approximately given by: 3.142\n" ``` Also note that Erlangs formatting functions require special attention to -unicode handling. +Unicode handling. ## The calendar module -The calendar module contains functions for conversion between local and -universal time, as well as time conversion functions. +[The calendar module](http://erlang.org/doc/man/calendar.html) contains +functions for conversion between local and universal time, as well as +time conversion functions. ```iex iex> :calendar.day_of_the_week(1980, 6, 28) @@ -77,12 +75,18 @@ iex> :calendar.now_to_local_time(:erlang.timestamp) ## The crypto module -The crypto module contains hashing functions, digital signatures, encryption -and more. The library also contains the `crypto` application that must be -registered as a dependency to your application for some of this functionality -to work. +[The crypto module](http://erlang.org/doc/man/crypto.html) contains hashing +functions, digital signatures, encryption and more: -To do this, edit your `mix.exs` file to include: +```iex +iex> Base.encode16(:crypto.hash(:sha256, "Elixir")) +"3315715A7A3AD57428298676C5AE465DADA38D951BDFAC9348A8A31E9C7401CB" +``` + +The `:crypto` module is not part of the Erlang standard library, but is +included with the Erlang distribution. This means you must list `:crypto` +in your project's applications list whenever you use it. To do this, +edit your `mix.exs` file to include: ```elixir def application do @@ -90,24 +94,16 @@ To do this, edit your `mix.exs` file to include: end ``` -The `crypto` module is not part of the Erlang standard library, but is included -with the Erlang distribution. The documentation is found at -[this page](http://erlang.org/doc/man/crypto.html). - -```iex -iex> Base.encode16(:crypto.hash(:sha256, "Elixir")) -"3315715A7A3AD57428298676C5AE465DADA38D951BDFAC9348A8A31E9C7401CB" -``` - ## The digraph module -The `digraph` and `digraph_utils` modules contain functions for dealing with -directed graphs built of vertices and edges. After constructing the graph, the -algorithms in here will help finding for instance the shortest path between two -vertices, or loops in the graph. +[The digraph module](http://erlang.org/doc/man/digraph.html) (as well as +[digraph_utils](http://erlang.org/doc/man/digraph_utils.html)) contains +functions for dealing with directed graphs built of vertices and edges. +After constructing the graph, the algorithms in there will help finding +for instance the shortest path between two vertices, or loops in the graph. -Note that the functions in :digraph alter the graph structure indirectly as a -side effect, while returning the added vertices or edges. +Note that the functions in `:digraph` alter the graph structure indirectly +as a side effect, while returning the added vertices or edges. Given three vertices, find the shortest path from the first to the last. @@ -122,19 +118,19 @@ iex> :digraph.get_short_path(digraph, v0, v2) [{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}] ``` - ## Erlang Term Storage -The modules `ets` and `dets` handle storage of large data structures in memory -or on disk respectively. +The modules [`ets`](http://erlang.org/doc/man/ets.html) and +[`dets`](http://erlang.org/doc/man/dets.html) handle storage of large +data structures in memory or on disk respectively. -ETS lets you create a table containing tuples that is owned by a single -process. For large amounts of data, ETS may be more performant than storing -data as large Elixir data structures. ETS has some functionality to be used as -a simple database or key-value store. +ETS lets you create a table containing tuples. By default, ETS tables +are protected, which means only the owner process may write to the table +but any other process can read. ETS has some functionality to be used as +a simple database, a key-value store or as a cache mechanism. -The functions in the `ets` module will modify the state of the table as a side -effect. +The functions in the `ets` module will modify the state of the table as a +side-effect. ```iex iex> table = :ets.new(:ets_test, []) @@ -147,12 +143,11 @@ iex> :ets.i(table) <3 > {#{name => <<"India">>,population => 1284000000}} ``` -ETS is described in more detail in it's own section. - ## The math module -The `math` module contains common mathematical operations covering trigonometry, -exponential and logarithmic functions. +[The `math` module](http://erlang.org/doc/man/math.html) contains common +mathematical operations covering trigonometry, exponential and logarithmic +functions. ```iex iex> angle_45_deg = :math.pi() * 45.0 / 180.0 @@ -164,15 +159,10 @@ iex> :math.log(7.694785265142018e23) 55.0 ``` - ## The queue module -The `queue` is a data structure that allows efficient FIFO (first in first out) -operation. - -A regular Elixir list may not be performant as removing the first element in -the list requires building a new list with the remaining elements, not reusing -any data. +The [`queue` is a data structure](http://erlang.org/doc/man/queue.html) +that implements (double-ended) FIFO (first-in first-out) queues efficiently: ```iex iex> q = :queue.new @@ -191,8 +181,8 @@ iex> {_, q} = :queue.out(q) ## The rand module -This module has functions for returning random values and setting the random -seed. +[`rand` has functions](http://erlang.org/doc/man/rand.html) for returning +random values and setting the random seed. ```iex iex> :rand.uniform() @@ -204,9 +194,9 @@ iex> :rand.uniform(6) 6 ``` -## The zlib and zip modules +## The zip and zlib modules -The `zip` module lets you read and write zip files to and from disk or memory, +[The `zip` module](http://erlang.org/doc/man/zip.html) lets you read and write zip files to and from disk or memory, as well as extracting file information. This code counts the number of files in a zip file: @@ -216,7 +206,7 @@ iex> :zip.foldl(fn _, _, _, acc -> acc + 1 end, 0, :binary.bin_to_list("file.zip {:ok, 633} ``` -The `zlib` module deals with data compression in zlib format, as found in the +[The `zlib` module](http://erlang.org/doc/man/zlib.html) deals with data compression in zlib format, as found in the `gzip` command. ```iex From 0e4df43492775473a9e8b68e814972c2ef5f1b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 22 Feb 2016 11:24:13 +0100 Subject: [PATCH 0400/1761] Fix erlang file build --- getting-started/erlang-libraries.markdown | 40 +++++++++++++---------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index 749e6c030..d8c3ace44 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -3,7 +3,7 @@ layout: getting-started title: Erlang libraries --- -# {{ page.title }} +# {{ page.title }} {% include toc.html %} @@ -69,8 +69,11 @@ time conversion functions. ```iex iex> :calendar.day_of_the_week(1980, 6, 28) 6 -iex> :calendar.now_to_local_time(:erlang.timestamp) -{{2016, 2, 17}, {22, 4, 55}} +iex> {date, time} = :calendar.now_to_local_time(:erlang.timestamp) +iex> date +{2016, 2, 17} +iex> time +{22, 4, 55} ``` ## The crypto module @@ -134,13 +137,14 @@ side-effect. ```iex iex> table = :ets.new(:ets_test, []) -iex> :ets.insert(table, {%{name: "China", population: 1_374_000_000}}) -iex> :ets.insert(table, {%{name: "India", population: 1_284_000_000}}) -iex> :ets.insert(table, {%{name: "USA", population: 322_000_000}}) +# Store as tuples with {name, population} +iex> :ets.insert(table, {"China", 1_374_000_000}) +iex> :ets.insert(table, {"India", 1_284_000_000}) +iex> :ets.insert(table, {"USA", 322_000_000}) iex> :ets.i(table) -<1 > {#{name => <<"USA">>,population => 322000000}} -<2 > {#{name => <<"China">>,population => 1374000000}} -<3 > {#{name => <<"India">>,population => 1284000000}} +<1 > {"USA", 322000000} +<2 > {"China", 1_374_000_000} +<3 > {"India", 1_284_000_000} ``` ## The math module @@ -168,15 +172,15 @@ that implements (double-ended) FIFO (first-in first-out) queues efficiently: iex> q = :queue.new iex> q = :queue.in("A", q) iex> q = :queue.in("B", q) -iex> q = :queue.in("C", q) -iex> {_, q} = :queue.out(q) -{{:value, "A"}, {["C"], ["B"]}} -iex> {_, q} = :queue.out(q) -{{:value, "B"}, {[], ["C"]}} -iex> {_, q} = :queue.out(q) -{{:value, "C"}, {[], []}} -iex> {_, q} = :queue.out(q) -{:empty, {[], []}} +iex> {value, q} = :queue.out(q) +iex> value +{:value, "A"} +iex> {value, q} = :queue.out(q) +iex> value +{:value, "B"} +iex> {value, q} = :queue.out(q) +iex> value +:empty ``` ## The rand module From 22934ffc04ee5183406428038f67c37d315efc5a Mon Sep 17 00:00:00 2001 From: Alexander Quine Date: Mon, 22 Feb 2016 12:56:16 -0800 Subject: [PATCH 0401/1761] link to most recent (v1.2.3) Docs.zip --- docs.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs.markdown b/docs.markdown index 8cc9df8a7..eb3eccabe 100644 --- a/docs.markdown +++ b/docs.markdown @@ -26,7 +26,7 @@ Choose which version you want documentation for. * [Logger](/docs/master/logger/) - builtin Logger * [Mix](/docs/master/mix/) - build tool -

        v1.2 (download)

        +

        v1.2 (download)

        * [Elixir](/docs/v1.2/elixir/) - standard library * [EEx](/docs/v1.2/eex/) - templating library From c49fb66a3ac8e6215bb48b4e064fb7eec0ce99f9 Mon Sep 17 00:00:00 2001 From: greg-js Date: Tue, 23 Feb 2016 17:52:07 +0000 Subject: [PATCH 0402/1761] typo --- getting-started/case-cond-and-if.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 076e6c62b..2631ebb47 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -230,7 +230,7 @@ iex> if false, do: :this, else: :that :that ``` -`do/end` blocks are a syntatic convenience built on top of the keywords one. That's why `do/end` blocks do not require a comma between the previous argument and the block. They are useful exactly because they remove the verbosity when writing blocks of code. These are equivalent: +`do/end` blocks are a syntactic convenience built on top of the keywords one. That's why `do/end` blocks do not require a comma between the previous argument and the block. They are useful exactly because they remove the verbosity when writing blocks of code. These are equivalent: ```iex iex> if true do From 8abe5abce2c232955daf009bc02aa3af2b1442e7 Mon Sep 17 00:00:00 2001 From: greg-js Date: Wed, 24 Feb 2016 15:19:58 +0100 Subject: [PATCH 0403/1761] quick typo fix --- getting-started/io-and-the-file-system.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 872945adf..b0bb67d4c 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -94,7 +94,7 @@ iex> Path.expand("~/hello") "/Users/jose/hello" ``` -Using functions from the `Path` module as opposed to just manipulating binaries is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slahes (`/`) into backslashes (`\`) on Windows when performing file operations. +Using functions from the `Path` module as opposed to just manipulating binaries is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slashes (`/`) into backslashes (`\`) on Windows when performing file operations. With this we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next sections, we will discuss some advanced topics regarding IO. Those sections are not necessary in order to write Elixir code, so feel free to skip them, but they do provide a nice overview of how the IO system is implemented in the VM and other curiosities. From e1a24c4810dbdfb70486921d9328add8d6ece195 Mon Sep 17 00:00:00 2001 From: Angelos Orfanakos Date: Wed, 24 Feb 2016 23:28:06 +0200 Subject: [PATCH 0404/1761] Fix a couple of minor typos --- getting-started/keywords-and-maps.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 7f6b232bb..594321fcf 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -76,7 +76,7 @@ In general, when the keyword list is the last argument of a function, the square In order to manipulate keyword lists, Elixir provides [the `Keyword` module](/docs/stable/elixir/Keyword.html). Remember, though, keyword lists are simply lists, and as such they provide the same linear performance characteristics as lists. The longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly as options. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. -Although we can pattern match on keyword lists, it is rarely done in practice since pattern matching on lists require the number of items and their order to match: +Although we can pattern match on keyword lists, it is rarely done in practice since pattern matching on lists requires the number of items and their order to match: ```iex iex> [a: a] = [a: 1] @@ -203,7 +203,7 @@ iex> users = put_in users[:john].age, 31 mary: %{name: "Mary", age: 29, languages: ["Elixir", "F#", "Clojure"]}] ``` -The `update_in/2` macro is similar but allow us to pass a function that controls how the value changes. For example, let's remove "Clojure" from Mary's list of languages: +The `update_in/2` macro is similar but allows us to pass a function that controls how the value changes. For example, let's remove "Clojure" from Mary's list of languages: ```iex iex> users = update_in users[:mary].languages, &List.delete(&1, "Clojure") From 69b447d2a62fb7d00e6899dd43dcdea649b8a8fb Mon Sep 17 00:00:00 2001 From: Angelos Orfanakos Date: Fri, 26 Feb 2016 00:24:46 +0200 Subject: [PATCH 0405/1761] URL-encode `|` to fix broken link to pipe operator doc --- getting-started/enumerables-and-streams.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 4a6848d2b..b6aaeeb7a 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -62,7 +62,7 @@ iex> Enum.sum(Enum.filter(Enum.map(1..100_000, &(&1 * 3)), odd?)) 7500000000 ``` -Find more about the pipe operator [by reading its documentation](/docs/stable/elixir/Kernel.html#|>/2). +Find more about the pipe operator [by reading its documentation](/docs/stable/elixir/Kernel.html#%7C>/2). ## Streams From 04203e81c13e00d8862b1fe4b2b0d8d7ffe9f76b Mon Sep 17 00:00:00 2001 From: Angelos Orfanakos Date: Mon, 29 Feb 2016 23:57:47 +0200 Subject: [PATCH 0406/1761] Fix typo: structs -> types --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 7ee0a08d7..0eab71506 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -117,7 +117,7 @@ If desired, you could come up with your own semantics for a user being blank. No ## Implementing `Any` -Manually implementing protocols for all structs can quickly become repetitive and tedious. In such cases, Elixir provides two options: we can explicitly derive the protocol implementation for our types or automatically implement the protocol for all types. In both cases, we need to implement the protocol for `Any`. +Manually implementing protocols for all types can quickly become repetitive and tedious. In such cases, Elixir provides two options: we can explicitly derive the protocol implementation for our types or automatically implement the protocol for all types. In both cases, we need to implement the protocol for `Any`. ### Deriving From cfcf0badb1e5fc24fb47a3f7cbb43d17ee51e290 Mon Sep 17 00:00:00 2001 From: Angelos Orfanakos Date: Wed, 2 Mar 2016 00:51:19 +0200 Subject: [PATCH 0407/1761] Fix typos in Erlang libraries chapter --- getting-started/erlang-libraries.markdown | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index d8c3ace44..6b3a14386 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -10,7 +10,7 @@ title: Erlang libraries Elixir provides excellent interoperability with Erlang libraries. In fact, Elixir discourages simply wrapping Erlang libraries in favor of directly interfacing with Erlang code. In this section we will present some of the -most common and useful Erlang functionality that are not found in Elixir. +most common and useful Erlang functionality that is not found in Elixir. As you grow more proficient in Elixir, you may want to explore the Erlang [STDLIB Reference Manual](http://erlang.org/doc/apps/stdlib/index.html) in more @@ -35,7 +35,7 @@ codepoints, while `:binary` deals with raw data bytes. ## Formatted text output Elixir does not contain a function similar to `printf` found in C and other -languages. An option is to rely on string interpolation to achieve similar +languages. An option is to rely on string interpolation to achieve a similar result: ```iex @@ -57,7 +57,7 @@ iex> to_string :io_lib.format("Pi is approximately given by:~10.3f~n", [:math.pi "Pi is approximately given by: 3.142\n" ``` -Also note that Erlangs formatting functions require special attention to +Also note that Erlang's formatting functions require special attention to Unicode handling. ## The calendar module @@ -113,7 +113,6 @@ Given three vertices, find the shortest path from the first to the last. ```iex iex> digraph = :digraph.new() iex> coords = [{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}] -iex> for c <- coords, do: :digraph.add_vertex(digraph, c) iex> [v0, v1, v2] = (for c <- coords, do: :digraph.add_vertex(digraph, c)) iex> :digraph.add_edge(digraph, v0, v1) iex> :digraph.add_edge(digraph, v1, v2) From 447b5c615fb8d75f28c4014ce981ef7ae0b72aa6 Mon Sep 17 00:00:00 2001 From: victor felder Date: Wed, 2 Mar 2016 21:22:00 +0100 Subject: [PATCH 0408/1761] Fix "Writing documentation" link --- getting-started/module-attributes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 7f246dc76..2a05bd2b5 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -34,7 +34,7 @@ Elixir has a handful of reserved attributes. Here are just a few of them, the mo * `@behaviour` - (notice the British spelling) used for specifying an OTP or user-defined behaviour. * `@before_compile` - provides a hook that will be invoked before the module is compiled. This makes it possible to inject functions inside the module exactly before compilation. -`@moduledoc` and `@doc` are by far the most used attributes, and we expect you to use them a lot. Elixir treats documentation as first-class and provides many functions to access documentation. You can read more about [writing documentation in Elixir in our official documentation](/docs/stable/elixir/typespecs.html). +`@moduledoc` and `@doc` are by far the most used attributes, and we expect you to use them a lot. Elixir treats documentation as first-class and provides many functions to access documentation. You can read more about [writing documentation in Elixir in our official documentation](/docs/stable/elixir/writing-documentation.html). Let's go back to the `Math` module defined in the previous chapters, add some documentation and save it to the `math.ex` file: From fac22334497875bcd1554bf7084b1b2f518bb114 Mon Sep 17 00:00:00 2001 From: James Edward Gray II Date: Thu, 3 Mar 2016 10:01:12 -0600 Subject: [PATCH 0409/1761] Fix a problematic link. --- getting-started/mix-otp/task-and-gen-tcp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 934d69f96..056625598 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -64,7 +64,7 @@ end We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is just a loop accepting client connections. For each accepted connection, we call `serve/1`. -`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](/docs/stable/elixir/Kernel.html#|>/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: +`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](/docs/stable/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: ```elixir socket |> read_line() |> write_line(socket) From 1c3e7c22bc57c3511bbb93afcb6357be8627041d Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Fri, 11 Mar 2016 17:32:58 +0100 Subject: [PATCH 0410/1761] Add a "Edit on GitHub" link to the footer --- _includes/bottom.html | 6 +++++- css/style.css | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index 22bb74f36..7f9c885e4 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -2,6 +2,10 @@
        + + Something is wrong? Edit this page on GitHub. + + @@ -28,4 +32,4 @@ }); - \ No newline at end of file + diff --git a/css/style.css b/css/style.css index dba1cb0b3..baf5c925c 100644 --- a/css/style.css +++ b/css/style.css @@ -765,6 +765,12 @@ li.image { padding: 0 0 10px; } +#edit-on-github { + display: block; + text-align: center; + font-size: 12px; +} + /* Media Queries (mobile browsing) ----------------------------------------------------- */ /* Tablet (portrait) */ From af43ca6eb39623ed36e27d79f3e0a3c145b19cd5 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Fri, 11 Mar 2016 23:05:34 +0100 Subject: [PATCH 0411/1761] Better "Edit on GitHub" link in the Getting Started guide --- _includes/bottom.html | 4 ---- _layouts/getting-started.html | 7 +++++++ css/style.css | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index 7f9c885e4..dc8509af8 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -2,10 +2,6 @@
        - - Something is wrong? Edit this page on GitHub. - - diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index 561b849cb..d75a2c33c 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -55,6 +55,13 @@

        {{guide.title}}

        {% endif %} {% endfor %} +
        + Something is wrong? + + Edit this page on GitHub. + +
        + {% include bottom.html %} diff --git a/css/style.css b/css/style.css index baf5c925c..a3293db0b 100644 --- a/css/style.css +++ b/css/style.css @@ -766,7 +766,7 @@ li.image { } #edit-on-github { - display: block; + padding: 5px 0; text-align: center; font-size: 12px; } From 84f1d6d0c17ff9b7e79467b5de291e7094c549d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 12 Mar 2016 09:30:54 +0100 Subject: [PATCH 0412/1761] Fix something is wrong link --- _layouts/getting-started.html | 14 +++++++------- css/style.css | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index d75a2c33c..57bed181d 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -28,6 +28,13 @@

        {{guide.title}}

        {{ content }} +
        + Something is wrong? + + Edit this page on GitHub. + +
        + {% assign url_parts = page.url | split: '/' %} {% assign url_parts_size = url_parts | size %} {% assign file_name = url_parts | last %} @@ -55,13 +62,6 @@

        {{guide.title}}

        {% endif %} {% endfor %} -
        - Something is wrong? - - Edit this page on GitHub. - -
        - {% include bottom.html %} diff --git a/css/style.css b/css/style.css index a3293db0b..6c407adbd 100644 --- a/css/style.css +++ b/css/style.css @@ -766,7 +766,7 @@ li.image { } #edit-on-github { - padding: 5px 0; + padding: 15px 0 25px; text-align: center; font-size: 12px; } From 90b6bac1168e79ee8be09bdb6cdfabe9d841d896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 12 Mar 2016 09:31:41 +0100 Subject: [PATCH 0413/1761] Separate path on link --- _layouts/getting-started.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index 57bed181d..386e8fe55 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -30,7 +30,7 @@

        {{guide.title}}

        Something is wrong? - + Edit this page on GitHub.
        From f2bf5fc1176e62f976599693898fcc1a2904ffb4 Mon Sep 17 00:00:00 2001 From: PJ Hampton Date: Sun, 13 Mar 2016 15:48:52 +0000 Subject: [PATCH 0414/1761] Adding Elixir-School to Learning Resources. --- images/learning/elixir-school.jpg | Bin 0 -> 11756 bytes learning.markdown | 9 +++++++++ 2 files changed, 9 insertions(+) create mode 100644 images/learning/elixir-school.jpg diff --git a/images/learning/elixir-school.jpg b/images/learning/elixir-school.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ede4f27c193f3e43f4b5b8d46ca923cab8e6ef6c GIT binary patch literal 11756 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 C%Wz!) literal 0 HcmV?d00001 diff --git a/learning.markdown b/learning.markdown index a395e0653..94837eb70 100644 --- a/learning.markdown +++ b/learning.markdown @@ -65,6 +65,14 @@ This book is a set of recipes grouped by topic that acts as a reference to get i
        +

        Elixir School

        + +Elixir School + +Elixir-School is an open and community driven effort inspired by Twitter’s Scala School. The site’s content is peer-reviewed lessons on various Elixir topics. The lessons are currently available in 8 languages (Chinese, English, Japanese, Portuguese, Russian, Slovak, Spanish and Vietnamese) to make programming Elixir more accessible to non-English speakers. + +
        + ## Screencasts

        Elixir Sips

        @@ -117,3 +125,4 @@ Write code that writes code with Elixir macros. Macros make metaprogramming poss This book intends to be a little guide about how to be the Erlang medic in a time of war. It is first and foremost a collection of tips and tricks to help understand where failures come from, and a dictionary of different code snippets and practices that helped developers debug production systems that were built in Erlang.
        + From 9aa60b60492ecae259ed92106bf4786c90309a72 Mon Sep 17 00:00:00 2001 From: Akash Manohar Date: Wed, 16 Mar 2016 10:02:22 +0530 Subject: [PATCH 0415/1761] Update link to asdf repo --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 0040fdbfc..1a146a092 100644 --- a/install.markdown +++ b/install.markdown @@ -66,7 +66,7 @@ Once the release is unpacked, you are ready to run the `elixir` and `iex` comman There are many tools that allow developers to install and manage multiple Erlang and Elixir versions. They are useful if you can't install Erlang or Elixir as mentioned above or if your package manager is simply outdated. Here are some of those tools: - * [asdf](https://github.com/HashNuke/asdf) - install and manage different Elixir and Erlang versions + * [asdf](https://github.com/asdf-vm/asdf) - install and manage different Elixir and Erlang versions * [exenv](https://github.com/mururu/exenv) - install and manage different Elixir versions * [kiex](https://github.com/taylor/kiex) - install and manage different Elixir versions * [kerl](https://github.com/yrashk/kerl) - install and manage different Erlang versions From ef0db632f766bab446d1d9a5b405b070cb58661d Mon Sep 17 00:00:00 2001 From: Bryan Endersstocker Date: Thu, 17 Mar 2016 11:06:20 -0400 Subject: [PATCH 0416/1761] Clarify sentence in "Module attributes" --- getting-started/module-attributes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 2a05bd2b5..b92166237 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -79,7 +79,7 @@ This section covers built-in attributes. However, attributes can also be used by ## As constants -Elixir developers will often use module attributes to be used as constants: +Elixir developers will often use module attributes as constants: ```elixir defmodule MyServer do From d557a7d606f87540607cdbabb24f436232677d96 Mon Sep 17 00:00:00 2001 From: Bryan Endersstocker Date: Thu, 17 Mar 2016 11:24:51 -0400 Subject: [PATCH 0417/1761] Clean up sentence in "Structs" of Getting Started --- getting-started/structs.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index 0e87864af..5594872e9 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -90,7 +90,7 @@ iex> john.__struct__ User ``` -Notice that we referred to structs as **bare** maps because none of the protocols implemented for maps are available for structs. For example, you can't enumerate nor access a struct: +Notice that we referred to structs as **bare** maps because none of the protocols implemented for maps are available for structs. For example, you can neither enumerate nor access a struct: ```iex iex> john = %User{} From 6c2d80b1f38e47a093f74335b2fdd9eb6d37b97a Mon Sep 17 00:00:00 2001 From: Mauricio Sambarino Date: Fri, 18 Mar 2016 08:02:38 -0300 Subject: [PATCH 0418/1761] fix typo --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 5c27d82e9..534f22f61 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -383,7 +383,7 @@ iex> KV.Registry.create KV.Registry, "shopping" :ok ``` -We will leave it up to your to further explore what Observer provides. Note you can double click any process in the supervision tree to retrieve more information about it, as well as right-click a process to send "a kill signal", a perfect way to emulate failures and see if your supervisor reacts as expected. +We will leave it up to you to further explore what Observer provides. Note you can double click any process in the supervision tree to retrieve more information about it, as well as right-click a process to send "a kill signal", a perfect way to emulate failures and see if your supervisor reacts as expected. At the end of the day, tools like Observer is one of the main reasons you want to always start processes inside supervision trees, even if they are temporary, to ensure they are always reachable and introspectable. From 43d80fd33698dbfad768e5477693f610e7aad6a2 Mon Sep 17 00:00:00 2001 From: Bryan Endersstocker Date: Sat, 19 Mar 2016 11:46:12 -0400 Subject: [PATCH 0419/1761] Make correction in "Sigils" The macro `sigil_r` was incorrectly identified as a function. One could have merely changed the word 'function' to 'macro'. However, the revelation that it is a macro and not a function could pose a distraction and lead to confusion ahead of the final paragraph of the page. Consequently, I chose to remove the word 'function'. --- getting-started/sigils.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index b9a5198df..4cd64de00 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -162,14 +162,14 @@ def convert(...) ## Custom sigils -As hinted at the beginning of this chapter, sigils in Elixir are extensible. In fact, using the sigil `~r/foo/i` is equivalent to calling the `sigil_r` function with a binary and a char list as argument: +As hinted at the beginning of this chapter, sigils in Elixir are extensible. In fact, using the sigil `~r/foo/i` is equivalent to calling `sigil_r` with a binary and a char list as argument: ```iex iex> sigil_r(<<"foo">>, 'i') ~r"foo"i ``` -We can access the documentation for the `~r` sigil via the `sigil_r` function: +We can access the documentation for the `~r` sigil via `sigil_r`: ```iex iex> h sigil_r From d1840172c0aec44cad27570e3cbe6554a941b13d Mon Sep 17 00:00:00 2001 From: Sebastian Duque Date: Tue, 22 Mar 2016 11:52:12 +0000 Subject: [PATCH 0420/1761] Remove adding unnecessary module attribute to KV.Supervisor This seems to be a remnant of b965fdb --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 534f22f61..57266eda8 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -326,7 +326,7 @@ Once we perform those changes, our test suite should fail as there is no bucket In order to use the buckets supervisor in our application, we need to add it as a child of `KV.Supervisor`. Notice we are beginning to have supervisors that supervise other supervisors, forming so-called "supervision trees." -Open up `lib/kv/supervisor.ex`, add an additional module attribute for the buckets supervisor name, and change `init/1` to match the following: +Open up `lib/kv/supervisor.ex` and change `init/1` to match the following: ```elixir def init(:ok) do From 61149e11a0d64bd1b3bd63f42062d11e6de1985e Mon Sep 17 00:00:00 2001 From: Attila Gulyas Date: Fri, 25 Mar 2016 22:35:34 -0700 Subject: [PATCH 0421/1761] Remove empty parentheses from genserver.markdown Make function calls idiomatic and consistent with the rest of the content. --- getting-started/mix-otp/genserver.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 4e832335b..fabefe534 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -55,7 +55,7 @@ defmodule KV.Registry do @doc """ Starts the registry. """ - def start_link() do + def start_link do GenServer.start_link(__MODULE__, :ok, []) end @@ -89,7 +89,7 @@ defmodule KV.Registry do if Map.has_key?(names, name) do {:noreply, names} else - {:ok, bucket} = KV.Bucket.start_link() + {:ok, bucket} = KV.Bucket.start_link {:noreply, Map.put(names, name, bucket)} end end @@ -186,11 +186,11 @@ iex> Process.monitor(pid) #Reference<0.0.0.551> iex> Agent.stop(pid) :ok -iex> flush() +iex> flush {:DOWN, #Reference<0.0.0.551>, :process, #PID<0.66.0>, :normal} ``` -Note `Process.monitor(pid)` returns a unique reference that allows us to match upcoming messages to that monitoring reference. After we stop the agent, we can `flush()` all messages and notice a `:DOWN` message arrived, with the exact reference returned by monitor, notifying that the bucket process exited with reason `:normal`. +Note `Process.monitor(pid)` returns a unique reference that allows us to match upcoming messages to that monitoring reference. After we stop the agent, we can `flush/0` all messages and notice a `:DOWN` message arrived, with the exact reference returned by monitor, notifying that the bucket process exited with reason `:normal`. Let's reimplement the server callbacks to fix the bug and make the test pass. First, we will modify the GenServer state to two dictionaries: one that contains `name -> pid` and another that holds `ref -> name`. Then we need to monitor the buckets on `handle_cast/2` as well as implement a `handle_info/2` callback to handle the monitoring messages. The full server callbacks implementation is shown below: @@ -211,7 +211,7 @@ Let's reimplement the server callbacks to fix the bug and make the test pass. Fi if Map.has_key?(names, name) do {:noreply, {names, refs}} else - {:ok, pid} = KV.Bucket.start_link() + {:ok, pid} = KV.Bucket.start_link ref = Process.monitor(pid) refs = Map.put(refs, ref, name) names = Map.put(names, name, pid) @@ -257,7 +257,7 @@ Links are bi-directional. If you link two process and one of them crashes, the o Returning to our `handle_cast/2` implementation, you can see the registry is both linking and monitoring the buckets: ```elixir -{:ok, pid} = KV.Bucket.start_link() +{:ok, pid} = KV.Bucket.start_link ref = Process.monitor(pid) ``` From 3cf6e0fc8f4520d1b1c99bb37665587d089e4ffa Mon Sep 17 00:00:00 2001 From: Attila Gulyas Date: Fri, 25 Mar 2016 22:46:01 -0700 Subject: [PATCH 0422/1761] Fix broken link I couldn't find the original file, I guess it has been merged with the main Elixir github readme so I replaced it with that. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b2c61558..a003e2df7 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ to your fork and then [submit a **pull request**](https://help.github.com/articles/using-pull-requests/). For a nice wrap-up on how to open a good pull request have a look at the [Elixir contributing -guide](https://github.com/elixir-lang/elixir/blob/master/CONTRIBUTING.md#pull-requests). +guide](https://github.com/elixir-lang/elixir/#contributing). ## License From fb121fe3a1dbd94cc517856538a560129807dc0e Mon Sep 17 00:00:00 2001 From: PJ Hampton Date: Sun, 27 Mar 2016 12:33:05 +0100 Subject: [PATCH 0423/1761] Added new languages and improved grammar. Added requested change. --- learning.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learning.markdown b/learning.markdown index 94837eb70..14f73f135 100644 --- a/learning.markdown +++ b/learning.markdown @@ -69,7 +69,7 @@ This book is a set of recipes grouped by topic that acts as a reference to get i Elixir School -Elixir-School is an open and community driven effort inspired by Twitter’s Scala School. The site’s content is peer-reviewed lessons on various Elixir topics. The lessons are currently available in 8 languages (Chinese, English, Japanese, Portuguese, Russian, Slovak, Spanish and Vietnamese) to make programming Elixir more accessible to non-English speakers. +Elixir-School is an open and community driven effort inspired by Twitter’s Scala School. The site’s content consists of peer-reviewed lessons on various Elixir topics that range in difficulty. The lessons are currently available in over 10 languages to help make programming Elixir more accessible to non-English speakers.
        From 536bc15cecfa00e014d25d7f27557b4d54a96652 Mon Sep 17 00:00:00 2001 From: Charlie Smith Date: Tue, 29 Mar 2016 18:59:04 +1300 Subject: [PATCH 0424/1761] Add reference to capture syntax for anonymous functions Add reference to capture syntax for anonymous functions so that when going through 'Getting started' in order, you don't get curious at Keywords and maps - Nested data structures, which uses the capture syntax. --- getting-started/basic-types.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index d3718d219..f63532081 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -233,6 +233,8 @@ iex> x 42 ``` +Capture syntax `&()`can also be used for creating anonymous functions. This type of syntax will be discussed in Chapter 8. + ## (Linked) Lists Elixir uses square brackets to specify a list of values. Values can be of any type: From ab364d83e3611a30880d63be4115534ed93021b0 Mon Sep 17 00:00:00 2001 From: Charlie Smith Date: Tue, 29 Mar 2016 23:26:19 +1300 Subject: [PATCH 0425/1761] Suggested changes by whatyouhide --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index f63532081..fb1f31302 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -233,7 +233,7 @@ iex> x 42 ``` -Capture syntax `&()`can also be used for creating anonymous functions. This type of syntax will be discussed in Chapter 8. +The capture syntax [`&()`](/docs/stable/elixir/Kernel.SpecialForms.html) can also be used for creating anonymous functions. This type of syntax will be discussed in [Chapter 8](/getting-started/models.html). ## (Linked) Lists From 09965467f402528f6ef5005c986f8c7ff68bcc29 Mon Sep 17 00:00:00 2001 From: Steve-O-Cassels Date: Tue, 29 Mar 2016 15:58:30 +0100 Subject: [PATCH 0426/1761] Fix windows set environment cmd Great project, thank you! The example for setting a session based environment variable for establishing your Elixir environment is incorrect. It uses the `-A` flag which [is for expressions](http://ss64.com/nt/set.html) like setting a variable to the result of '1 + 2' --- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index d53fc3db9..bd94fd7f3 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -255,7 +255,7 @@ $ MIX_ENV=prod mix compile Or on Windows: ```batch -> set /a "MIX_ENV=prod" && mix compile +> set "MIX_ENV=prod" && mix compile ``` ## Exploring From 9ec51cb9489548f80ea0384fb3225feca4960d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 30 Mar 2016 00:57:55 +0200 Subject: [PATCH 0427/1761] Update install.markdown --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 1a146a092..23c751ff4 100644 --- a/install.markdown +++ b/install.markdown @@ -29,7 +29,7 @@ The preferred option for installing Elixir. Choose your operating system and too * Arch Linux (Community repo) * Run: `pacman -S elixir` * openSUSE (and SLES 11 SP3+) - * Add Erlang devel repo: `zypper ar -f obs://devel:languages:erlang/ erlang` + * Add Erlang devel repo: `zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/erlang/openSUSE_Factory/ erlang` * Run: `zypper in elixir` * Gentoo * Run: `emerge --ask dev-lang/elixir` From bd5fd1d30c42410d182043227d9575347d45e57c Mon Sep 17 00:00:00 2001 From: Dan McGuire Date: Thu, 31 Mar 2016 18:33:17 -0500 Subject: [PATCH 0428/1761] Update basic-types.markdown broken link to chapter 8 in subnote --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index fb1f31302..896b13e00 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -233,7 +233,7 @@ iex> x 42 ``` -The capture syntax [`&()`](/docs/stable/elixir/Kernel.SpecialForms.html) can also be used for creating anonymous functions. This type of syntax will be discussed in [Chapter 8](/getting-started/models.html). +The capture syntax [`&()`](/docs/stable/elixir/Kernel.SpecialForms.html) can also be used for creating anonymous functions. This type of syntax will be discussed in [Chapter 8](/getting-started/modules.html). ## (Linked) Lists From 0a9ab1abc15be65699158d5eef37707ab049ef7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 1 Apr 2016 12:15:15 +0200 Subject: [PATCH 0429/1761] Release v1.2.4 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index dfddfddb6..9fbbf1c56 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.2.4,https://github.com/elixir-lang/elixir/releases/download/v1.2.4/Precompiled.zip,release,1 1.2.3,https://github.com/elixir-lang/elixir/releases/download/v1.2.3/Precompiled.zip,release,1 1.2.2,https://github.com/elixir-lang/elixir/releases/download/v1.2.2/Precompiled.zip,release,1 1.2.1,https://github.com/elixir-lang/elixir/releases/download/v1.2.1/Precompiled.zip,release,1 From c50875d1f59660ec29df03f37c532947b9954abc Mon Sep 17 00:00:00 2001 From: Attila Gulyas Date: Mon, 28 Mar 2016 21:17:15 -0700 Subject: [PATCH 0430/1761] Remove empty parens (supervisor-and-application) --- .../mix-otp/supervisor-and-application.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 57266eda8..8fdf2a9e3 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -220,7 +220,7 @@ We have now successfully defined our supervisor which is automatically started ( Remember however that our `KV.Registry` is both linking and monitoring bucket processes in the `handle_cast/2` callback: ```elixir -{:ok, pid} = KV.Bucket.start_link() +{:ok, pid} = KV.Bucket.start_link ref = Process.monitor(pid) ``` @@ -267,7 +267,7 @@ defmodule KV.Bucket.Supervisor do # A simple module attribute that stores the supervisor name @name KV.Bucket.Supervisor - def start_link() do + def start_link do Supervisor.start_link(__MODULE__, :ok, name: @name) end @@ -296,7 +296,7 @@ Run `iex -S mix` so we can give our new supervisor a try: ```iex iex> {:ok, _} = KV.Bucket.Supervisor.start_link {:ok, #PID<0.70.0>} -iex> {:ok, bucket} = KV.Bucket.Supervisor.start_bucket() +iex> {:ok, bucket} = KV.Bucket.Supervisor.start_bucket {:ok, #PID<0.72.0>} iex> KV.Bucket.put(bucket, "eggs", 3) :ok @@ -311,7 +311,7 @@ Let's change the registry to work with the buckets supervisor by rewriting how b if Map.has_key?(names, name) do {:noreply, {names, refs}} else - {:ok, pid} = KV.Bucket.Supervisor.start_bucket() + {:ok, pid} = KV.Bucket.Supervisor.start_bucket ref = Process.monitor(pid) refs = Map.put(refs, ref, name) names = Map.put(names, name, pid) From d62c30eebb6854cefccb0208da62c7ecbe1a0f89 Mon Sep 17 00:00:00 2001 From: Attila Gulyas Date: Tue, 29 Mar 2016 21:49:05 -0700 Subject: [PATCH 0431/1761] Fix typo --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 8fdf2a9e3..6954cc0c5 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -343,7 +343,7 @@ This time we have added a supervisor as child, starting it with no arguments. Re Since we have added more children to the supervisor, it is also important to evaluate if the `:one_for_one` strategy is still correct. One flaw that shows up right away is the relationship between registry and buckets supervisor. If the registry dies, the buckets supervisor must die too, because once the registry dies all information linking the bucket name to the bucket process is lost. If the buckets supervisor is kept alive, it would be impossible to reach those buckets. -We should consider moving to another supervision strategy like `:one_for_all` or `:rest_for_one`. The `:one_for_all` strategy kills and restarts all children whenever one of the children die. This would suit our case but may be too harsh as there is no need to crash the registry once the bucket supervisor dies since the registry supervises every bucket and would be able to clean itself up. That's when the `:rest_for_one` strategy is handy: `:rest_for_one` will only restart the crashed process along side the rest of tree. Let's rewrite our supervision tree to use it: +We should consider moving to another supervision strategy like `:one_for_all` or `:rest_for_one`. The `:one_for_all` strategy kills and restarts all children whenever one of the children die. This would suit our case but may be too harsh as there is no need to crash the registry once the bucket supervisor dies since the registry supervises every bucket and would be able to clean itself up. That's when the `:rest_for_one` strategy is handy: `:rest_for_one` will only restart the crashed process along side the rest of the tree. Let's rewrite our supervision tree to use it: ```elixir def init(:ok) do From 8306d5dd369e50ac8573677d4ec406e8c5fd085c Mon Sep 17 00:00:00 2001 From: Attila Gulyas Date: Tue, 29 Mar 2016 22:13:07 -0700 Subject: [PATCH 0432/1761] Remove empty parens (ets.markdown) --- getting-started/mix-otp/ets.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 140d2d394..f58d8f0e4 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -101,7 +101,7 @@ defmodule KV.Registry do {:ok, _pid} -> {:noreply, {names, refs}} :error -> - {:ok, pid} = KV.Bucket.Supervisor.start_bucket() + {:ok, pid} = KV.Bucket.Supervisor.start_bucket ref = Process.monitor(pid) refs = Map.put(refs, ref, name) :ets.insert(names, {name, pid}) @@ -192,7 +192,7 @@ To fix the failure we just need to make `KV.Registry.create/2` synchronous by us {:ok, pid} -> {:reply, pid, {names, refs}} :error -> - {:ok, pid} = KV.Bucket.Supervisor.start_bucket() + {:ok, pid} = KV.Bucket.Supervisor.start_bucket ref = Process.monitor(pid) refs = Map.put(refs, ref, name) :ets.insert(names, {name, pid}) From 0266974f74f659368c207a39f32c3168f1d57786 Mon Sep 17 00:00:00 2001 From: Yuriy Date: Sat, 2 Apr 2016 11:29:53 +0300 Subject: [PATCH 0433/1761] Fix typo --- getting-started/mix-otp/dependencies-and-umbrella-apps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index d5e748882..63691c2f2 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -277,7 +277,7 @@ In this chapter we have learned more about Mix dependencies and umbrella project In the future, you are going to write applications and you will notice they can be extracted into a concise unit that can be used by different projects. In such cases, using Git or Hex dependencies is the way to go. -Here are a couple questions you can ask yourself when working with dependencies. Start with: does this application makes sense outside this project? +Here are a couple questions you can ask yourself when working with dependencies. Start with: does this application make sense outside this project? * If no, use an umbrella project with umbrella children. * If yes, can this project be shared outside your company / organization? From 8a5a72afa316b3b960f0adbcb3e76edccd09d86b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20J=2E=20Hern=C3=A1ndez?= Date: Tue, 5 Apr 2016 23:20:43 +0200 Subject: [PATCH 0434/1761] Fix typo in supervisor-and-application --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 6954cc0c5..387bb5525 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -356,7 +356,7 @@ We should consider moving to another supervision strategy like `:one_for_all` or end ``` -If the registry worker crashes, both registry and bucket supervisor is restarted. If the bucket supervisor crashes, only the bucket supervisor is restared. +If the registry worker crashes, both registry and bucket supervisor is restarted. If the bucket supervisor crashes, only the bucket supervisor is restarted. There are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check both [`Supervisor`](/docs/stable/elixir/Supervisor.html) and [`Supervisor.Spec`](/docs/stable/elixir/Supervisor.Spec.html) modules. From 9410bf95fbc1a828aaf362d221f38f9fd0adb5d5 Mon Sep 17 00:00:00 2001 From: Abraham Sangha Date: Thu, 7 Apr 2016 18:52:52 -0500 Subject: [PATCH 0435/1761] Update basic-types.markdown This seems much clearer to me. --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 896b13e00..455327306 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -143,7 +143,7 @@ iex> "hellö #{:world}" "hellö world" ``` -Strings can have line breaks in them or introduce them using escape sequences: +Strings can have line breaks in them. You can introduce them using escape sequences: ```iex iex> "hello From 5465f3cf62146133d5aaa9a560170fd6a4176fb8 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Fri, 8 Apr 2016 14:53:14 +0700 Subject: [PATCH 0436/1761] Formatting: add white space after comma (#720) Standardizes the use of comma leaving a white space after it whenever applicable. --- _posts/2013-05-23-elixir-v0-9-0-released.markdown | 6 +++--- _posts/2013-07-13-elixir-v0-10-0-released.markdown | 10 +++++----- _posts/2013-08-08-elixir-design-goals.markdown | 14 +++++++------- ...1-elixir-s-new-continuable-enumerators.markdown | 2 +- _posts/2014-04-21-elixir-v0-13-0-released.markdown | 2 +- crash-course.markdown | 10 +++++----- getting-started/basic-operators.markdown | 8 ++++---- getting-started/basic-types.markdown | 2 +- getting-started/case-cond-and-if.markdown | 2 +- getting-started/modules.markdown | 6 +++--- getting-started/pattern-matching.markdown | 2 +- getting-started/protocols.markdown | 4 ++-- index.html | 2 +- 13 files changed, 35 insertions(+), 35 deletions(-) diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index d9a8a70e1..d4b4861c0 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -55,11 +55,11 @@ A special thanks to [Eric Meadows-Jonsson](https://github.com/ericmj) for implem Elixir v0.9.0 changes its main abstraction for enumeration from iterators to reducers. Before Elixir v0.9.0, when you invoked: ```elixir -Enum.map([1,2,3], fn(x) -> x * x end) +Enum.map([1, 2, 3], fn(x) -> x * x end) #=> [1, 4, 9] ``` -It asked the `Enum.Iterator` protocol for instructions on how to iterate the list `[1,2,3]`. This iteration happened by retrieving each item in the list, one by one, until there were no items left. +It asked the `Enum.Iterator` protocol for instructions on how to iterate the list `[1, 2, 3]`. This iteration happened by retrieving each item in the list, one by one, until there were no items left. This approach posed many problems: @@ -91,7 +91,7 @@ The implementation above works as a simple `reduce` function (also called `fold` ```elixir # Sum all elements in a list -Enumerable.reduce([1,2,3], 0, fn(x, acc) -> x + acc end) +Enumerable.reduce([1, 2, 3], 0, fn(x, acc) -> x + acc end) #=> 6 ``` diff --git a/_posts/2013-07-13-elixir-v0-10-0-released.markdown b/_posts/2013-07-13-elixir-v0-10-0-released.markdown index 14ee6202d..bf8ed2412 100644 --- a/_posts/2013-07-13-elixir-v0-10-0-released.markdown +++ b/_posts/2013-07-13-elixir-v0-10-0-released.markdown @@ -13,17 +13,17 @@ Elixir v0.10.0 is released with support for streams, sets and many improvements The default mechanism for working with collections in Elixir is the `Enum` module. With it, you can map over ranges, lists, sets, dictionaries and any other structure as long as it implements the `Enumerable` protocol: ```elixir -Enum.map([1,2,3], fn(x) -> x * 2 end) -#=> [2,4,6] +Enum.map([1, 2, 3], fn(x) -> x * 2 end) +#=> [2, 4, 6] ``` The `Enum` module performs eager evaluation. Consider the following example: ```elixir -[1,2,3] +[1, 2, 3] |> Enum.take_while(fn(x) -> x < 3 end) |> Enum.map(fn(x) -> x * 2 end) -#=> [2,4] +#=> [2, 4] ``` In the example above, we enumerate the items in list once, taking all elements that are less than 3, and then we enumerate the remaining elements again, multiplying them by two. In order to retrieve the final result, we have created one intermediate list. As we add more operations, more intermediate lists will be generated. @@ -31,7 +31,7 @@ In the example above, we enumerate the items in list once, taking all elements t This approach is simple and efficient for the majority of the cases but, when working with large collections, we can generate many, possibly large, intermediate lists affecting performance. That's one of the problems Streams solve. Let's rewrite the example above using Streams: ```elixir -[1,2,3] +[1, 2, 3] |> Stream.take_while(fn(x) -> x < 3 end) |> Stream.map(fn(x) -> x * 2 end) #=> #Stream.Lazy<...> diff --git a/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown index 6b7b4735a..a261336f7 100644 --- a/_posts/2013-08-08-elixir-design-goals.markdown +++ b/_posts/2013-08-08-elixir-design-goals.markdown @@ -145,7 +145,7 @@ Many language constructs are also inspired by their Erlang counter-parts, like s tuple = { 1, 2, 3 } # Adding two lists -[1,2,3] ++ [4,5,6] +[1, 2, 3] ++ [4, 5, 6] # Case case expr do @@ -161,7 +161,7 @@ maps to Erlang: Tuple = { 1, 2, 3 }. % Adding two lists -[1,2,3] ++ [4,5,6]. +[1, 2, 3] ++ [4, 5, 6]. % Case case Expr of @@ -189,17 +189,17 @@ And much more. Most of the features above provide their own extensibility mechanisms, too. For example, take the `Enum` module. The `Enum` module allow us to enumerate the built-in ranges, lists, sets, etc: ```elixir -list = [1,2,3] +list = [1, 2, 3] Enum.map list, fn(x) -> x * 2 end -#=> [2,4,6] +#=> [2, 4, 6] range = 1..3 Enum.map range, fn(x) -> x * 2 end -#=> [2,4,6] +#=> [2, 4, 6] -set = HashSet.new [1,2,3] +set = HashSet.new [1, 2, 3] Enum.map set, fn(x) -> x * 2 end -#=> [2,4,6] +#=> [2, 4, 6] ``` Not only that, any developer can **extend** the `Enum` module to work with any data type as long as the data type implements [the `Enumerable` protocol](/docs/stable/elixir/Enumerable.html) (protocols in Elixir are based on Clojure's protocol). This is extremely convenient because the developer needs to know only the `Enum` API for enumeration, instead of memorizing specific APIs for sets, lists, dicts, etc. diff --git a/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown b/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown index 15b9ee947..f3e93f664 100644 --- a/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown +++ b/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown @@ -186,7 +186,7 @@ defmodule Interleave do end end -Interleave.interleave([1,2], [:a, :b, :c, :d]) +Interleave.interleave([1, 2], [:a, :b, :c, :d]) #=> [1, :a, 2, :b, :c, :d] ``` diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index 802bc0bed..e441e4e63 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -212,7 +212,7 @@ As in previous Elixir versions, there is also support for a bitstring generator. ```iex iex> pixels = <<213, 45, 132, 64, 76, 32, 76, 0, 0, 234, 32, 15>> iex> for <>, do: {r, g, b} -[{213,45,132}, {64,76,32}, {76,0,0}, {234,32,15}] +[{213, 45, 132}, {64, 76, 32}, {76, 0, 0}, {234, 32, 15}] ``` By default, a comprehension returns a list as a result. However the result of a comprehension can be inserted into different data structures by passing the `:into` option. For example, we can use bitstring generators with the `:into` option to easily remove all spaces in a string: diff --git a/crash-course.markdown b/crash-course.markdown index 6fccb65e0..3872184c6 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -162,13 +162,13 @@ Elixir allows you to omit parentheses in function calls, Erlang does not. Invoking a function from a module uses different syntax. In Erlang, you would write ```erlang -lists:last([1,2]). +lists:last([1, 2]). ``` to invoke the `last` function from the `List` module. In Elixir, use the dot `.` in place of the colon `:` ```elixir -List.last([1,2]) +List.last([1, 2]) ``` **Note**. Since Erlang modules are represented by atoms, you may invoke Erlang functions in Elixir as follows: @@ -526,7 +526,7 @@ sum(1, 2). %=> 3 sum([1], [2]). -%=> [1,2] +%=> [1, 2] sum("a", "b"). %=> "ab" @@ -551,7 +551,7 @@ sum 1, 2 #=> 3 sum [1], [2] -#=> [1,2] +#=> [1, 2] sum "a", "b" #=> "ab" @@ -613,7 +613,7 @@ F([]). %=> "Empty" F({a, b}). -%=> "All your {a,b} are belong to us" +%=> "All your {a, b} are belong to us" ``` **Elixir** diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index b07887f08..e0b297b20 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -12,10 +12,10 @@ In the [previous chapter](/getting-started/basic-types.html), we saw Elixir prov Elixir also provides `++` and `--` to manipulate lists: ```iex -iex> [1,2,3] ++ [4,5,6] -[1,2,3,4,5,6] -iex> [1,2,3] -- [2] -[1,3] +iex> [1, 2, 3] ++ [4, 5, 6] +[1, 2, 3, 4, 5, 6] +iex> [1, 2, 3] -- [2] +[1, 3] ``` String concatenation is done with `<>`: diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 455327306..2e825d324 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -258,7 +258,7 @@ iex> [1, true, 2, false, 3, true] -- [true, false] Throughout the tutorial, we will talk a lot about the head and tail of a list. The head is the first element of a list and the tail is the remainder of a list. They can be retrieved with the functions `hd/1` and `tl/1`. Let's assign a list to a variable and retrieve its head and tail: ```iex -iex> list = [1,2,3] +iex> list = [1, 2, 3] iex> hd(list) 1 iex> tl(list) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 2631ebb47..6bba42184 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -178,7 +178,7 @@ Finally, note `cond` considers any value besides `nil` and `false` to be true: ```iex iex> cond do -...> hd([1,2,3]) -> +...> hd([1, 2, 3]) -> ...> "1 is considered as true" ...> end "1 is considered as true" diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 2fea7fbfe..cf14a6d67 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -116,9 +116,9 @@ defmodule Math do end end -IO.puts Math.zero?(0) #=> true -IO.puts Math.zero?(1) #=> false -IO.puts Math.zero?([1,2,3]) #=> ** (FunctionClauseError) +IO.puts Math.zero?(0) #=> true +IO.puts Math.zero?(1) #=> false +IO.puts Math.zero?([1, 2, 3]) #=> ** (FunctionClauseError) ``` Giving an argument that does not match any of the clauses raises an error. diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 9ec5e6b47..bf7969525 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -178,7 +178,7 @@ iex> _ Although pattern matching allows us to build powerful constructs, its usage is limited. For instance, you cannot make function calls on the left side of a match. The following example is invalid: ```iex -iex> length([1,[2],3]) = 3 +iex> length([1, [2], 3]) = 3 ** (CompileError) iex:1: illegal pattern ``` diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 0eab71506..7ba2c82c3 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -167,7 +167,7 @@ Elixir ships with some built-in protocols. In previous chapters, we have discuss ```iex iex> Enum.map [1, 2, 3], fn(x) -> x * 2 end -[2,4,6] +[2, 4, 6] iex> Enum.reduce 1..3, 0, fn(x, acc) -> x + acc end 6 ``` @@ -205,7 +205,7 @@ The `Inspect` protocol is the protocol used to transform any data structure into ```iex iex> {1, 2, 3} -{1,2,3} +{1, 2, 3} iex> %User{} %User{name: "john", age: 27} ``` diff --git a/index.html b/index.html index 787da6cbc..6a4a79211 100644 --- a/index.html +++ b/index.html @@ -168,7 +168,7 @@

        Erlang compatible

        {% highlight iex %} iex> :crypto.md5("Using crypto from Erlang OTP") -<<192,223,75,115,...>> +<<192, 223, 75, 115, ...>> {% endhighlight %}

        To learn more about Elixir, check our getting started guide. We also have online documentation available and a Crash Course for Erlang developers.

        From 0c87a4cdeea40f5d89cf2387269627d0c93865ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 8 Apr 2016 17:49:42 +0200 Subject: [PATCH 0437/1761] Add Elixir Forum to home page --- _includes/important-links.html | 3 ++- getting-started/introduction.markdown | 9 +++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 20b92615b..697d06523 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -3,7 +3,8 @@

        Join the Community

        • #elixir-lang on freenode IRC
        • Elixir on Slack
        • -
        • elixir-talk mailing list (questions)
        • +
        • Elixir Forum
        • +
        • elixir-talk mailing list
        • @elixirlang on Twitter
        • Meetups around the world
        • Wiki with events, resources and talks organized by the community
        • diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 1a4544da8..2311ee56a 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -64,16 +64,13 @@ Later on we will learn how to compile Elixir code (in [Chapter 8](/getting-start ## Asking questions -When going through this getting started guide, it is common to have questions, after all, that is part of the learning process! There are many places you could ask them to learn more about Elixir. The official places are: +When going through this getting started guide, it is common to have questions, after all, that is part of the learning process! There are many places you could ask them to learn more about Elixir: * [#elixir-lang on freenode IRC](irc://irc.freenode.net/elixir-lang) - * [elixir-talk mailing list](https://groups.google.com/group/elixir-lang-talk) - -However there are many places operated by the community, such as: - * [Elixir on Slack](https://elixir-slackin.herokuapp.com/) - * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) * [Elixir Forum](http://elixirforum.com) + * [elixir-talk mailing list](https://groups.google.com/group/elixir-lang-talk) + * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) When asking questions, remember these two tips: From a54b96e0198dfc5ab09ed22c8e58ba95c9dcfdc9 Mon Sep 17 00:00:00 2001 From: Theo Pack Date: Tue, 12 Apr 2016 19:55:56 +0200 Subject: [PATCH 0438/1761] Add Visual Studio extension for Elixir (#723) I just saw that there is no extension for Visual Studio Code users. --- _includes/code-editor-support.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/code-editor-support.html b/_includes/code-editor-support.html index 673404fe3..336472860 100644 --- a/_includes/code-editor-support.html +++ b/_includes/code-editor-support.html @@ -8,5 +8,6 @@

          Code editor support

        • GtkSourceView (gedit)
        • Atom Package
        • IntelliJ Elixir
        • +
        • Visual Studio Elixir
        From ee0ea1cab1497dd5c692cf0ab201b83d0f55b7ac Mon Sep 17 00:00:00 2001 From: Allon Hadaya Date: Thu, 14 Apr 2016 15:41:25 -0400 Subject: [PATCH 0439/1761] Modify Math.zero? to specifically process integers. Include an example demonstrating a clause failure on floats. (#722) (#724) --- getting-started/modules.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index cf14a6d67..0ec089c07 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -111,7 +111,7 @@ defmodule Math do true end - def zero?(x) when is_number(x) do + def zero?(x) when is_integer(x) do false end end @@ -119,6 +119,7 @@ end IO.puts Math.zero?(0) #=> true IO.puts Math.zero?(1) #=> false IO.puts Math.zero?([1, 2, 3]) #=> ** (FunctionClauseError) +IO.puts Math.zero?(0.0) #=> ** (FunctionClauseError) ``` Giving an argument that does not match any of the clauses raises an error. @@ -128,7 +129,7 @@ Similar to constructs like `if`, named functions support both `do:` and `do`/`en ```elixir defmodule Math do def zero?(0), do: true - def zero?(x) when is_number(x), do: false + def zero?(x) when is_integer(x), do: false end ``` From b4e58bbc85379026a96bf3bd60b4605d612b2b60 Mon Sep 17 00:00:00 2001 From: Alexander Skiba Date: Sat, 16 Apr 2016 04:51:57 +0700 Subject: [PATCH 0440/1761] Fix typo in ets.markdown (#725) --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index f58d8f0e4..61436b081 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -226,7 +226,7 @@ According to the failure message, we are expecting that the bucket no longer exi Unfortunately this time we cannot simply change `handle_info/2`, the operation responsible for cleaning the ETS table, to a synchronous operation. Instead we need to find a way to guarantee the registry has processed the `:DOWN` notification sent when the bucket crashed. -An easy way to do so is by sending a synchronous request to the registry: because messages are processed in order, if the registry replies to a request sent after the `Agent.stop` call, it means it the `:DOWN` message has been processed. Let's do so by creating a "bogus" bucket, which is a synchronous request, after `Agent.stop` in both tests: +An easy way to do so is by sending a synchronous request to the registry: because messages are processed in order, if the registry replies to a request sent after the `Agent.stop` call, it means that the `:DOWN` message has been processed. Let's do so by creating a "bogus" bucket, which is a synchronous request, after `Agent.stop` in both tests: ```elixir From 041c4177fd5421f894edfb2ac4bdd3d25b4a7d99 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 18 Apr 2016 10:15:51 +0200 Subject: [PATCH 0441/1761] Fix the output of some examples in the "Case, cond and if chapter" (#729) --- getting-started/case-cond-and-if.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 6bba42184..628b6ea5b 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -251,7 +251,7 @@ One thing to keep in mind when using `do/end` blocks is they are always bound to iex> is_number if true do ...> 1 + 2 ...> end -** (RuntimeError) undefined function: if/1 +** (CompileError) undefined function: is_number/2 ``` Would be parsed as: @@ -260,10 +260,10 @@ Would be parsed as: iex> is_number(if true) do ...> 1 + 2 ...> end -** (RuntimeError) undefined function: if/1 +** (CompileError) undefined function: is_number/2 ``` -Which leads to an undefined function error as Elixir attempts to invoke `if/1`. Adding explicit parentheses is enough to resolve the ambiguity: +which leads to an undefined function error as Elixir attempts to invoke `is_number/1`, but passing it *two* arguments (the `if true` expression - which would throw an undefined function error itself as `if` needs a second argument, the `do/end` block - and the `do/end` block). Adding explicit parentheses is enough to resolve the ambiguity: ```iex iex> is_number(if true do From 81e725c9645e2eebba84762e48af6014a3b54782 Mon Sep 17 00:00:00 2001 From: Alexander Skiba Date: Mon, 18 Apr 2016 15:51:15 +0700 Subject: [PATCH 0442/1761] Fix typo in task-and-gen-tcp.markdown (#728) --- getting-started/mix-otp/task-and-gen-tcp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 056625598..a0a82f9e3 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -196,7 +196,7 @@ This is similar to the mistake we made when we called `KV.Bucket.start_link/0` s The code above would have the same flaw: if we link the `serve(client)` task to the acceptor, a crash when serving a request would bring the acceptor, and consequently all other connections, down. -We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that `Task` already come with a solution: a simple one for one supervisor with temporary workers that we can just use in our supervision tree! +We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that `Task` already comes with a solution: a simple one for one supervisor with temporary workers that we can just use in our supervision tree! Let's change `start/2` once again, to add a supervisor to our tree: From 558ce5ea04be639a060a8bca1c885e7f9b4770aa Mon Sep 17 00:00:00 2001 From: Michael Terry Date: Tue, 19 Apr 2016 00:24:48 -0700 Subject: [PATCH 0443/1761] Fix typo (#730) Could be also fixed by: "Now all data types (including structs) in which we have not implemented the Blank protocol will be considered non-blank. --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 7ba2c82c3..4cdd466bb 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -159,7 +159,7 @@ defimpl Blank, for: Any do end ``` -Now all data types (including structs) that we have not implemented the `Blank` protocol will be considered non-blank. In contrast to `@derive`, falling back to `Any` is opt-out: all data types get a pre-defined behaviour unless they provide their own implementation of the protocol. Which technique is best depends on the use case but, given Elixir developers prefer explicit over implicit, you may see many libraries pushing towards the `@derive` approach. +Now all data types (including structs) that have not implemented the `Blank` protocol will be considered non-blank. In contrast to `@derive`, falling back to `Any` is opt-out: all data types get a pre-defined behaviour unless they provide their own implementation of the protocol. Which technique is best depends on the use case but, given Elixir developers prefer explicit over implicit, you may see many libraries pushing towards the `@derive` approach. ## Built-in protocols From aab2b9aace9252437d81d308ff481841ee190e0c Mon Sep 17 00:00:00 2001 From: eksperimental Date: Tue, 19 Apr 2016 16:31:45 -0500 Subject: [PATCH 0444/1761] Add space around vertical bar (#733) --- ...4-a-peek-inside-elixir-s-parallel-compiler.markdown | 8 ++++---- _posts/2013-05-23-elixir-v0-9-0-released.markdown | 4 ++-- ...12-11-elixir-s-new-continuable-enumerators.markdown | 2 +- crash-course.markdown | 4 ++-- getting-started/basic-types.markdown | 2 +- .../meta/domain-specific-languages.markdown | 2 +- getting-started/mix-otp/agent.markdown | 2 +- getting-started/pattern-matching.markdown | 6 +++--- getting-started/recursion.markdown | 10 +++++----- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown index 06a1c6e19..05d678a0e 100644 --- a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown +++ b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown @@ -14,7 +14,7 @@ The idea of the parallel compiler is very simple: for each file we want to compi In Elixir, we could write this code as follows: - def spawn_compilers([current|files], output) do + def spawn_compilers([current | files], output) do parent = Process.self() child = spawn_link(fn -> :elixir_compiler.file_to_path(current, output) @@ -32,7 +32,7 @@ In Elixir, we could write this code as follows: :done end -In the first line, we define a function named `spawn_compilers` that receives two arguments, the first is a list of files to compile and the second is a string telling us where to write the compiled file. The first argument is represented as a list with head and tail (`[current|files]`) where the top of the list is assigned to `current` and the remaining items to `files`. If the list is empty, the first clause of `spawn_compilers` is not going to match, the clause `spawn_compilers([], _output)` defined at the end will instead. +In the first line, we define a function named `spawn_compilers` that receives two arguments, the first is a list of files to compile and the second is a string telling us where to write the compiled file. The first argument is represented as a list with head and tail (`[current | files]`) where the top of the list is assigned to `current` and the remaining items to `files`. If the list is empty, the first clause of `spawn_compilers` is not going to match, the clause `spawn_compilers([], _output)` defined at the end will instead. Inside `spawn_compilers`, we first retrieve the PID of the current process with `Process.self` (remember we are talking about Erlang processes/actors and not OS processes) and then proceed to spawn a new process to execute the given function in parallel. Spawning a new process is done with the `spawn_link` function. @@ -121,13 +121,13 @@ Notice that we have two small additions. First we store the `:elixir_parent_comp Second, our main process can now receive a new `{ :waiting, child, module }` message, so we need to extend it to account for those messages. Not only that, we need to control which PIDs we have spawned so we can notify them whenever a new module is compiled, forcing us to add a new argument to the `spawn_compilers` function. `spawn_compilers` would then be rewritten as follows: - def spawn_compilers([current|files], output, stack) do + def spawn_compilers([current | files], output, stack) do parent = Process.self() child = spawn_link(fn -> :elixir_compiler.file_to_path(current, output) send parent, { :compiled, Process.self() } end) - wait_for_messages(files, output, [child|stack]) + wait_for_messages(files, output, [child | stack]) end # No more files and stack is empty, we are done diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index d4b4861c0..0389135f6 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -77,7 +77,7 @@ defimpl Enumerable, for: List do do_reduce(list, acc, fun) end - defp do_reduce([h|t], acc, fun) do + defp do_reduce([h | t], acc, fun) do do_reduce(t, fun.(h, acc), fun) end @@ -101,7 +101,7 @@ The `Enum.map/2` we have used above is now implemented in terms of this reducing defmodule Enum do def map(collection, fun) do Enumerable.reduce(collection, [], fn(x, acc) -> - [fun.(x, acc)|acc] + [fun.(x, acc) | acc] end) |> reverse end end diff --git a/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown b/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown index f3e93f664..9a0670d9f 100644 --- a/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown +++ b/_posts/2013-12-11-elixir-s-new-continuable-enumerators.markdown @@ -152,7 +152,7 @@ function. ```elixir defmodule Interleave do def interleave(a, b) do - step = fn x, acc -> { :suspend, [x|acc] } end + step = fn x, acc -> { :suspend, [x | acc] } end af = &Enumerable.reduce(a, &1, step) bf = &Enumerable.reduce(b, &1, step) do_interleave(af, bf, []) |> :lists.reverse() diff --git a/crash-course.markdown b/crash-course.markdown index 3872184c6..553f92084 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -461,7 +461,7 @@ Pattern matching in Elixir is based on Erlang's implementation and in general is **Erlang** ```erlang -loop_through([H|T]) -> +loop_through([H | T]) -> io:format('~p~n', [H]), loop_through(T); @@ -472,7 +472,7 @@ loop_through([]) -> **Elixir** ```elixir -def loop_through([h|t]) do +def loop_through([h | t]) do IO.inspect h loop_through t end diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 2e825d324..d699feafc 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -348,7 +348,7 @@ What is the difference between lists and tuples? Lists are stored in memory as linked lists, meaning that each element in a list holds its value and points to the following element until the end of the list is reached. We call each pair of value and pointer a **cons cell**: ```iex -iex> list = [1|[2|[3|[]]]] +iex> list = [1 | [2 | [3 | []]]] [1, 2, 3] ``` diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index 849aeb423..66c714bbc 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -165,7 +165,7 @@ defmodule TestCase do function_name = String.to_atom("test " <> description) quote do # Prepend the newly defined test to the list of tests - @tests [unquote(function_name)|@tests] + @tests [unquote(function_name) | @tests] def unquote(function_name)(), do: unquote(block) end end diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 4e984377f..478fabdb2 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -40,7 +40,7 @@ And play a bit with agents: ```iex iex> {:ok, agent} = Agent.start_link fn -> [] end {:ok, #PID<0.57.0>} -iex> Agent.update(agent, fn list -> ["eggs"|list] end) +iex> Agent.update(agent, fn list -> ["eggs" | list] end) :ok iex> Agent.get(agent, fn list -> list end) ["eggs"] diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index bf7969525..8113d872a 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -102,7 +102,7 @@ iex> tail Similar to the `hd/1` and `tl/1` functions, we can't match an empty list with a head and tail pattern: ```iex -iex> [h|t] = [] +iex> [h | t] = [] ** (MatchError) no match of right hand side value: [] ``` @@ -111,7 +111,7 @@ The `[head | tail]` format is not only used on pattern matching but also for pre ```iex iex> list = [1, 2, 3] [1, 2, 3] -iex> [0|list] +iex> [0 | list] [0, 1, 2, 3] ``` @@ -162,7 +162,7 @@ iex> {x, x} = {1, 2} In some cases, you don't care about a particular value in a pattern. It is a common practice to bind those values to the underscore, `_`. For example, if only the head of the list matters to us, we can assign the tail to underscore: ```iex -iex> [h|_] = [1, 2, 3] +iex> [h | _] = [1, 2, 3] [1, 2, 3] iex> h 1 diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index a4eccf56f..103411020 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -56,7 +56,7 @@ Let's now see how we can use the power of recursion to sum a list of numbers: ```elixir defmodule Math do - def sum_list([head|tail], accumulator) do + def sum_list([head | tail], accumulator) do sum_list(tail, head + accumulator) end @@ -68,9 +68,9 @@ end IO.puts Math.sum_list([1, 2, 3], 0) #=> 6 ``` -We invoke `sum_list` with the list `[1, 2, 3]` and the initial value `0` as arguments. We will try each clause until we find one that matches according to the pattern matching rules. In this case, the list `[1, 2, 3]` matches against `[head|tail]` which binds `head` to `1` and `tail` to `[2, 3]`; `accumulator` is set to `0`. +We invoke `sum_list` with the list `[1, 2, 3]` and the initial value `0` as arguments. We will try each clause until we find one that matches according to the pattern matching rules. In this case, the list `[1, 2, 3]` matches against `[head | tail]` which binds `head` to `1` and `tail` to `[2, 3]`; `accumulator` is set to `0`. -Then, we add the head of the list to the accumulator `head + accumulator` and call `sum_list` again, recursively, passing the tail of the list as its first argument. The tail will once again match `[head|tail]` until the list is empty, as seen below: +Then, we add the head of the list to the accumulator `head + accumulator` and call `sum_list` again, recursively, passing the tail of the list as its first argument. The tail will once again match `[head | tail]` until the list is empty, as seen below: ```elixir sum_list [1, 2, 3], 0 @@ -87,8 +87,8 @@ What if we instead want to double all of the values in our list? ```elixir defmodule Math do - def double_each([head|tail]) do - [head * 2|double_each(tail)] + def double_each([head | tail]) do + [head * 2 | double_each(tail)] end def double_each([]) do From a01df59a1909be1e74ec18bc08de674ac31fe9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 20 Apr 2016 23:17:24 +0200 Subject: [PATCH 0445/1761] Revert "Remove sublime recommendation due to process leak" This reverts commit caf810abb417a345d0672282156bcc7cb10a9583. --- _includes/code-editor-support.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/code-editor-support.html b/_includes/code-editor-support.html index 336472860..9fbf98145 100644 --- a/_includes/code-editor-support.html +++ b/_includes/code-editor-support.html @@ -4,6 +4,7 @@

        Code editor support

      • Emacs Mode
      • Alchemist (Emacs Elixir Tooling)
      • TextMate / Sublime Text Bundle
      • +
      • Sublime Plugin
      • Vim Elixir
      • GtkSourceView (gedit)
      • Atom Package
      • From 113a9a55bef61cbd6dc0d2dc82fb279912a722b7 Mon Sep 17 00:00:00 2001 From: johann Date: Sat, 23 Apr 2016 18:15:23 +0200 Subject: [PATCH 0446/1761] Fix output in distributed tasks section (#735) also an unused variable warning in routing layer code --- .../mix-otp/distributed-tasks-and-configuration.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 4e4e59d4e..4a3020028 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -145,7 +145,7 @@ Our first distributed task simply retrieves the name of the node the task is run iex> task = Task.Supervisor.async {KV.RouterTasks, :"foo@computer-name"}, Kernel, :node, [] %Task{pid: #PID<12467.88.0>, ref: #Reference<0.0.0.400>} iex> Task.await(task) -{:ok, :"foo@computer-name"} +:"foo@computer-name" ``` The difference is that anonymous functions requires the target node to have exactly the same code version as the caller. Using module, function and arguments is more robust because you only need to find a function with matching arity in the given module. @@ -168,7 +168,7 @@ defmodule KV.Router do # Try to find an entry in the table or raise entry = - Enum.find(table, fn {enum, node} -> + Enum.find(table, fn {enum, _node} -> first in enum end) || no_entry_error(bucket) From 972c9e6e3ffdcd06797c43a36d7129432336b6e5 Mon Sep 17 00:00:00 2001 From: bkoltai Date: Sun, 24 Apr 2016 10:32:31 -0700 Subject: [PATCH 0447/1761] Change `1.2-dev` references to `1.2` --- getting-started/mix-otp/dependencies-and-umbrella-apps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 63691c2f2..209d201dd 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -159,7 +159,7 @@ defmodule KVServer.Mixfile do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.2-dev", + elixir: "~> 1.2", build_embedded: Mix.env == :prod, start_permanent: Mix.env == :prod, deps: deps] From d91dd5a2e69e0c7cc9ae6d42c9e613ea2234851b Mon Sep 17 00:00:00 2001 From: Cleaver Barnes Date: Mon, 25 Apr 2016 17:23:50 -0400 Subject: [PATCH 0448/1761] Fix hash link to do/end blocks (#737) URL fragment was incorrect. --- getting-started/modules.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 0ec089c07..54b8e935b 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -124,7 +124,7 @@ IO.puts Math.zero?(0.0) #=> ** (FunctionClauseError) Giving an argument that does not match any of the clauses raises an error. -Similar to constructs like `if`, named functions support both `do:` and `do`/`end` block syntax, as [we learned `do`/`end` is just a convenient syntax for the keyword list format](/getting-started/case-cond-and-if.html#do-end-blocks). For example, we can edit `math.exs` to look like this: +Similar to constructs like `if`, named functions support both `do:` and `do`/`end` block syntax, as [we learned `do`/`end` is just a convenient syntax for the keyword list format](/getting-started/case-cond-and-if.html#doend-blocks). For example, we can edit `math.exs` to look like this: ```elixir defmodule Math do From 436afa2afca7f61add6942b031dd449720df9237 Mon Sep 17 00:00:00 2001 From: Vikram Ramakrishnan Date: Fri, 29 Apr 2016 03:36:59 -0400 Subject: [PATCH 0449/1761] add semicolon for js (#740) --- getting-started/recursion.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 103411020..8d0fb70ed 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -13,7 +13,7 @@ Due to immutability, loops in Elixir (as in any functional programming language) ```javascript for(i = 0; i < array.length; i++) { - array[i] = array[i] * 2 + array[i] = array[i] * 2; } ``` From 4e26d946af2c5ab040737fe94b4ae72458af24e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 30 Apr 2016 13:46:27 +0200 Subject: [PATCH 0450/1761] Release v1.2.5 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 9fbbf1c56..eadc5ce70 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.2.5,https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip,release,1 1.2.4,https://github.com/elixir-lang/elixir/releases/download/v1.2.4/Precompiled.zip,release,1 1.2.3,https://github.com/elixir-lang/elixir/releases/download/v1.2.3/Precompiled.zip,release,1 1.2.2,https://github.com/elixir-lang/elixir/releases/download/v1.2.2/Precompiled.zip,release,1 From 583c0407eddf6a2a314ffb05c6bcd31ad5643d55 Mon Sep 17 00:00:00 2001 From: Tijn Date: Thu, 5 May 2016 09:21:41 +0200 Subject: [PATCH 0451/1761] the send command returns the tuple, not the #PID (#742) --- getting-started/processes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 726ee21f6..3432de01c 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -209,7 +209,7 @@ At first, the process map has no keys, so sending a `:get` message and then flus ```iex iex> send pid, {:put, :hello, :world} -#PID<0.62.0> +{:put, :hello, :world} iex> send pid, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} iex> flush From b8bfb12f9635d45f47fcedf2efd6b66f7c58f3af Mon Sep 17 00:00:00 2001 From: Shia Date: Mon, 9 May 2016 23:15:57 +0900 Subject: [PATCH 0452/1761] fix typo miss (#743) --- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index bd94fd7f3..a9ecc5564 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -242,7 +242,7 @@ def project do end ``` -When you compile your source code, Elixir compiles artifacts to the `_build` directory. However, in many occasions to avoid unecessary copying, Elixir will create filesystem links from `_build` to actual source files. When true, `:build_embedded` disables this behaviour as it aims to provide everything you need to run your application inside `_build`. +When you compile your source code, Elixir compiles artifacts to the `_build` directory. However, in many occasions to avoid unnecessary copying, Elixir will create filesystem links from `_build` to actual source files. When true, `:build_embedded` disables this behaviour as it aims to provide everything you need to run your application inside `_build`. Similarly, when true, the `:start_permanent` option starts your application in permanent mode, which means the Erlang VM will crash if your application's supervision tree shuts down. Notice we don't want this behaviour in dev and test because it is useful to keep the VM instance running in those environments for troubleshooting purposes. From e35fbace6a056326efcd10e22f4e8b21f20c97f8 Mon Sep 17 00:00:00 2001 From: Myron Marston Date: Tue, 10 May 2016 15:13:55 -0700 Subject: [PATCH 0453/1761] Clarify semantics of `after`. (#744) * Clarify semantics of `after`. See https://groups.google.com/forum/#!topic/elixir-lang-core/NWvFwUWo2QQ for what I was confused about. * Add clarification about file process linking. --- getting-started/try-catch-and-rescue.markdown | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 2ca77f1a3..42db96cdb 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -159,7 +159,7 @@ It is exactly this supervision system that makes constructs like `try/catch` and ## After -Sometimes it's necessary to ensure that a resource is cleaned up after some action that could potentially raise an error. The `try/after` construct allows you to do that. For example, we can open a file and guarantee it will be closed (even if something goes wrong) with a `try/after` block: +Sometimes it's necessary to ensure that a resource is cleaned up after some action that could potentially raise an error. The `try/after` construct allows you to do that. For example, we can open a file and use an `after` clause to close it--even if something goes wrong: ```iex iex> {:ok, file} = File.open "sample", [:utf8, :write] @@ -172,6 +172,14 @@ iex> try do ** (RuntimeError) oops, something went wrong ``` +The `after` clause will be executed regardless of whether or not the +tried block succeeds. Note, however, that if a linked process exits, +this process will exit and the `after` clause will not get run. Thus, +`after` provides only a soft guarantee. In this case, `after` works just +fine, because the opened file is also linked to the current process and +will always get closed if the current process crashes, independent of the +`after` clause. + Sometimes you may want to wrap the entire body of a function in a `try` construct, often to guarantee some code will be executed afterwards. In such cases, Elixir allows you to omit the `try` line: ```iex From 173a34de2dd273304a8836a9d3bad11ecdea34f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 11 May 2016 00:16:08 +0200 Subject: [PATCH 0454/1761] Update try-catch-and-rescue.markdown --- getting-started/try-catch-and-rescue.markdown | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 42db96cdb..0cbbf66f0 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -172,13 +172,9 @@ iex> try do ** (RuntimeError) oops, something went wrong ``` -The `after` clause will be executed regardless of whether or not the -tried block succeeds. Note, however, that if a linked process exits, -this process will exit and the `after` clause will not get run. Thus, -`after` provides only a soft guarantee. In this case, `after` works just -fine, because the opened file is also linked to the current process and -will always get closed if the current process crashes, independent of the -`after` clause. +The `after` clause will be executed regardless of whether or not the tried block succeeds. Note, however, that if a linked process exits, +this process will exit and the `after` clause will not get run. Thus `after` provides only a soft guarantee. Luckily, files in Elixir are also linked to the current processes and therefore they will always get closed if the current process crashes, independent of the +`after` clause. You will find the same to be true for other resources like ETS tables, sockets, ports and more. Sometimes you may want to wrap the entire body of a function in a `try` construct, often to guarantee some code will be executed afterwards. In such cases, Elixir allows you to omit the `try` line: From c31d12a41936fa0a22b46f44d5e23bb4ab300813 Mon Sep 17 00:00:00 2001 From: Erol Fornoles Date: Fri, 13 May 2016 14:58:28 +0800 Subject: [PATCH 0455/1761] Fix typo in Getting Started: GenServer (#746) --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index fabefe534..4e425ce5b 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -147,7 +147,7 @@ end Our test should pass right out of the box! -We don't need to explictly shut down the registry because it will receive a `:shutdown` signal when our test finishes. While this solution is ok for tests, if there is a need to stop a `GenServer` as part of the application logic, one can use the `GenServer.stop/1` function: +We don't need to explicitly shut down the registry because it will receive a `:shutdown` signal when our test finishes. While this solution is ok for tests, if there is a need to stop a `GenServer` as part of the application logic, one can use the `GenServer.stop/1` function: ```elixir ## Client API From 5dcd39c06ae105f2677996ed474690c77c42d2eb Mon Sep 17 00:00:00 2001 From: Ryan Bigg Date: Fri, 13 May 2016 17:09:12 +1000 Subject: [PATCH 0456/1761] Use %{} instead of Map.new in genserver docs (#745) I am not sure why we're using `Map.new` here instead of `%{}`. On the previous page we're using `%{}`, but here we're using `Map.new` for apparently no reason at all. --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 4e425ce5b..7cb41b2b8 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -24,7 +24,7 @@ OK Since agents are processes, each bucket has a process identifier (pid) but it doesn't have a name. We have learned about the name registry [in the Process chapter](/getting-started/processes.html) and you could be inclined to solve this problem by using such registry. For example, we could create a bucket as: ```iex -iex> Agent.start_link(fn -> Map.new end, name: :shopping) +iex> Agent.start_link(fn -> %{} end, name: :shopping) {:ok, #PID<0.43.0>} iex> KV.Bucket.put(:shopping, "milk", 1) :ok From 72fba3ec5825bf75b8282c4b4e0cca11899e89c1 Mon Sep 17 00:00:00 2001 From: Artur Cygan Date: Mon, 16 May 2016 23:55:13 +0200 Subject: [PATCH 0457/1761] Update install.markdown (#749) Previous description suggested that it always happens that binaries are missing from path. --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 23c751ff4..545f0fa36 100644 --- a/install.markdown +++ b/install.markdown @@ -101,7 +101,7 @@ After Erlang is installed, you should be able to open up the command line (or co Erlang/OTP 18 (erts-7) [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false] -Notice that depending on how you installed Erlang, Erlang binaries won't be available in your PATH. Be sure to have Erlang binaries in your [PATH](https://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! +Notice that depending on how you installed Erlang, Erlang binaries might not be available in your PATH. Be sure to have Erlang binaries in your [PATH](https://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! ## Setting PATH environment variable From 5c79347849d82833617c10b945878261bdd0c010 Mon Sep 17 00:00:00 2001 From: Benjamin Fine Date: Sat, 21 May 2016 00:44:35 -0600 Subject: [PATCH 0458/1761] Typo in mix-otp/genserver (#751) Updated the arity to GenServer.start_link/3 --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 7cb41b2b8..2d72b6862 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -96,7 +96,7 @@ defmodule KV.Registry do end ``` -The first function is `start_link/0`, which starts a new GenServer passing three arguments: +The first function is `start_link/3`, which starts a new GenServer passing three arguments: 1. The module where the server callbacks are implemented, in this case `__MODULE__`, meaning the current module From 85f854dc9dc581b75cf70305335728aec820d2e0 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 29 May 2016 00:27:00 -0700 Subject: [PATCH 0459/1761] Whatsapp -> WhatsApp (#755) --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 6a4a79211..54f6655ce 100644 --- a/index.html +++ b/index.html @@ -164,7 +164,7 @@

        Interactive development

        Erlang compatible

        -

        Elixir runs on the Erlang VM giving developers complete access to Erlang’s ecosystem, used by companies like Heroku, Whatsapp, Klarna, Basho and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

        +

        Elixir runs on the Erlang VM giving developers complete access to Erlang’s ecosystem, used by companies like Heroku, WhatsApp, Klarna, Basho and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

        {% highlight iex %} iex> :crypto.md5("Using crypto from Erlang OTP") From 8798519822b8e097cfafafc4e41d57ece30a1ed0 Mon Sep 17 00:00:00 2001 From: Collin Smith Date: Sun, 29 May 2016 02:36:50 -0500 Subject: [PATCH 0460/1761] Update 'case, cond, and if' page (#754) It looks like something got mixed up here. I think this is the clearest option to fix it, but it could also say something like "`if` needs two arguments - the conditional expression and the `do/end` block". --- getting-started/case-cond-and-if.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 628b6ea5b..86673237f 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -263,7 +263,7 @@ iex> is_number(if true) do ** (CompileError) undefined function: is_number/2 ``` -which leads to an undefined function error as Elixir attempts to invoke `is_number/1`, but passing it *two* arguments (the `if true` expression - which would throw an undefined function error itself as `if` needs a second argument, the `do/end` block - and the `do/end` block). Adding explicit parentheses is enough to resolve the ambiguity: +which leads to an undefined function error as Elixir attempts to invoke `is_number/1`, but passing it *two* arguments (the `if true` expression - which would throw an undefined function error itself as `if` needs a second argument - the `do/end` block). Adding explicit parentheses is enough to resolve the ambiguity: ```iex iex> is_number(if true do From a2af81ce6ba4b9d8c7ac8077636b1cbb236fc6a0 Mon Sep 17 00:00:00 2001 From: Greg Pluta Date: Sun, 29 May 2016 16:58:16 +0200 Subject: [PATCH 0461/1761] Fix 'getting-started' link to pipe operator documentation (#756) --- getting-started/enumerables-and-streams.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index b6aaeeb7a..b072e598f 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -62,7 +62,7 @@ iex> Enum.sum(Enum.filter(Enum.map(1..100_000, &(&1 * 3)), odd?)) 7500000000 ``` -Find more about the pipe operator [by reading its documentation](/docs/stable/elixir/Kernel.html#%7C>/2). +Find more about the pipe operator [by reading its documentation](/docs/stable/elixir/Kernel.html#%7C%3E/2). ## Streams From 112f0adb69ef42e3ac3b822518049d4fb3ae0e2e Mon Sep 17 00:00:00 2001 From: Gavin Sinclair Date: Mon, 30 May 2016 15:09:27 +1000 Subject: [PATCH 0462/1761] Update enumerables-and-streams.markdown (#757) Punctuation; removed two words which are unnecessary and are incorrect English. --- getting-started/enumerables-and-streams.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index b072e598f..70ba77fc7 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -31,7 +31,7 @@ iex> Enum.reduce(1..3, 0, &+/2) The functions in the Enum module are limited to, as the name says, enumerating values in data structures. For specific operations, like inserting and updating particular elements, you may need to reach for modules specific to the data type. For example, if you want to insert an element at a given position in a list, you should use the `List.insert_at/3` function from [the `List` module](/docs/stable/elixir/List.html), as it would make little sense to insert a value into, for example, a range. -We say the functions in the `Enum` module are polymorphic because they can work with diverse data types. In particular, the functions in the `Enum` module can work with any data type that implements [the `Enumerable` protocol](/docs/stable/elixir/Enumerable.html). We are going to discuss Protocols in a later chapter, for now we are going to move on to a specific kind of enumerable called a stream. +We say the functions in the `Enum` module are polymorphic because they can work with diverse data types. In particular, the functions in the `Enum` module can work with any data type that implements [the `Enumerable` protocol](/docs/stable/elixir/Enumerable.html). We are going to discuss Protocols in a later chapter; for now we are going to move on to a specific kind of enumerable called a stream. ## Eager vs Lazy @@ -119,6 +119,6 @@ iex> Enum.take(stream, 10) The example above will fetch the first 10 lines of the file you have selected. This means streams can be very useful for handling large files or even slow resources like network resources. -The amount of functions and functionality in the [`Enum`](/docs/stable/elixir/Enum.html) and [`Stream`](/docs/stable/elixir/Stream.html) modules can be daunting at first, but you will get familiar with them case by case. In particular, focus on the `Enum` module first and only move to `Stream` for the particular scenarios where laziness is required, to either deal with slow resources or large, possibly infinite, collections. +The amount of functionality in the [`Enum`](/docs/stable/elixir/Enum.html) and [`Stream`](/docs/stable/elixir/Stream.html) modules can be daunting at first, but you will get familiar with them case by case. In particular, focus on the `Enum` module first and only move to `Stream` for the particular scenarios where laziness is required, to either deal with slow resources or large, possibly infinite, collections. Next we'll look at a feature central to Elixir, Processes, which allows us to write concurrent, parallel and distributed programs in an easy and understandable way. From e21ab3262212ef18a3ee5d9151954df8a762b6c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 30 May 2016 15:11:53 +0200 Subject: [PATCH 0463/1761] Release v1.3.0-rc.0 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index eadc5ce70..ef8f64d03 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.3.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0-rc.0/Precompiled.zip,prerelease,1 1.2.5,https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip,release,1 1.2.4,https://github.com/elixir-lang/elixir/releases/download/v1.2.4/Precompiled.zip,release,1 1.2.3,https://github.com/elixir-lang/elixir/releases/download/v1.2.3/Precompiled.zip,release,1 From c41115cc672a1ada13c3fb646558a3ef1673f820 Mon Sep 17 00:00:00 2001 From: Eric Walker Date: Thu, 2 Jun 2016 03:12:18 -0500 Subject: [PATCH 0464/1761] Use more idiomatic English for sentence (#758) This commit changes "With this we are almost finishing our tour about Elixir modules. " to "With this we have almost finished our tour of Elixir modules." --- getting-started/alias-require-and-import.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 22b61f21c..41b84c7a5 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -166,7 +166,7 @@ defmodule Example do end ``` -With this we are almost finishing our tour about Elixir modules. The last topic to cover is module attributes. +With this we have almost finished our tour of Elixir modules. The last topic to cover is module attributes. ## Understanding Aliases From 78b1adb362f5814ab5ac0ef1deebf08bfcb49ebf Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Sun, 5 Jun 2016 14:30:50 +0530 Subject: [PATCH 0465/1761] Display correct error(`CompileError`) type (#760) --- getting-started/pattern-matching.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 8113d872a..26c07d4b7 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -35,7 +35,7 @@ A variable can only be assigned on the left side of `=`: ```iex iex> 1 = unknown -** (RuntimeError) undefined function: unknown/0 +** (CompileError) iex:1: undefined function unknown/0 ```` Since there is no variable `unknown` previously defined, Elixir imagined you were trying to call a function named `unknown/0`, but such a function does not exist. From 0903428b371106b8a2533a0a2774de434d014921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 6 Jun 2016 15:39:03 +0200 Subject: [PATCH 0466/1761] Release v1.2.6 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index ef8f64d03..fa213731f 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,6 @@ version,url_precompiled,release_type,windows_installer_compat 1.3.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0-rc.0/Precompiled.zip,prerelease,1 +1.2.6,https://github.com/elixir-lang/elixir/releases/download/v1.2.6/Precompiled.zip,release,1 1.2.5,https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip,release,1 1.2.4,https://github.com/elixir-lang/elixir/releases/download/v1.2.4/Precompiled.zip,release,1 1.2.3,https://github.com/elixir-lang/elixir/releases/download/v1.2.3/Precompiled.zip,release,1 From 15af9a767f29062f252086cd2aaf7837cf63c398 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Tue, 7 Jun 2016 13:40:02 +0530 Subject: [PATCH 0467/1761] Add an example for anonymous function (#761) - Also add error type(CondClauseError) when raised in `cond` clause --- getting-started/case-cond-and-if.markdown | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 86673237f..3a2c1d1b6 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -142,6 +142,14 @@ iex> f.(-1, 3) The number of arguments in each anonymous function clause needs to be the same, otherwise an error is raised. +```iex +iex> f2 = fn +...> x, y when x > 0 -> x + y +...> x, y, z -> x * y + z +...> end +** (CompileError) iex:1: cannot mix clauses with different arities in function definition +``` + ## `cond` `case` is useful when you need to match against different values. However, in many circumstances, we want to check different conditions and find the first one that evaluates to true. In such cases, one may use `cond`: @@ -160,7 +168,7 @@ iex> cond do This is equivalent to `else if` clauses in many imperative languages (although used way less frequently here). -If none of the conditions return true, an error is raised. For this reason, it may be necessary to add a final condition, equal to `true`, which will always match: +If none of the conditions return true, an error(`CondClauseError`) is raised. For this reason, it may be necessary to add a final condition, equal to `true`, which will always match: ```iex iex> cond do From 880e6c4afa74157c079765f1d2293cc4978a5f32 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Wed, 8 Jun 2016 02:23:57 +0530 Subject: [PATCH 0468/1761] Update the correct output for an exception. (#759) --- getting-started/basic-operators.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index e0b297b20..230cd3109 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -38,7 +38,7 @@ Providing a non-boolean will raise an exception: ```iex iex> 1 and true -** (ArgumentError) argument error +** (ArgumentError) argument error: 1 ``` `or` and `and` are short-circuit operators. They only execute the right side if the left side is not enough to determine the result: From 019ae58da5bcb49cf01ab10fb2f077600d8ffd16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 8 Jun 2016 21:21:07 +0200 Subject: [PATCH 0469/1761] Release v1.3.0-rc.1 --- elixir.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index fa213731f..ee6bb9efb 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat -1.3.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0-rc.0/Precompiled.zip,prerelease,1 +1.3.0-rc.1,https://github.com/elixir-lang/elixir/releases/download/v1.3.0-rc.1/Precompiled.zip,prerelease,1 1.2.6,https://github.com/elixir-lang/elixir/releases/download/v1.2.6/Precompiled.zip,release,1 1.2.5,https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip,release,1 1.2.4,https://github.com/elixir-lang/elixir/releases/download/v1.2.4/Precompiled.zip,release,1 From 746675c7d3d00c93760993c7dc2c4da986304f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Meadows-J=C3=B6nsson?= Date: Thu, 9 Jun 2016 22:23:11 +0300 Subject: [PATCH 0470/1761] Use repo.hex.pm URL --- _posts/2014-08-07-elixir-v0-15-0-released.markdown | 2 +- install.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown index bf302af0e..4d1674b23 100644 --- a/_posts/2014-08-07-elixir-v0-15-0-released.markdown +++ b/_posts/2014-08-07-elixir-v0-15-0-released.markdown @@ -150,7 +150,7 @@ At the beginning of this summer, [Chris Hyndman](https://github.com/chyndman) jo Chris has also built an [Elixir Web Installer for Windows](https://github.com/elixir-lang/elixir-windows-setup). The web installer checks all available Elixir versions and allows you to pick which one to install. It will also fetch and install Erlang in your machine in case it has not been installed yet. -If you want to give Elixir and the Web Installer a try, you can [download the current version here](https://s3.amazonaws.com/s3.hex.pm/elixir-websetup.exe). And, if [Chocolatey](https://chocolatey.org/) is your thing, remember you can also install Elixir on Windows by running `cinst elixir`. +If you want to give Elixir and the Web Installer a try, you can [download the current version here](https://repo.hex.pm/elixir-websetup.exe). And, if [Chocolatey](https://chocolatey.org/) is your thing, remember you can also install Elixir on Windows by running `cinst elixir`. ## Welcome Alexei! diff --git a/install.markdown b/install.markdown index 545f0fa36..72accac1b 100644 --- a/install.markdown +++ b/install.markdown @@ -49,7 +49,7 @@ The preferred option for installing Elixir. Choose your operating system and too ### Windows * Web installer - * [Download the installer](https://s3.amazonaws.com/s3.hex.pm/elixir-websetup.exe) + * [Download the installer](https://repo.hex.pm/elixir-websetup.exe) * Click next, next, ..., finish * Chocolatey * `cinst elixir` From e361bc53193c54b4befa6cd61f7db13cca6f8993 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Fri, 10 Jun 2016 01:25:35 +0530 Subject: [PATCH 0471/1761] Update the `warning` note! (#763) --- getting-started/modules.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 54b8e935b..74a934af1 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -259,7 +259,7 @@ end If we save the code above in a file named "concat.ex" and compile it, Elixir will emit the following warning: - concat.ex:7: this clause cannot match because a previous clause at line 2 always matches + concat.ex:7: warning: this clause cannot match because a previous clause at line 2 always matches The compiler is telling us that invoking the `join` function with two arguments will always choose the first definition of `join` whereas the second one will only be invoked when three arguments are passed: From 06ac010dd55e60dce61290ff56dd092aa21adbb6 Mon Sep 17 00:00:00 2001 From: Sairam Kunala Date: Fri, 10 Jun 2016 14:21:59 +0530 Subject: [PATCH 0472/1761] fix wording (#765) --- _layouts/getting-started.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index 386e8fe55..8667dc2b2 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -29,7 +29,7 @@

        {{guide.title}}

        - Something is wrong? + Is something wrong? Edit this page on GitHub. From 5603f656aa22cd9d6d9db36c46f00ea72965748d Mon Sep 17 00:00:00 2001 From: Ali Ismayilov Date: Fri, 10 Jun 2016 18:47:20 +0200 Subject: [PATCH 0473/1761] Replace JavaScript example with C (#766) --- getting-started/recursion.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 8d0fb70ed..a106451bf 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -9,10 +9,10 @@ title: Recursion ## Loops through recursion -Due to immutability, loops in Elixir (as in any functional programming language) are written differently from imperative languages. For example, in an imperative language like JavaScript, one would write: +Due to immutability, loops in Elixir (as in any functional programming language) are written differently from imperative languages. For example, in an imperative language like C, one would write: -```javascript -for(i = 0; i < array.length; i++) { +```c +for(i = 0; i < sizeof(array); i++) { array[i] = array[i] * 2; } ``` From aeea64535b921fd3fc56ee2fe14e636903f634b4 Mon Sep 17 00:00:00 2001 From: nfpiche Date: Fri, 10 Jun 2016 14:30:40 -0400 Subject: [PATCH 0474/1761] Update agent.markdown (#767) Looks like two different explanations of step were left, I left the one I felt was a better descriptor of what was going on. One thing I wasn't sure about was that even though we are calling Agent.stop with only one argument, the function itself has an arity of three so I thought it would be better to have that represented over Agent.stop/1 --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 478fabdb2..6c61d36de 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -48,7 +48,7 @@ iex> Agent.stop(agent) :ok ``` -We started an agent with an initial state of an empty list. We updated the agent's state, adding our new item to the head of the list. The second argument of [`Agent.update/3`](/docs/stable/elixir/Agent.html#update/3) is a function that takes the agent's current state as input and returns its desired new state. Finally, we retrieved the whole list. The second argument of [`Agent.get/3`](/docs/stable/elixir/Agent.html#get/3) is a function that takes the state as input and returns the value that `Agent.get/3` itself will return. Once we are done with the agent, we can call `Agent.stop/1` to terminate the agent process. +We started an agent with an initial state of an empty list. We updated the agent's state, adding our new item to the head of the list. The second argument of [`Agent.update/3`](/docs/stable/elixir/Agent.html#update/3) is a function that takes the agent's current state as input and returns its desired new state. Finally, we retrieved the whole list. The second argument of [`Agent.get/3`](/docs/stable/elixir/Agent.html#get/3) is a function that takes the state as input and returns the value that [`Agent.get/3`](/docs/stable/elixir/Agent.html#get/3) itself will return. Once we are done with the agent, we can call [`Agent.stop/3`](/docs/stable/elixir/Agent.html#stop/3) to terminate the agent process. Let's implement our `KV.Bucket` using agents. But before starting the implementation, let's first write some tests. Create a file at `test/kv/bucket_test.exs` (remember the `.exs` extension) with the following: From 6738e3471d7b5ff9a6cb9ada85852061384c6bb9 Mon Sep 17 00:00:00 2001 From: Matt Hink Date: Sat, 11 Jun 2016 00:58:05 -0700 Subject: [PATCH 0475/1761] Clarify details re: supervisor :rest_for_one strategy (#768) --- getting-started/mix-otp/supervisor-and-application.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 387bb5525..1bc228754 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -341,9 +341,9 @@ Open up `lib/kv/supervisor.ex` and change `init/1` to match the following: This time we have added a supervisor as child, starting it with no arguments. Re-run the test suite and now all tests should pass. -Since we have added more children to the supervisor, it is also important to evaluate if the `:one_for_one` strategy is still correct. One flaw that shows up right away is the relationship between registry and buckets supervisor. If the registry dies, the buckets supervisor must die too, because once the registry dies all information linking the bucket name to the bucket process is lost. If the buckets supervisor is kept alive, it would be impossible to reach those buckets. +Since we have added more children to the supervisor, it is also important to evaluate if the `:one_for_one` supervision strategy is still correct. One flaw that shows up right away is the relationship between the `KV.Registry` worker process and the `KV.Bucket.Supervisor` supervisor process. If `KV.Registry` dies, all information linking `KV.Bucket` names to `KV.Bucket` processes is lost, and therefore `KV.Bucket.Supervisor` must die too- otherwise, the `KV.Bucket` processes it manages would be orphaned. -We should consider moving to another supervision strategy like `:one_for_all` or `:rest_for_one`. The `:one_for_all` strategy kills and restarts all children whenever one of the children die. This would suit our case but may be too harsh as there is no need to crash the registry once the bucket supervisor dies since the registry supervises every bucket and would be able to clean itself up. That's when the `:rest_for_one` strategy is handy: `:rest_for_one` will only restart the crashed process along side the rest of the tree. Let's rewrite our supervision tree to use it: +In light of this observation, we should consider moving to another supervision strategy. Two likely candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:one_for_all` strategy will kill and restart all of its children processes whenever any one of them dies. At first glance, this would appear to suit our use case, but it also seems a little heavy-handed, because `KV.Registry` is perfectly capable of cleaning itself up if `KV.Bucket.Supervisor` dies. In this case, the `:rest_for_one` strategy comes in handy- when a child process crashes, the supervisor will only kill and restart child processes which were started *after* the crashed child. Let's rewrite our supervision tree to use this strategy instead: ```elixir def init(:ok) do @@ -356,7 +356,7 @@ We should consider moving to another supervision strategy like `:one_for_all` or end ``` -If the registry worker crashes, both registry and bucket supervisor is restarted. If the bucket supervisor crashes, only the bucket supervisor is restarted. +Now, if the registry worker crashes, both the registry and the "rest" of `KV.Supervisor`'s children (i.e. `KV.Bucket.Supervisor`) will be restarted. However, if `KV.Bucket.Supervisor` crashes, `KV.Registry` will not be restarted, because it was started prior to `KV.Bucket.Supervisor`. There are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check both [`Supervisor`](/docs/stable/elixir/Supervisor.html) and [`Supervisor.Spec`](/docs/stable/elixir/Supervisor.Spec.html) modules. From a78c44372118f719982930f505ddc9d6ab9a4624 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Sun, 12 Jun 2016 02:03:32 +0530 Subject: [PATCH 0476/1761] Update `processes` docs (#770) --- getting-started/processes.markdown | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 3432de01c..9ebe85d38 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -106,7 +106,10 @@ The most common form of spawning in Elixir is actually via `spawn_link/1`. Befor iex> spawn fn -> raise "oops" end #PID<0.58.0> -[error] Error in process <0.58.0> with exit value: ... +[error] Process #PID<0.58.00> raised an exception +** (RuntimeError) oops + :erlang.apply/2 + ``` It merely logged an error but the spawning process is still running. That's because processes are isolated. If we want the failure in one process to propagate to another one, we should link them. This can be done with `spawn_link/1`: @@ -156,17 +159,16 @@ iex(1)> Task.start fn -> raise "oops" end {:ok, #PID<0.55.0>} 15:22:33.046 [error] Task #PID<0.55.0> started from #PID<0.53.0> terminating +** (RuntimeError) oops + (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2 + (stdlib) proc_lib.erl:239: :proc_lib.init_p_do_apply/3 Function: #Function<20.90072148/0 in :erl_eval.expr/5> Args: [] -** (exit) an exception was raised: - ** (RuntimeError) oops - (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2 - (stdlib) proc_lib.erl:239: :proc_lib.init_p_do_apply/3 ``` Instead of `spawn/1` and `spawn_link/1`, we use `Task.start/1` and `Task.start_link/1` to return `{:ok, pid}` rather than just the PID. This is what enables Tasks to be used in supervision trees. Furthermore, `Task` provides convenience functions, like `Task.async/1` and `Task.await/1`, and functionality to ease distribution. -We will explore those functionalities in the ***Mix and OTP guide***, for now it is enough to remember to use Tasks to get better error reports. +We will explore those functionalities in the ***Mix and OTP guide***, for now it is enough to remember to use Task to get better error reports. ## State @@ -203,6 +205,7 @@ iex> send pid, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} iex> flush nil +:ok ``` At first, the process map has no keys, so sending a `:get` message and then flushing the current process inbox returns `nil`. Let's send a `:put` message and try it again: @@ -214,6 +217,7 @@ iex> send pid, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} iex> flush :world +:ok ``` Notice how the process is keeping a state and we can get and update this state by sending the process messages. In fact, any process that knows the `pid` above will be able to send it messages and manipulate the state. @@ -227,6 +231,7 @@ iex> send :kv, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} iex> flush :world +:ok ``` Using processes around state and name registering are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ships with Elixir. For example, Elixir provides [agents](/docs/stable/elixir/Agent.html), which are simple abstractions around state: From 18462596665c2037740d43fd93ab953ec90a7dba Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Sun, 12 Jun 2016 13:40:13 +0530 Subject: [PATCH 0477/1761] Explicitly mention double-quotes for Heredocs (#772) - update warning message of undefined module attribute --- getting-started/module-attributes.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index b92166237..28daf0169 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -57,7 +57,7 @@ defmodule Math do end ``` -Elixir promotes the use of markdown with heredocs to write readable documentation. Heredocs are multiline strings, they start and end with triple quotes, keeping the formatting of the inner text. We can access the documentation of any compiled module directly from IEx: +Elixir promotes the use of markdown with heredocs to write readable documentation. Heredocs are multiline strings, they start and end with triple double-quotes, keeping the formatting of the inner text. We can access the documentation of any compiled module directly from IEx: ```bash $ elixirc math.ex @@ -96,7 +96,7 @@ Trying to access an attribute that was not defined will print a warning: defmodule MyServer do @unknown end -warning: undefined module attribute @unknown, please remove access to @unknown or explicitly set it to nil before access +warning: undefined module attribute @unknown, please remove access to @unknown or explicitly set it before access ``` Finally, attributes can also be read inside functions: From 0376d847055ee204b5940908b4999a928f4836e8 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Sun, 12 Jun 2016 13:40:41 +0530 Subject: [PATCH 0478/1761] Show correct o/p in the examples (#762) --- getting-started/keywords-and-maps.markdown | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 594321fcf..2a99049cb 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -113,9 +113,9 @@ In contrast to keyword lists, maps are very useful with pattern matching. When a ```iex iex> %{} = %{:a => 1, 2 => :b} -%{:a => 1, 2 => :b} +%{2 => :b, :a => 1} iex> %{:a => a} = %{:a => 1, 2 => :b} -%{:a => 1, 2 => :b} +%{2 => :b, :a => 1} iex> a 1 iex> %{:c => c} = %{:a => 1, 2 => :b} @@ -134,6 +134,7 @@ iex> map = %{n => :one} iex> map[n] :one iex> %{^n => :one} = %{1 => :one, 2 => :two, 3 => :three} +%{1 => :one, 2 => :two, 3 => :three} ``` [The `Map` module](/docs/stable/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to manipulate maps: @@ -156,7 +157,7 @@ Another interesting property of maps is that they provide their own syntax for u ```iex iex> map = %{:a => 1, 2 => :b} -%{:a => 1, 2 => :b} +%{2 => :b, :a => 1} iex> map.a 1 @@ -164,7 +165,7 @@ iex> map.c ** (KeyError) key :c not found in: %{2 => :b, :a => 1} iex> %{map | :a => 2} -%{:a => 2, 2 => :b} +%{2 => :b, :a => 2} iex> %{map | :c => 3} ** (KeyError) key :c not found in: %{2 => :b, :a => 1} ``` @@ -186,6 +187,8 @@ iex> users = [ john: %{name: "John", age: 27, languages: ["Erlang", "Ruby", "Elixir"]}, mary: %{name: "Mary", age: 29, languages: ["Elixir", "F#", "Clojure"]} ] +[john: %{age: 27, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, + mary: %{age: 29, languages: ["Elixir", "F#", "Clojure"], name: "Mary"}] ``` We have a keyword list of users where each value is a map containing the name, age and a list of programming languages each user likes. If we wanted to access the age for john, we could write: @@ -199,16 +202,16 @@ It happens we can also use this same syntax for updating the value: ```iex iex> users = put_in users[:john].age, 31 -[john: %{name: "John", age: 31, languages: ["Erlang", "Ruby", "Elixir"]}, - mary: %{name: "Mary", age: 29, languages: ["Elixir", "F#", "Clojure"]}] +[john: %{age: 31, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, + mary: %{age: 29, languages: ["Elixir", "F#", "Clojure"], name: "Mary"}] ``` The `update_in/2` macro is similar but allows us to pass a function that controls how the value changes. For example, let's remove "Clojure" from Mary's list of languages: ```iex iex> users = update_in users[:mary].languages, &List.delete(&1, "Clojure") -[john: %{name: "John", age: 31, languages: ["Erlang", "Ruby", "Elixir"]}, - mary: %{name: "Mary", age: 29, languages: ["Elixir", "F#"]}] +[john: %{age: 31, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, + mary: %{age: 29, languages: ["Elixir", "F#"], name: "Mary"}] ``` There is more to learn about `put_in/2` and `update_in/2`, including the `get_and_update_in/2` that allows us to extract a value and update the data structure at once. There are also `put_in/3`, `update_in/3` and `get_and_update_in/3` which allow dynamic access into the data structure. [Check their respective documentation in the `Kernel` module for more information](/docs/stable/elixir/Kernel.html). From 78234a019b14d9790839c1fb2c6e3361cf406f98 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Sun, 12 Jun 2016 13:41:03 +0530 Subject: [PATCH 0479/1761] Update IO docs (#771) --- getting-started/io-and-the-file-system.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index b0bb67d4c..a81f1c370 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -115,7 +115,7 @@ iex> pid = spawn fn -> ...> end #PID<0.57.0> iex> IO.write(pid, "hello") -{:io_request, #PID<0.41.0>, #PID<0.57.0>, {:put_chars, :unicode, "hello"}} +{:io_request, #PID<0.41.0>, #Reference<0.0.8.91>, {:put_chars, :unicode, "hello"}} ** (ErlangError) erlang error: :terminated ``` From d3a277a70354cda1eccc6956d29944cdae5eecd4 Mon Sep 17 00:00:00 2001 From: Conroy Whitney Date: Mon, 13 Jun 2016 09:09:40 -0700 Subject: [PATCH 0480/1761] Redirect old getting started URL (#773) The Pragmatic "Programming Elixir" book references `http://elixir-lang.org/getting_started/1.html` which has been moved to `http://elixir-lang.org/getting-started/introduction.html`. This PR adds a `redirect_from` on the `introduction.markdown` page to ensure that readers of that book are able to use the URL in the book without getting a 404. --- getting-started/introduction.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 2311ee56a..0248a075b 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -1,6 +1,7 @@ --- layout: getting-started title: Introduction +redirect_from: /getting_started/1.html --- # {{ page.title }} From a6d3fc137c8215eb760b74d37a931ce0678d1b8e Mon Sep 17 00:00:00 2001 From: Craig Lyons Date: Mon, 13 Jun 2016 15:50:55 -0400 Subject: [PATCH 0481/1761] Update pattern-matching.markdown (#775) --- getting-started/pattern-matching.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 26c07d4b7..8caa94cdf 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -154,7 +154,7 @@ If a variable is mentioned more than once in a pattern, all references should bi ```iex iex> {x, x} = {1, 1} -1 +{1, 1} iex> {x, x} = {1, 2} ** (MatchError) no match of right hand side value: {1, 2} ``` From aa0f3c8621dfc521ad12b11784cb0aa92bb92802 Mon Sep 17 00:00:00 2001 From: James Glover Date: Wed, 15 Jun 2016 00:23:36 +1000 Subject: [PATCH 0482/1761] Update protocols.markdown (#776) Appears that 'the' was accidentally used in place of 'to'. --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 4cdd466bb..bd618262a 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -142,7 +142,7 @@ When deriving, Elixir will implement the `Blank` protocol for `DeriveUser` based ### Fallback to `Any` -Another alternative to `@derive` is to explicitly tell the protocol the fallback to `Any` when an implementation cannot be found. This can be achieved by setting `@fallback_to_any` to `true` in the protocol definition: +Another alternative to `@derive` is to explicitly tell the protocol to fallback to `Any` when an implementation cannot be found. This can be achieved by setting `@fallback_to_any` to `true` in the protocol definition: ```elixir defprotocol Blank do From 6b146d47b4a91f895e32ad5521b1a3a5e18a18a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 21 Jun 2016 12:36:37 +0200 Subject: [PATCH 0483/1761] Release v1.3.0 --- elixir.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index ee6bb9efb..04c188536 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat -1.3.0-rc.1,https://github.com/elixir-lang/elixir/releases/download/v1.3.0-rc.1/Precompiled.zip,prerelease,1 +1.3.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0/Precompiled.zip,release,1 1.2.6,https://github.com/elixir-lang/elixir/releases/download/v1.2.6/Precompiled.zip,release,1 1.2.5,https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip,release,1 1.2.4,https://github.com/elixir-lang/elixir/releases/download/v1.2.4/Precompiled.zip,release,1 From 53ce633ea170d2b69b33bda5060698a5a510a60d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 21 Jun 2016 12:38:06 +0200 Subject: [PATCH 0484/1761] Update docs.html --- docs.markdown | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs.markdown b/docs.markdown index eb3eccabe..7c415201a 100644 --- a/docs.markdown +++ b/docs.markdown @@ -26,7 +26,16 @@ Choose which version you want documentation for. * [Logger](/docs/master/logger/) - builtin Logger * [Mix](/docs/master/mix/) - build tool -

        v1.2 (download)

        +

        v1.3 (download)

        + +* [Elixir](/docs/v1.3/elixir/) - standard library +* [EEx](/docs/v1.3/eex/) - templating library +* [ExUnit](/docs/v1.3/ex_unit/) - unit test library +* [IEx](/docs/v1.3/iex/) - interactive shell +* [Logger](/docs/v1.3/logger/) - builtin Logger +* [Mix](/docs/v1.3/mix/) - build tool + +

        v1.2 (download)

        * [Elixir](/docs/v1.2/elixir/) - standard library * [EEx](/docs/v1.2/eex/) - templating library @@ -43,12 +52,3 @@ Choose which version you want documentation for. * [IEx](/docs/v1.1/iex/) - interactive shell * [Logger](/docs/v1.1/logger/) - builtin Logger * [Mix](/docs/v1.1/mix/) - build tool - -

        v1.0

        - -* [Elixir](/docs/v1.0/elixir/) - standard library -* [EEx](/docs/v1.0/eex/) - templating library -* [ExUnit](/docs/v1.0/ex_unit/) - unit test library -* [IEx](/docs/v1.0/iex/) - interactive shell -* [Logger](/docs/v1.0/logger/) - builtin Logger -* [Mix](/docs/v1.0/mix/) - build tool From 72aab1020a7ca1dd8379e26f72761459a5399914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 21 Jun 2016 14:59:43 +0200 Subject: [PATCH 0485/1761] Blog post for v1.3.0 release --- _includes/search.html | 2 +- ...2016-06-21-elixir-v1-3-0-released.markdown | 287 ++++++++++++++++++ images/contents/deps-tree-phoenix.svg | 90 ++++++ images/contents/exunit-ansi.png | Bin 68297 -> 68277 bytes images/contents/exunit-diff.png | Bin 0 -> 45356 bytes images/contents/kv-observer.png | Bin 80000 -> 40230 bytes 6 files changed, 378 insertions(+), 1 deletion(-) create mode 100644 _posts/2016-06-21-elixir-v1-3-0-released.markdown create mode 100644 images/contents/deps-tree-phoenix.svg create mode 100644 images/contents/exunit-diff.png diff --git a/_includes/search.html b/_includes/search.html index 60ae9d4eb..b7d0d3f3e 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ diff --git a/_posts/2016-06-21-elixir-v1-3-0-released.markdown b/_posts/2016-06-21-elixir-v1-3-0-released.markdown new file mode 100644 index 000000000..4d697dce2 --- /dev/null +++ b/_posts/2016-06-21-elixir-v1-3-0-released.markdown @@ -0,0 +1,287 @@ +--- +layout: post +title: Elixir v1.3 released +author: José Valim +category: Releases +excerpt: Elixir v1.3 brings many improvements to the language, the compiler and its tooling, specially Mix (Elixir's build tool) and ExUnit (Elixir's test framework). +--- + +Elixir v1.3 brings many improvements to the language, the compiler and its tooling, specially Mix (Elixir's build tool) and ExUnit (Elixir's test framework). The most notable additions are the new Calendar types, the new cross-reference checker in Mix, and the assertion diffing in ExUnit. We will explore all of them and a couple more enhancements below. + +With this release, we also welcome [Andrea Leopardi](http://github.com/whatyouhide) to Elixir Core Team. He has contributed greatly to this release and maintains important packages in the community, like [Gettext](https://github.com/elixir-lang/gettext) and [Redix](https://github.com/whatyouhide/redix). + +## Language improvements + +The language has been improved semantically and includes new types and APIs. Let's see the three major features. + +### Deprecation of imperative assignment + +Elixir will now warn if constructs like `if`, `case` and friends assign to a variable that is accessed in an outer scope. As an example, imagine a function called `format` that receives a message and some options and it must return a path alongside the message: + +```elixir +def format(message, opts) do + path = + if (file = opts[:file]) && (line = opts[:line]) do + relative = Path.relative_to_cwd(file) + message = Exception.format_file_line(relative, line) <> " " <> message + relative + end + + {path, message} +end +``` + +The `if` block above is implicitly changing the value in `message`. Now imagine we want to move the `if` block to its own function to clean up the implementation: + +```elixir +def format(message, opts) do + path = with_file_and_line(message, opts) + {path, message} +end + +defp with_file_and_line(message, opts) do + if (file = opts[:file]) && (line = opts[:line]) do + relative = Path.relative_to_cwd(file) + message = Exception.format_file_line(relative, line) <> " " <> message + relative + end +end +``` + +The refactored version is broken because the `if` block was actually returning two values, the relative path *and* the new message. Elixir v1.3 will warn on such cases, forcing both variables to be explicitly returned from `if`, `case` and other constructs. Furthermore, this change gives us the opportunity to unify the language scoping rules in future releases. + +### Calendar types and sigils + +Elixir v1.3 introduces the `Calendar` module as well as 4 new calendar types: + + * `Date` - used to store dates (year, month, day) in a given calendar + * `Time` - used to store time (hour, minute, second, microseconds) + * `NaiveDateTime` - used to store datetimes without a timezone (year, month, day, hour, minute, second, microseconds) in a given calendar. It is called naïve because without a timezone, the datetime may not actually exist. For example, when there are daylight savings changes, a whole hour may not exist (when the clock moves forward) or a particular instant may happen twice (when the clock moves backwards) + * `DateTime` - used to store datetimes with timezone (year, month, day, hour, minute, second, microsecond and time zone, with abbreviation, UTC and standard offset) + +The current Calendar modules and its types is to provide a base for interoperatibility in the ecosystem instead of full-featured datetime API. This release includes basic functionality for building new types and converting them from and back strings. + +Elixir v1.3 also introduces 3 new sigils related to the types above: + + * `~D[2016-05-29]` - builds a new date + * `~T[08:00:00]` and `~T[08:00:00.285]` - builds a new time (with different precisions) + * `~N[2016-05-29 08:00:00]` - builds a naive date time + +### Access selectors + +This release introduces new accessors to make it simpler for developers to traverse nested data structures, traversing and updating data in different ways. For instance, given a user with a list of languages, here is how to deeply traverse the map and convert all language names to uppercase: + +```iex +iex> user = %{name: "john", +...> languages: [%{name: "elixir", type: :functional}, +...> %{name: "c", type: :procedural}]} +iex> update_in user, [:languages, Access.all(), :name], &String.upcase/1 +%{name: "john", + languages: [%{name: "ELIXIR", type: :functional}, + %{name: "C", type: :procedural}]} +``` + +You can see the new accessors in the `Access` module. + +## Mix + +Mix includes new tasks to improve your everyday workflow. Some of those tasks relies on many compiler improvements to know more about your code, providing static analysis to find possible bugs in your code and faster compilation cycles. + +### Compiling n files + +Mix no longer announces every file it compiles. Instead it outputs how many files there is to compile per compilers. Here is the output for a project like [`gettext`](https://github.com/elixir-lang/gettext): + +``` +Compiling 1 file (.yrl) +Compiling 1 file (.erl) +Compiling 19 files (.ex) +Generated gettext app +``` + +In case a file is taking too long to compile, Mix will announce such, for example: + +``` +Compiling lib/gettext.ex (it's taking more than 10s) +``` + +The goal of these changes is to put an increased focus on the "warnings" emitted by the compiler. + +In any case, the previous behaviour can be brought back with the `--verbose` flag and the compilation threshold for files that are taking long can be set via the `--long-compilation-threshold` option. + +### mix xref + +Speaking about warnings, Mix v1.3 includes a new task called `xref` that performs cross reference checks in your code. One of such checks is the ability to find calls to modules and functions that do not exist. For example, if in your library code you call `ThisModuleDoesNotExist.foo(1, 2, 3)`, `mix xref unreachable` will be able to find such code and let you know about it. + +Since such checks can discover possible bugs in your codebase, a new compiler called `xref` has been added to `Mix.compilers/0`, so it runs by default every time you compile your code. [PragTob has written an article exploring how this new compiler has found bugs in existing projects](https://pragtob.wordpress.com/2016/06/02/elixir-1-3s-mix-xref-working-its-magic-in-a-real-world-example/). + +We have included other modes in `xref`, such as: + + * `mix xref callers Foo` - used to find all places in your code that calls a function from the module `Foo` + + * `mix xref graph` - generates a graph with dependencies between source files + +You can find documentation for all modes by running `mix help xref`. We hope tools and text editors can leverage such features to provide useful functionality for their users, helping developers understand code complexity and finding bugs early on. + +### Better dependency tracking + +Besides `xref`, Elixir v1.3 provides better module tracking generally. For example, in previous versions, if you changed a `:path` dependency, Elixir would always fully recompile the current project. In this release, we have improved the tracking algorithms such that, if you change a `:path` dependency, only the files that depend on such dependency are recompiled. + +Such improvements do not only make compilation faster but they also make working with umbrella applications much more productive. Previously, changing a sibling application triggered a full project recompilation, now Elixir can track between sibling applications and recompile only what is needed. + +### mix app.tree and deps.tree + +Mix also includes both `mix app.tree` and `mix deps.tree`. The first will list all applications your current project needs to start in order to boot (i.e. the ones listed in `application/0` in your `mix.exs`) while the second will lists all of your dependencies and so on recursively. + +Here is a quick example from [Plug](https://github.com/elixir-lang/plug): + +```elixir +$ mix app.tree +plug +├── elixir +├── crypto +├── logger +│ └── elixir +└── mime + └── elixir +``` + +The `--format dot` option can also be given to generate graph files to be opened by [GraphViz](http://www.graphviz.org). For example, here is the output of running `mix deps.tree --format dot --only prod` in the [Phoenix web framework](http://phoenixframework.org): + +

        + mix deps.tree for Phoenix in production +

        + +### mix escript.install + +Mix also includes `mix escript.install` and `mix escript.uninstall` tasks for managing escripts. The tasks was designed in a way to mimic the existing `mix archive` functionality except that: + + * Archives must be used sparingly because every new archive installed affects Mix performance, as every new archive is loaded when Mix boots. Escripts solve this by being managed apart from your Elixir/Mix installed + * Archives depends on the current Elixir version. Therefore, updating your Elixir version may break an archive. Fortunately, escripts include Elixir inside themselves, and therefore do not depend on your Elixir system version + +Escripts will be installed at `~/.mix/escripts` which must be added to your [`PATH` environment variable](https://en.wikipedia.org/wiki/PATH_(variable)). + +### Option parser integration + +Elixir v1.3 includes improvements to the option parser, including `OptionParser.parse!/2` and `OptionParser.parse_head!/2` functions that will raise in case of invalid or unknown switches. Mix builds on top of this functionality to provide automatic error reporting solving a common complaint where invalid options were not reported by Mix tasks. + +For example, invoking `mix test --unknown` in earlier Elixir versions would silently discard the `--unknown` option. Now `mix test` correctly reports such errors: + +``` +$ mix test --unknown +** (Mix) Could not invoke task "test": 1 error found! +--unknown : Unknown option +``` + +Note not all tasks have been updated to use strict option parsing. Some tasks, like `mix compile`, are actually a front-end to many other tasks, and as such, it cannot effectively assert which options are valid. + +## ExUnit + +ExUnit packs many improvements on the tooling side, better integration with external tools, as well as mechanisms to improve the readability of your tests. + +### mix test \-\-stale + +ExUnit builds on top of `mix xref` to provide the `mix test --stale` functionality. When the `--stale` flag is given, `mix` will only run the tests that may have changed since the last time you ran `mix test --stale`. For example: + + * If you saved a test file on disk, Mix will run that file and ignore the ones that have not changed + * If you changed a library file, for example, `lib/foo.ex` that defines `Foo`, any test that invokes a function in `Foo` directly or indirectly will also run + * If you modify your `mix.exs` or your `test/test_helper.exs`, Mix will run the whole test suite + +This feature provides a great workflow for developers, allowing them to effortlessly focus on parts of the codebase when developing new features. + +### Diffing + +ExUnit will now include diff-ing output every time a developer asserts `assert left == right` in their tests. For example, the assertion: + +```elixir +assert "fox jumps over the lazy dog" == + "brown fox jumps over the dog" +``` + +will fail with + +![ExUnit diff](/images/contents/exunit-diff.png) + +such that "lazy" in "lhs" will be shown in red to denote it has been removed from "rhs" while "brown" in "rhs" will be shown in green to denote it has been added to the "rhs". + +When working with large or nested data structures, the diffing algorithm makes it fast and convenient to spot the actual differences in the asserted values. + +### Test types + +ExUnit v1.3 includes the ability to register different test types. This means libraries like QuickCheck can now provide functionality such as: + +```elixir +defmodule StringTest do + use ExUnit.Case, async: true + use PropertyTestingLibrary + + property "starts_with?" do + forall({s1, s2} <- {utf8, utf8}) do + String.starts_with?(s1 <> s2, s1) + end + end +end +``` + +At the end of the run, ExUnit will also report it as a property, including both the amount of tests and properties: + +``` +1 property, 10 tests, 0 failures +``` + +### Named setups and describes + +Finally, ExUnit v1.3 includes the ability to organize tests together in describe blocks: + +```elixir +defmodule StringTest do + use ExUnit.Case, async: true + + describe "String.capitalize/2" do + test "uppercases the first grapheme" do + assert "T" <> _ = String.capitalize("test") + end + + test "lowercases the remaining graphemes" do + assert "Test" = String.capitalize("TEST") + end + end +end +``` + +Every test inside a describe block will be tagged with the describe block name. This allows developers to run tests that belong to particular blocks, be them in the same file or across many files: + +``` +$ mix test --only describe:"String.capitalize/2" +``` + +Note describe blocks cannot be nested. Instead of relying on hierarchy for composition, we want developers to build on top of named setups. For example: + +```elixir +defmodule UserManagementTest do + use ExUnit.Case, async: true + + describe "when user is logged in and is an admin" do + setup [:log_user_in, :set_type_to_admin] + + test ... + end + + describe "when user is logged in and is a manager" do + setup [:log_user_in, :set_type_to_manager] + + test ... + end + + defp log_user_in(context) do + # ... + end +end +``` + +By restricting hierarchies in favor of named setups, it is straight-forward for the developer to glance at each describe block and know exactly the setup steps involved. + +## Summing up + +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.3.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started](http://elixir-lang.org/getting-started/introduction.html) guide to learn more. + +Happy coding! diff --git a/images/contents/deps-tree-phoenix.svg b/images/contents/deps-tree-phoenix.svg new file mode 100644 index 000000000..1ebd94a19 --- /dev/null +++ b/images/contents/deps-tree-phoenix.svg @@ -0,0 +1,90 @@ + + + + + + +dependency tree + + +phoenix + +phoenix + + +poison + +poison + + +phoenix->poison + + +~> 1.5 or ~> 2.0 + + +phoenix_pubsub + +phoenix_pubsub + + +phoenix->phoenix_pubsub + + +~> 1.0.0-rc + + +cowboy + +cowboy + + +phoenix->cowboy + + +~> 1.0 + + +plug + +plug + + +phoenix->plug + + +~> 1.1 + + +cowlib + +cowlib + + +cowboy->cowlib + + +~> 1.0.0 + + +ranch + +ranch + + +cowboy->ranch + + +~> 1.0 + + +plug->cowboy + + +~> 1.0 + + + diff --git a/images/contents/exunit-ansi.png b/images/contents/exunit-ansi.png index 5268c3195c9be0414407e779f0ce2ba20dfb5b9d..dd7851e0f613e6fe69d403e9b210b46699c50d4c 100644 GIT binary patch delta 63327 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 VBg+vrVVnQ}002ovPDHLkV1i5Vk{JL1 delta 63365 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 N002ovPDHLkV1ifsiX8v| diff --git a/images/contents/exunit-diff.png b/images/contents/exunit-diff.png new file mode 100644 index 0000000000000000000000000000000000000000..fb94c55b2070524a9044d6220b73b46fcdb8a06b GIT binary patch literal 45356 zcma&N1yoy0*8p0fxI4wIP#WC56ev)v6btU|P^>^wptu!xC{U!hQ@pqYErs9|2^Ju@ z6CT{#`+fKS-~ZNnv$D>dVdl*CJ$q(0VQ*FBa4?@@K6vl|M?qfZ-Gc{Dk{&#GWQvY@ z_ZN-9^|7YueOm_eIUExnExu5!fww^*rJa&Nh^BRv`e`EO> zD|7!&_cwv~ko(4i(7ze;KU>{AfAyJC{8d$9-&ZgHwEphn67?)vWy23P@!|{?{bAOp zwepsg7*oB*@(HS%x*E4>H`5EYG&*_t*PoB8+lWp>>*qY0m3`{xx?a#ozv1PTe@@8x@6{_ozlpz*muh-iuIO)&$%I;TK+!qB_?E$f2w zpo1@a?db|`ty5S!8!!j~DJ0viTJmdP6U$@2A{v>2S?$Vb$>Mx5&k6S6#=P zE33bH#iEz|>C<;W`7eZlX!#p*qHQEr4;wtOiL2hzXiQ8PY-sMve`?@Ijypmb{H4wA zWUp+SEnR6raW3XY(r$k;rjGf|PnWD_1=}ofbSn_rJ)i)XPncUH(wSiEh1+hYo0aus zLQTl&^Kc>xGl}kTgWGh_LY}xwzN4hE*!RUED75HGl}onFW4i9dr^EH@g{wGny}Co$ z66yx)Og0;D-u8EBT>QN;3d&v-X;;00;oieQPm;5#o8P5tVcQQg|EUDKR`yuP)c@$1 z1ncrJnya*vtMtTU--K?R;se~Mk!0?iq=j9}j=LJ8iWcA0-m}%#7G?+KAV@l$y~LDQ zfC3hbh}H}@uuh?emqz9M5)}YVTm07V!_~FK37ObEycEaEjIW9MS2i0{IR2^$Yr5rE zt36inlIBva+qd4R(v?H*=hyC|X{&FAOSK0%{g8BJ{8Sl&{ep>cH<`I=r8-(g zh94Y!#kWQ=iA(nA&t9KePP&%~qz|+7J+xhl?!&7yV9~ak@IvZmEfpf;&>n!NMWqep zQdzMPG0U`(eWtNO#F#;y##|&RnAnf}i|C~2?$r&S>CCEi$f135bVC;V57s(=t#tHCv!53c~}UN#o?qIkqXG(9{$JXg!hM~)Yb7mRw_ zl6BF}BuD;MF{_ib_V%o0Mqq4a;uy)L)TO01PNG+TP1J8EgnV)n)i$tv{g(9u#qw(R zWM*yovf8E^KpjwH5Hivn@u4MtFzjlc5X*XGsnkT_H)*A${3SBZ!^RJ8bS} zVi+0E9$RW)HXWVfEVf!^WUFWvJ1^ucN?fInG-FZ-;8VtbLQ}fXK-7$$M{bk0SRc>C zoy+xcL!^>5$=!STNvIQdni+dW1=tAif)Ye-<2O(@nZ9N~Bia5GFJX=(9=V!tsxyPD z4-Hxss&se)nSG9OgRYRqfGeK&4%$wgO!%p-)hzu(+pDEmQpn+|U$YThc+K}<_##u$ z^luDb^gdr&C%%kyR0n9aXTDbwrrO)?gY^9x}Qlz3VEjDI?nNFZpbI~M@01_O`Y6p1+^)1$>WH{YF5XJ zEe+Oc=eo-m9L;kZ4MkQ2X1_Kje zOxh#2XW0CuJ=}!`d#fdqS~K{IgykaaKqYEX?%i3c19_uR$mzt@T5k}IReX={OhZ1V zWffIcGUyX|Y*QA;JN|ENzrY`4l7iNLI_)TiOcM}62v-fX?g#*;FD>1CiuofQ)+7t4 zgu5EJ%yt{ANV_abSbKEWtm%hNvdmKh^_7IIx4$xN;oMvfA_r=@SUlSWeX(CVuTESB&vG(mpR=%Om$uY;DSlp z9YTD5w3g3KnwUfv_S}+|=8$d%)mZDYf1A5V6hDWG!QtCfW629S;Hd zRMeds3U+-RpoAL|lWP{({Jt*ppk^OQ52)hIo0RwpQLFN$=8%{(ZIm@mH9O-O*?rU9 zeMoS`5ux*Z7UCOo_!+9Z$2ZHcXkF9T@&i<5|3;5Qv*b{)tj{S7=HU=!%+gZ?t|$d2 z(IVzdQ;&KUFK!n8tpO^4bkp1yo$b>}HDBy2W-jR>t^NgkQs zoMH^ht)08|`%mi7~(Kteg+)%Ta6v)83 z0eevK?b$@GKF#(ouXZA%{VMwH(=Zspx0=J$Z~ld6b;?y@2E0JLsT9X&QdI!3?;>ZC zu+dKDouz&KucgWMRL5^M1V9J;g9^R%t_5PuEYYm6@gyc1$TAoZyFG`@^#^7l#tEa) zgPy}*SsuPxuK={%2!<3zik5SqYbGQ8ce&zMa7iYm69C9F+(I2?w8AEFMYP9t-SN!R zy9yw%coqS>{b#wmr9eIe0Z7B7bKbIIqXzz<<3g8t5`f}QC-wO=o&4VDhqJlG9aqS) z$KYP=lD$_?9;T1z2DbSAj!E#zinX8QmGVDc?k%9b+N^QZucpWKJ&?EvN?hlsv2eUU z?`}&VY()wgq3jz1q{ZFHSY zqAMQgwyZL~pj2Ago0nuf0)$)S8~ZA>4Us{H?Ru*HRH^_@Y0nIWS*U)khQ~A;%;9oC zj!Y*MMC*W#rrxD`J0zw$v5)i3kB>(jZlKM&fEq)pQiQ%)>VG_8U6{p%=CY!BJ+MA- z8)pd`KvrOVDQaM2h7n<^Lr?Awi!k+;{*or4@;qs`2xQ07Og*&(2%~dOmCV`!deocY z;6q$D&cZtz{tKZ9E-HxlkKMqu!(d+x+Qht~(aX*vVTXOq%S(=5_yh;+nB$X;fs&49 z=5X?47ndnc^2rMx5eWntgveB{)qjE1is-1E(tDz|PSHq|b7ymoyn7hnRPGs4w74Eb zVLBt-0Gcnw+uhEZ+lCvo11(#HfJ>_23AsPskr;B>edw5c<-qtYIo_9qPugV@Q83qa zn8;R}{aM}BGt1dvTGic;|7Xeh(_Rauj1#Qa>=!)T5|=&Iq1-Q;s8R;l0jYR;YOsHy$vBj;GDB&_=*4+b3omR6!y znBC@*N@`^gpr+lX6cHnEQNNtm?(NomM8Uu6UVGv#t(2> zQL~M^0b;hB2i|jY2|A_x$2kj!08fudA=SoN8=L^qoT{tqjRU`jS3s-WYu&Tveavqq zPCK^dHUR+6@%M~VXn5UH-0~Zv(t!+$u?51#O&wh9cp_pwjyS(aCZ<>4CHGIDxMbuO z=?%dh8*VuQ^PThydUTSFe zR7K}jX0~vyttHz!?%WC|f|Qb-ZHqdc|Iv*#6jPlK3%X(RVFlfSw#Fk=q9y zUK*KNq(7xybid-(eh_}TO5>mJuK%ppo5+Q&gO#?~{c>v{nc`raEy)7V{ua5LgGnEt z`=MuXz6IW=@YKeP@5-hsL;fdl0Jv}?PNH_A)K;!Y5P27jz`Lu{FuaXv4cBE2oEBYM zA+DZ{tlJA=+d)lj**BK|xJwm=qz0&246i2sD0-l6!br_+VbyEdqnGEU`o@1u{}H-qamwNWa4;9OIqw#_sd%Xze6 zaxROh46eFJqSQ`7^qR>~G-n_2U$gPa$<)tyLu1(8J!4L4c#P)$K`(co{zX-WkzD?Ej7 z;Zf(>zshQUVY&Nl4AcAx7Bl>!EU3}Vhnd`~6f#Yn`U2n~@;|Y4lIRsoKlyuZnoJ)A zz%RVB7$NVN)X+ysRGqZUvB*I9^eR8$p8bbZ-dPN|e&~uv-<2Y3aNon=wFgzpaswOJ zkasfvSdfn{6hWV5w|}kUqnYkJA*jynyo=D>7r@8l!88u)j1hs-w_5uzjBEmaxGg@# z(gASxi#=TazAuIdhofIm86s}qw+b2FIgPykIt_5h6G;wGrDsSJ&MUPC!A8M?Kg_BU z-HJ*I-a?0dX$)x$(cu%hg@!Q;#bGYO0pB*$B9-m=6I6XUA26|8`}>$?w1aUb8z!e{ z9~sLQ_cNPYKXxOxMp z%jNQP$Z}cCD!rTmIwS>gzg>kGIaZe1UT!jC;QvU|e13Vhl?=1%+C$lF%;V% z50P+Pg#v$rH1LEkO(J!Gq)8QjzP%OkbfLW}r1~}^t7DI}eC$~kX%IhxHF+v5Th;i( ztGZ}6{Nip`{PFG_A);8`A=-CJrtt!Pf27m-_i4lbS)u=R7?Qm++hMz6O#E>?q<=(H zKu5#!O<=7&yQDg*jEfqkRJd#~U-!UO`w!}1|5tg&?1`OgfDw`T^z`AvJEHC&+|%~| zUC{v^Usa27K+@%(Q}Z=HH_Na(MY$XOv2y74xu*MjgEQN+7V>MA=v2+&^i1k%pErR^ zL>Y3Vuw#LBhy@@y;@riPy2pA`^p2L7z;&h>)|dz=Jv z8;SE~k!NLdc_xiIES}aJBVY8z5PnXoXFb2q9{mNc8Kzd}wE9Yq*)4NFqp#_Vb8c8{ ze$u7Ko+RCYT6yC7=%>t;4=12m+U;PbS29n0UwT9YQ>XQF4!`#Wio>@4jPH=@$a{qd^i}0a|O-7fi*tLX8Wq(rt5f#KD_#*jvTnV}V zMkkM9GBVgt$C|Q2v6`C9X)$Z{`kKmV@fsCcXQIKTZhZAnqx!@n{H_85ANZ(x#S z0UVNGz|L45-HO>iIKrNB4da|pMSl!6uPnW#s%}?0h1z5w+tLx9bJEAls^$>k0$K*I z`n|J*O4~h`QRCFmzX~~Ef(tNY@iHOgc1zze#aItvgvW6z`ZWig1BE5!OOY8tMEw_t5bA%lTSGV4)W$2 zJ^wtiUm}o9S*?B>QPplh{~j9^ayd$W1yKT181G#cbxo080R5-~Yd3?d%sltu0G&k? zcPq!J?uO%AYqv@{7s$Vm90$m3JxX^7TW}0<^^EXisr=qm?kk2=3Ubvmjtw5v^l;Il zSwGW}e3C%D=*8T7YVGL^gJ=tAh4qv>DG@FkpgdVgO?_u`MupF%Z^;KFZw2h#R6|Qu3i-% zZGP9B&(pDT6b6U1SXL^@{8g}%wybeot6r%pHgA8T1HCJfj#yCYJl$-p%Yrh!H4u_gxFgb5$fm;@)8C0oV@t|01YPz)7 zwDir#++Ea_z0|Dct*CF~@WC9l5w%pp}=G?;~%l=KFsXU1Djg_8EE6W_O+K zEGE7`8aEk|O3^gc536Lsr=DXeQuOR<>sO1U{=z{&(hO}JlG&W41(ZB`b`n0iPS54} z8G47Y#Hpcg_IS%qq)yBNeE{rXw)80!<5DsH;tJ&D`MvU{Ub7{DL0}4Di~H;X=k)4k z0&~+ZB3*0?2c9WC#(o>}B+!E4uVPxMBsu(At7K_zW>k(oFvS*Ek$*~Y+~bw9A}S9j zzn;?Ta{s2_*-B25I!x(F3%Md<=uFb;WuS$HwVm8W$uh!xfr=X7q=7hfXR&U|E+GS? zgYS5Sy3Oka_M)BF_6~jIzm&`70fYXS4zukOUfIp+-s4d_eIrT1 zo)gokR`TYj&4c(dvrD_5{UU$szJ}jv{pfD0;9CR7mhGY8o;Nl(#*H1_eikZvKggt< zj4J0H)q#DjOPZ2EfqO@ReVk0Oj<~X}7mwU3#ur7sT=@9aIzh5#O*}zT`&=~kA3qU) z@UcHkmhPKEd9>SW^8r>D&h@PriuTvlUPPAap?S!a;@% z8&t@*LKoWiffh&imj4o*YKm;rlb2k0D@AGWR^F`- zt-BIC?JFbccKE!HZsv4}?`y(;Jb%-h{kj{k7*7NTnx}iyl^qIX6FFBP-Wg&YvVE<; zuV%XbRCRS7-&48=$ zBlQUpyl#q+X{#rL)xNKTYJ{W=w1sZI8=8xLB0~EYp|(T;iZ1D&K)d(_O3y9>m^=eY zZ9>G_gf$Fq&`yqj;zgKhG_eo6pb z<&uz7BPJ7Pf{vdpBbO9$T~|u`sq+6w9b?-Ey+jqJGNF5@evswd$<^k4=#;ejJLWc} z70rXW?Du<99K+=6A8q*+mE~QN{3?Ts14>TxpMDGCCE*PHtfv0S{@N>_6aa6#4S zV&?8>r8sd>F=ij2XQ-j#vehTfFA;J+ceBAzHrJ}zZH9AGUMnH3G!fByJ12=3_BV$+ zc%JVkdy9T2evI1HaXi7OHO_K=s+toiF1vuqi#7DR;C=geh|m?{QV0DVfN419OhB#_ zc`9-$Sw{d<_IacwZ4jUJe3>S23Z|s4VC>u7&D{n@UabFW1F7k=0FmCaKM(OOHcqX+ z5lz3^jWgD?|$=`8>}P|-lUyo^+0~9kU z6RvtJ7~ZGcBiDnBd)l}1-ekDE~MzI)@5 z-;0lFB5&YDWp|PD>aUZLFfZjxzVY1ns8JaRDQX3}e~R`XqP2Xu@^>a#x(D6a7G>}CG4 z1Tn5UQIS$dbvvkzgC)i6in;5X82wdskC-zb2(f*9)_i%n?=Abck#-xW$`jq(1x|k9 zCp7_HMaHRTXn(uI@%EkhDvUs5;-K*%6BtUTQFrgFo3d9Zh0eDGJ6ee6@-wm-S z9q5%#sDD=hnVgJ^F*O5IQ;WW(NYUY=6QbZsy$Yb4fn2gjIuN6h$oW&Ag~~PDAa8{a z6!iWVtbZVX`uoQFlZBVgu%*%m?~F1Sw~orrfr{s%?i*9V<|_PjP05IccTU~T%n@B6 znnJqcgxpNG3!wjtmk z-NoH_zH($6RAonSLH3SIpJ0c@oV`7*`(x22H-QH0)}Q%IMO*7GN*&+_em5rbgw$B9 z)kpA5pSa$j%4^Huh0{_lQ9q9SmXJK;PNlETVWlrONs`=OyzO-Lc5v6d{S=ZH{h41f zN@(``+-dPyMv;1ilih^XWLSmG zRY$TxxtmhEeK-GH<_^@zgX(r1vZ{Z7PyZ5Vxp+!@;W4KvS$55FG!fbr<^4MIb)K@U7E3J=l0apO7q6OeF)k z$ECbq-HZ-GADd^dFAS5aP8m}E$#=MuLpKkrS?nCmu=j;!-Qt+TPq9<$nbWP@-PRf| z4rRae;Nn&L(bSExYdT7^3jvk2N^XxIRW_EoL8AgLWoh9S!s$J79ApTc2J7{kEO|;a zj!dgYa~)}bU6{q%HPO2XHLnr<^k<->n+JWdcH?8k?Z7D`ZJ2K_DE?WNvRQ+a^k^af zpNxzxn zyo^m7-rbLu)}~hHwp1c>bYGfc%09Az>$xTP&dce(=KMO|P{O14{>56$UJ&0ITX~&s z(A4v=Dv2Y|(}WFI>N)W1*;BU}pX;Eo0iG9$)}#hEp0_su$)F7Pbpuj}>xhu^(OH%5 zld6_V50YQFWh%L&+g2)dU4<3RDSkFjD;A?Du0L(zKsDn~~BWe$f}eRH^@ACDH4#bVJ|6GF-nV5!|hEJ6BB` zf~ds4WhFepCns)#Up40nzkZ!PXR}5pe5O4xT=L;6n5H?{VP@Ucn(VxFCgIrh%`G)p zyk9=m`l&-RtmSLA$85~z=Kl)llakhFzhn(DY1z`U+! zhP?bnS#k>vmF)gx|J(@#AL8DZ%haCVNNc&voS{{fR%*n~GqRE^<1OZ>+0eLekQQ>9 zO)iHY&RzDZ#H$qpGxyobVq>q^7Rr_ zAR3vGPpt})(h||8$P+SO(OC9|l0q)wYzX13@fho6Jxb0BL;An-nEqBK0uC&%9;-kO zx5ScCa2cyShX=lH+G<9P0F8pVCi=j4x|Q{4Rujy3R`1ky`=9jpds>q=A(S4+&|qoi z(+^94MpG}RPQ6{mnT)z*O91xXU?UDO3Owe--7c;#8rxFrHHx?`aj7?127P~Gx?nAQZ;3L&OIE=x(A#my z)ar^@L4HMS%}NWD&B~Db1>+fk)>Anno`sr&sKfhw7X&S znXkqN-d*bO>D7qtkzrSc99nDu{vC$!#e^EF8lPqhG^4%LdtZ2`AZ^m9|MJI&G^TZ% zI;Ed#H=7y^mZsE*$4ck|4VwtcObri8B}X=m&usgfAL{_z2wtdztFAw6JG{u@LA}eK z05sDQ%3Qa_6-njk*WE-_Va**)7=A8cu$-Bc1wgs2M)R5-J-*L!htpwT~xa(A+$OFFyLI*uBT2d0urI`)kT@69eMOF%MMF$RTPxbd8# zE}R+wUIIPOD!|!9(k&QtTl%gR)ETd>wbVOY+U{B&;BDQxa_R%U+3{%s`ItPY!X~cP z_b@#*n6bJSOqQqVzs=JJH<^wi5Io%sE|5uL#r)mz>tmPFXf`#9?9e%Ce0$F+f0y0isvr(c9CH8KKw0KeObl2(D>*h4R?K5VgM@FewRp}fb>Nu~ z{C5wat!7x&NYY|IFcKRf^qHkdA{aDWylSpyz3XDzz|z5^u{}Hg@`)u(*W|Z8kfVvx zv&~oI4hV)$i`gWb@3Tx7WWO0Mc&W3)^8OM#&fVKM~FYwvlCqk%@$%%-ek&Y3> z^nyeJPn#0mm$m?jZz8K+JpLYdlNd==rr!^`I;t5xmrjOyY3A`)tTY|QjUxe=XWOsA z+MoNUg)omwTlVU`*I|B%tu0Po`sICx?uI5tFk_ut{hle2hOrU!wi4{5e|Dm-C&rZ~ zc;39|IoukXXzl}V(A3Fsw_*a>C1?gwmdo?VI;UTJ%$e2Y1WL@&Q)TGRzQoq$7DF1A zI3kt;QR|gDepC4AHJN#Ji3PVGi}^3Z0r*cL%xuME;FwwukSVl$X{XdtV%9U(1g``##`_m^P~B zsB+go7J5!DZ9}y)-1x(ADCf$8cEd$9_@gc_u-EX%!N%`ztgP?hu5&!DFehz=^u$YS zckfa8TagF{)~>rKRF9`7E)lHVXF4`S65V zTBx~to*Otq9AM#d(t>Q9<+WtwYa8wI)DC`pL1?)d1G^o#3JSw9B!Vy7d&Hn znhX;4QIYCK!R?P4?c{itT2Szd1>Ac(Z0FpM;^p_!{O1c^)6B*yHH~$tvjFRP)7j+< zGT*-b#+fJ0sG2Ecl)h1`fmoV1-CgPFnM1hILf@PX8f3`uIHK~{KJ^w;5YT(Gwydi8 zSXHh!6Q!i8eSu7|h~|##QSMfi*L_bQ=W;?~khrLqC;8Na?{AcFsCWIW@scFh%+^G_ zA(SvTlDUI5OwRC3Pt#O4$$xGZU~C=Ebp8^}J=ILzW4Ij8=3WCH7s+dpqY3SA)+f65 zR4?#rR5(sQ2fjYVKfERrb96jNnOfe+DMM*VhShP6HgR$Jgklyy&oOlcq1Y93jbg&f zc}KBVJUlB;^jAPtX)W2=SxS;+J_cag*>;v56~>|!Z3*ogv0AijPSV{*oK%fev zN&24$yWGjYd9Qht_k|dVkB3>s-r;5Jb6izbGm5^t&M82Rhx8rFqqU|BZ!c#z*bXTV zU3IVB@V@ok{O5%JOl^G<#$(&hWl*Q-iF}w1NM=`qVmtr z5noVqE>+#u#OzBYpnX5%xQIy z?m%*+;@Ih2W$W%(cf9YqRA0`0YxgFL{vSW_x5eB)@Ak`o@ApGPktY8u%lrRIxBipK z{lC+#?=!LgNeBOvv;8MI{Js^`dZn#G9KIqHjp!u$B+}5D|NiF;VEE@Jh8%QR`}!|c z^3o!q^VWTNjjLGM?fon7ZfWhM*EfaD|QJYIW)Nu<};*F_kHLv_MZj&|9bn_ z%Y$nfF-aTB58R?`K$LHUHLTlO9i^4cPrBKaPa7;QX%TjZDILBlnAl3s?YD@NP&{NL zRZRu$=&XFtQ3}^|;GwvfJ^%2)fwdtkFT-wzQ?KmIMo@dEH|FYKCU>FtL;q!TwEJRv zt0iCrqcM3N>$A^**%~*H_(8~b@6U_b?RM??o^~T`bI6*OwzetK#-avjg8AfjqwZ6o zvPDsHvg)FSrEj6icnP|PvNg}#FsKwGZ!=MFmu21wtjCMJ)2=cy(b~%tB$Mr)&i)N7 z5ionJP+IQjXBDZcX+`2htH(z(`Y*WTMh|Ko0k?6BWjgUkEyClPjhiQlb!!{B+~bLa z-$<85GAHNuV&w|Z>{Sc&9yYIiCG4%DX4ZuZMlZM`n>sI;21{CxEK?_d5|g?*6(QR7 zZ8dutxg#g1kv*vlXK_9cT{*oY#ZWOHJcX1!YqAxwy`G$JQQxl#F`L2tnMiEI&@n~? zJ?X|{P{`sxcf!!-5O&ZW&((iAdC3+Li8n1mrKm<6w{g)7NS+Dk z8}As^_b zZlrG-+i*k#>aO6k^X#DTqe*AuM)fFP~3|Nm-Z{csT{Y8)9 z{igK#cbCTveJIjUj6Tn-A|a8OcVMQHKJ`l>u;4`s+sMR6Z_Xpb_13$b>9hJoky3Ia(1JJHglS+9&iMq1DdbV+`1(Wzb5Y`I?B{Hn&+! zEN0U__t`xedMtkI*AB|&n_r-HYylxo>fm&o<;;EdItyZUXywVhJC!xd(tan%o4!C5 zUuo{&!%1Tm+3xOsPqOHdpvmkNVUcd(dbf00=xDmsqG>Z(Rda)Qef!5^%2S;s^WVD^ z=gNWsEqh~rJbd2Rs5(nyS0);@c1wD5?U0UCzW9ZTtMV6S7a^;L&Y z*m*4nk&78lSKv07p+34()6f0U`mj*EQ}-M$X}QXN^OsfRqUH&dZq299cb+3cg?+u?HEK=w8iqvX*~_7*cTnY zNZKYen5F@=h2sD_Ku8kvFVP_^79lO#j#letLw!J?CDmh6Ye^%zag8vmIAiyE87OPd z7O$OZFCU>Z9%)jYHlla(;P8M|)TUwy58>zMaXnGG`yfv9Q3(^O+!7N6w_Bl_1B=RR z_F!n5c#zGQsO{R9d+n+xA zMfMY<9tgU9?kZWEM`aKnGPRapYq5jvXRR4itxD63=~CSzGliWqqd2{ZQ3odCEnkst zvw%OjS zoA$)XJ3;`OiN1|-ilG$nU1~aO>^kEhlb0c8BoEak(pZc+^oS2>FEvZQ{5Y8&q((=8 zxiDv89CpsjKcY_crLQIVA9I0uSW5KzMh02*I;_%LgWq&dWiJJs@}Ta{Fk(5_093>g_T9QOE4?Car9P73ZHviJyG)*_w=-ya`J- z2Hv@=vlOyjrbPg}ECdXY9Q#y9eLGA9i2!!vn>$}1@WC5+`^PylM_tlqQfn`M+aV)ucY{ieNo;77AikU>t$+X#y~ z6b}h;6P=rfbEJwUl(O?FtcG~kY&g5@0W>*ySB8ysK~bOx1JcD)!;nYHsBI3cH5-rO z#T=EK@WB1^E}tU{QCza7vJc2ZR}+~Be%ce_?ebrITX0|Tv&`V^n7msj{&F^VmcadA zR{DKu1}%^AIBCU9lK3@pIKLc zAMbWq+>nta--2COt`=&koej;VI;Vo3r*Sk^-C0EazTw zdv?h3)*Pp=O<=t~M$!8c*w|{;+XU%A$^`2^=}5v-K(F~q1Bg}UFyV`~1=~t?>*$<6 zR&CuN9f|IMD9B|9AP`>o8k0fe3@sOcYjpQD(8%ns(xuwmGV64 zq59lKZ4ivE2ccQf-D=)h%}Z+@keG{ypPNfrr@yeT6%G$Q>yjj5TU{6?_%$kbQ?rgKc~|RERhey$_r*&D7$Z8}KRS0(346D24 z>yK~kZb`l%$ASO=ypCkEF_fvTw4kSMF(2UJM`Tyo-XQw&b}z<3njXD58!-tbAgF~3 z6JnI@?@^C~S8KK8MEk}IafYe!L|aT<%ruEIp3Ju>=u*QLo-`l&3LUD9y?pPpQ-UcYLcmt4Yj-Y6b;a`f&I& zI^w$8UQtlnj+0w`ULGnmo1X4q@T_xYiFEkn5?Cr;h^Bu2o5|QEpeQT8hG4+!4e^G} z4TaTcJw7?mzGQ;@rzLOAR2%8>Y?Q?uu}ju}-5lXv&}Iez)Km`9_3dFVOSVgX#RUM` zkx-Dy#mNDc}ki`Lz^kW<>Sb2^G+5XKY$=sqGSoKvSgQ}d6dkkBI5V*(O z(fbLQkdulCLlLc)jCq+_6NDefWIc$z-X?8~FuTlosF0VoJ7uD_+NBcd&+6utWJp?s zE-*r31> zq%^r;|Eya;<)i*V!th)nbc@u^p)bW7zjmZ~vIu*;ZNa^?=L1S;yu`@XL#5i5rV7)H z9%#OCT(|e1`1H>2DBeXoF;$gAojj`oCTudxkI$@;CgGKlvL-E@hgV%euo{I<9xFf$ zX8HC`tpFuIe&mRZEAtHH>6@0RMiAHE|_sTxE`e+LiqPEB|4rL-v>MGUb;M9~3 zk*#}SHzSp5=>CeLMDq$ufJl;xbv3wF{F>ek?+R;fjYXMzOJsina!UDHgmHSDI?q1{%=9+_attL?@ZIb&54)`d zwrt+uhnc@~;T+N%;8Ei57|Ep&iWd4M{X~6f!%nF(Y{xgCljqbb;~{GZ2}xcMY$lfq zP=!lE+h%6!mMq5*ff{?AH%*L%-~qaA#`>YJqU!jl5H&e|%z=NQMZI%-*mpLrcJKBQ zV&}~<*4QOV@tn}cy4b>VNGZO`{9Ap09^R>M;Av&$HTZPIxWR!5qieb5ldADuCf9gN zYT+iKVQz%C{Ch6EXP@zbj~+jyuY56tPDD?@_39HwESDlv2D6g+x#8{LVI+)jj-9Ps zjj0)zmJq1bJY%nQYfxHF*jN2yfFP1nkkR87Yjv|+IBB#20{1<5y$eL1<|t-a)|p*w zfpwo?zzlDt8`n3htoda!tlfskm9c`>_M43!%{}WIJC!n?7@Wfi7O!#B$b-gk4HJ)3 z$qs5QXM<_B8AD#T&9ITj7Pft;S&rFrPS8ZDM^c!QZ-`eDU0x^!RUw5+k*OY?C#=b+ z&%ZG(l9V`<0I(FwpKo_zE0es6-l-4WaJTcF-a*v^pW^8%m5LtElF!aSxJ`9bQ+LE} zeG7!`DK%#wra86RgtBi`9p(DSo`vs`EWBt+mO2ZknK+T7f~){ZQ@n4&L`;mX^t224 zC6F@T$X){oM)sG(#IGp#?SaSAlky8dZT6ct2lRq-RgztY;XJ30`-g)u8mb*{8fSsBT*ku zRCwE$_M;u^BX_YquZ2-V_E|9A>P@q3^T^}(fQez2;gT6;85L={E74=2$Pk@YEjlxv zX|TTo-dl%I(0=aL$;K6ZrE)iKQ_cXfrn>_)Xwo6tSrp@ZBL^AvJ?=wbN`z%yac&*W z#JrV%*(fv}&ty-=xF+)Gp-|EZ!E>bZB74&W#sJVL4$rTkh&o(^Fr3!v##>wFt#Ai= zl`(! zNBxu_ibQWoLvI?}x()x%3%N00S@E0JPrRN@RM$Os(g=D3 z$d)l?ABcnXPFDkPns7qfc)XLmM4dmBOD5y|{LvVVr2Kkxdd_E#bGdB zsKHt($|s1#~Ohh?-I_0$xSXp z9&J@LCG(0mhQf8YYE&9$>g0xzcp;bg+N8PDCsCCLi6U9-fDIaE@oUj z>ZD1#sMIzqTAL|a!opb-xRS~AT><4F6YYiRt$B;nd_dQnI>TxCQd|#YNvM?PN>Tac zgO{9YT(uD72Mr-XT4hEN9-VX0^JuJlK7s(H*b#Tad3W#|?wIqVLzK6)-Jj9(INZ(C z94eax#}i7^THCzrsGrxj)i%qk`+hEhaVyrwB^r>nuFQ9c*CfzW)!CcrsE{9s^!m;% zl_xl`QUjEPLy(iQND<-rZ;Pke+gh}Lr|xh&0kDLj7y~K}a(Y-VjK#VH1l1ayd@(oA zL$+Hx6JAri&wNV>Wa+p)WQ%rrIeo$&&#jx`?F;HChy8U$4x-Ui)y zyK^yn>CA?-j~t@7tDC-wTu;rwOh%D=>7qdy;vQt1*kwToL4@|WD64XzlEo~e)bB-Z z=0=Pe1sEdr)Vpi=)ljDS&Zlm@tkz@q6PAouOmC%Wy&yPI#0J93!v@>5mi{~K>guZ^ z%!<|bGWTs-6Yhr3WxJ19V%fr(T}y}&K11v#D#6pWkZWoF z9zL^)&_hI?oI}LE@0wqYEvcw@7hQBk1*d#G69L*ijjj6j#+pEO+(`|md`%{@>0}se zk?VMvcjNLV1=5K4KtN&*ZZa&eMu7FO=FZrX*^4Wk(Wbe(%e}C&d5vtXeSL^n35>3e zu}r8jd_2No27p616E8FnKJ?!>b?>wZ_%n`9*3l*KgWE&5CC1brKQNSS&BxJUQ1AL{ zytybx7iUIM>i5$-P#loKNBI-sP$lt2nGq8PelU87_~=~LD~2jmNr5L<=evAf&L&f` zcbdO4oFluYE0OKxvQ95vCpR-;1pfKbK)P@mLd1lN(R1J1N0(*76G?DIL$wrWm0q<% z^UJ9LRB5Fv^A@Fn4g-!mcs}Klm49DrODZYSF_OXRwVUiEyKffzng%d9%2WB1(evR+ zp4Y;wAB3$uohXu5;yxZli(Et@NKJUt{6%r)S!Gds$TEh!gzDUcl-#NWs^Q@nGAK_8 z{3?0%23`&5@I$rd1dVhxHbB5+LbVW`O|u4)>af;%l@i(ogm<&*h31nT(FHg2x@ZSxA4=5K#g!YxN(E>g|wA zs5qN1yR%$>nZXjb0(sz9GRO9#yvPl=J+(Ps5n6its&v133a`<{e5dvEYAK6zWh>Hu zYX0Z=?Fq|2@S_g^|J*8u0B)={#0W%hKF4h3`$^}R zvZ#=<%7y`3_Recc%K$mElDfzV1WVVsPJX~M3YOwRNs&YSyo28*5%T;6CZE5qieb-O z&KwV5poINY*!Kw%dUo+z*0Ez8#$QUR|1)pWwbk`piIZ#HGMmd|haNwqzG#1u{95wc zdirsjRYrA3pj8H^dOpycIN$K1Huqhgs+GX#%yCx9t#nD(T>Ar#mw(yANzNkn%rnEo zeWbFUn_9k+B@n#6wsifPRN>kuXV!oD5%|vDzJmPH17QUOQxjgH*JW!u(9huLKI8V{ z;%w}fTczEhO{+4q$Sf2J9c4;lUn)cEhf3*lo@wm~3z1u^8MQ8RmHWi+B`a;)@Mvvu za|ZaFK8L#O%Y$qO{RwCf_RlgZLFrUt<_EN<6~xocS}gVYjh(y$f9&3UwrQ39=;Tr5 zYs9Bh;d9dT(0k_ju&(>j*&;&~4jEqV=G8XS#`x+(I&E{D_`;2LO(HMEL{NJ~eYuEy zQ&$l7KD)Te-)_M>k!qD107C)CwQ7TIH$aES2Y=F05#{FzJ*bYsJBz#?YTsLGKQQU6 z)&*H|?TXh7w_1D&<>L(rZLj$5PPc|f^e&>M5ZQ2xRLBZ)&&pcrFJ@edhp8l8 zpOaFQ&|mm6N>c6CWZ_U8a&i(MgiL_ukDL< z{B0;tH&2Ott*>_%RiC^2iQ*^piQzE9wA3#drCKlo$ zd;o+=M+|e;_f{+aI998*P@A1Ew(cD$ltJ1tpDfj#ZFDp7u^xwy-sWL{4#c_Hm`*i`259QD!qd?q%j=0SC- zV$Kr(mArbs_V-KcN8^E;$dS$^RlUmumRKp&4t?pX>V)&Ewn7&9WTQ20DzqFU%83%{ zek?wCdE->~nJo=RvFcYL2l=Xl!^4rsGnZz|)*2sS9^tZ(a}gV;uW^Tq^W0EVY~+h> z=UKPBn|mFv0g*YX>yvKCkY4IJNXGMhw zsPTlz2$XVSMuSPM6^8#A1rQM2b@t&qF@>pgom9BtcZ>HwMxQg+1Z_`ve?{lWmv#Ca zO0tR9-i!BUbi+}Amr7S$v|W%;PbEkCSoD!{yZ3-%5Efqgk~iV*GB~9YdaPXg=3zs3 zciH$G{OV?VKvQ;Ofl>vnAuxaJE~ap{Ol(-nY#~vvuGpc6Y21@qbL$jEF@Mj1IM7!s zl-nfw^fnE<-$mNv%J019PKp0js~$EdN5zZvgVK>ee-OKz@^Q{7&O=wC4NC9^(k4WR zoi>P-6bRcC?2JVjCxW|>%v(ZuP0}~~@u=^YFN;7}P8}kj061MDvVFhZC=2Ar!H@)H z>UjOQxA5~xTwXD_=OavgQjE1G{!vIvp2vHa!2z*|&9? zZ1%#7|01!=mU{%|; zX!3BQ>(54Fs41d&TllC|F+B^F)bnvL@c&kgAD!_f_AH>nm!{;B=xZA8R~2P?Lczr| zDvFmeH&B?XVHE+w7rU59*XhSeP{CrK}YXk zv1z4wkf?@x-}1g1Zx2#ue}6(;lcsvdhdFAdJW7{3VW8Hr?WPc}2g=l%&gVibn2fQ5 z8(gSpA^sb;{gpwTF~8Pgw&^277T#JV67g!%Xw*x9U2^G^LAzYoh)$CO2D*U%CX* zi@?e|m z#;yCDZ{5s84s#y`pZ#m$KAs3DYW1iEXJP!1gAvCTuhuuXz3R~er8m@Ia1hvk1`p9q zTJ8Cwuaf-9?yiF&@aA@KpAA%9XN8ghLM?eJDgP$q=**K`xrr%#Ci2a-)votOQ8>tz zF*H_*!>gCmCecr;I-0Q_d6J2oYWZcRh^qw16@$D2t1&DmY%gZ;4U46j26c46*N>U% ziB2_q?;tS->b?#o0nTqKzu<1uKkuhfp`wp^`&v0HFfR>Djck|ah;$k`bi38?B}i3Q znWnpHD385YU|$DNJ7?A$|GUS_Q_F*-<=gPN6LlURefRFiMfmwFDVS0pKPA}V(h}Rc86&pTy49dr5Xz6^cU~n}4CNlj~eKC7S@cL(?H!%3JU#x>N#h3h%`ZWsj-`WlK zbq;tD7XNihMKfJG5V(!&mGjHaKCf7yF$uWx# zt)*gOQli#ih?MEOS@Jmm`UgDYpfnekT)8Ar;?({H$|)_Y=*fQy)E+Y`x&PlZK}s1@T&Z z=@PGUf&d@%rkPn8S)Jy5d=5Ld0EbSGXe=;z-$djth87(oDy%7xaHU8u9xHx<`;Z-Q8+h#2G1xUDrtd^V!~=U8j2&Si8Eb*9z<6R?Dpxv%lr=6b@1f8$U3PV1Zjiwv{ZsTx=XrL4X@JF7?rw@- zb&TB~1hoOT1%P>j3FI~7#go!r4V2IRb);Z&nxGrYq9FecGc(=h)-ZK-Dqo~Vtyds^ z(rHb{`3>B}uBTSf6?}`^gTWc7XmHO~?YQl4)zOCS{WeSQ=Wv{SKnT;%-gGuqh zz=K8-aHfM-3pTfSd+6%vW<6~wm>7(yShM(>=pqn+Cs7w!~#v#ekwqXTTV+;&B z_F1}A9~6-ihWYirEoL0~q56bTVgK7>Yi1bFm6hS|Ton62{_7<0JJ9$>5pU@PzA;eexfJ9z5%wcVosCZebX&1$?*!A-$^M8q@-(58T6v8m@?`Dq;JmZ9}=sQ99Am#48b-_bx znpeF~U=Q`0nQBO~9gzby#OjiLJkL$|l>uyreP`KXgF-X3b&~+#r{+e&_QcA?2+ZSsHL8 zE+glcOI4f2NFQ*f4>FcVKKx zpw2JDQ!4`qM`?uU04Uc^!p$`NJz>*FvWskQ*~RD4#7I0moZ9uXD%-CXh;pO92tp4 zoskqbRLvZ9teM|_7Ll|%dn)1GntRrn6KWbSO9Imen1yV(WdFu_e$s3e9@K~77%uV{}e0W zl#ALm^#exvBz`HrDKS@r%%E0P)$`lN4)yTaIca$!>5NEQKRntlG~?63^A2x3T2Wsb zDFnS@fzE1^4#@YkB)S zp$sT=oUQp3qR#}1B5z&5e-}emTo5LZB#t?6J(kMfi3?T;z($_m&}lpCxDh%VOpxDN zQK$yk%m`6F2jld4f!~`pb(U(GFL()wBN)!i?6%72zUG~W)#u2IeoYke@n;@i6JBxf zJkBDbOb0>CNcLeQ@EC8nbhY9?%v=asS?4^n>;5Qf#5Ua$9_b9{+P8~1kI(HHewXn2z*f2uX zw&H{j`JMd@G%NZaU~AQ2{hh(I%rL7u86vCj8u*}@t7z#Dqw-k)#1*=8uiE_&43ro0 zJi!Akizi|Qzj#>#8(M0_+~#SqPW?&yYE~5HfV9NO{*74r+7txfi_JTNzB7kXzB=CV zsGnCvtDB-*gK%1g^_fAm)Mgq)ot@&LH)14lmkL9bnt?^d0J6tz)lF{A(O+;L zX~P*jqUmP4ekWyZ^`>1a;`*%=?rzEtWpZiTKUzDuqk8VdZ21|aS!{81l ztrfeCZ8%AHG8o!A`~4!#+9;VeWwSvSz_!DT$||VDMbWPoI+prlI_47q_K}cjli)i` z56k!l-Bm_Q0X5T$Y0iz4mwmvSW*Fug1U zXGM~L)XS5NTYB$%3@4}6MufMFj`y6u$P;_ICXMe-5R=HZ@#gn$W<*R7a4-VE6ti>W zou~Bgmh-;jkIUyoBoYed6~2_)emKrN7#lWbEh=TqIQ|Op06kq^U6U~&b_MxzzO-s- zs*D{>4fpD-_se^@=lTyvVsw%pn5(Y#>q5^^>|g5+74bE^2Ph=FTiPl9%ElSnQ!riqp;I9fIjN@2 zZ=Vr)N=(+PW;z({vr@K)wy7#GXwH=4CSIeZ>LEMX|`5@nir+5#p0du90&-YLq zJs^(d=!5^YEPXPY3&Hn`F$nMKcem5PQ@bZ)RqLqqQfndm=orX&Ag?u)jzGsuKNFJT z$c9aNj6iZRD)5&xRfTLtf>esvD_^YA1w)M-vNgsemYmnU#m-<@(!sfS5PNC$CS2fK zes<5};}_WHeCvX56s3clRXPaYEsf`JVm$TC##-XZvCI{imD7x&2adtKM^R<*O>N>f59 z>kmdHdAA>dFmp9j2Z1!U&DUQZzHt9b8;J0i8g-qlYR}nbn_?nxaQw>pj$HE2kW9nb zktzK7M=O*;4TVASRf#!+Sdoes|B1TK=;3&%_8wm(Ilq{vP4W>(ewW}~#JJg%x*u)x zqC-TXt<_vw+VA&QPevYSW_rUM#RR*5{FquhqTfGMNg`+oh-%1{)VT}a2AslxAZt) zEj=5W%Z1&`XUF?-3YN;2nrw%gQ~x_aMy*uZ*;nGe<-iQzIzVx0K2FPMr=O_+17=>uKYC_2aFmq zr>x9yz05%R!{c{nvwz0!9%f!=NZZThyO$??lvfcsq?JNG%Kw%e$`qFp;(<2a9JzPO z5eoar!;!R;W1r{M6ybWgbXWHtqN;WA+rjl7(mCZ}cd)k4a%Ou;`M20Vo1TAI0{=fR z|5u_w1YZH|!AiHyk`@)Z<2BEFtX!qq7#t9G0r1;Yy;tM+JU3PZ9Tpce20`>rmDLBF z@4eoW{ph{c?@R(C7`R?=k;XNv7vk7m*LEcJ_a+eb7w5I;mK|>(A0=h~zMD>B_se7c zPgc@@^9%oECXoRuD=s;bS0dinRJ*>yo(^UuZ+T-_fNB1dnfwFWZ6`YPG~E@w42DyP zIdAkOk7dAwi>1#gIL{xiTOF_91BEf;n4=?+iZvmE*LDCB^qHVX;9hx(;wGy!#rj(X z0ze59_`?svty8dHch9c(c;~Z6*_{qZu)c6~c6NRhMHgxD)b!QTkB;)JwSit77NFlN zJLuylC5Kn7l#Fb#7yV|HyOJfbENqaE*!r8x^xll=Q9pirJ#YS=z$aJ8C$|ytwN-gt zU$LASNh-<|F$fvxh;4sUqXf*|Yq0fs8u&X9lWMkKOlbRc*s2*P%7Hj9!_r zsO5s3IA%27Zs(_QDo*OXMd@EE_ED7#Pi_l#b6&p18Cff3bIq6mV1{o&qX`E-lON&L$Sw<#GjVCn577WeyiJMQTZuhY9!)hcH3K_h}P zII5?~))Xy>=br<#jbEOi+x?pwMh4&)Vq!tHkl)f;<0>G)4(UF7U+nt}@YbZn#Bh63 z@oGiv=Kcw2Tu-$Y*pw)P4cbQqBdRocbsqFj-w_5u(a^!0j6N-j0;ap6+`;1}UQl3t zZ;?X~A3eez*q}<+|9N}p>GzM`=43)AIJffG~Bm?bvIhmz*$s8PkpNL zh3*Frlm$HHKLOyUTo-z;|g$R(3&uE7f(e_zrO4@wqa|H4%r+U3xiMvg`gaiAan z+FCjIR#Z=V3U(U-KZopl=}#TseBD2XF7ky@nKv!YHsg9T| z41R3o5E0}UwY0QL>l(F{Z9QdZPV-I({Z(*=Y!}$3IAm(xeEGOD0fihMDUY*%6FF4CfECTxowGu z7M$XseS>fC;oX*rIjGp&w>yTV{PWwglM|X`(hOq1AEehhG+Bop!nB(t$&mhr2~MCE z#oz>`<<06yWAlqOm@LbpSS$a6mi^D{rKEt%RrC-3rDW6lV{PtlpFG+ZjVo3i6lu?g zRuSMvP3EczVVmx2`r*h}btr@A!Ajf4JBGd-9)V`rBW^1A!)__vdpL!+Enn_9H^xzs z(u1b9?k$^>=&9_KC(SS7iEq=(#DmMT8o=i&N3w76C*}kre4E9woOtx%l9SD@BB9g$ zT%y3y8Yh(7#4ZI_-@d#$9bmQ-l|-o%03?ccFR3=#{{6uU+a>pr8&pjShCTd zon7cV8>*2PL_~z(DNSbT#L?7o3~~n z`6Ee~Ui8#;&FbM35q*WKcHLZ!%AK?zhx6S2*!S|Wv+`bdQ~bbW)@);KBG6lGvrX2s zb`0Hab|z}aF_)*Rxp>u?10J0IIdUf)0L<+{EEW(~mCh#w;(H_+j4-i*Uq+-6HK2{7 zZ#@&KOdAT!wG}%QxOS0MO~4iKEw1ZI%3(lxq=P2IEJ83Claz1gGvg3V+343@|me6wanYE2@rjPa@WYZ?_IB~>zc zCIae-E?O9hrd$j!vvt8MB{B<$D3#=dTUUdfqXFK{gQK`G&yn^k5cpV{vAr{pw$bC17N z997!z%UQnFpV#UZ(f;5=@$ANgPh+=|T&rI25XN(g@NBYB(?1spIHz7`br_U7Sr7pg zQOS@w+_IF}uI*}1F%w3>?o94D#Xc&%G(S3Ge!M?lbsN_q@pRPF5+}dSOjiOpa9Zrs zsgQs@R3AR=y=FY~Jjxk~tG?&^It*x-hIatf#Kcv`w>F!-0*3ms#r34od%2#wPO_sj zNHVm5kZz3h(?bjJc{CUxOh0k){J+~g$GU1jdiRR)bR92DY5~sLUn7Cy9yB!52RI&( zeMa`a&pFhnG$BQ6HI)U2o^>VH|L1k(Ct7QEjA70hWIK^(h|PymvRxkJ)cKLUaH**?)!0>d;EI$jQ{JXOTQ&C-RUG!eOIk%>}|8B z2mnO>k7Yvp&tPmIAR`ZFz08om?b_D}i&OkA5y%lSJ~)*Rk>xvIsR}h)c%WQ?)55Cb zQgIZcEWEal?PfkQ6$Bn-Bb)0E#b9G`}3#=LTJQSX0Go&Fu%z@zMH?f(t z%?BMf#PlGxcS^LYjV0q+F7>>T>S=)>Auv+F5C)j-;|C>`?0YizQ_G9N_kbk0T6Iif z=b_~5Bpn*%5L>w*DQd9Qvm_uFQE}nXeLPGCXtZr zePXT#nC1f|2#^IXHB^P)WKv%VT3t%O&GzIK)z^wFK6sk6}BeV1awN(h>>xS32#eAHMg zGkERCP(y3*p7wX+Wem%7^^uD;mAC&Dgxf{ZsP^l(rC zFwH==)E7MwXx2Q<@)EbcASj>lbD$}$twN>AL+NtZE6)G`SRKhSQ*29RY#dxt1w!4e zOf*XyjRm=Q_BjJJ*-mUrth2$>pYg&c90TBd6ZeXPy=G~D2Ysli4uDpw`tFyp3qJUQ z$Bg`TC2%nmpR|9;I9CgHk@P_;)Qs5?sai4IlyxmTDUOpAOeUT%?8`qaXVjTEZqnh$ zZCJ6n#4A(q`UOaZ+N@d;l81APiV|Kn`os)h7t9C|0hy(7@PDzZb4@`6+1m^b$uBa5 zYk5f7v_p7)*k~r2CkEx#v~&9R8h8G!k|2$)QSD(p5=**aop)27DE-duUA4u5UL4O1 zj|Ev+oMFv5!=5?--v3St(yu_q)TufJ#V-S|Q{0N~-ws<)ZH77@K&qZrD=KK+Dn#tO zZJS4127>+HPiL_Ni>M1H zn(2NGw~)^=e?LCl?>vS5?&ExdB~7UtvTY-tq=@`>h{-;&h&J0on9!9|i$+kWUAd%O zGHpT>)W7u^A|1t4QC7X+kdFj>o`yhYJ)6nSEndPWJhu7Y;|fodg&tsA8tHh4@!Ffe7r%J~`w7 zzRgR{vswCC?_)J!QY@p5dct7rQaT`CL z3QvE3^sO#o>BkG7X*SiKkp7xGUJb79Ci>6kPjDa-xS}PGZ-p_kv#m+FS9A77OJM|DtRSbb|TSVBVx`^ zV?y$gTcaH{PvAcPOEC%gro<(^A?8Pupat^Cd{id5JW%lYrM|2xz|tB?KSv8NeeT;e z5gae}IjN#wF>2ZC5cccuu-yh8tV~4Bd?G`4gsF{?=+}$a=~>}jqcdrbm2WX+M7=J= zO-38RO~z4UNDb7r{~Vh6>XwR25_+FfTxR#=!t$?ZBfWt^C+&(SZU2?(5b+YUK`d# zt2Gw;OaX{mY18qgemvMPzfFlUcW8gPhi-^d(l45IE}E)hUo}cpIv@3h;`i0!uannx zv+3N>%7FdX@89EvQtIu~0@z5#NHp&El;wQ=lmaaxmQ}fja(=hY!i}coj1Hs2Z>{+u zcT{uQftW9_q!cZall7X0q96?NgA6*K`i-v?Z<*RbCe7u3_R8!z(rZPr-0009!X7t1 z@rlw2^nV2{11(U%za(^WyC&~_>XKj@k3NMO$YnYZJKbl20xd3ALiYB>hPP|ahcg|G)*LiS%RIzMHN_#?qT+(U zvmgs*INGfBxRqS?e&W9O>rAauF=X{(-z*=!lGIvF$+zFeB;T7Z3!#IbU#qevD>6{T z6;g##r}huql<9ohjs8BI+QaqZG}pH!jV?&~-bAKWO#l?T zf+h-D5)Cus=>)!*a-MB|2h?l!0F4zN3vCI|-~`4O1j7C9gDeW*Z2M6INX@ZI6)<&y zSQaRdcEK8}+j-j0K9@aey>0YY(~Vb-;%BXFmGkpuTd|^l5W^BxzGi_?8#WX$gaif5 zdA0a6+u6dUeOwv^{GF?gCMGe`Z!92%wGq zc)QQaBwL@3VG2m-*?zW}J+V*cSjq0fwEP;WXGe`NlAEA!DL3_RIqpC+lU3)cHXX%m zdfJEehTuVVJE_nalL>wCFtfHnR7n+Gq0g>YZ5%HJ#fZV9*xzsXGy^T{32JSt%4Y7? zW;}EBzb#^kn-9;wkl#}^(9zyJU-lKl_y-7$52%ds0a6E-!yAor&6)?{we0zy4&3bz z)@E0Sj4dF?#~cJ)h;tCHzFZzX)7N;QQq9qaLGa;mWr_>^Ve==K*6fu>bZzRW1H)f? zy9l`sDZz_DS}7ra(cZfLL$Ds1!J}}sHmzn!k#HfjKNOwWkb*?|)`Zmu%Qifa!b`mJaqXAi z98T$#m&2h5e@@)YA*>|NT;m@s{2%4sFYY_9m0ijKzMGz-`VA*;9#4v@WSg}ZhW$0g z{>t7Upw$SdJe6RcIIC~|GXF;u@RKSn@1XFX0!->DHiK5~)p4HB7ai_b|KOSbiUEJo zW=eqKSqV4}zjjq4PGgd1c)OoSsrcUSJq!;|1`%~|>Xy*OA_lfvN!<9pew1g>)!HuS zMl+{La!ANCJ^oV+0D}M^AH|VX^L7W+cfK+@BLI3PkYlCI61X?cA~h zrqRpvc;O)XgA8sfYG!9VS<)d2U5RUcJ|bTeE- ztiAF5ATkN}mRyw?Zx#)SAyLA;Qx;z2c97#oTlpLy2qYLPORJ=r>CgD*6y>i${%cN#|jNE{)Wd|5FaRsKDEp%g|0axmXX|64%}@PRI8=yfm8fU-(3l>PiP z=Wmgwf*n^?cbkolHx_s=Ae4Q!H?ypo3m zZO-qJKJsU}N4bW&Hhhk9i2FGJ6R_zx`+bNU_9cT#T!DP%iW=;Ao zpw`=dAIMUW>4iNs*UQbSk~4+-_fl&J)H!oJaUvNy5f@pQHgSF7jKHpD&T9I%bL8Bb zzzp~WVm6lU(`%RexLDFBO2jKBzT390{b^OO1xV?SGPRNY*wPpQUwtq6KyUgzy4zm9vIz4X>B^+XqZdw#p~DSDKmoeK^LLV|~t zYA-BhV;+`FZ`wQDg4bPZTliElTg=KTcz5oK7j^Xu1#FiiIk zMIUleLr9*o*J)Jg;OjLR?=Po(*b()b${q-373qz8;HKHc(xpKtpd*sZ)f{$D8vGkR z`C5%#OZdO{RHS{u0`xs1Gc3{<77*6B7qDSHWUoG#A7>;k<)2t5_dmiN_tKF|rPAX~ z*KvXGWCLMgrh+tk7nQAH>2b07cyRB+Q)|{o(!Dk|eoKf~2}JHi4IKUK!PoKOWYNoZ z+rfLxD{i0WPuCz$?V{V6c==mm+z%LV^`EOz3L$p0a0~r&g|p`MPR@O3Gxi|{j$bE) z7oIcb@kXRPx612!bXg?ytI!@c-OlT+X-M#-%<-ool{?Uc8LkNCxVpd?Z3f1oL2ru0>pT$MyJLNdTJA#fCAGAFWL{CNhv;WVZ?S{-IhFlxWLQ4xx|mV z9hC(t^UQWT`)XbK-u0f{XrbB>gGz-h+iRQB{5-}Y<`sy0Lb7|uYDW#`)@--nNRYpS z4~MuWbeU;V>8L?{yZQ9JIj0$<%S-BbL@L)%F}el?j7>Vt{@1 zKpgOafEaWTu73*00LxCbX;f>72D3+u;1vp`mdNP>Jl`y%_m^AVhC$(R2ZcZJYBys^ zK(uIk7smXs*vN|qp??YY|5WW|c)5J-deh3@YWjd=Px0z~O9wlJ$c5mttHOMB+Y3OB z?BFx-O{=EM_yg}{f9yY5REP)J3JLUijRf#g3GEG{ACjq+FODE%{N1%V-Y65#Jph)V zIfIYDR__gho*M5*hpbv$@I9#fZFPA+%^qKc?td&(D*el;)nTl+6t|c&>1S_oY;tR$ zWv`$X`b1aytT8_Zdi@#Asz<_J8dISr4tO@l#iiua@Wo#p_dm*X4x|^(!l@|@B%Yz* zj6U(y@kb!OLCbxU4Zr*TI_tp15%=aCjj1j$w%KTV+|*pD%-#8R6t-^KeB)x@Y%}U( z;POvJ=m6S!WH;0h-J-4?VvZaRER+dqVQtxBm(jU%tKXvb8>#|;eIH^=roK>XoVaT$ zA%He;eA|ArVj8ytXuNXnvWToJUe9be)Uup}5L37_KaO=<3`HoZrC746#AlU7leb&E zQqXOi?2iiLdHvjwfq)e|LE_bOX(s%y64(hNLHV*C#luQe-zw5KD8)?aZ?CqQbRP_; zkrC7EHs?i()yp#m_be@0f|>egnI@q9fpfckrB6pq27Jp=iA5lMrF;{EnR3I#ul>2& zyR7bqoO4cEei1p&2VfPS1WuHWLbdbvUOw*%k2-*YhXivi>vFB&rno&#JLm<=S#&Kl2+M&1wb*xltLz@XlHV?JD(s zCwkj5qAW_T?WhK0OzN#eOWyid))fr4tzQ4|8V}_rdb=spPI`P6_)j*@$?VS7ly%WXkJfMU4am`fg_WX33?^KC~&hNx^V_R}i!3JSvQEwb;--+rR@eI-Gl)4nt%uQ4!WHe$9qKP^1Cp=!y)d-akTZTeexN*J_Bw;EjyG! z(2o7dd(F6pNZ@igZkZ?bD-TUfeatGA&O(mdCAkuJYL3Cn-P`{Z$E~xCS}(M*F4Wr9 z&~;H4lYxLS7}hCNEn7?iO=Egm%6i5{s+zJrO2F7Pv%bc*hriq3{TGCB9;g?Q)0i~L z9OiUWk6`S*fBWcM1ppexphemfyt+k$oR7Q7I}mWdQAhbNDgT-WAr4t}heMj3{(8d` zp~o(Zf8}ULD0OY#h(-mG#z*P(67zJVrYxYRcdt~q5AZ9_qy7L%FHj&0MPhy7Y8Zqc zi4*|s!F%c%+kBOcw*N+%Ha5RBYr1Y@#hNnqs}CA@Z$JM2g79YlW!v!}y!BHTwe^`H z+2VsRXm-#=WZ&6P>?FyrCAWgTQMZ`0?FHJubrPZv_~^ZnCP#y4csKYORE44>5nWkr004&quw`RH~tr zBQ4h1l~W8RGR0?L1(7a_{*o153Xa)#F0}D^>mET6O8-kCu&r#;^-qTVK?rtAYh`^{U4Z9g>d5gEY4?f!M<(c+PXoG1!-Y-|5*vwz%@EUef( zoH`JSgK!i#TcBOz^qnX8Tb=$Y@7y~+VHITKquFB{qtyx@J~;8y_4*DQRp_%e=%IB( z42+I~6xjiko7~Op?9a$$t$6?yr(Y#_i zZ%G5`*x+)1fqJw@<#eA{J<7{LiAj|b>F@tKq9xEkR-OOc#mW5IpGx?+e&qjY?K{Jo zT)MTf04f5aAWev(^hoa=6cLanUFlU&x|9GR2#8xj!9oBLf`#6D?-EL+C?#}6I-!RE zNl5aA;`<%ncb|REkMsPQYp!ITwPsCuX71H)%WC`is-rva@E@PwiFQQ$o&pc|$5Y_Z ztKS{XSOYC}wJ$D!(q79MJX-?m=x@Z;3d9|I> zu|#=wuy41H-iiiUeE2dq9h`IVs=5OZV*hDuvb{9v-X`-~yS)yxx&Fmzldbh;am!6{pdRK?sv66sM&Soe>FMab zCxNz0{4{Z8l{2*X7kOq7Wg%&&TSAlWKxrs4J&zrkH0Lp>3vmGM+?TvzeCq_?7!Bu@>zuJ{rx$f1>Vwo0lfPZ`%&|huoKIU0Jzo)o$=O?CNvr@Q8j#PpI6og6q(*SHCVuHc`lKXXWt z1wjEXPW=`hT6eD|KV4gTS>nAbzsWXdW}lNp``-JZ8p?zmSEeN9={Km}f1L|lG5DWy7*r!=41hjap>i*Ntg z!;n<>;@B{iw}beAZe3cPG=5=rHYxeBn0M5#3@kPy!Q>G7b6)(}86E|C%IpXM)HXS* z!tjSS9)sidAZ*>&$EU8ri=Q5@p-cGb>4@3%ME~ctpSOs2$1(#ms2**mXL3Hq3BkRS zQ{jifC@4gr$D$oorFZRH9KOHOr|ca{+lQO0D9@r{nBnH)GM+G=rPeI4*6(UBR89-(p!57HSO;t z7pCB8wGS1fZQ(qMgLh8dt?nM1d2XR<5lM>|!@RG2<23dlzwNo8yIk#r8C_-)$WVmz z_{|X&3+uTd03f~_ndp-F;)KbW`ELE!&bA-iJ|R#vFCEds6mvr1y4GL%N|SfXWMCnB z|9=NC7n#2KJ}#-O&o!sA2J&HA!ATLTR0Vm*F_2rXf|!0Iz5Ld{S~@0*6;Z=#I|UML znrt=mQvYMX$huqDyV-i>4~Ie)}0o>lCD6uyLeBiB47UFtJ-Fb1+BBr zD=mI|{r(TCh@Z^A4UxJFNa>b*7jBgiHl0n$-)#XoTXTjQU;u~Q5OZgOZBQVUH>3lT!vx0UU zb6j;u|7J(Hy^)nkn_j%GV+udw%z#b?!q+PAi=_t=T(TfX=bEIY4i(T8i|aD)tD$gM z^a08Dmj&8RN>@CsL6*7m+miBgp#B()Z{GJ+m)eJg!6kRto>^HUvl_-ih{@*I`{(L8 zfcGVJ`?e}TgA(rsUnuRMVzHPptgrPCT@;(NNv?cMOr3m_)v>_Z5;f_vusf)EKNjbm z4bkUJk$Ol~H_LG)7*N=^Ufz`YsY&Xhr&0~gW2qyLR+APm`v0#HNA+suFq9kwi>|4QncLDy5JfAt=o266vOw zm6T96pwY~)XF550oFS+}NbX~s6gjdz?S0HuWoIH{Qez)DJc$T!@ftQC1-V5D&ENaZ zt7?&8!loP~V&z0@nI|i)#PFW(dX3+7|uaH!E zS^?di@QsHTP;NP-O;w251!;0TU=;IlD*z2NUUOcq?|ZiMsEZ&))u0$^daU4v&)tD? z*Y|VxN79XciZ*a&A?nJ)@Vl3EUyjRz(5(+O9)=Jc`P6p2CeoO0Wx9W8VC1usL*aa7 zVZ8F0Y%6G%q=+@ujOy}MOeL-+c(+xNk=zY3=DxQ%^NcsmJYS(FF8#T#!FunFY0YcqU>37aiK<(Y&N!E0#mAbP6J>UMXIcy`8AkOm)vdH^UgxV(D+*Bl%tHk z5{a-H`5mti_-?>0RYpNUElIZwpUIrHo~4m{>VZGLFTGw3R_bvcBrQ~@(6H81`)4Bf z*79>K`LjS6JkR0Opx~r|?yMQsDhE-fhbMYc?%w#8RbL_&V3ZiK86v8*s_;}Z%gda! z^3d)od>?Bdt4c!S&p_R%DQz>?M~|0>oq+U;=1V|&p&4szaiCA1+ho9r{zh+@vq!D^ zyc@u`k}t9H9+9$AG^1LFIde(2e9aGo+5Dgn64Q&n#bCc552&^}96H4_f}s)&BS0o(-{|1Lfb6p!{)vH~ypcXC@W0lgYtp;4;Zt zo=fKA(e?ko-+#qg7Daa$0RKk*u9HD*Tb~yWW?6GvvUdx# z$)o$$4%@Jn%ohaEdHuNFNg&48zq&dfH!ioCIFmK9GUM1GIUZin?a^4jzufk6?LecG z)n?sx1UcPqh}pGE%SaF-f}EuDBs$Jw6ayRVg$YMA@cGpET?D;HNb*G5dM7{6kZah{ zF(r#?9X`P!Ae(*DmSW=BqI9GEDA%+;pON5Ms_?(a2SJ8YH?z+%7+uNKV)~S`X-2B6 zNgVlBbxqsP$8}W<9o4f8oRR3dVochSAR~2K&%6C**Q5X@kLAt-nm924VNHwb53j)mJCd6vjqRon~Wov7_!7d~WMtv#!l9xlPQnkU| zpArc4H_Pn-0NE$&DA(QsnhG&L2*%K~*d!i%eLl($DoEI=nGI>-adQ}wuPB6o6s0;0 zD&tnJ-+3`b0Cit)7KZ4F{7wz{sfP{dV|*ptk?N+v9g7Y(?h$+)6I0u4IYSYa5i`>! z?x50z4{H)T!0GnA;fOYV@s|-kGbHa0x;fG*nwC>p2z^G%O+cB0r%RZngKY{u)VPgl zh~ozk?-guN>*p3G67iDj=3sLq75riXMELSA0-DF|R*_s~^y)bK>dHiHdiZFdBErqD zn>vC7fh}#tH!CJMBj0neH}BoLzMA)HuWjg(9ed`^Q=-rGQ|zyJ$wOwoJJUgLNW5*E z{WVn=FT}iC1QOC0#im$E3PnqsmNuW-fV%UI< z?A~WDP2{xR+Xm|>K#|@`A3EOndOEhLijfRVjVX7kT}s~>)qL!4it3DK6jB?~L0+g1 zmub`I)w2J-W=J5u`Be*-A!YN#xGcn~&k<#t8CN_*0`?S2Z|AvM^C?R+&P7>|?8CI= z2PSUj?x?ci90ZR{4DcGdLd#&95!c&f-yq(Jxot3!*I(%E&Hz+a&KI~ieZIJ5*GRDq zyoV@Cw0vT4>GL_D2byS5YJrva$1X)}ePIw9@>G1%lBvi^P%>UC;EuvcC|e>$D-fZh z0|_v>iO*gpHNsnDFNPlG3WKAxZn!<+HJb0y;Hk-`Y zHG9g>rZEoZ&x*~2D$_qeopCh(l+FH_uvqTe<6r1HojnQXUg->BsEsBZb2RuQ`w9_? zGf;6r-~V}SiM@A6G19AfnJH{GZ%q09an?ECs74XE=E*wBAFk(+a`YAV^h$TtRpT{W zj|7KQeXq;0MBv0{-wN8Z>Z`GleTzPS4f88N8Iy@Pu5SJrK=?JU!?uKZI^r`uizRz6 z9!hbmf*KKDqM-7IBIIt#p-$byG$IE3ap?o7?k@-zB-=A_w(p@o5~F>fK= zknA7NNYc^gzZ4Cy$6L(un*xXuAEQs0Yut;n8Qf_dAy$|gQZrK`RPM@~O^gvflbYeV z@=+k&F6o3)%LuR09NwFX0jx59RUi zZ4l3Qm_+n!aB!8?_XfJxDp*?+Xp#=~BM(kAZ3>Y3J6qS&Z1k6MW+!ra@_)9vYRv}D zcvbYAHi`KTK#Ec9Wod@hz!EumSQ$I38REpEH#5#OX{`j>&QqW=#hkG`0^kqv{-*MpV5o_rwOkh;(_EXX4%zXK^2?pN^w5%7DrJ-odY(wnP zCQ+|er~tWHSj(Ay(w%$Vh!*NGcj3iXCEr|PrQbrUR@2@ni^l*Pg zbRE%B1j%<0cSGYk<-pnF)~2l+mhG!CLv_1q+LQ4)ZHxq9AUqpG-ZkvO_2l>*5`>ls zj-|?Mbz6#*XH&H6LvH`llHH-CGT7IW36ND}WRMt?OPb^9O3tTA9v3gsHT+>6>_oS+ z+~uUY*`q{rfc109%^=A6#aSL1(gXBPLEUN>O3}pvSh0Mr(?nct?UoarpFingEzCcu zQD59liHP|;*;lD)5u9)d(bWSN80j{TUSyemj+%1$SR9g^J&24`Eg7S#ng@KK55F}Q zZ-{b!GwKO(vE5oyBh_#02G-%j-ycq?1(hc6q5BET#RschXtB&ls8^a9L&OdEnbUhtobx!Q_sSg<^5pJAU zPN_wFOr9S*o$7?B5}`DqLMXd-d185hIa0z;eGFbE5zB-XIfb*N<>M^9qLm1813ALO za5dYu&CMDPM7@^fgK=r2LDV?l_by2$#0J!+3zN|Z8Xk6&Hu2n=r<8u9YGn_(lAsuR zuYq19Dx`@wd=}v8i5p=60xiog?7>-PB~R`!wOtLGxraN2>MJlz#=WuV?^{`8dtKRp zDyrS8!ibwoBRCNPz8`%j_3sHQRURz}79c?03_5nXrLgldzaI%+>yRK_F-%YXRL?(k zlXlQECU=POU3~Iof0dabJl?AFXIk3@fUOP2YJX*<=+%0gw3RcF9MS^=BMzU09he7e_Ya1kKo!xhLQfFhp=Z?Zz#VlAM8b3 zlN{{Pdm6fM8yO?^)^@mdrmJMtGw$O!m`AABPZ3wI&XC0Wsx8&Bo(L{mPB;Eyoe_xP zPP~K=zAqatTj;TY2><_rzP?$QLLf0bPe)k-aW^c`oXM3^EJ?Cb9h zvKlY*Q-^m>zXt0TnB1AB?5a{rbiUnpDZ}TPd8D!#UahLFm@zq0CsT(0x~}>w1z`i& z{j+`kin<&h;5{q;clw+(P{CC;CZ}xZy$K8ASj--nb@T$)WFx(u(Rk(XIJVt=)~J-b zus?q_V5X|1Z^A3vBBL6^O}PMF0h!GobL&f82|OE~TO}keR{IL&rnmf2-JFr{#rdwn zI=b%X8T!m4JG5~ayBNpAUEq@`4K#`OBqHpr^o;Ipgy=6b2D8PN8WF2e3f-$=?buPY zcWl&ntQ2B9=#CRDb$os3^w$K&u%>AXW!#-@N#-OeGyvEA*qIP71?~=*0hRaBuE(K_ z>guma-y%`lqx|y8u~6;7>u7Qu;K8TAz&GscCWs$(j=qRt@=y<4mhSvbeij7?AoSXV z`zi6U)!L|5(KktBwYjcpOD-=pyu(i#_t}?IT@e)0IX#ID7^!W}ZQdQP9HfjdS35t3 z1@ovXuYujwk~N?kW|wfd@AJG&PTC9iGPoFx9z6Z1#0gsEObbrIpo|*ouQ4xXHI?2w zKD-#FFyv7)wR^hSs|r8tyL6MCwr+m`?0MI*2pnYrt~-|!syr8{)Xb;)ewObA`P2Rh z=<~&k4;P`7bovuysN%+@XSSC^KgAD|?RC#aIz~lbq)bdmVA(zS^q7!523 zXF&gZKDKaSSyz-O{I7}o{RH0C#qzyJdnpKfP+*iIZ%>zSiMo&?XInH{!Fq1vFDvgy zkQW12=M;V=h{IEe{+vP8wbrP5E9baDCA~yC_-I)_+E#PbsW~i z((m5H_5Hr~Tmd?JjR!GcOn9AENJQHrBzh8t%Vqa3pxyw-bh$tSUYP)SW7euMb6eb^G)-Z(`ukXt!6p9QMP? zt_&8Ppa@u_M^qe2Rwr^cN0q5U<79>YkL=`JN94&7MbPk0oXRl5AOhV>;1?gTIM*t@lN%ZoB2XJoqGO&zKb!>G&;Y8m6tdOoO0kq~BhRukgBdwlUyK z`{Gbhn_r0=Q9`!gL!Xn4jm6|KA0OWr2hGMeVcb-dl$3%@jJb^G7Qcku-YJ@Rc)`Un zW(6~#xn#T<3RtXu-IgdCFi18Uqo82A?QucH%*g_vPuSy6pON+BM3nnT&;$%#IkXL; zNIeb`rn-+&U>yKH$3-~8jZ;UkhTq(I%IE$Hjym)gp`ch62Nne0o3m;eqTa1+-qbPd z*sA6C&r1&mi<2+0kjFh%_&e!S__dlfScxdjqr^(uDy6hSi+z&si(j~fi<*{=&&Q6( z76p}qHh%S%&x~*Zo$u0C(SG>K#yV<(_3fnHzvNR;{G=bXA9ihT&(D~4p0zC$GEivr z>-4Y}Ib#7@oOc^I*Itnt5PV~$linUM1jTYx{0TUDh;t+i>ODk|6T@{X*&rt#*9ocFI>62&tNhLYlVg)`Lh>CR}sYV$I-*IfG&6s;T+UhgAZd=7q z+UseTKU*f6ALg?lla!}nLWy*CU#r#CBf$6JhkZlp39+jdtRYURNx_=bQ;vFwPqSL@ zHjHNLO!Z*#jtIT!O3dZhHf_C&))rL_{hR$X4w53>j@Hv$KtM2E-CV?Ql8Q5DL-m=N zD(3cLKqszZs`SeD0letPTDl3=HhLxOb4QnbNb9)X}wx*!Z zumN;rK}Pm}TQAr==9hr^C3O{dy)-V``APgKFe)YKRg|rmP`!m5RGNRR?IQ76vs6l;m;r#Ua4uM`y0BJP@i|BPc!94?M@!@GhjHX$)@1Dg6iGogToTEd zF&SmQP{1#|@$+%otRH@j{{m7AJXo7FMlZWr(Uy?Dvg`Ha4o&k^GH%9;0jh2Fko#?~ z_9OcZ#Zt#NUde5Kii!}q4s6LIX>CfgzV%Zr#Z`4}L(zm=W)nSfidc4;!$Gx`P2#3c zv-ZxIk>#wx$w3P2kZ*nWTr?}(smlBN608Yu=a*51wKTKWZe$CfgGRAFhU7t~Y4N@c zxxZMoE+Mk*I)RXLls^FQ$lJ1alPt?dZg1K4jP+GB9k7OzZ6s88FOguF^SX{Z%yyi9 zCJ6ERbs4(y6oUI5eOBwO`3^-0pe3^Z6ym9^?3vsT@!o;OV3$w47an@-&%K|AY(~t2 zsfVVpJTKy66$d}Aac@77%nPgss;QePy(oM{WoXS)#%5b}8JL9U1cW4?hm!2qRzVj` zKZ(3z{)^c@MiG8`?J<^W%cU><%jZv8>Tx`@w3Iq$-oLxAZ^5trBJOT(#Ld@hzN=QZ zM%d}kv0r$`y%z=JQfKKJ5*Om+=sx7(91!AHc*%)AmpE*E+T3da;?*y@Q z%=m6klnqw+;Zv_kEu=kYOavxBYy)az;~4O5u00Qr1;bMC+GHDD@oD04I>w!@wk}|5B41Glj~?%| zGw1Q;_RnXMs!GXSo@fj4a-N(qzu|E@Lc7?EI`rP$>jC5d-Cg-IvpAHSF1lD}WRy-y z5CHNTCP(}Yn;m`WX^aRr-9=kC@tl1LLa+dLN~jU6*%KU~=VgyT)}oegTns(B1?O#K z@k)w#=EGIc=oLOY<#;*AicdSrvZ!*|e55nN4s_S`>O!C!UhJhsqLqMoX<04dw4wHC z|vI?iLLgG!W6t*XO%aJCIbNS^=@Pb!R04;Y(dmR2fZ_G;-s2>Y*dq$uEw89A+ zx4WW&&4o=54`5T5uJ1y$e_;Z;H_%s_VjH4oJ}j-b2; zAStG`jWtvx$OH(e*E@aaMMLqb1vgA020j@JZc=GWua<7grzpStb_-o1a3v2)m*v9B zgibcy+})&~(6u8NS(vW|m%9i?`QwK(^K(M2^ISJ>)cYG~a{!&I8%*o9BnwcD72E1` zP2S~Tts{K8QPkXxbsI^j&K~koj2+NWHABRIr&jF~xw|=nm&put;b+bH0S(7yi+NBL z-ywU*NyLp^L?_3)c`{t$4v>G2G0dvZF&h-iU-l>Xrhdber$7^h2!K`pNn=Ur?BQ_7 zz8={Xa8EGA<6-^jG3f`1$WEv6hvK@ZiIqz&1;A(ePLmn)#LfL&1{4%BDShmos_ukr zg_|jNgli`umQ^$YL1l)O2HiN^aGKa8gNftMxVwN9q<^Q_*=%nQc%l1!(VDFpt0W?# z?LD&0Iu4}W7N|gP_7nDn?{lwYkG!|z7p+Mrs~h44WnTJH_@4o9b{2;V)DOsoLWXPX z*{N*#UVL)rYArf`o>FIs3w#frY9}sbb4&`~uX>8_$1J1s6H_a5VzZd?w);{S03mg- zYezT=aV8~=Uiw}01E<6!RL`NxykW}+DnhdJP*uEHxdvXV_&}j~8R)|ajW=bo*Ztk( z6~_40$1!5afdRkDk-O#J6=Ww2GQTFj6>hO4)1Zibh1)-AP>z24dxhMeS{1T>uyJKb zbYCyqm`coxxBqE-n%u{8ho|hn4xJpn9_}AKXn=t-$gQ_IZ_e+oAEy*nUzUSPKN()2w>>?v%UT6e*=KYAW{AQ`rZFe z?~CDEG&D5W|IH^-z-j%jyGQ`H>@8UFw4;Z>*P3W0QlvA3a<%MLDX??eh%8E*q;$jJ zzE*fTB4hGsIcjy@vOn6m#?F~AyH!@LNHHPS$^zyK(}WQKHI0sV;@B&$j+ zS}0k%-hP{HHO_yMUAt!IPFE0E)trwdC2JO(hxc^%E-x5m5|5)C|N(a7~ zOuiOTZ@f?B)tX>BwN`h3F8ysK-LfB52Xd&IU?|bq5AWL_aKyz2Xp|ypMq9Mtjzg+Zf>rj z!q|AywWhvlA@?0!<)fQznGm7MX_M{RiAV8E6N-Xgwv(-FdN#4j+q5Uziluw&{w}^( zzzHlP;g;8BwS?C4tIvM#_gEh!ZNFexuI=dMD7T97Pvg%*NfjBRaeV=3}MhvK0z+p*6(27?Bt zec`%fNXQP`{QQ{2Xu&-LKQg{MOW?LvxYEKulPzQ2$B(Os9F1ElF5wWdrmCHXZJ=k4 zc#VUWrozlz^WA*L?q0Gm?!dElB%NBhr#o9>%SJgQvyPYtwK7X$eUix3!5aFtT7WrK z)#70*a|(?l9!F1f8wCsJ3S4;<|2lOr#h zM1S|&OZGoK39IeSC~_F=sS__E)p_CbO0XW(B3jiH=IysvpljR{AX;(=z2NVysG7Fn z&N{MLRVU9pwqZBJB9@DxJ?mkZ7DXxtYK@y<%o{0C2V+bAaG_4X+%zzuWx7&q!s6Ex z!y)g{o98PuO4GhGa*%I_5hgac6q%;*taMbsb;TW`!*og$^tg zKFxQC`L55f@*;+MliL|yylqdfm*Mr|ncMOhMWOsz8 zzwKSEaV+IVNXz@vW6tc}@r25DdPdpxEQi%m3pG-+T2&KTB|rDF{5>ZW>d#BkJlI-z zX72$jJ#fGwa7T-}gJrBW@=5$;bt(C|j_oh+t>B2376F!prxm;HjN$0JTk#ru*QR07 z|9H>4_IYnec+WuiyGpx7GbzTd7#2;5rvCwG{8-irLG?YnC;0abLo{p<7PWCHq`tgI zt9)qruL7{KvU2aim-7{i=@7k)m6}#fnh4MNXGILUw-(hRDI;$<9H`FJ*|t_&obHNm z@IEWjcXv8#_5P{gwa4sOx}-H-81f-)^_*`d^qV$VX-)YUR$gcG;0*k~fkP^P1Eiqp z-N^9{l&}KZyLSE3kQ;$&CN#)*6)z(13sLUH`Ve55$>R4*YQ5@jp3TFrcL>M3>O>ZL zFHvnCXFm@`O7i&+&vM;ctom0#YShqK12kAdHFUV7Bq^vj7;IhK@`S1m8p*H%EMa|`y!hGA3564|e!e%g8RUwJa$0K-PKH^j|Bf#O615k_h*f+WXPQ%IRc4Bl zmHpd)BqT$ZZ_DwfSBOB8E=5WPixI|V>c$6;VYN=w-D83fg}Y=!2(FO?MJ%T4>Fr|S za_D{?eL3J7?#hl7y)R2t_Jmv*f>hyj=!8X09L>%OoI}5`?p4vtMmjI)wOSc5M{yq% z9wv#pB9Sw*&W7;+hQYENeO$EfL<`4XF`kTCs)c@jmG0H4N+NXF!uC>ypfE2jM*@3i zOGaDP;GgrJk;y!o8CHqkZFfbUcIK5Tn#>|Y>mWJ#zo;wj30bXbU56gM%r3co?aztk zSL*tIFZD}lov>=nf48ap=NLSbP%w)1QZ4N{02GV01%NgxU#X!P$;>wn+=&zEeHkcY z(>V*`6e=5?!o#XwITgDBD|oNXTMMPwqTllm1~jM+UGN{fb^;z-kS4u~h#o6MZdc|n z)}EK!V?y*6?-A)}KAL#T#BTmr^4p!|sUDjQG$os|%@kQ_-)z+rT@P>;G|y5lS~)lr zF#T%SzHz}cxU}rD$uQ7+d^5RO#5%t$l}$~q)!SfZhH+h=#WT3ncHIxCMFS;tkYykJ zzu;L~(qtKYVn(_+i(%S3(`>VM1^-m@_`l()G^2mvxt6~<)8xrCVX%_Lu$XHy|7&vV z8-)S7?z4}Hm$&7*{B7=XW$n@<>E&ZQf8DGG5#*fRvp<%Rl3#hW9C#0+9T%Hj#AMBA z*e^)Hy1;!*&PUBY$~U%B5$29!x@DglV)n@_YIfVX#N7w=?tWfQ$4j%%wO7#UWDOc0 zkea^}%X%UX|BOhUff{Q_wW46tf%nJMrM|rp=?O{!8p?J0Jm@Vi9Lv<~gEOv4WChU^ zuE}><@uKer_v%vNQ!Mb{GCfYf|I=Gi=^xWNjhL3>|Hk^Q8WIJ%x~SI zsZa6L#7BTh)*G3sC3e#>aRigKbXFrt1zQ(xwYFO}tzVqs(s#E7mW;F&AeVb-py{z1{Dc?tAqITS}WNHxQflOKds zrMaMT;jxN#JHL4Rbv{U=CkR@49<2Q5S zByzLH{xOFSmGd%n<7`pVJk=E`Hv8F`{DYtALY%_f@+S4e$!xK3wMa=sFrasDW*?Qq zEEN0>t*%H)O*2Xw%BaBkh`k)xvG7yN*Ssr9k7GB10f2U6xJ8rOj}(0C{xxjUo}b56QTB!& znSrl<7{jny)x5&|49EIPKseLC5tEwhiHT!!Ny99}j3zgjpj_A8IESaHvIg(ybEr>5 z&&0Y}R|%zZZ#9Owc30UwPuG&PXt$d?-pvZ4q$6Z5`Q)>sTt2~Gtbltw6z1$|KX{&@~*ffS# ztu`Yz7cjM=q#%C>AY3~F6LPwozHEH9uHD={>MCtn~`z4}&- zLC^Fnx~AIjcBu=__xo}s2hE$lL6Af%;{TgGr;H1YPz!ifE73G(ztSLWmUiL78}~#_}v=!aja1{EdA$~19sv% z8z^H8qlb;I($?h^X<5Yt**?Ga&>v#g)Ez~ghECMjzs?57}sHvFJlr9Yo9r7nYR zwL6c}dfR)2B3sc?FP<*aUN1b4Y>0^0{PR{CSLEx_I59}seFFOp&oJ~LK#JttJpEr|q4+XWT>DV3g;MpVO zg@ew@p_KnXl?ynanvBU747W=u*!c*e8&j#jM(@?UInul}Qo2=q2$T_u1S>p~-Bm>f zsd|YE8Oq5I8>mr?<612Rbu1=yB#3UrbsD=D?AWvu=siJm1d!hmPt#G3<9bySdDTM7 zq2g$-M##kpbP3J&Y35z@*@&TFDwA)P9clO~)O0DK^d4?G9}+Xz%P_9TbHtNC;-Dl5 z)Xk0y*L`#~9E_nr*?m)WLGJELGa168W>b+zMRW?Y=Q!)!-2GBhjU`RKx-4}lWYFGv zTAj7Bg;BIC>S*BOXqT+J!Z-97XRHr_f!_wFt*;PXw%9`+Ovsm;A_YppTQ%tBA%Df! zD}*`wk%tHMFr!2&zx7uW%FpuVmsg8rx&3~g&u;#1GITJ-FS=;_{#d2{fx5z%zf4qQ zMDKKH{bNp*Nil|4+cW8Y=yXz%d4tq)U$5qTEs|Faz1PIUzuXQSk7ZsVk$36Lu%mTj zhQ_IPuHY!1@wD#t>GDjYqIWP=ZE+@IFP)3Dhq8PM;|KjyjTIa1 zX;4+`)wtNeAfdCZQ;{$}6G)sb`1#9@mP|1g+3X|djF%P0;AePmwr@UqquwjBW+x`% z%ztA)XUKGDSQxmSa_?-=jXC9VXyJpDR+2CO2<2&i_GuPwZ0BgdTeRK(cb-v5Uu{LL zefe4Tkx}dUr&=!Acx|%CVx-8D_TM-%lb?G@OvtLmO^4^xWB!}Gb&V4+5LJzqLHyYB zp1VaVU5h7{^7^62-MM%ohA6Y8szlZ4Jud+@Zfw!_^Zl~Hv&ERevM7tWEXMA)VHk{m zwzv>l5T#v8>Pe#RPT?}&`Vuuacy-#)zN7l%(t7ws*#ycwOi5R%c~GRpz8absW4`&!47D8>@S3~1lBU}d*vMLZV!h_NjQ(ak=1lBMR&PF%0Uoz1zj zIJuQv-oJ5dTCa8ztp?@pU-6xEA^o)+>aWyi(r8qArF{#Lgqt5-3r*$ZHBn8*hRs;L zs?|%`t@Ddu^%pv0iaO3e6Hmvxa+G13X}+3O(&bf_V^$Bl*8V2s1!0-G;*(IO$?KMd za_F1C0YIz}#^!sq3Q1v@rCEq(%0AyGWGYBB??C38Q1IInc(yUJs)sevux3u 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 Date: Wed, 22 Jun 2016 18:36:55 +0200 Subject: [PATCH 0486/1761] Update sigils.markdown --- getting-started/sigils.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 4cd64de00..5197431b1 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -118,8 +118,8 @@ The following escape codes can be used in strings and char lists: * `\t` – tab * `\v` – vertical tab * `\0` - null byte -* `\xDD` - character with hexadecimal representation DD (e.g., `\x13`) -* `\x{D...}` - character with hexadecimal representation with one or more hexadecimal digits (e.g., `\x{abc13}`) +* `\xDD` - represents a single byte in hexadecimal (such as `\x13`) +* `\uDDDD` and `\u{D...}` - represents a Unicode codepoint in hexadecimal (such as `\u{1F600}`) Sigils also support heredocs, that is, triple double- or single-quotes as separators: From 693804beb08c3a10f70c7c8b80fd34311e6bdbe0 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Wed, 22 Jun 2016 22:46:50 +0530 Subject: [PATCH 0487/1761] correct grammatical mistake (#778) --- getting-started/mix-otp/introduction-to-mix.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index a9ecc5564..5f79705eb 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -181,7 +181,7 @@ This file will be automatically required by Mix every time before we run our tes . Finished in 0.04 seconds (0.04s on load, 0.00s on tests) - 1 tests, 0 failures + 1 test, 0 failures Randomized with seed 540224 @@ -207,7 +207,7 @@ Now run `mix test` again (notice this time there will be no compilation): test/kv_test.exs:6 Finished in 0.05 seconds (0.05s on load, 0.00s on tests) - 1 tests, 1 failures + 1 test, 1 failure For each failure, ExUnit prints a detailed report, containing the test name with the test case, the code that failed and the values for the left-hand side (lhs) and right-hand side (rhs) of the `==` operator. From 4b611732f4caf23e65c0c4878ef27cadf2f9f621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 24 Jun 2016 00:54:37 +0200 Subject: [PATCH 0488/1761] Mention function capturing alonside partials --- crash-course.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index 553f92084..6863035e3 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -664,7 +664,7 @@ Enum.map [1, 2, 3], &Math.square/1 ``` -### Partials in Elixir +### Partials and function captures in Elixir Elixir supports partial application of functions which can be used to define anonymous functions in a concise way: @@ -676,7 +676,7 @@ List.foldl [1, 2, 3, 4], 0, &(&1 + &2) #=> 10 ``` -Partials also allow us to pass named functions as arguments. +We use the same `&` operator to capture a function, allowing us to pass named functions as arguments. ```elixir defmodule Math do @@ -689,6 +689,7 @@ Enum.map [1, 2, 3], &Math.square/1 #=> [1, 4, 9] ``` +The above would be equivalent to Erlang's `fun math:square/1`. ## Control flow From b1c69817992c00a4a2f27451518cedd85e15b9f9 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Sat, 25 Jun 2016 23:50:03 +0530 Subject: [PATCH 0489/1761] Use `pid` instead of `bucket` -> consistency (#781) --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 61436b081..8f11e1921 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -65,7 +65,7 @@ defmodule KV.Registry do def lookup(server, name) when is_atom(server) do # 2. Lookup is now done directly in ETS, without accessing the server case :ets.lookup(server, name) do - [{^name, bucket}] -> {:ok, bucket} + [{^name, pid}] -> {:ok, pid} [] -> :error end end From 0d9402c3c063e6f621a71dd1fba411c4ab2c779c Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Sun, 26 Jun 2016 14:43:38 +0530 Subject: [PATCH 0490/1761] update the test suite o/p (#783) --- .../mix-otp/distributed-tasks-and-configuration.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 4a3020028..c8bd0f8d7 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -269,7 +269,7 @@ Excluding tags: [distributed: true] ....... Finished in 0.1 seconds (0.1s on load, 0.01s on tests) -7 tests, 0 failures +7 tests, 0 failures, 1 skipped ``` This time all tests passed and ExUnit warned us that distributed tests were being excluded. If you run tests with `$ elixir --sname foo -S mix test`, one extra test should run and successfully pass as long as the `bar@computer-name` node is available. From 18e39f83d321debb227d38d5b715ddeeb9f03dcb Mon Sep 17 00:00:00 2001 From: Sebastian Duque Date: Sun, 26 Jun 2016 15:09:05 +0100 Subject: [PATCH 0491/1761] typo in crash-course, atoms (#784) --- crash-course.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crash-course.markdown b/crash-course.markdown index 6863035e3..20ab1dc0f 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -186,7 +186,7 @@ Erlang and Elixir have the same data types for the most part, but there are a nu ### Atoms -In Erlang, an `atom` is any identifier that starts with a lowercase letter, e.g. `ok`, `tuple`, `donut`. Identifiers that start with a capital letters are always treated as variable names. Elixir, on the other hand, uses the former for naming variables, and the latter are treated as atom aliases. Atoms in Elixir always start with a colon `:`. +In Erlang, an `atom` is any identifier that starts with a lowercase letter, e.g. `ok`, `tuple`, `donut`. Identifiers that start with a capital letter are always treated as variable names. Elixir, on the other hand, uses the former for naming variables, and the latter are treated as atom aliases. Atoms in Elixir always start with a colon `:`. **Erlang** From f265675ec18d097264887431a4aa33882cbc6ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 28 Jun 2016 11:06:34 +0100 Subject: [PATCH 0492/1761] Release v1.3.1 --- docs.markdown | 2 +- elixir.csv | 1 + erlang.csv | 13 +++++-------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docs.markdown b/docs.markdown index 7c415201a..98a0ad1f4 100644 --- a/docs.markdown +++ b/docs.markdown @@ -26,7 +26,7 @@ Choose which version you want documentation for. * [Logger](/docs/master/logger/) - builtin Logger * [Mix](/docs/master/mix/) - build tool -

        v1.3 (download)

        +

        v1.3 (download)

        * [Elixir](/docs/v1.3/elixir/) - standard library * [EEx](/docs/v1.3/eex/) - templating library diff --git a/elixir.csv b/elixir.csv index 04c188536..a55d1e76d 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.3.1,https://github.com/elixir-lang/elixir/releases/download/v1.3.1/Precompiled.zip,release,1 1.3.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0/Precompiled.zip,release,1 1.2.6,https://github.com/elixir-lang/elixir/releases/download/v1.2.6/Precompiled.zip,release,1 1.2.5,https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip,release,1 diff --git a/erlang.csv b/erlang.csv index 501df2f44..ae3353cbc 100644 --- a/erlang.csv +++ b/erlang.csv @@ -1,9 +1,6 @@ version_otp,version_erts,url_win32,url_win64 -18.2.1,7.2.1,http://erlang.org/download/otp_win32_18.2.1.exe,http://erlang.org/download/otp_win64_18.2.1.exe -18.2,7.2,http://erlang.org/download/otp_win32_18.2.exe,http://erlang.org/download/otp_win64_18.2.exe -18.1,7.1,http://www.erlang.org/download/otp_win32_18.1.exe,http://www.erlang.org/download/otp_win64_18.1.exe -18.0,7.0,http://www.erlang.org/download/otp_win32_18.0.exe,http://www.erlang.org/download/otp_win64_18.0.exe -17.5,6.4,http://www.erlang.org/download/otp_win32_17.5.exe,http://www.erlang.org/download/otp_win64_17.5.exe -17.4,6.3,http://www.erlang.org/download/otp_win32_17.4.exe,http://www.erlang.org/download/otp_win64_17.4.exe -17.3,6.2,http://www.erlang.org/download/otp_win32_17.3.exe,http://www.erlang.org/download/otp_win64_17.3.exe -17,6.0,http://www.erlang.org/download/otp_win32_17.0.exe,http://www.erlang.org/download/otp_win64_17.0.exe +19.0,8.0,http://erlang.org/download/otp_win32_19.0.exe,http://erlang.org/download/otp_win64_19.0.exe +18.3,7.3,http://erlang.org/download/otp_win32_18.3.exe,http://erlang.org/download/otp_win64_18.3.exe +18.1,7.1,http://erlang.org/download/otp_win32_18.1.exe,http://erlang.org/download/otp_win64_18.1.exe +17.5,6.4,http://erlang.org/download/otp_win32_17.5.exe,http://erlang.org/download/otp_win64_17.5.exe +17.4,6.3,http://erlang.org/download/otp_win32_17.4.exe,http://erlang.org/download/otp_win64_17.4.exe From 6ab0eed39b9f9571f9da554cd91cfa68fbb22449 Mon Sep 17 00:00:00 2001 From: Charles Renwick Date: Wed, 29 Jun 2016 05:01:00 -0400 Subject: [PATCH 0493/1761] fix a typo (missing "a") (#785) --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 6c61d36de..4d89e731e 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -9,7 +9,7 @@ title: Agent In this chapter, we will create a module named `KV.Bucket`. This module will be responsible for storing our key-value entries in a way it can be read and modified by other processes. -If you have skipped the Getting Started guide or if you have read it long ago, be sure to re-read the chapter about [Processes](/getting-started/processes.html). We will use it as starting point. +If you have skipped the Getting Started guide or if you have read it long ago, be sure to re-read the chapter about [Processes](/getting-started/processes.html). We will use it as a starting point. ## The trouble with state From 87728172d8f9f321577807a1d828fcc968986f6c Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Thu, 30 Jun 2016 14:25:13 +0530 Subject: [PATCH 0494/1761] update specs w.r.t Elixir 1.3 (#782) - mention correct version of dependency w.r.t correct explanation of Version. --- .../mix-otp/dependencies-and-umbrella-apps.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 209d201dd..a3899af33 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -45,7 +45,7 @@ def deps do end ``` -This dependency refers to the latest version of Plug in the 1.0.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/Version.html). +This dependency refers to the latest version of Plug in the 1.x.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/Version.html). Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage git dependencies too: @@ -154,12 +154,12 @@ defmodule KVServer.Mixfile do def project do [app: :kv_server, - version: "0.0.1", + version: "0.1.0", build_path: "../../_build", config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.2", + elixir: "~> 1.3", build_embedded: Mix.env == :prod, start_permanent: Mix.env == :prod, deps: deps] From cc3cf93e1626d8462aa86daca121745f31ea1393 Mon Sep 17 00:00:00 2001 From: Giovanni Bonetti Date: Thu, 30 Jun 2016 14:07:34 -0700 Subject: [PATCH 0495/1761] Clarify text of the release 1.3 blog post (#787) --- _posts/2016-06-21-elixir-v1-3-0-released.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2016-06-21-elixir-v1-3-0-released.markdown b/_posts/2016-06-21-elixir-v1-3-0-released.markdown index 4d697dce2..91a54fb7a 100644 --- a/_posts/2016-06-21-elixir-v1-3-0-released.markdown +++ b/_posts/2016-06-21-elixir-v1-3-0-released.markdown @@ -59,7 +59,7 @@ Elixir v1.3 introduces the `Calendar` module as well as 4 new calendar types: * `NaiveDateTime` - used to store datetimes without a timezone (year, month, day, hour, minute, second, microseconds) in a given calendar. It is called naïve because without a timezone, the datetime may not actually exist. For example, when there are daylight savings changes, a whole hour may not exist (when the clock moves forward) or a particular instant may happen twice (when the clock moves backwards) * `DateTime` - used to store datetimes with timezone (year, month, day, hour, minute, second, microsecond and time zone, with abbreviation, UTC and standard offset) -The current Calendar modules and its types is to provide a base for interoperatibility in the ecosystem instead of full-featured datetime API. This release includes basic functionality for building new types and converting them from and back strings. +The aim of the current implementation of the Calendar modules and its types is to provide a base for interoperatibility in the ecosystem instead of full-featured datetime API. This release includes basic functionality for building new types and converting them from and back strings. Elixir v1.3 also introduces 3 new sigils related to the types above: From 38bafe8b79ee1de1ccf672b7e138ae780a2c2994 Mon Sep 17 00:00:00 2001 From: Uri Gorelik Date: Thu, 30 Jun 2016 17:29:30 -0400 Subject: [PATCH 0496/1761] Changed reference from :timer.sleep/1 to Process.sleep/1 for 1.3 (#786) --- getting-started/mix-otp/agent.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 4d89e731e..508570b4a 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -174,9 +174,9 @@ This distinction is important. If there are expensive actions to be done, you mu ```elixir def delete(bucket, key) do - :timer.sleep(1000) # puts client to sleep + Process.sleep(1000) # puts client to sleep Agent.get_and_update(bucket, fn dict -> - :timer.sleep(1000) # puts server to sleep + Process.sleep(1000) # puts server to sleep Map.pop(dict, key) end) end From 5f328eb27167d0c1f494f187729288817eb1e978 Mon Sep 17 00:00:00 2001 From: Rob Conery Date: Sat, 2 Jul 2016 09:53:20 +0200 Subject: [PATCH 0497/1761] Added Red:4 Learning reference (#788) --- learning.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/learning.markdown b/learning.markdown index 14f73f135..91bb42993 100644 --- a/learning.markdown +++ b/learning.markdown @@ -73,6 +73,15 @@ Elixir-School is an open and community driven effort inspired by Twitter’s Sca
        +

        Take Off With Elixir

        + +Red:4 + +Red:4 is a fictional aerospace startup that needs your help! Through a book, a video, or both you can learn Elixir the fun way by immersing yourself in an on-the-job style set of problems. For instance, you will set up a project to calculate escape velocity for each of the planets in our solar system, learning pattern matching and language basics along the way. You'll move on to orbital mechanics while learning how to debug and refactor your code for clarity and meaning. You'll learn list basics and data storage techniques as you build a solar flare tracking system. Finally, you'll dive into OTP using Ecto and PostgreSQL - all in an effort to overwhelm our internal systems with the power of Elixir! + +
        + + ## Screencasts

        Elixir Sips

        From 5c02480245532e0265355d56d13a3dc1d3aebb6a Mon Sep 17 00:00:00 2001 From: Kenneth Chung Date: Sun, 3 Jul 2016 16:16:22 -0700 Subject: [PATCH 0498/1761] setup -> set up (#789) Should be the verb "set up" not the noun. --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 1bc228754..3ea7f7368 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -9,7 +9,7 @@ title: Supervisor and Application So far our application has a registry that may monitor dozens, if not hundreds, of buckets. While we think our implementation so far is quite good, no software is bug free, and failures are definitely going to happen. -When things fail, your first reaction may be: "let's rescue those errors". But in Elixir we avoid the defensive programming habit of rescuing exceptions, as commonly seen in other languages. Instead, we say "let it crash". If there is a bug that leads our registry to crash, we have nothing to worry about because we are going to setup a supervisor that will start a fresh copy of the registry. +When things fail, your first reaction may be: "let's rescue those errors". But in Elixir we avoid the defensive programming habit of rescuing exceptions, as commonly seen in other languages. Instead, we say "let it crash". If there is a bug that leads our registry to crash, we have nothing to worry about because we are going to set up a supervisor that will start a fresh copy of the registry. In this chapter, we are going to learn about supervisors and also about applications. We are going to create not one, but two supervisors, and use them to supervise our processes. From 7797a89f0a7c9d26b3b92fdc4bc5420761d959b1 Mon Sep 17 00:00:00 2001 From: Pablo Brasero Date: Tue, 5 Jul 2016 11:36:27 +0100 Subject: [PATCH 0499/1761] How do we know this is working? (#791) I was reading through this and felt that this section didn't explain sufficiently well how we can know that this change is working. I added some paragraphs to try a first approximation. You'll notice it's written like I don't know Elixir because... well, that. Am I making sense? Would an addition along these lines be helpful to readers? --- getting-started/mix-otp/supervisor-and-application.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 3ea7f7368..bfa3a1497 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -203,7 +203,11 @@ iex> KV.Registry.lookup(KV.Registry, "shopping") {:ok, #PID<0.88.0>} ``` -Excellent! +How do we know this is working? After all, we are creating the bucket and then looking it up; of course it should work, right? Well, remember that `KV.Registry.create/2` uses `GenServer.cast/3`, and therefore will return `:ok` regardless of whether the message finds its target or not. At that point, we don't know whether the supervisor and the server are up, and if the bucket was created. However, `KV.Registry.lookup/2` uses `GenServer.call/3`, and will block and wait for a response from the server. We do get a positive response, so we know all is up and running. + +For an experiment, try reimplementing `KV.Registry.create/2` to use `GenServer.call/3` instead, and momentarily disable the application callback. Run the code above on the console again, and you will see the creation step fail straightaway. + +Don't forget to bring the code back to normal before resuming this tutorial! ### Projects or applications? From 0d26f10abeed7e044f0bf6e23559b02c3207ef26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 Jul 2016 18:36:34 +0200 Subject: [PATCH 0500/1761] Update erlang-libraries.markdown --- getting-started/erlang-libraries.markdown | 27 +---------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index 6b3a14386..fc7215e7a 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -35,16 +35,7 @@ codepoints, while `:binary` deals with raw data bytes. ## Formatted text output Elixir does not contain a function similar to `printf` found in C and other -languages. An option is to rely on string interpolation to achieve a similar -result: - -```iex -iex> f = Float.to_string(:math.pi, decimals: 3) |> String.rjust(10) -iex> str = "Pi is approximately given by: #{f}" -"Pi is approximately given by: 3.142" -``` - -Alternatively, the Erlang standard library functions `:io.format/2` and +languages. Luckily, the Erlang standard library functions `:io.format/2` and `:io_lib.format/2` may be used. The first formats to terminal output, while the second formats to an iolist. The format specifiers differ from `printf`, [refer to the Erlang documentation for details](http://erlang.org/doc/man/io.html#format-1). @@ -60,22 +51,6 @@ iex> to_string :io_lib.format("Pi is approximately given by:~10.3f~n", [:math.pi Also note that Erlang's formatting functions require special attention to Unicode handling. -## The calendar module - -[The calendar module](http://erlang.org/doc/man/calendar.html) contains -functions for conversion between local and universal time, as well as -time conversion functions. - -```iex -iex> :calendar.day_of_the_week(1980, 6, 28) -6 -iex> {date, time} = :calendar.now_to_local_time(:erlang.timestamp) -iex> date -{2016, 2, 17} -iex> time -{22, 4, 55} -``` - ## The crypto module [The crypto module](http://erlang.org/doc/man/crypto.html) contains hashing From 01e26acaa17e94d7226f0e2df937dd251c0bdfb0 Mon Sep 17 00:00:00 2001 From: Pablo Brasero Date: Wed, 6 Jul 2016 20:17:23 +0100 Subject: [PATCH 0501/1761] Brackets seem to imply something that's not true To me, those round brackets imply a causal relationship: "it's a fast operation because indexes start from zero". That's definitely not the case, so I think the punctuation should change. --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index d699feafc..e6dc61605 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -317,7 +317,7 @@ iex> tuple_size {:ok, "hello"} 2 ``` -Tuples store elements contiguously in memory. This means accessing a tuple element per index or getting the tuple size is a fast operation (indexes start from zero): +Tuples store elements contiguously in memory. This means accessing a tuple element per index or getting the tuple size is a fast operation. Indexes start from zero: ```iex iex> tuple = {:ok, "hello"} From ea8f8e5421123ca3e1e69a2f7985c9aa20b00d90 Mon Sep 17 00:00:00 2001 From: Feynman Liang Date: Thu, 7 Jul 2016 09:21:50 +0100 Subject: [PATCH 0502/1761] Make closure example's captured variable explicit (#794) The current example does not actually illustrate closure capture of variables in scope at function declaration. --- getting-started/basic-types.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index e6dc61605..cc965ba8f 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -216,7 +216,9 @@ Note a dot (`.`) between the variable and parenthesis is required to invoke an a Anonymous functions are closures, and as such they can access variables that are in scope when the function is defined: ```iex -iex> add_two = fn a -> add.(a, 2) end +iex> b = 2 +2 +iex> add_two = fn a -> add.(a, b) end #Function<6.71889879/1 in :erl_eval.expr/5> iex> add_two.(2) 4 From 267bb2c2c7865d9fb090b45511bec0e674d8bab0 Mon Sep 17 00:00:00 2001 From: Shia Date: Fri, 8 Jul 2016 08:21:07 +0900 Subject: [PATCH 0503/1761] Proposal to highlight indented code (#796) --- getting-started/meta/macros.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index d66c83c78..ec903331e 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -156,7 +156,9 @@ HygieneTest.go Variable hygiene only works because Elixir annotates variables with their context. For example, a variable `x` defined on line 3 of a module would be represented as: - {:x, [line: 3], nil} +```elixir +{:x, [line: 3], nil} +``` However, a quoted variable is represented as: From 8eb74975107713f012487bb51f16dfc1eda4874b Mon Sep 17 00:00:00 2001 From: mreininger Date: Mon, 11 Jul 2016 19:09:02 +0200 Subject: [PATCH 0504/1761] fixed non-compiling example --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index cc965ba8f..e12beac48 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -218,7 +218,7 @@ Anonymous functions are closures, and as such they can access variables that are ```iex iex> b = 2 2 -iex> add_two = fn a -> add.(a, b) end +iex> add_two = fn a -> add.(a, a) end #Function<6.71889879/1 in :erl_eval.expr/5> iex> add_two.(2) 4 From 5c3cc30b23b87f064db8064254257da5623b1d79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 12 Jul 2016 09:58:28 +0200 Subject: [PATCH 0505/1761] Update basic-types.markdown --- getting-started/basic-types.markdown | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index e12beac48..fe505a638 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -213,18 +213,16 @@ Functions are "first class citizens" in Elixir meaning they can be passed as arg Note a dot (`.`) between the variable and parenthesis is required to invoke an anonymous function. -Anonymous functions are closures, and as such they can access variables that are in scope when the function is defined: +Anonymous functions are closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anynomous function we have previously defined: ```iex -iex> b = 2 -2 -iex> add_two = fn a -> add.(a, a) end +iex> double = fn a -> add.(a, a) end #Function<6.71889879/1 in :erl_eval.expr/5> -iex> add_two.(2) +iex> double.(2) 4 ``` -A variable assigned inside a function does not affect its surrounding environment: +Keep in mind a variable assigned inside a function does not affect its surrounding environment: ```iex iex> x = 42 From 7cdc64c23ab09f55e8c977a0fe75bd44fcc25f3a Mon Sep 17 00:00:00 2001 From: laurenfackler Date: Tue, 12 Jul 2016 17:04:35 -0400 Subject: [PATCH 0506/1761] Pluralize "process" (#800) --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 2d72b6862..399d61343 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -252,7 +252,7 @@ We don't need to worry about this for `handle_call/3` and `handle_cast/2` becaus We have previously learned about links in the [Process chapter](/getting-started/processes.html). Now, with the registry complete, you may be wondering: when should we use monitors and when should we use links? -Links are bi-directional. If you link two process and one of them crashes, the other side will crash too (unless it is trapping exits). A monitor is uni-directional: only the monitoring process will receive notifications about the monitored one. Simply put, use links when you want linked crashes, and monitors when you just want to be informed of crashes, exits, and so on. +Links are bi-directional. If you link two processes and one of them crashes, the other side will crash too (unless it is trapping exits). A monitor is uni-directional: only the monitoring process will receive notifications about the monitored one. Simply put, use links when you want linked crashes, and monitors when you just want to be informed of crashes, exits, and so on. Returning to our `handle_cast/2` implementation, you can see the registry is both linking and monitoring the buckets: From 0dbd51f5d6d3c3a03e513b6f892f498df6c04116 Mon Sep 17 00:00:00 2001 From: laurenfackler Date: Wed, 13 Jul 2016 11:25:27 -0400 Subject: [PATCH 0507/1761] Grammar fix: add a missing "an" (#802) --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index bfa3a1497..c04d05662 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -408,6 +408,6 @@ It depends. It is ok to rely on shared global state as long as we depend only on Similar reasoning should be applied to our bucket supervisor. Although multiple registries may start buckets on the shared bucket supervisor, those buckets and registries are isolated from each other. We would only run into concurrency issues if we used a function like `Supervisor.count_children(KV.Bucket.Supervisor)` which would count all buckets from all registries, potentially giving different results when tests run concurrently. -Since we have relied only on a non-shared partition of the bucket supervisor so far, we don't need to worry about concurrency issues in our test suite. In case it ever becomes a problem, we can start a supervisor per test and pass it as argument to the registry `start_link` function. +Since we have relied only on a non-shared partition of the bucket supervisor so far, we don't need to worry about concurrency issues in our test suite. In case it ever becomes a problem, we can start a supervisor per test and pass it as an argument to the registry `start_link` function. Now that our application is properly supervised and tested, let's see how we can speed things up. From ae07d979e17cb845e80413d8aeafc44b23765e93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ad=C3=A1n=20S=C3=A1nchez=20de=20Pedro=20Crespo?= Date: Thu, 14 Jul 2016 13:14:30 +0200 Subject: [PATCH 0508/1761] 1.3 lexicals (#748) Update for abiding by 1.3 lexicals' returned values: https://github.com/elixir-lang/elixir/issues/4596 https://github.com/elixir-lang/elixir/pull/4629 --- getting-started/alias-require-and-import.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 41b84c7a5..5693878c1 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -84,7 +84,7 @@ Macros are chunks of code that are executed and expanded at compilation time. Th iex> Integer.is_odd(3) ** (CompileError) iex:1: you must require Integer before invoking the macro Integer.is_odd/1 iex> require Integer -nil +Integer iex> Integer.is_odd(3) true ``` @@ -99,7 +99,7 @@ We use `import` whenever we want to easily access functions or macros from other ```iex iex> import List, only: [duplicate: 2] -nil +List iex> duplicate :ok, 3 [:ok, :ok, :ok] ``` From 48bae3cafb7ac2a8659aed9c5a14e3ff44240463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 14 Jul 2016 13:18:03 +0200 Subject: [PATCH 0509/1761] Announcing GenStage (#801) --- _includes/search.html | 2 +- .../2016-07-14-announcing-genstage.markdown | 358 ++++++++++++++++++ 2 files changed, 359 insertions(+), 1 deletion(-) create mode 100644 _posts/2016-07-14-announcing-genstage.markdown diff --git a/_includes/search.html b/_includes/search.html index b7d0d3f3e..aabe51dff 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown new file mode 100644 index 000000000..8d6b27a72 --- /dev/null +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -0,0 +1,358 @@ +--- +layout: post +title: Announcing GenStage +author: José Valim +category: Announcements +excerpt: GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. In this blog post we will cover the background that led us to GenStage, some example use cases, and what we are exploring for future releases. +--- + +Today we are glad to announce the official release of GenStage. GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. In the short-term, we expect GenStage to replace the use cases for GenEvent as well as providing a composable abstraction for consuming data from third party systems. + +In this blog post we will cover the background that led us to GenStage, some example use cases, and what we are exploring for future releases. If instead you are looking for a quick reference, [check the project source code](https://github.com/elixir-lang/gen_stage) and [access its documentation](https://hexdocs.pm/gen_stage/). + +## Background + +One of the original motivations for [creating and designing Elixir was to introduce better abstractions for working with collections](https://www.youtube.com/watch?v=Lqo9-pQuRKE). Not only that, we want to provide developers interested in manipulating collections with a path to take their code from eager to lazy, to concurrent and then distributed. + +Let's discuss a simple but actual example: word counting. The idea of word counting is to receive one file and count how many times each word appeards in the document. Using the `Enum` module it could be implemented as follows: + +```elixir +File.read!("path/to/some/file") +|> String.split("\n") +|> Enum.flat_map(fn line -> + String.split(line, " ") + end) +|> Enum.reduce(%{}, fn word, acc -> + Map.update(acc, word, 1, & &1 + 1) + end) +|> Enum.to_list() +``` + +While the solution above works fine and is efficient for small files, it is quite restrictive for large inputs as it loads the whole file into memory. + +Another issue with the solution above is that the `Enum.flat_map/2` step will build a huge list, with all the words in the file, before we effectively start counting them. Again, for a large document, this means more memory usage and a waste of processing time in building a list that will be traversed right after. + +Luckily, Elixir provides a solution to this problem (and has provided it for quite some time): streams. One of the advantage of streams is they are lazy, allowing us to traverse collections item by item, in this case, line by line, instead of loading the whole data set into memory. Let's rewrite the example above to use streams: + +```elixir +File.stream!("path/to/some/file") +|> Stream.flat_map(fn line -> + String.split(line, " ") + end) +|> Enum.reduce(%{}, fn word, acc -> + Map.update(acc, word, 1, & &1 + 1) + end) +|> Enum.to_list() +``` + +By using `File.stream!` and `Stream.flat_map`, we build a lazy computation that will emit a single line, break that line into words, and emit such words one by one without building huge lists in memory when enumerated. The functions in the [Stream module](http://elixir-lang.org/docs/stable/elixir/Stream.html) just express the computation we want to perform. The computation itself, like traversing the file or breaking into words in `flat_map`, only happen when we call a function in the `Enum` module. We have covered [the foundation for Enum and Streams](http://blog.plataformatec.com.br/2015/05/introducing-reducees/) in another article. + +The solution above allows us to work with large datasets without loading them all into memory. For large files, it is going to provide much better performance than the eager version. However, the solution above still does not leverage concurrency. For a machine with more than one core, which is the huge majority of machines we have available today, it is a suboptimal solution. + +That said, how could we leverage concurrency in the example above? + +During my ElixirConf 2015 keynote, [I discussed one of the most immediate solutions to this problem](http://confreaks.tv/videos/elixirconf2015-keynote) which was to convert parts of your pipeline to separate processes: + +```elixir +File.stream!("path/to/some/file") +|> Stream.flat_map(fn line -> + String.split(line, " ") + end) +|> Stream.async() # NEW! +|> Enum.reduce(%{}, fn word, acc -> + Map.update(acc, word, 1, & &1 + 1) + end) +|> Enum.to_list() +``` + +The idea is that `Stream.async` would run the previous computations in a separate process that would stream its messages to the process that called `Enum.reduce`. Unfortunately, the solution above is less than ideal. + +First of all, we want to avoid moving data between processes as much as possible. Instead, we want to start multiple processes that perform the same computation in parallel. Not only that, if we are requiring developers to place `Stream.async` manually, it may lead to inneficient and error prone solutions. + +Although the solution above has many flaws, it has helped us ask the right questions: + + * If `Stream.async` is introducing new processes, how can we guarantee those processes are supervised? + + * Since we are exchanging messages between processes, how can we do so with back-pressure? After all, if one process cannot process data as fast as it receives them, we want to slow down the processes sending the data so we guarantee the slowest process does not get overflown with messages + +We have jumped through different abstractions trying to answer those questions until we have finally settled on GenStage. + +## GenStage + +GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. Developers who use GenStage only need to worry about how the data is produced, manipulated and consumed. The act of dispatching the data and providing back-pressure is completely abstracted away from the developers. + +As a quick example, let's write a simple pipeline that will produce events as increasing numbers, multiply those numbers by two, and then print them to terminal. We will do so by implementing three stages, the `:producer`, the `:producer_consumer` and the `:consumer`, which we will call `A`, `B` and `C` respectively. We will go back to the word counting example at the end of this post. + +Let's start with the producer that we will call `A`. Since `A` is a producer, its main responsibility is to receive demand, which is the number of events the consumer is willing to handle, and generate events. Those events may be in memory or an external data source. For now let's implement a simple counter starting from a given value of `counter` received on `init/1`: + +Note: all of the modules in the `GenStage` project are prefixed with the `Experimental` namespace. That's why the examples below and your code should `alias Experimental.GenStage` at the top of your files. + +```elixir +alias Experimental.GenStage + +defmodule A do + use GenStage + + def init(counter) do + {:producer, counter} + end + + def handle_demand(demand, counter) when demand > 0 do + # If the counter is 3 and we ask for 2 items, we will + # emit the items 3 and 4, and set the state to 5. + events = Enum.to_list(counter..counter+demand-1) + + # The events to emit is the second element of the tuple, + # the third being the state. + {:noreply, events, counter + demand} + end +end +``` + +`B` is a producer-consumer. This means it does not explicitly handle the demand because the demand is always forwarded to its producers. Once `A` receives the demand from `B`, it will send events to `B` which will be transformed by `B` as desired and then sent to `C`. In our case, B will receive events and multiply them by a number given on initialization and stored as the state: + +```elixir +alias Experimental.GenStage + +defmodule B do + use GenStage + + def init(number) do + {:producer_consumer, number} + end + + def handle_events(events, _from, number) do + events = Enum.map(events, & &1 * number) + {:noreply, events, number} + end +end +``` + +`C` is the consumer which will finally receive those events and print them every second to the terminal: + +```elixir +alias Experimental.GenStage + +defmodule C do + use GenStage + + def init(sleeping_time) do + {:consumer, sleeping_time} + end + + def handle_events(events, _from, sleeping_time) do + # Print events to terminal. + IO.inspect(events) + + # Sleep the configured time. + Process.sleep(sleeping_time) + + # We are a consumer, so we never emit events. + {:noreply, [], sleeping_time} + end +end +``` + +With the stages defined, we can start and connect them: + +```elixir +{:ok, a} = GenStage.start_link(A, 0) # starting from zero +{:ok, b} = GenStage.start_link(B, 2) # multiply by 2 +{:ok, c} = GenStage.start_link(C, 1000) # sleep for a second + +GenStage.sync_subscribe(c, to: b) +GenStage.sync_subscribe(b, to: a) + +# Sleep so we see events printed. +Process.sleep(:infinity) +``` + +As soon as we subscribe the stages, we should see items being printed to the terminal. Notice that, even though we have introduced a sleep command to the consumer, the producers will never overflow the consumer with data. That's because the communication between stages is demand-driven. The producer can only send items to consumers after the consumers have sent demand upstream. Producers must never send more items than consumers have asked. + +One consequence of this design decision is that parallelizing stateless stages like the consumer above is really straight-forward: + +```elixir +{:ok, a} = GenStage.start_link(A, 0) # starting from zero +{:ok, b} = GenStage.start_link(B, 2) # multiply by 2 + +{:ok, c1} = GenStage.start_link(C, 1000) # sleep for a second +{:ok, c2} = GenStage.start_link(C, 1000) # sleep for a second +{:ok, c3} = GenStage.start_link(C, 1000) # sleep for a second +{:ok, c4} = GenStage.start_link(C, 1000) # sleep for a second + +GenStage.sync_subscribe(c1, to: b) +GenStage.sync_subscribe(c2, to: b) +GenStage.sync_subscribe(c3, to: b) +GenStage.sync_subscribe(c4, to: b) +GenStage.sync_subscribe(b, to: a) + +# Sleep so we see events printed. +Process.sleep(:infinity) +``` + +By simply starting multiple consumers, the stage `B` will now receive demand from multiple stages and dispatch events to those stages which are now running concurrently, always picking the stage that is able to process more items. We can also leverage concurrency from the opposite direction too: if the producer is the slow stage in a pipeline, you can start multiple producers and have the (multiple) consumers subscribing to them. + +In order to know which consumer should receive a particular event, producer stages depend on a behaviour called [`GenStage.Dispatcher`](https://hexdocs.pm/gen_stage/Experimental.GenStage.Dispatcher.html). The default dispatcher is the `GenStage.DemandDispatcher` we have briefly described above: it will collect the demand from different consumers and dispatch to the one with highest demand. This means if one consumer is slow, maybe because we increased its sleeping time to 10 seconds, it will receive less items. + +### GenStage for data-ingestion + +One of the use cases for GenStage is to consume data from third-party systems. The demand system with back-pressure guarantees we won't import more data than we can effectively handle. The demand dispatcher allows us to easily leverage concurrency when processing the data by simply adding more consumers. + +During the Elixir London Meetup, I have live-coded a short example that shows how to use `GenStage` to concurrently process data stored in a PostgreSQL database as a queue: + + + +### GenStage for event dispatching + +Another scenario where GenStage can be useful today is to replace cases where developers would have used [GenEvent](http://elixir-lang.org/docs/stable/elixir/GenEvent.html) in the past. For those unfamiliar with GenEvent, it is a behaviour where events are sent to an "event manager" which then proceeds to invoke "event handlers" for each event. GenEvent, however, has one big flaw: the event manager and all event handlers run in the same process. This means GenEvent handlers cannot easily leverage concurrency without forcing developers to implement those mechanisms themselves. Furthermore, GenEvent handlers have very ackward error semantics. Because event handlers are not separate processes, we cannot simply rely on supervisors restarting them. + +GenStage solves those problems by having a producer as the event manager. The producer itself should be configured to use [`GenStage.BroadcastDispatcher`](https://hexdocs.pm/gen_stage/Experimental.GenStage.BroadcastDispatcher.html) as its dispacther. The broadcast dispatcher will guarantee events are dispatched to all consumers in a way to not exceed the demand of any of the consumers. This allows us to leverage concurrency and, not only that, having the "event manager" as a producer gives us much more flexibility in terms of buffering and reacting to failures. + +Let's see an example of building an event manager as a producer: + +```elixir +alias Experimental.GenStage + +defmodule EventManager do + use GenStage + + @doc """ + Starts the manager. + """ + def start_link() do + GenStage.start_link(__MODULE__, :ok, name: __MODULE__) + end + + @doc """ + Sends an event and returns only after the event is dispatched. + """ + def sync_notify(event, timeout \\ 5000) do + GenStage.call(__MODULE__, {:notify, event}, timeout) + end + + ## Callbacks + + def init(:ok) do + {:producer, {:queue.new, 0}, dispatcher: GenStage.BroadcastDispatcher} + end + + def handle_call({:notify, event}, from, {queue, demand}) do + dispatch_events(:queue.in({from, event}, queue), demand, []) + end + + def handle_demand(incoming_demand, {queue, demand}) do + dispatch_events(queue, incoming_demand + demand, []) + end + + defp dispatch_events(queue, demand, events) do + with d when d > 0 <- demand, + {{:value, {from, event}}, queue} <- :queue.out(queue) do + GenStage.reply(from, :ok) + dispatch_events(queue, demand - 1, [event | events]) + else + _ -> {:noreply, Enum.reverse(events), {queue, demand}} + end + end +end +``` + +The `EventManager` works as a buffer. If there is demand but not events to be sent, we store such demand. If there are events but no demand, we store such events in a queue. If a client tries to broadcast an event, the `sync_notify` call will block until the event is effectively broadcast. The bulk of the logic is in the `dispatch_events/3` function that takes events from the queue while there is demand. + +By implementing the event manager as a producer, we can configure all sorts of behaviours that is simply not possible with `GenEvent`, such as how much data we want to queue (or for how long) and if events should be buffered or not when there are no consumers (via the `handle_subscribe/4` and `handle_cancel/3` callbacks). + +Implementing event handlers is as straight-forward as writing any other consumer. We could in fact use the `C` consumer implemented earlier. However, given event managers are often defined before the handlers, it is recommended for handlers to subscribe to managers when they start: + +```elixir +alias Experimental.GenStage + +defmodule EventHandler do + use GenStage + + def start_link() do + GenStage.start_link(__MODULE__, :ok) + end + + # Callbacks + + def init(:ok) do + # Starts a permanent subscription to the broadcaster + # which will automatically start requesting items. + {:consumer, :ok, subscribe_to: [EventManager]} + end + + def handle_events(events, _from, state) do + IO.inspect events + {:noreply, [], state} + end +end +``` + +Such guarantees that, if a supervised `EventHandler` crashes, the supervisor will start a new event handler which will promptly subscribe to the same manager, solving the ackward error handling semantics we have seen with `GenEvent`. + +## The path forward + +With the release of GenStage v0.3.0, we have reached an important milestone as `GenStage` can be used as both event managers and a way to exchange events between processes, often external data sources, with back-pressure. + +The v0.3.0 release also includes the [`GenStage.stream`](https://hexdocs.pm/gen_stage/Experimental.GenStage.html#stream/1) function, which allows us to consume data from a GenStage as a stream, and [`GenStage.from_enumerable`](https://hexdocs.pm/gen_stage/Experimental.GenStage.html#from_enumerable/2) which allows us to use an enumerable or a stream, like `File.stream!`, as a producer. Closing the gap between stages and streams. + +However, we are far from done! + +First of all, now is the moment for the community to step in and try GenStage out. If you have used GenEvent in the past, can it be replaced by a GenStage? Similarly, if you were planning to implement an event handling system, give GenStage a try. + +Developers who maintain libraries that integrate with external data sources, be it a RabbitMQ, Redis or Apacha Kafka, can explore GenStage as an abstraction for consuming data from those sources. Library developers must implement producers and leave it up for their users to plug the consumer stages. + +Once we get enough feedback, `GenStage` will be included in some shape as part of the standard library. The goal is to introduce `GenStage` and phase `GenEvent` out in the long term. + +We, on the Elixir team, have just got started too. The next milestone for GenStage is to revisit the original problem and provide developers a clear path to take their collection processing code from eager, to lazy, to concurrent (and then distributed). + +As seen earlier, today we allow developers to transform eager code into lazy by introducing streams. + +```elixir +File.stream!("path/to/some/file") +|> Stream.flat_map(fn line -> + String.split(line, " ") + end) +|> Enum.reduce(%{}, fn word, acc -> + Map.update(acc, word, 1, & &1 + 1) + end) +|> Enum.to_list() +``` + +While the above is helpful when working with large, possibly infinite collections, it still does not leverage concurrency. To address that, we are currently exploring a solution named [`GenStage.Flow`](https://hexdocs.pm/gen_stage/Experimental.GenStage.Flow.html), that allows us to express our computations similarly to streams, except they will run across multiple stages instead of a single process: + +```elixir +alias Experimental.GenStage.Flow +File.stream!("path/to/some/file") +|> Flow.from_enumerable() +|> Flow.flat_map(fn line -> + for word <- String.split(" "), do: {word, 1} +end) +|> Flow.reduce_by_key(& &1 + &2) +|> Enum.to_list() +``` + +And the highly optimized version: + +```elixir +alias Experimental.GenStage.Flow + +# Let's compile common patterns for performance +empty_space = :binary.compile_pattern(" ") # NEW! + +File.stream!("path/to/some/file", read_ahead: 100_000) # NEW! +|> Flow.from_enumerable() +|> Flow.flat_map(fn line -> + for word <- String.split(empty_space), do: {word, 1} +end) +|> Flow.partition_with(storage: :ets) # NEW! +|> Flow.reduce_by_key(& &1 + &2) +|> Enum.to_list() +``` + +Flow will look at the computations we want to perform and start a series of stages to execute our code while keeping the amount of data being transfered between processes to a minimum. If you are interested in `GenStage.Flow` and how the computations above are spread across multiple stages, [we have written some documentation based on the prototypes we have built so far](https://hexdocs.pm/gen_stage/Experimental.GenStage.Flow.html). The code itself is coming in future GenStage releases. We will also have to consider how the `GenStage.Flow` API mirrors the functions in `Enum` and `Stream` to make the path from eager to concurrent clearer. + +For the word counting problem with a fixed data, early experiments show a linear increase in performance with a fixed overhead of 20%. In other words, a dataset that takes 60s with a single core, takes 36s on a machine with 2 cores and 18s in one with four cores. All of those gains by simply moving your computations from streams to flow. We plan to benchmark on machines with over 40 cores in the short term. + +We are very excited with the possibilities GenStage brings to developers and all new paths it allows us to explore and research. So give it a try and let us know! [GenStage, flows and more will also be the topic of my keynote at ElixirConf 2016](http://www.elixirconf.com/) and we hope to see you there. + +Happy coding! From 6af9d7f331ebec14bd6b63c4969eff10070a5b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 14 Jul 2016 13:21:09 +0200 Subject: [PATCH 0510/1761] Avoid weirdness in syntax highlighting --- _posts/2016-07-14-announcing-genstage.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index 8d6b27a72..1a435e01f 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -246,7 +246,8 @@ defmodule EventManager do defp dispatch_events(queue, demand, events) do with d when d > 0 <- demand, - {{:value, {from, event}}, queue} <- :queue.out(queue) do + {item, queue} = :queue.out(queue), + {:value, {from, event}} <- item do GenStage.reply(from, :ok) dispatch_events(queue, demand - 1, [event | events]) else From 8bc56d60d5f06836f80284bae8a269c45662579b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 14 Jul 2016 13:22:19 +0200 Subject: [PATCH 0511/1761] Use consistent indentation --- _posts/2016-07-14-announcing-genstage.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index 1a435e01f..e42cbdd96 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -326,8 +326,8 @@ alias Experimental.GenStage.Flow File.stream!("path/to/some/file") |> Flow.from_enumerable() |> Flow.flat_map(fn line -> - for word <- String.split(" "), do: {word, 1} -end) + for word <- String.split(" "), do: {word, 1} + end) |> Flow.reduce_by_key(& &1 + &2) |> Enum.to_list() ``` @@ -343,8 +343,8 @@ empty_space = :binary.compile_pattern(" ") # NEW! File.stream!("path/to/some/file", read_ahead: 100_000) # NEW! |> Flow.from_enumerable() |> Flow.flat_map(fn line -> - for word <- String.split(empty_space), do: {word, 1} -end) + for word <- String.split(empty_space), do: {word, 1} + end) |> Flow.partition_with(storage: :ets) # NEW! |> Flow.reduce_by_key(& &1 + &2) |> Enum.to_list() From e67218b9e0c79531c9c78d8a64c95afddbd0fc1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 14 Jul 2016 14:13:19 +0200 Subject: [PATCH 0512/1761] Use proper link for now --- _posts/2016-07-14-announcing-genstage.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index e42cbdd96..aeffd7f4e 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -8,7 +8,7 @@ excerpt: GenStage is a new Elixir behaviour for exchanging events with back-pres Today we are glad to announce the official release of GenStage. GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. In the short-term, we expect GenStage to replace the use cases for GenEvent as well as providing a composable abstraction for consuming data from third party systems. -In this blog post we will cover the background that led us to GenStage, some example use cases, and what we are exploring for future releases. If instead you are looking for a quick reference, [check the project source code](https://github.com/elixir-lang/gen_stage) and [access its documentation](https://hexdocs.pm/gen_stage/). +In this blog post we will cover the background that led us to GenStage, some example use cases, and what we are exploring for future releases. If instead you are looking for a quick reference, [check the project source code](https://github.com/elixir-lang/gen_stage) and [access its documentation](https://hexdocs.pm/gen_stage/Experimental.GenStage.html). ## Background From 8298be408d410983cbd28ad63ba70c8a74902fed Mon Sep 17 00:00:00 2001 From: Thomas Fisher Date: Thu, 14 Jul 2016 09:55:59 -0700 Subject: [PATCH 0513/1761] Typo in GenStage blog post (#803) --- _posts/2016-07-14-announcing-genstage.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index aeffd7f4e..e71317d32 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -14,7 +14,7 @@ In this blog post we will cover the background that led us to GenStage, some exa One of the original motivations for [creating and designing Elixir was to introduce better abstractions for working with collections](https://www.youtube.com/watch?v=Lqo9-pQuRKE). Not only that, we want to provide developers interested in manipulating collections with a path to take their code from eager to lazy, to concurrent and then distributed. -Let's discuss a simple but actual example: word counting. The idea of word counting is to receive one file and count how many times each word appeards in the document. Using the `Enum` module it could be implemented as follows: +Let's discuss a simple but actual example: word counting. The idea of word counting is to receive one file and count how many times each word appears in the document. Using the `Enum` module it could be implemented as follows: ```elixir File.read!("path/to/some/file") From 9a32e155a7e22d7b289fcd3692f5eadace3d30cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 15 Jul 2016 18:57:45 +0200 Subject: [PATCH 0514/1761] Release v1.3.2 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index a55d1e76d..3597b8317 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1 1.3.1,https://github.com/elixir-lang/elixir/releases/download/v1.3.1/Precompiled.zip,release,1 1.3.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0/Precompiled.zip,release,1 1.2.6,https://github.com/elixir-lang/elixir/releases/download/v1.2.6/Precompiled.zip,release,1 From 0e868870dd8515724e31a5df4731318121597062 Mon Sep 17 00:00:00 2001 From: Scott Bronson Date: Fri, 15 Jul 2016 12:42:00 -0700 Subject: [PATCH 0515/1761] simplify the pattern match example (#805) I spent a while trying to figure out why the pattern would match `42` but not `"!"`. Turns out my browser doesn't show much difference between `[` and `{` so I was concentrating on the more obvious -- but irrelevant -- change. --- getting-started/pattern-matching.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 8caa94cdf..5aa2421bd 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -63,8 +63,8 @@ iex> {a, b, c} = {:hello, "world"} And also when comparing different types: ```iex -iex> {a, b, c} = [:hello, "world", "!"] -** (MatchError) no match of right hand side value: [:hello, "world", "!"] +iex> {a, b, c} = [:hello, "world", 42] +** (MatchError) no match of right hand side value: [:hello, "world", 42] ``` More interestingly, we can match on specific values. The example below asserts that the left side will only match the right side when the right side is a tuple that starts with the atom `:ok`: From 0ecbb83e77678c3d7e3917f3c5aa28c0255c5af3 Mon Sep 17 00:00:00 2001 From: Thomas Fisher Date: Sun, 17 Jul 2016 01:38:09 -0700 Subject: [PATCH 0516/1761] Another typo (#806) --- _posts/2016-07-14-announcing-genstage.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index e71317d32..724b3e5ab 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -204,7 +204,7 @@ During the Elixir London Meetup, I have live-coded a short example that shows ho ### GenStage for event dispatching -Another scenario where GenStage can be useful today is to replace cases where developers would have used [GenEvent](http://elixir-lang.org/docs/stable/elixir/GenEvent.html) in the past. For those unfamiliar with GenEvent, it is a behaviour where events are sent to an "event manager" which then proceeds to invoke "event handlers" for each event. GenEvent, however, has one big flaw: the event manager and all event handlers run in the same process. This means GenEvent handlers cannot easily leverage concurrency without forcing developers to implement those mechanisms themselves. Furthermore, GenEvent handlers have very ackward error semantics. Because event handlers are not separate processes, we cannot simply rely on supervisors restarting them. +Another scenario where GenStage can be useful today is to replace cases where developers would have used [GenEvent](http://elixir-lang.org/docs/stable/elixir/GenEvent.html) in the past. For those unfamiliar with GenEvent, it is a behaviour where events are sent to an "event manager" which then proceeds to invoke "event handlers" for each event. GenEvent, however, has one big flaw: the event manager and all event handlers run in the same process. This means GenEvent handlers cannot easily leverage concurrency without forcing developers to implement those mechanisms themselves. Furthermore, GenEvent handlers have very awkward error semantics. Because event handlers are not separate processes, we cannot simply rely on supervisors restarting them. GenStage solves those problems by having a producer as the event manager. The producer itself should be configured to use [`GenStage.BroadcastDispatcher`](https://hexdocs.pm/gen_stage/Experimental.GenStage.BroadcastDispatcher.html) as its dispacther. The broadcast dispatcher will guarantee events are dispatched to all consumers in a way to not exceed the demand of any of the consumers. This allows us to leverage concurrency and, not only that, having the "event manager" as a producer gives us much more flexibility in terms of buffering and reacting to failures. From eb7a4bf185314ffa0e8c93be50834c303764f1a7 Mon Sep 17 00:00:00 2001 From: jfis Date: Tue, 19 Jul 2016 17:14:26 -0400 Subject: [PATCH 0517/1761] typos and small changes for clarity (#807) --- .../2016-07-14-announcing-genstage.markdown | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index 724b3e5ab..e764c8b69 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -6,7 +6,7 @@ category: Announcements excerpt: GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. In this blog post we will cover the background that led us to GenStage, some example use cases, and what we are exploring for future releases. --- -Today we are glad to announce the official release of GenStage. GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. In the short-term, we expect GenStage to replace the use cases for GenEvent as well as providing a composable abstraction for consuming data from third party systems. +Today we are glad to announce the official release of GenStage. GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. In the short-term, we expect GenStage to replace the use cases for GenEvent as well as providing a composable abstraction for consuming data from third-party systems. In this blog post we will cover the background that led us to GenStage, some example use cases, and what we are exploring for future releases. If instead you are looking for a quick reference, [check the project source code](https://github.com/elixir-lang/gen_stage) and [access its documentation](https://hexdocs.pm/gen_stage/Experimental.GenStage.html). @@ -45,7 +45,7 @@ File.stream!("path/to/some/file") |> Enum.to_list() ``` -By using `File.stream!` and `Stream.flat_map`, we build a lazy computation that will emit a single line, break that line into words, and emit such words one by one without building huge lists in memory when enumerated. The functions in the [Stream module](http://elixir-lang.org/docs/stable/elixir/Stream.html) just express the computation we want to perform. The computation itself, like traversing the file or breaking into words in `flat_map`, only happen when we call a function in the `Enum` module. We have covered [the foundation for Enum and Streams](http://blog.plataformatec.com.br/2015/05/introducing-reducees/) in another article. +By using `File.stream!` and `Stream.flat_map`, we build a lazy computation that will emit a single line, break that line into words, and emit such words one by one without building huge lists in memory when enumerated. The functions in the [Stream module](http://elixir-lang.org/docs/stable/elixir/Stream.html) just express the computation we want to perform. The computation itself, like traversing the file or breaking into words in `flat_map`, only happens when we call a function in the `Enum` module. We have covered [the foundation for Enum and Streams](http://blog.plataformatec.com.br/2015/05/introducing-reducees/) in another article. The solution above allows us to work with large datasets without loading them all into memory. For large files, it is going to provide much better performance than the eager version. However, the solution above still does not leverage concurrency. For a machine with more than one core, which is the huge majority of machines we have available today, it is a suboptimal solution. @@ -67,13 +67,13 @@ File.stream!("path/to/some/file") The idea is that `Stream.async` would run the previous computations in a separate process that would stream its messages to the process that called `Enum.reduce`. Unfortunately, the solution above is less than ideal. -First of all, we want to avoid moving data between processes as much as possible. Instead, we want to start multiple processes that perform the same computation in parallel. Not only that, if we are requiring developers to place `Stream.async` manually, it may lead to inneficient and error prone solutions. +First of all, we want to avoid moving data between processes as much as possible. Instead, we want to start multiple processes that perform the same computation in parallel. Not only that, if we are requiring developers to place `Stream.async` manually, it may lead to inefficient and error prone solutions. Although the solution above has many flaws, it has helped us ask the right questions: * If `Stream.async` is introducing new processes, how can we guarantee those processes are supervised? - * Since we are exchanging messages between processes, how can we do so with back-pressure? After all, if one process cannot process data as fast as it receives them, we want to slow down the processes sending the data so we guarantee the slowest process does not get overflown with messages + * Since we are exchanging messages between processes, how do we prevent a process from receiving too many messages? We need a back-pressure mechanism that allows the receiving process to specify how much it can handle from the sending process. We have jumped through different abstractions trying to answer those questions until we have finally settled on GenStage. @@ -81,7 +81,7 @@ We have jumped through different abstractions trying to answer those questions u GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. Developers who use GenStage only need to worry about how the data is produced, manipulated and consumed. The act of dispatching the data and providing back-pressure is completely abstracted away from the developers. -As a quick example, let's write a simple pipeline that will produce events as increasing numbers, multiply those numbers by two, and then print them to terminal. We will do so by implementing three stages, the `:producer`, the `:producer_consumer` and the `:consumer`, which we will call `A`, `B` and `C` respectively. We will go back to the word counting example at the end of this post. +As a quick example, let's write a simple pipeline that will produce events as increasing numbers, multiply those numbers by two, and then print them to the terminal. We will do so by implementing three stages, the `:producer`, the `:producer_consumer` and the `:consumer`, which we will call `A`, `B` and `C` respectively. We will go back to the word counting example at the end of this post. Let's start with the producer that we will call `A`. Since `A` is a producer, its main responsibility is to receive demand, which is the number of events the consumer is willing to handle, and generate events. Those events may be in memory or an external data source. For now let's implement a simple counter starting from a given value of `counter` received on `init/1`: @@ -167,9 +167,9 @@ GenStage.sync_subscribe(b, to: a) Process.sleep(:infinity) ``` -As soon as we subscribe the stages, we should see items being printed to the terminal. Notice that, even though we have introduced a sleep command to the consumer, the producers will never overflow the consumer with data. That's because the communication between stages is demand-driven. The producer can only send items to consumers after the consumers have sent demand upstream. Producers must never send more items than consumers have asked. +As soon as we subscribe the stages, we should see items being printed to the terminal. Notice that, even though we have introduced a sleep command to the consumer, the producers will never overflow the consumer with data. That's because the communication between stages is demand-driven. The producer can only send items to consumers after the consumers have sent demand upstream. The producer must never send more items than the consumer has specified. -One consequence of this design decision is that parallelizing stateless stages like the consumer above is really straight-forward: +One consequence of this design decision is that parallelizing stateless stages like the consumer above is really straightforward: ```elixir {:ok, a} = GenStage.start_link(A, 0) # starting from zero @@ -190,7 +190,7 @@ GenStage.sync_subscribe(b, to: a) Process.sleep(:infinity) ``` -By simply starting multiple consumers, the stage `B` will now receive demand from multiple stages and dispatch events to those stages which are now running concurrently, always picking the stage that is able to process more items. We can also leverage concurrency from the opposite direction too: if the producer is the slow stage in a pipeline, you can start multiple producers and have the (multiple) consumers subscribing to them. +By simply starting multiple consumers, the stage `B` will now receive demand from multiple stages and dispatch events to those stages which are now running concurrently, always picking the stage that is able to process more items. We can also leverage concurrency from the opposite direction: if the producer is the slow stage in a pipeline, you can start multiple producers and have each consumer subscribe to them. In order to know which consumer should receive a particular event, producer stages depend on a behaviour called [`GenStage.Dispatcher`](https://hexdocs.pm/gen_stage/Experimental.GenStage.Dispatcher.html). The default dispatcher is the `GenStage.DemandDispatcher` we have briefly described above: it will collect the demand from different consumers and dispatch to the one with highest demand. This means if one consumer is slow, maybe because we increased its sleeping time to 10 seconds, it will receive less items. @@ -206,7 +206,7 @@ During the Elixir London Meetup, I have live-coded a short example that shows ho Another scenario where GenStage can be useful today is to replace cases where developers would have used [GenEvent](http://elixir-lang.org/docs/stable/elixir/GenEvent.html) in the past. For those unfamiliar with GenEvent, it is a behaviour where events are sent to an "event manager" which then proceeds to invoke "event handlers" for each event. GenEvent, however, has one big flaw: the event manager and all event handlers run in the same process. This means GenEvent handlers cannot easily leverage concurrency without forcing developers to implement those mechanisms themselves. Furthermore, GenEvent handlers have very awkward error semantics. Because event handlers are not separate processes, we cannot simply rely on supervisors restarting them. -GenStage solves those problems by having a producer as the event manager. The producer itself should be configured to use [`GenStage.BroadcastDispatcher`](https://hexdocs.pm/gen_stage/Experimental.GenStage.BroadcastDispatcher.html) as its dispacther. The broadcast dispatcher will guarantee events are dispatched to all consumers in a way to not exceed the demand of any of the consumers. This allows us to leverage concurrency and, not only that, having the "event manager" as a producer gives us much more flexibility in terms of buffering and reacting to failures. +GenStage solves those problems by having a producer as the event manager. The producer itself should be configured to use [`GenStage.BroadcastDispatcher`](https://hexdocs.pm/gen_stage/Experimental.GenStage.BroadcastDispatcher.html) as its dispatcher. The broadcast dispatcher will guarantee events are dispatched to all consumers in a way that does not exceed the demand of any of the consumers. This allows us to leverage concurrency and having the "event manager" as a producer gives us much more flexibility in terms of buffering and reacting to failures. Let's see an example of building an event manager as a producer: @@ -257,11 +257,11 @@ defmodule EventManager do end ``` -The `EventManager` works as a buffer. If there is demand but not events to be sent, we store such demand. If there are events but no demand, we store such events in a queue. If a client tries to broadcast an event, the `sync_notify` call will block until the event is effectively broadcast. The bulk of the logic is in the `dispatch_events/3` function that takes events from the queue while there is demand. +The `EventManager` works as a buffer. If there is demand but not events to be sent, we store such demand. If there are events but no demand, we store such events in a queue. If a client tries to broadcast an event, the `sync_notify` call will block until the event is effectively broadcasted. The bulk of the logic is in the `dispatch_events/3` function that takes events from the queue while there is demand. -By implementing the event manager as a producer, we can configure all sorts of behaviours that is simply not possible with `GenEvent`, such as how much data we want to queue (or for how long) and if events should be buffered or not when there are no consumers (via the `handle_subscribe/4` and `handle_cancel/3` callbacks). +By implementing the event manager as a producer, we can configure all sorts of behaviours that are simply not possible with `GenEvent`, such as how much data we want to queue (or for how long) and if events should be buffered or not when there are no consumers (via the `handle_subscribe/4` and `handle_cancel/3` callbacks). -Implementing event handlers is as straight-forward as writing any other consumer. We could in fact use the `C` consumer implemented earlier. However, given event managers are often defined before the handlers, it is recommended for handlers to subscribe to managers when they start: +Implementing event handlers is as straightforward as writing any other consumer. We could in fact use the `C` consumer implemented earlier. However, given event managers are often defined before the handlers, it is recommended for handlers to subscribe to managers when they start: ```elixir alias Experimental.GenStage @@ -288,7 +288,7 @@ defmodule EventHandler do end ``` -Such guarantees that, if a supervised `EventHandler` crashes, the supervisor will start a new event handler which will promptly subscribe to the same manager, solving the ackward error handling semantics we have seen with `GenEvent`. +Such guarantees that, if a supervised `EventHandler` crashes, the supervisor will start a new event handler which will promptly subscribe to the same manager, solving the awkward error handling semantics we have seen with `GenEvent`. ## The path forward @@ -300,7 +300,7 @@ However, we are far from done! First of all, now is the moment for the community to step in and try GenStage out. If you have used GenEvent in the past, can it be replaced by a GenStage? Similarly, if you were planning to implement an event handling system, give GenStage a try. -Developers who maintain libraries that integrate with external data sources, be it a RabbitMQ, Redis or Apacha Kafka, can explore GenStage as an abstraction for consuming data from those sources. Library developers must implement producers and leave it up for their users to plug the consumer stages. +Developers who maintain libraries that integrate with external data sources, be it a RabbitMQ, Redis or Apacha Kafka, can explore GenStage as an abstraction for consuming data from those sources. Library developers must implement producers and leave it up for their users to configure the consumer stages. Once we get enough feedback, `GenStage` will be included in some shape as part of the standard library. The goal is to introduce `GenStage` and phase `GenEvent` out in the long term. @@ -319,7 +319,7 @@ File.stream!("path/to/some/file") |> Enum.to_list() ``` -While the above is helpful when working with large, possibly infinite collections, it still does not leverage concurrency. To address that, we are currently exploring a solution named [`GenStage.Flow`](https://hexdocs.pm/gen_stage/Experimental.GenStage.Flow.html), that allows us to express our computations similarly to streams, except they will run across multiple stages instead of a single process: +While the above is helpful when working with large or infinite collections, it still does not leverage concurrency. To address that, we are currently exploring a solution named [`GenStage.Flow`](https://hexdocs.pm/gen_stage/Experimental.GenStage.Flow.html), that allows us to express our computations similarly to streams, except they will run across multiple stages instead of a single process: ```elixir alias Experimental.GenStage.Flow @@ -352,8 +352,8 @@ File.stream!("path/to/some/file", read_ahead: 100_000) # NEW! Flow will look at the computations we want to perform and start a series of stages to execute our code while keeping the amount of data being transfered between processes to a minimum. If you are interested in `GenStage.Flow` and how the computations above are spread across multiple stages, [we have written some documentation based on the prototypes we have built so far](https://hexdocs.pm/gen_stage/Experimental.GenStage.Flow.html). The code itself is coming in future GenStage releases. We will also have to consider how the `GenStage.Flow` API mirrors the functions in `Enum` and `Stream` to make the path from eager to concurrent clearer. -For the word counting problem with a fixed data, early experiments show a linear increase in performance with a fixed overhead of 20%. In other words, a dataset that takes 60s with a single core, takes 36s on a machine with 2 cores and 18s in one with four cores. All of those gains by simply moving your computations from streams to flow. We plan to benchmark on machines with over 40 cores in the short term. +For the word counting problem with a fixed data, early experiments show a linear increase in performance with a fixed overhead of 20%. In other words, a dataset that takes 60s with a single core, takes 36s on a machine with 2 cores and 18s in one with 4 cores. All of those gains by simply moving your computations from streams to Flow. We plan to benchmark on machines with over 40 cores soon. -We are very excited with the possibilities GenStage brings to developers and all new paths it allows us to explore and research. So give it a try and let us know! [GenStage, flows and more will also be the topic of my keynote at ElixirConf 2016](http://www.elixirconf.com/) and we hope to see you there. +We are very excited with the possibilities GenStage brings to developers and all new paths it allows us to explore and research. So give it a try and let us know! [GenStage, Flows, and more will also be the topic of my keynote at ElixirConf 2016](http://www.elixirconf.com/) and we hope to see you there. Happy coding! From 4d2ee540d608cb2b5ab0c7b21b37fcd529baeb80 Mon Sep 17 00:00:00 2001 From: Michael Dungan Date: Thu, 21 Jul 2016 11:58:01 -0700 Subject: [PATCH 0518/1761] tiny typo fix (#808) --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index fe505a638..969d44d72 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -213,7 +213,7 @@ Functions are "first class citizens" in Elixir meaning they can be passed as arg Note a dot (`.`) between the variable and parenthesis is required to invoke an anonymous function. -Anonymous functions are closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anynomous function we have previously defined: +Anonymous functions are closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anonymous function we have previously defined: ```iex iex> double = fn a -> add.(a, a) end From ad0e2b66261c212e0080468e734caed98eb842d9 Mon Sep 17 00:00:00 2001 From: Marcin Kulik Date: Fri, 22 Jul 2016 17:06:05 +0200 Subject: [PATCH 0519/1761] Fix typo (#809) --- getting-started/processes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 9ebe85d38..1c2ed7276 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -234,7 +234,7 @@ iex> flush :ok ``` -Using processes around state and name registering are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ships with Elixir. For example, Elixir provides [agents](/docs/stable/elixir/Agent.html), which are simple abstractions around state: +Using processes around state and name registering are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ship with Elixir. For example, Elixir provides [agents](/docs/stable/elixir/Agent.html), which are simple abstractions around state: ```iex iex> {:ok, pid} = Agent.start_link(fn -> %{} end) From d9490341bf9d4876c0f0803669cedcc3e63ce1b0 Mon Sep 17 00:00:00 2001 From: Jeffrey Chupp Date: Fri, 22 Jul 2016 18:22:03 -0400 Subject: [PATCH 0520/1761] Make comments on ETS tests more consistent (#810) --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 8f11e1921..08aa57b9f 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -235,7 +235,7 @@ An easy way to do so is by sending a synchronous request to the registry: becaus {:ok, bucket} = KV.Registry.lookup(registry, "shopping") Agent.stop(bucket) - # Do a call to ensure the registry processed the down message + # Do a call to ensure the registry processed the DOWN message _ = KV.Registry.create(registry, "bogus") assert KV.Registry.lookup(registry, "shopping") == :error end From 30f9f138af8254ae13aa41f31959ba58ea284cfa Mon Sep 17 00:00:00 2001 From: Eugene Pirogov Date: Sat, 23 Jul 2016 17:25:08 +0300 Subject: [PATCH 0521/1761] Fix indentation in some code snippets (#811) --- getting-started/mix-otp/genserver.markdown | 80 +++++++++++----------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 399d61343..6ba88374b 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -150,14 +150,14 @@ Our test should pass right out of the box! We don't need to explicitly shut down the registry because it will receive a `:shutdown` signal when our test finishes. While this solution is ok for tests, if there is a need to stop a `GenServer` as part of the application logic, one can use the `GenServer.stop/1` function: ```elixir - ## Client API +## Client API - @doc """ - Stops the registry. - """ - def stop(server) do - GenServer.stop(server) - end +@doc """ +Stops the registry. +""" +def stop(server) do + GenServer.stop(server) +end ``` ## The need for monitoring @@ -165,12 +165,12 @@ We don't need to explicitly shut down the registry because it will receive a `:s Our registry is almost complete. The only remaining issue is that the registry may become stale if a bucket stops or crashes. Let's add a test to `KV.RegistryTest` that exposes this bug: ```elixir - test "removes buckets on exit", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - Agent.stop(bucket) - assert KV.Registry.lookup(registry, "shopping") == :error - end +test "removes buckets on exit", %{registry: registry} do + KV.Registry.create(registry, "shopping") + {:ok, bucket} = KV.Registry.lookup(registry, "shopping") + Agent.stop(bucket) + assert KV.Registry.lookup(registry, "shopping") == :error +end ``` The test above will fail on the last assertion as the bucket name remains in the registry even after we stop the bucket process. @@ -195,39 +195,39 @@ Note `Process.monitor(pid)` returns a unique reference that allows us to match u Let's reimplement the server callbacks to fix the bug and make the test pass. First, we will modify the GenServer state to two dictionaries: one that contains `name -> pid` and another that holds `ref -> name`. Then we need to monitor the buckets on `handle_cast/2` as well as implement a `handle_info/2` callback to handle the monitoring messages. The full server callbacks implementation is shown below: ```elixir - ## Server callbacks - - def init(:ok) do - names = %{} - refs = %{} - {:ok, {names, refs}} - end +## Server callbacks - def handle_call({:lookup, name}, _from, {names, _} = state) do - {:reply, Map.fetch(names, name), state} - end +def init(:ok) do + names = %{} + refs = %{} + {:ok, {names, refs}} +end - def handle_cast({:create, name}, {names, refs}) do - if Map.has_key?(names, name) do - {:noreply, {names, refs}} - else - {:ok, pid} = KV.Bucket.start_link - ref = Process.monitor(pid) - refs = Map.put(refs, ref, name) - names = Map.put(names, name, pid) - {:noreply, {names, refs}} - end - end +def handle_call({:lookup, name}, _from, {names, _} = state) do + {:reply, Map.fetch(names, name), state} +end - def handle_info({:DOWN, ref, :process, _pid, _reason}, {names, refs}) do - {name, refs} = Map.pop(refs, ref) - names = Map.delete(names, name) +def handle_cast({:create, name}, {names, refs}) do + if Map.has_key?(names, name) do + {:noreply, {names, refs}} + else + {:ok, pid} = KV.Bucket.start_link + ref = Process.monitor(pid) + refs = Map.put(refs, ref, name) + names = Map.put(names, name, pid) {:noreply, {names, refs}} end +end - def handle_info(_msg, state) do - {:noreply, state} - end +def handle_info({:DOWN, ref, :process, _pid, _reason}, {names, refs}) do + {name, refs} = Map.pop(refs, ref) + names = Map.delete(names, name) + {:noreply, {names, refs}} +end + +def handle_info(_msg, state) do + {:noreply, state} +end ``` Observe that we were able to considerably change the server implementation without changing any of the client API. That's one of the benefits of explicitly segregating the server and the client. From 425ce07fde92cad5280e328bf76241cf4b61c91f Mon Sep 17 00:00:00 2001 From: sunboshan Date: Thu, 28 Jul 2016 15:23:25 -0700 Subject: [PATCH 0522/1761] [ci skip] Module#scripted-mode section: try to explain the diffrence between .ex and .exs files in a non-confusion way (#815) --- getting-started/modules.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 74a934af1..72011532c 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -64,7 +64,9 @@ When working on actual projects, the build tool called `mix` will be responsible ## Scripted mode -In addition to the Elixir file extension `.ex`, Elixir also supports `.exs` files for scripting. Elixir treats both files exactly the same way, the only difference is in intention. `.ex` files are meant to be compiled while `.exs` files are used for scripting, without the need for compilation. For instance, we can create a file called `math.exs`: +In addition to the Elixir file extension `.ex`, Elixir also supports `.exs` files for scripting. Elixir treats both files exactly the same way, the only difference is in intention. `.ex` files are meant to be compiled while `.exs` files are used for scripting. When executing, both files are compiled. The `.ex` files generated the `.beam` bytecode on disk; whereas the `.exs` files only loaded the bytecode modules in memory, not written to disk. + +For instance, we can create a file called `math.exs`: ```elixir defmodule Math do From 3ae12b5401140d4290f151598c238831f00e5796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 29 Jul 2016 00:25:34 +0200 Subject: [PATCH 0523/1761] Update modules.markdown --- getting-started/modules.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 72011532c..a8aa909d3 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -64,7 +64,7 @@ When working on actual projects, the build tool called `mix` will be responsible ## Scripted mode -In addition to the Elixir file extension `.ex`, Elixir also supports `.exs` files for scripting. Elixir treats both files exactly the same way, the only difference is in intention. `.ex` files are meant to be compiled while `.exs` files are used for scripting. When executing, both files are compiled. The `.ex` files generated the `.beam` bytecode on disk; whereas the `.exs` files only loaded the bytecode modules in memory, not written to disk. +In addition to the Elixir file extension `.ex`, Elixir also supports `.exs` files for scripting. Elixir treats both files exactly the same way, the only difference is in intention. `.ex` files are meant to be compiled while `.exs` files are used for scripting. When executed, both extensions compile and load their modules into memory, although only `.ex` files write their bytecode to disk in the format of `.beam` files. For instance, we can create a file called `math.exs`: From 1efa709fa7d67a81bc6c061e1b00524b53c2a109 Mon Sep 17 00:00:00 2001 From: Lee Bannard Date: Fri, 29 Jul 2016 19:54:15 +0100 Subject: [PATCH 0524/1761] Update "Introduction to Mix" to match Elixir 1.3 (#816) --- .../mix-otp/introduction-to-mix.markdown | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 5f79705eb..73a5d4bfa 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -92,11 +92,11 @@ defmodule KV.Mixfile do def project do [app: :kv, - version: "0.0.1", - elixir: "~> 1.2", + version: "0.1.0", + elixir: "~> 1.3", build_embedded: Mix.env == :prod, start_permanent: Mix.env == :prod, - deps: deps] + deps: deps()] end def application do @@ -128,15 +128,8 @@ $ mix compile ``` Will output: - - Compiled lib/kv.ex + Compiling 1 file (.ex) Generated kv app - Consolidated List.Chars - Consolidated Collectable - Consolidated String.Chars - Consolidated Enumerable - Consolidated IEx.Info - Consolidated Inspect The `lib/kv.ex` file was compiled, an application manifest named `kv.app` was generated and [all protocols were consolidated as described in the Getting Started guide](/getting-started/protocols.html#protocol-consolidation). All compilation artifacts are placed inside the `_build` directory using the options defined in the `mix.exs` file. From aef819cf201522c30a2ba18e4502e68f9abeb3f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 30 Jul 2016 20:28:44 +0200 Subject: [PATCH 0525/1761] Update binaries-strings-and-char-lists.markdown --- getting-started/binaries-strings-and-char-lists.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 43fa3a459..68c9f1b42 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -121,7 +121,7 @@ iex> bit_size(<< 1 :: size(1)>>) 1 ``` -The value is no longer a binary, but a bitstring -- just a bunch of bits! So a binary is a bitstring where the number of bits is divisible by 8! +The value is no longer a binary, but a bitstring -- just a bunch of bits! So a binary is a bitstring where the number of bits is divisible by 8. We can also pattern match on binaries / bitstrings: @@ -134,7 +134,7 @@ iex> <<0, 1, x>> = <<0, 1, 2, 3>> ** (MatchError) no match of right hand side value: <<0, 1, 2, 3>> ``` -Note each entry in the binary is expected to match exactly 8 bits. However, we can match on the rest of the binary modifier: +Note each entry in the binary pattern is expected to match exactly 8 bits. If we want to match on a binary of unknown size, it is possible by using the binary modifier at the end of the pattern: ```iex iex> <<0, 1, x :: binary>> = <<0, 1, 2, 3>> @@ -143,7 +143,7 @@ iex> x <<2, 3>> ``` -The pattern above only works if the binary is at the end of `<<>>`. Similar results can be achieved with the string concatenation operator `<>`: +Similar results can be achieved with the string concatenation operator `<>`: ```iex iex> "he" <> rest = "hello" @@ -152,7 +152,7 @@ iex> rest "llo" ``` -This finishes our tour of bitstrings, binaries and strings. A string is a UTF-8 encoded binary, and a binary is a bitstring where the number of bits is divisible by 8. Although this shows the flexibility Elixir provides for working with bits and bytes, 99% of the time you will be working with binaries and using the `is_binary/1` and `byte_size/1` functions. +A complete reference about the binary / bitstring constructor `<<>>` can be found [in the Elixir documentation](http://elixir-lang.org/docs/stable/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1). This concludes our tour of bitstrings, binaries and strings. A string is a UTF-8 encoded binary and a binary is a bitstring where the number of bits is divisible by 8. Although this shows the flexibility Elixir provides for working with bits and bytes, 99% of the time you will be working with binaries and using the `is_binary/1` and `byte_size/1` functions. ## Char lists From 5c503d61861ebaafaed33c4521fe5607f9b35bf1 Mon Sep 17 00:00:00 2001 From: Christian Hogan <1cph93@gmail.com> Date: Sat, 30 Jul 2016 14:35:18 -0400 Subject: [PATCH 0526/1761] Revise sentence structure in 'Understanding Aliases' (#818) --- getting-started/alias-require-and-import.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 5693878c1..2366dfb8e 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -170,7 +170,7 @@ With this we have almost finished our tour of Elixir modules. The last topic to ## Understanding Aliases -At this point you may be wondering: what exactly an Elixir alias is and how is it represented? +At this point, you may be wondering: what exactly is an Elixir alias and how is it represented? An alias in Elixir is a capitalized identifier (like `String`, `Keyword`, etc) which is converted to an atom during compilation. For instance, the `String` alias translates by default to the atom `:"Elixir.String"`: From 6942b341ca6bff5cb980f1f848da63d1ac9584b3 Mon Sep 17 00:00:00 2001 From: Eugene Pirogov Date: Sun, 31 Jul 2016 23:14:42 +0300 Subject: [PATCH 0527/1761] Bump github-pages gem from v45 to v89 (#819) --- Gemfile.lock | 109 ++++++++++++++++++++++++++------------------------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c0352d00f..e4471ec3e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,58 +1,57 @@ GEM remote: https://rubygems.org/ specs: - RedCloth (4.2.9) - activesupport (4.2.5.1) + activesupport (4.2.7) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.3.8) + addressable (2.4.0) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.10.0) colorator (0.1) - ethon (0.8.1) + ethon (0.9.0) ffi (>= 1.3.0) - execjs (2.6.0) + execjs (2.7.0) faraday (0.9.2) multipart-post (>= 1.2, < 3) - ffi (1.9.10) + ffi (1.9.14) gemoji (2.1.0) - github-pages (45) - RedCloth (= 4.2.9) - github-pages-health-check (= 0.6.0) - jekyll (= 3.0.2) + github-pages (89) + activesupport (= 4.2.7) + github-pages-health-check (= 1.1.0) + jekyll (= 3.1.6) jekyll-coffeescript (= 1.0.1) - jekyll-feed (= 0.3.1) + jekyll-feed (= 0.5.1) jekyll-gist (= 1.4.0) - jekyll-mentions (= 1.0.0) + jekyll-github-metadata (= 2.0.2) + jekyll-mentions (= 1.1.3) jekyll-paginate (= 1.1.0) - jekyll-redirect-from (= 0.9.1) + jekyll-redirect-from (= 0.11.0) jekyll-sass-converter (= 1.3.0) - jekyll-seo-tag (= 0.1.4) + jekyll-seo-tag (= 2.0.0) jekyll-sitemap (= 0.10.0) - jekyll-textile-converter (= 0.1.0) - jemoji (= 0.5.1) - kramdown (= 1.9.0) + jemoji (= 0.7.0) + kramdown (= 1.11.1) liquid (= 3.0.6) + listen (= 3.0.6) mercenary (~> 0.3) - rdiscount (= 2.1.8) - redcarpet (= 3.3.3) - rouge (= 1.10.1) + rouge (= 1.11.1) terminal-table (~> 1.4) - github-pages-health-check (0.6.0) + github-pages-health-check (1.1.0) addressable (~> 2.3) net-dns (~> 0.8) + octokit (~> 4.0) public_suffix (~> 1.4) typhoeus (~> 0.7) - html-pipeline (2.3.0) - activesupport (>= 2, < 5) + html-pipeline (2.4.2) + activesupport (>= 2) nokogiri (>= 1.4) i18n (0.7.0) - jekyll (3.0.2) + jekyll (3.1.6) colorator (~> 0.1) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 1.1) @@ -63,56 +62,58 @@ GEM safe_yaml (~> 1.0) jekyll-coffeescript (1.0.1) coffee-script (~> 2.2) - jekyll-feed (0.3.1) + jekyll-feed (0.5.1) jekyll-gist (1.4.0) octokit (~> 4.2) - jekyll-mentions (1.0.0) - html-pipeline (~> 2.2) + jekyll-github-metadata (2.0.2) + jekyll (~> 3.1) + octokit (~> 4.0) + jekyll-mentions (1.1.3) + html-pipeline (~> 2.3) jekyll (~> 3.0) jekyll-paginate (1.1.0) - jekyll-redirect-from (0.9.1) + jekyll-redirect-from (0.11.0) jekyll (>= 2.0) jekyll-sass-converter (1.3.0) sass (~> 3.2) - jekyll-seo-tag (0.1.4) - jekyll (>= 2.0) + jekyll-seo-tag (2.0.0) + jekyll (~> 3.1) jekyll-sitemap (0.10.0) - jekyll-textile-converter (0.1.0) - RedCloth (~> 4.0) - jekyll-watch (1.3.1) - listen (~> 3.0) - jemoji (0.5.1) + jekyll-watch (1.5.0) + listen (~> 3.0, < 3.1) + jemoji (0.7.0) + activesupport (~> 4.0) gemoji (~> 2.0) html-pipeline (~> 2.2) - jekyll (>= 2.0) + jekyll (>= 3.0) json (1.8.3) - kramdown (1.9.0) + kramdown (1.11.1) liquid (3.0.6) - listen (3.0.5) + listen (3.0.6) rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) - mercenary (0.3.5) - mini_portile2 (2.0.0) - minitest (5.8.4) + rb-inotify (>= 0.9.7) + mercenary (0.3.6) + mini_portile2 (2.1.0) + minitest (5.9.0) multipart-post (2.0.0) net-dns (0.8.0) - nokogiri (1.6.7.2) - mini_portile2 (~> 2.0.0.rc2) - octokit (4.2.0) - sawyer (~> 0.6.0, >= 0.5.3) + nokogiri (1.6.8) + mini_portile2 (~> 2.1.0) + pkg-config (~> 1.1.7) + octokit (4.3.0) + sawyer (~> 0.7.0, >= 0.5.3) + pkg-config (1.1.7) public_suffix (1.5.3) rb-fsevent (0.9.7) - rb-inotify (0.9.5) + rb-inotify (0.9.7) ffi (>= 0.5.0) - rdiscount (2.1.8) - redcarpet (3.3.3) - rouge (1.10.1) + rouge (1.11.1) safe_yaml (1.0.4) - sass (3.4.21) - sawyer (0.6.0) - addressable (~> 2.3.5) + sass (3.4.22) + sawyer (0.7.0) + addressable (>= 2.3.5, < 2.5) faraday (~> 0.8, < 0.10) - terminal-table (1.5.2) + terminal-table (1.6.0) thread_safe (0.3.5) typhoeus (0.8.0) ethon (>= 0.8.0) From 8e16662045fc98b5b4f7ba091e485bb170135aef Mon Sep 17 00:00:00 2001 From: Benjamin Quorning Date: Tue, 2 Aug 2016 23:21:19 +0200 Subject: [PATCH 0528/1761] a/an typo (#820) --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 969d44d72..018fab27d 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -372,7 +372,7 @@ iex> File.read("path/to/unknown/file") If the path given to `File.read/1` exists, it returns a tuple with the atom `:ok` as the first element and the file contents as the second. Otherwise, it returns a tuple with `:error` and the error description. -Most of the time, Elixir is going to guide you to do the right thing. For example, there is a `elem/2` function to access a tuple item but there is no built-in equivalent for lists: +Most of the time, Elixir is going to guide you to do the right thing. For example, there is an `elem/2` function to access a tuple item but there is no built-in equivalent for lists: ```iex iex> tuple = {:ok, "hello"} From 62f6171832cbf5cdd25c8b184e1d9103a8674311 Mon Sep 17 00:00:00 2001 From: Eugene Pirogov Date: Wed, 3 Aug 2016 11:29:14 +0300 Subject: [PATCH 0529/1761] Enable jekyll-seo-tag (#821) * Enable jekyll-seo-tag * Do not generate duplicate title tag --- _config.yml | 1 + _includes/top.html | 1 + 2 files changed, 2 insertions(+) diff --git a/_config.yml b/_config.yml index 52556cf94..2e55119e6 100644 --- a/_config.yml +++ b/_config.yml @@ -7,6 +7,7 @@ gems: - jemoji - jekyll-sitemap - jekyll-redirect-from + - jekyll-seo-tag defaults: - scope: path: "" diff --git a/_includes/top.html b/_includes/top.html index b709e99d4..f511033c4 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -24,6 +24,7 @@ ga('create', 'UA-8268430-6', 'auto'); ga('send', 'pageview'); + {% seo title=false %} From 39c0eae818c9289d0e9f31902c5aa6cec445070b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 5 Aug 2016 20:16:02 +0200 Subject: [PATCH 0530/1761] Give credit where credit is due --- _posts/2016-07-14-announcing-genstage.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index e764c8b69..2d62b0a3b 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -356,4 +356,6 @@ For the word counting problem with a fixed data, early experiments show a linear We are very excited with the possibilities GenStage brings to developers and all new paths it allows us to explore and research. So give it a try and let us know! [GenStage, Flows, and more will also be the topic of my keynote at ElixirConf 2016](http://www.elixirconf.com/) and we hope to see you there. +Finally, we want to thank the [akka-streams and reactive-streams projects](http://reactive-streams.io) which provided us guidance in implementing the demand-driven exchange between stages as well as the [Apache Spark](http://spark.apache.org/) and [Apache Beam](http://beam.incubator.apache.org/) initiatives that inspire the work behind `GenStage.Flow`. + Happy coding! From 988b4831f1c1479ffb171317912cd7dfe6a0633f Mon Sep 17 00:00:00 2001 From: Mike Date: Sat, 6 Aug 2016 02:44:56 -0400 Subject: [PATCH 0531/1761] Wording change (#823) It is implied that String.length is expensive, but does not explicitly say it. --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 018fab27d..3aaf6ec5a 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -383,6 +383,6 @@ iex> elem(tuple, 1) When "counting" the number of elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). -For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for the tuple size), `length/1` (for the list length) and `String.length/1` (for the number of graphemes in a string). That said, we use `byte_size` to get the number of bytes in a string, which is cheap, but retrieving the number of unicode characters uses `String.length`, since the whole string needs to be traversed. +For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for the tuple size), `length/1` (for the list length) and `String.length/1` (for the number of graphemes in a string). That said, we use `byte_size` to get the number of bytes in a string, which is cheap, but retrieving the number of unicode characters uses `String.length`, which is expensive since the whole string needs to be traversed. Elixir also provides `Port`, `Reference` and `PID` as data types (usually used in process communication), and we will take a quick look at them when talking about processes. For now, let's take a look at some of the basic operators that go with our basic types. From 2a36b3e0f46bbd46315a9f112855b7394591d280 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 6 Aug 2016 08:45:39 +0200 Subject: [PATCH 0532/1761] is -> may be --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 3aaf6ec5a..791da33fd 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -383,6 +383,6 @@ iex> elem(tuple, 1) When "counting" the number of elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). -For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for the tuple size), `length/1` (for the list length) and `String.length/1` (for the number of graphemes in a string). That said, we use `byte_size` to get the number of bytes in a string, which is cheap, but retrieving the number of unicode characters uses `String.length`, which is expensive since the whole string needs to be traversed. +For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for the tuple size), `length/1` (for the list length) and `String.length/1` (for the number of graphemes in a string). That said, we use `byte_size` to get the number of bytes in a string, which is cheap, but retrieving the number of unicode characters uses `String.length`, which may be expensive since the whole string needs to be traversed. Elixir also provides `Port`, `Reference` and `PID` as data types (usually used in process communication), and we will take a quick look at them when talking about processes. For now, let's take a look at some of the basic operators that go with our basic types. From 3d25972fdbf761191cd41ff6d94fbac2536ffaf7 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Tue, 9 Aug 2016 13:14:49 +0200 Subject: [PATCH 0533/1761] Add GNU Guix installation instructions (#824) --- install.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.markdown b/install.markdown index 72accac1b..52d4ef665 100644 --- a/install.markdown +++ b/install.markdown @@ -33,6 +33,8 @@ The preferred option for installing Elixir. Choose your operating system and too * Run: `zypper in elixir` * Gentoo * Run: `emerge --ask dev-lang/elixir` + * GNU Guix + * Run: `guix package -i elixir` * Fedora 17 and newer * Run: `yum install elixir` * Fedora 22 and newer From 00bc7302307d0ae0dcf6c4cc375afac071747a34 Mon Sep 17 00:00:00 2001 From: Eugene Pirogov Date: Wed, 10 Aug 2016 01:44:53 +0700 Subject: [PATCH 0534/1761] Fix indentation in a bunch of code snippets (#812) --- .../alias-require-and-import.markdown | 1 - getting-started/basic-operators.markdown | 1 - getting-started/erlang-libraries.markdown | 7 +- ...stributed-tasks-and-configuration.markdown | 8 +- .../mix-otp/docs-tests-and-with.markdown | 16 +-- getting-started/mix-otp/ets.markdown | 92 +++++++-------- .../mix-otp/introduction-to-mix.markdown | 25 +++-- .../supervisor-and-application.markdown | 106 +++++++++--------- getting-started/processes.markdown | 1 - getting-started/where-to-go-next.markdown | 4 +- 10 files changed, 133 insertions(+), 128 deletions(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 2366dfb8e..772f977a0 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -237,4 +237,3 @@ From Elixir v1.2, it is possible to alias, import or require multiple modules at ```elixir alias MyApp.{Foo, Bar, Baz} ``` - diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 230cd3109..36714a21f 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -46,7 +46,6 @@ iex> 1 and true ```iex iex> false and raise("This error will never be raised") false - iex> true or raise("This error will never be raised") true ``` diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index fc7215e7a..15e62664a 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -67,9 +67,9 @@ in your project's applications list whenever you use it. To do this, edit your `mix.exs` file to include: ```elixir - def application do - [applications: [:crypto]] - end +def application do + [applications: [:crypto]] +end ``` ## The digraph module @@ -201,4 +201,3 @@ iex> byte_size compressed iex> :zlib.uncompress(compressed) "\nMary had a little lamb,\nHis fleece was white as snow,\nAnd everywhere that Mary went,\nThe lamb was sure to go." ``` - diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index c8bd0f8d7..83f8de272 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -11,8 +11,10 @@ In this last chapter, we will go back to the `:kv` application and add a routing The routing layer will receive a routing table of the following format: - [{?a..?m, :"foo@computer-name"}, - {?n..?z, :"bar@computer-name"}] +```elixir +[{?a..?m, :"foo@computer-name"}, + {?n..?z, :"bar@computer-name"}] +``` The router will check the first byte of the bucket name against the table and dispatch to the appropriate node based on that. For example, a bucket starting with the letter "a" (`?a` represents the Unicode codepoint of the letter "a") will be dispatched to node `foo@computer-name`. @@ -43,7 +45,7 @@ Let's define a module named `Hello` in this shell: ```iex iex> defmodule Hello do -...> def world, do: IO.puts "hello world" +...> def world, do: IO.puts "hello world" ...> end ``` diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 1d526a4ab..946b921b9 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -70,13 +70,15 @@ end Run the test suite and the doctest should fail: - 1) test doc at KVServer.Command.parse/1 (1) (KVServer.CommandTest) - test/kv_server/command_test.exs:3 - Doctest failed - code: KVServer.Command.parse "CREATE shopping\r\n" === {:ok, {:create, "shopping"}} - lhs: :not_implemented - stacktrace: - lib/kv_server/command.ex:11: KVServer.Command (module) +``` + 1) test doc at KVServer.Command.parse/1 (1) (KVServer.CommandTest) + test/kv_server/command_test.exs:3 + Doctest failed + code: KVServer.Command.parse "CREATE shopping\r\n" === {:ok, {:create, "shopping"}} + lhs: :not_implemented + stacktrace: + lib/kv_server/command.ex:11: KVServer.Command (module) + ``` Excellent! diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 08aa57b9f..7fc206207 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -129,24 +129,24 @@ In order for the cache mechanism to work, the created ETS table needs to have ac The changes we have performed above have broken our tests because they were using the pid of the registry process for all operations and now the registry lookup requires the ETS table name. However, since the ETS table has the same name as the registry process, it is an easy fix. Change the setup function in `test/kv/registry_test.exs` to the following: ```elixir - setup context do - {:ok, _} = KV.Registry.start_link(context.test) - {:ok, registry: context.test} - end +setup context do + {:ok, _} = KV.Registry.start_link(context.test) + {:ok, registry: context.test} +end ``` Once we change `setup`, some tests will continue to fail. You may even notice tests pass and fail inconsistently between runs. For example, the "spawns buckets" test: ```elixir - test "spawns buckets", %{registry: registry} do - assert KV.Registry.lookup(registry, "shopping") == :error +test "spawns buckets", %{registry: registry} do + assert KV.Registry.lookup(registry, "shopping") == :error - KV.Registry.create(registry, "shopping") - assert {:ok, bucket} = KV.Registry.lookup(registry, "shopping") + KV.Registry.create(registry, "shopping") + assert {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - KV.Bucket.put(bucket, "milk", 1) - assert KV.Bucket.get(bucket, "milk") == 1 - end + KV.Bucket.put(bucket, "milk", 1) + assert KV.Bucket.get(bucket, "milk") == 1 +end ``` may be failing on this line: @@ -183,22 +183,22 @@ However, since `KV.Registry.create/2` is a cast operation, the command will retu To fix the failure we just need to make `KV.Registry.create/2` synchronous by using `call/2` rather than `cast/2`. This will guarantee that the client will only continue after changes have been made to the table. Let's change the function and its callback as follows: ```elixir - def create(server, name) do - GenServer.call(server, {:create, name}) - end +def create(server, name) do + GenServer.call(server, {:create, name}) +end - def handle_call({:create, name}, _from, {names, refs}) do - case lookup(names, name) do - {:ok, pid} -> - {:reply, pid, {names, refs}} - :error -> - {:ok, pid} = KV.Bucket.Supervisor.start_bucket - ref = Process.monitor(pid) - refs = Map.put(refs, ref, name) - :ets.insert(names, {name, pid}) - {:reply, pid, {names, refs}} - end +def handle_call({:create, name}, _from, {names, refs}) do + case lookup(names, name) do + {:ok, pid} -> + {:reply, pid, {names, refs}} + :error -> + {:ok, pid} = KV.Bucket.Supervisor.start_bucket + ref = Process.monitor(pid) + refs = Map.put(refs, ref, name) + :ets.insert(names, {name, pid}) + {:reply, pid, {names, refs}} end +end ``` We simply changed the callback from `handle_cast/2` to `handle_call/3` and changed it to reply with the pid of the created bucket. Generally speaking, Elixir developers prefer to use `call/2` instead of `cast/2` as it also provides back-pressure (you block until you get a reply). Using `cast/2` when not necessary can also be considered a premature optimization. @@ -230,31 +230,31 @@ An easy way to do so is by sending a synchronous request to the registry: becaus ```elixir - test "removes buckets on exit", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - Agent.stop(bucket) - - # Do a call to ensure the registry processed the DOWN message - _ = KV.Registry.create(registry, "bogus") - assert KV.Registry.lookup(registry, "shopping") == :error - end +test "removes buckets on exit", %{registry: registry} do + KV.Registry.create(registry, "shopping") + {:ok, bucket} = KV.Registry.lookup(registry, "shopping") + Agent.stop(bucket) + + # Do a call to ensure the registry processed the DOWN message + _ = KV.Registry.create(registry, "bogus") + assert KV.Registry.lookup(registry, "shopping") == :error +end - test "removes bucket on crash", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") +test "removes bucket on crash", %{registry: registry} do + KV.Registry.create(registry, "shopping") + {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - # Kill the bucket and wait for the notification - Process.exit(bucket, :shutdown) + # Kill the bucket and wait for the notification + Process.exit(bucket, :shutdown) - # Wait until the bucket is dead - ref = Process.monitor(bucket) - assert_receive {:DOWN, ^ref, _, _, _} + # Wait until the bucket is dead + ref = Process.monitor(bucket) + assert_receive {:DOWN, ^ref, _, _, _} - # Do a call to ensure the registry processed the DOWN message - _ = KV.Registry.create(registry, "bogus") - assert KV.Registry.lookup(registry, "shopping") == :error - end + # Do a call to ensure the registry processed the DOWN message + _ = KV.Registry.create(registry, "bogus") + assert KV.Registry.lookup(registry, "shopping") == :error +end ``` Our tests should now (always) pass! diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 73a5d4bfa..b215555fa 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -128,6 +128,7 @@ $ mix compile ``` Will output: + Compiling 1 file (.ex) Generated kv app @@ -190,17 +191,19 @@ assert 1 + 1 == 3 Now run `mix test` again (notice this time there will be no compilation): - 1) test the truth (KVTest) - test/kv_test.exs:5 - Assertion with == failed - code: 1 + 1 == 3 - lhs: 2 - rhs: 3 - stacktrace: - test/kv_test.exs:6 - - Finished in 0.05 seconds (0.05s on load, 0.00s on tests) - 1 test, 1 failure +``` + 1) test the truth (KVTest) + test/kv_test.exs:5 + Assertion with == failed + code: 1 + 1 == 3 + lhs: 2 + rhs: 3 + stacktrace: + test/kv_test.exs:6 + +Finished in 0.05 seconds (0.05s on load, 0.00s on tests) +1 test, 1 failure +``` For each failure, ExUnit prints a detailed report, containing the test name with the test case, the code that failed and the values for the left-hand side (lhs) and right-hand side (rhs) of the `==` operator. diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index c04d05662..dfd624c88 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -56,21 +56,21 @@ The supervision strategy dictates what happens when one of the children crashes. Since `KV.Registry.start_link/1` is now expecting an argument, we need to change our implementation to receive such argument. Open up `lib/kv/registry.ex` and replace the `start_link/0` definition by: ```elixir - @doc """ - Starts the registry with the given `name`. - """ - def start_link(name) do - GenServer.start_link(__MODULE__, :ok, name: name) - end +@doc """ +Starts the registry with the given `name`. +""" +def start_link(name) do + GenServer.start_link(__MODULE__, :ok, name: name) +end ``` We also need to update our tests to give a name when starting the registry. Replace the `setup` function in `test/kv/registry_test.exs` by: ```elixir - setup context do - {:ok, registry} = KV.Registry.start_link(context.test) - {:ok, registry: registry} - end +setup context do + {:ok, registry} = KV.Registry.start_link(context.test) + {:ok, registry: registry} +end ``` `setup/2` may also receive the test context, similar to `test/3`. Besides whatever value we may add in our setup blocks, the context includes some default keys, like `:case`, `:test`, `:file` and `:line`. We have used `context.test` as a shortcut to spawn a registry with the same name of the test currently running. @@ -172,10 +172,10 @@ We can specify an application callback function. This is a function that will be We can configure the application callback in two steps. First, open up the `mix.exs` file and change `def application` to the following: ```elixir - def application do - [applications: [:logger], - mod: {KV, []}] - end +def application do + [applications: [:logger], + mod: {KV, []}] +end ``` The `:mod` option specifies the "application callback module", followed by the arguments to be passed on application start. The application callback module can be any module that implements the [Application](/docs/stable/elixir/Application.html) behaviour. @@ -233,19 +233,19 @@ Links are bi-directional, which implies that a crash in a bucket will crash the In other words, we want the registry to keep on running even if a bucket crashes. Let's write a new registry test: ```elixir - test "removes bucket on crash", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") +test "removes bucket on crash", %{registry: registry} do + KV.Registry.create(registry, "shopping") + {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - # Stop the bucket with non-normal reason - Process.exit(bucket, :shutdown) + # Stop the bucket with non-normal reason + Process.exit(bucket, :shutdown) - # Wait until the bucket is dead - ref = Process.monitor(bucket) - assert_receive {:DOWN, ^ref, _, _, _} + # Wait until the bucket is dead + ref = Process.monitor(bucket) + assert_receive {:DOWN, ^ref, _, _, _} - assert KV.Registry.lookup(registry, "shopping") == :error - end + assert KV.Registry.lookup(registry, "shopping") == :error +end ``` The test is similar to "removes bucket on exit" except that we are being a bit more harsh by sending `:shutdown` as the exit reason instead of `:normal`. Opposite to `Agent.stop/1`, `Process.exit/2` is an asynchronous operation, therefore we cannot simply query `KV.Registry.lookup/2` right after sending the exit signal because there will be no guarantee the bucket will be dead by then. To solve this, we also monitor the bucket during test and only query the registry once we are sure it is DOWN, avoiding race conditions. @@ -311,17 +311,17 @@ iex> KV.Bucket.get(bucket, "eggs") Let's change the registry to work with the buckets supervisor by rewriting how buckets are started: ```elixir - def handle_cast({:create, name}, {names, refs}) do - if Map.has_key?(names, name) do - {:noreply, {names, refs}} - else - {:ok, pid} = KV.Bucket.Supervisor.start_bucket - ref = Process.monitor(pid) - refs = Map.put(refs, ref, name) - names = Map.put(names, name, pid) - {:noreply, {names, refs}} - end +def handle_cast({:create, name}, {names, refs}) do + if Map.has_key?(names, name) do + {:noreply, {names, refs}} + else + {:ok, pid} = KV.Bucket.Supervisor.start_bucket + ref = Process.monitor(pid) + refs = Map.put(refs, ref, name) + names = Map.put(names, name, pid) + {:noreply, {names, refs}} end +end ``` Once we perform those changes, our test suite should fail as there is no bucket supervisor. Instead of directly starting the bucket supervisor on every test, let's automatically start it as part of our main supervision tree. @@ -333,14 +333,14 @@ In order to use the buckets supervisor in our application, we need to add it as Open up `lib/kv/supervisor.ex` and change `init/1` to match the following: ```elixir - def init(:ok) do - children = [ - worker(KV.Registry, [KV.Registry]), - supervisor(KV.Bucket.Supervisor, []) - ] +def init(:ok) do + children = [ + worker(KV.Registry, [KV.Registry]), + supervisor(KV.Bucket.Supervisor, []) + ] - supervise(children, strategy: :one_for_one) - end + supervise(children, strategy: :one_for_one) +end ``` This time we have added a supervisor as child, starting it with no arguments. Re-run the test suite and now all tests should pass. @@ -350,14 +350,14 @@ Since we have added more children to the supervisor, it is also important to eva In light of this observation, we should consider moving to another supervision strategy. Two likely candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:one_for_all` strategy will kill and restart all of its children processes whenever any one of them dies. At first glance, this would appear to suit our use case, but it also seems a little heavy-handed, because `KV.Registry` is perfectly capable of cleaning itself up if `KV.Bucket.Supervisor` dies. In this case, the `:rest_for_one` strategy comes in handy- when a child process crashes, the supervisor will only kill and restart child processes which were started *after* the crashed child. Let's rewrite our supervision tree to use this strategy instead: ```elixir - def init(:ok) do - children = [ - worker(KV.Registry, [KV.Registry]), - supervisor(KV.Bucket.Supervisor, []) - ] +def init(:ok) do + children = [ + worker(KV.Registry, [KV.Registry]), + supervisor(KV.Bucket.Supervisor, []) + ] - supervise(children, strategy: :rest_for_one) - end + supervise(children, strategy: :rest_for_one) +end ``` Now, if the registry worker crashes, both the registry and the "rest" of `KV.Supervisor`'s children (i.e. `KV.Bucket.Supervisor`) will be restarted. However, if `KV.Bucket.Supervisor` crashes, `KV.Registry` will not be restarted, because it was started prior to `KV.Bucket.Supervisor`. @@ -378,7 +378,7 @@ A GUI should pop-up containing all sorts of information about our system, from g In the Applications tab, you will see all applications currently running in your system along side their supervision tree. You can select the `kv` application to explore it further: - + Not only that, as you create new buckets on the terminal, you should see new processes spawned in the supervision tree shown in Observer: @@ -396,10 +396,10 @@ At the end of the day, tools like Observer is one of the main reasons you want t So far we have been starting one registry per test to ensure they are isolated: ```elixir - setup context do - {:ok, registry} = KV.Registry.start_link(context.test) - {:ok, registry: registry} - end +setup context do + {:ok, registry} = KV.Registry.start_link(context.test) + {:ok, registry: registry} +end ``` Since we have now changed our registry to use `KV.Bucket.Supervisor`, which is registered globally, our tests are now relying on this shared, global supervisor even though each test has its own registry. The question is: should we? diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 1c2ed7276..1e9fc9213 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -109,7 +109,6 @@ iex> spawn fn -> raise "oops" end [error] Process #PID<0.58.00> raised an exception ** (RuntimeError) oops :erlang.apply/2 - ``` It merely logged an error but the spawning process is still running. That's because processes are isolated. If we want the failure in one process to propagate to another one, we should link them. This can be done with `spawn_link/1`: diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index ec1d86ba8..5a09abc9a 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -13,7 +13,9 @@ Eager to learn more? Keep reading! In order to get your first project started, Elixir ships with a build tool called Mix. You can get your new project started by simply running: - mix new path/to/new/project +```bash +$ mix new path/to/new/project +``` We have written a guide that covers how to build an Elixir application, with its own supervision tree, configuration, tests and more. The application works as a distributed key-value store where we organize key-value pairs into buckets and distribute those buckets across multiple nodes: From 07b6bce73cd711d1c0ec4545998c971e61ba870d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 10 Aug 2016 09:43:41 +0200 Subject: [PATCH 0535/1761] Rename Getting Started to Guides --- _includes/top.html | 2 +- _posts/2016-01-03-elixir-v1-2-0-released.markdown | 2 +- _posts/2016-06-21-elixir-v1-3-0-released.markdown | 2 +- crash-course.markdown | 2 +- learning.markdown | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/_includes/top.html b/_includes/top.html index f511033c4..fe489950c 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -44,7 +44,7 @@

        {% include bottom.html %} diff --git a/_layouts/default.html b/_layouts/default.html index 39866ec4f..92858f3bc 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -8,8 +8,8 @@ {% include search.html %} {% include important-links.html %} {% include code-editor-support.html %} - {% include sponsors.html %} {% include elixir-radar.html %} + {% include distilled_by.html %}
        {% include bottom.html %} diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index 8667dc2b2..d1de0c073 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -19,8 +19,8 @@

        {{guide.title}}

        {% endfor %} - {% include sponsors.html %} {% include elixir-radar.html %} + {% include distilled_by.html %}
        diff --git a/css/style.css b/css/style.css index 6c407adbd..dab2d5343 100644 --- a/css/style.css +++ b/css/style.css @@ -816,7 +816,7 @@ li.image { width: 100%; clear: left; } - #sponsors ul { + #distilled_by ul { margin: 0; } } @@ -1006,4 +1006,4 @@ a.cta-button:active { background-image: none; box-shadow: inset 0 2px 4px rgba(0, 0, 0, .15); -} \ No newline at end of file +} From 01643d6c9d80248b5fc32d6c40535b2234a04f67 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Fri, 19 Aug 2016 14:22:39 +0200 Subject: [PATCH 0543/1761] Point to point to the "Operators" page in the Elixir docs (#832) I removed the operator table in the "Basic operators" chapter of the Getting Started guide, which was too detailed for the guide, and replaced it with a pointer to the "Operators" page in the Elixir docs introduced in https://github.com/elixir-lang/elixir/pull/5142. --- getting-started/basic-operators.markdown | 30 +++--------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 36714a21f..09ca99abb 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -111,30 +111,6 @@ The reason we can compare different data types is pragmatism. Sorting algorithms You don't actually need to memorize this ordering, but it is important just to know an order exists. -## Operator table - -Although we have learned only a handful of operators so far, we present below the complete operator table for Elixir ordered from higher to lower precedence for reference: - -Operator | Associativity --------- | ------------- - `@` | Unary - `.` | Left to right - `+` `-` `!` `^` `not` `~~~` | Unary - `*` `/` | Left to right - `+` `-` | Left to right - `++` `--` `..` `<>` | Right to left - `in` | Left to right - |> `<<<` `>>>` `~>>` `<<~` `~>` `<~` `<~>` <|> | Left to right - `<` `>` `<=` `>=` | Left to right - `==` `!=` `=~` `===` `!==` | Left to right - `&&` `&&&` `and` | Left to right - || ||| `or` | Left to right - `=` | Right to left - `=>` | Right to left - | | Right to left - `::` | Right to left - `when` | Right to left - `<-`, `\\` | Left to right - `&` | Unary - -We will learn the majority of those operators as we go through the getting started guide. In the next chapter, we are going to discuss some basic functions, data type conversions and a bit of control-flow. +For reference information about operators, you can visit the ["Operators" page](/docs/master/elixir/operators.html) in the documentation. + +In the next chapter, we are going to discuss some basic functions, data type conversions and a bit of control-flow. From 4c0c9d6702dc00186b4ca9c049b1fce6e012373f Mon Sep 17 00:00:00 2001 From: Marek Suscak Date: Sat, 20 Aug 2016 03:03:02 +0200 Subject: [PATCH 0544/1761] Fix a broken link to Typedefs Notes section. (#833) --- getting-started/typespecs-and-behaviours.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 9fe900154..544264d74 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -47,7 +47,7 @@ defmodule LousyCalculator do end ``` -As you can see in the example, tuples are a compound type and each tuple is identified by the types inside it. To understand why `String.t` is not written as `string`, have another look at the [notes in the typespecs docs](/docs/stable/elixir/typespecs.html#Notes). +As you can see in the example, tuples are a compound type and each tuple is identified by the types inside it. To understand why `String.t` is not written as `string`, have another look at the [notes in the typespecs docs](/docs/stable/elixir/typespecs.html#notes). Defining function specs this way works, but it quickly becomes annoying since we're repeating the type `{number, String.t}` over and over. We can use the `@type` directive in order to declare our own custom type. From d85a91b4af6a7a9c9a55aedba3eac96986ca7edc Mon Sep 17 00:00:00 2001 From: Stefan Otte Date: Thu, 25 Aug 2016 18:02:41 +0200 Subject: [PATCH 0545/1761] Mark "Mix & OTP" chapters as part of the guide (#836) An generic preface references the start of the "Mix & OTP" guide. --- _includes/mix-otp-preface.html | 2 ++ getting-started/mix-otp/agent.markdown | 2 ++ getting-started/mix-otp/dependencies-and-umbrella-apps.markdown | 2 ++ .../mix-otp/distributed-tasks-and-configuration.markdown | 2 ++ getting-started/mix-otp/docs-tests-and-with.markdown | 2 ++ getting-started/mix-otp/ets.markdown | 2 ++ getting-started/mix-otp/genserver.markdown | 2 ++ getting-started/mix-otp/supervisor-and-application.markdown | 2 ++ getting-started/mix-otp/task-and-gen-tcp.markdown | 2 ++ 9 files changed, 18 insertions(+) create mode 100644 _includes/mix-otp-preface.html diff --git a/_includes/mix-otp-preface.html b/_includes/mix-otp-preface.html new file mode 100644 index 000000000..430ab4753 --- /dev/null +++ b/_includes/mix-otp-preface.html @@ -0,0 +1,2 @@ +This chapter is part of the Mix and OTP guide and it depends on previous chapters in this guide. +For more information, read the guide introduction or check out the chapter index in the sidebar. diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 508570b4a..f587090b5 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -7,6 +7,8 @@ title: Agent {% include toc.html %} +{% include mix-otp-preface.html %} + In this chapter, we will create a module named `KV.Bucket`. This module will be responsible for storing our key-value entries in a way it can be read and modified by other processes. If you have skipped the Getting Started guide or if you have read it long ago, be sure to re-read the chapter about [Processes](/getting-started/processes.html). We will use it as a starting point. diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index a3899af33..fd77f7cb9 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -7,6 +7,8 @@ title: Dependencies and umbrella projects {% include toc.html %} +{% include mix-otp-preface.html %} + In this chapter, we will discuss how to manage dependencies in Mix. Our `kv` application is complete, so it's time to implement the server that will handle the requests we defined in the first chapter: diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 83f8de272..58d501c23 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -7,6 +7,8 @@ title: Distributed tasks and configuration {% include toc.html %} +{% include mix-otp-preface.html %} + In this last chapter, we will go back to the `:kv` application and add a routing layer that will allow us to distribute requests between nodes based on the bucket name. The routing layer will receive a routing table of the following format: diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 51b46fb51..c210a4fb7 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -8,6 +8,8 @@ redirect_from: /getting-started/mix_otp/docs-tests-and-pipelines.html {% include toc.html %} +{% include mix-otp-preface.html %} + In this chapter, we will implement the code that parses the commands we described in the first chapter: ``` diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 7fc206207..9da6ad67e 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -7,6 +7,8 @@ title: ETS {% include toc.html %} +{% include mix-otp-preface.html %} + Every time we need to look up a bucket, we need to send a message to the registry. In case our registry is being accessed concurrently by multiple processes, the registry may become a bottleneck! In this chapter we will learn about ETS (Erlang Term Storage) and how to use it as a cache mechanism. diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 6ba88374b..5148c1c0b 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -7,6 +7,8 @@ title: GenServer {% include toc.html %} +{% include mix-otp-preface.html %} + In the [previous chapter](/getting-started/mix-otp/agent.html) we used agents to represent our buckets. In the first chapter, we specified we would like to name each bucket so we can do the following: ```elixir diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index dfd624c88..89c3b5e16 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -7,6 +7,8 @@ title: Supervisor and Application {% include toc.html %} +{% include mix-otp-preface.html %} + So far our application has a registry that may monitor dozens, if not hundreds, of buckets. While we think our implementation so far is quite good, no software is bug free, and failures are definitely going to happen. When things fail, your first reaction may be: "let's rescue those errors". But in Elixir we avoid the defensive programming habit of rescuing exceptions, as commonly seen in other languages. Instead, we say "let it crash". If there is a bug that leads our registry to crash, we have nothing to worry about because we are going to set up a supervisor that will start a fresh copy of the registry. diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index a0a82f9e3..3642914bf 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -7,6 +7,8 @@ title: Task and gen_tcp {% include toc.html %} +{% include mix-otp-preface.html %} + In this chapter, we are going to learn how to use [Erlang's `:gen_tcp` module](http://www.erlang.org/doc/man/gen_tcp.html) to serve requests. This provides a great opportunity to explore Elixir's `Task` module. In future chapters we will expand our server so it can actually serve the commands. ## Echo server From aa27da5f8518f10f3944337c8a2516c7a00ea613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 28 Aug 2016 18:29:01 +0200 Subject: [PATCH 0546/1761] Update keywords-and-maps.markdown --- getting-started/keywords-and-maps.markdown | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 2a99049cb..4463b67a9 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -14,18 +14,16 @@ In Elixir, we have two main associative data structures: keyword lists and maps. ## Keyword lists -In many functional programming languages, it is common to use a list of 2-item tuples as the representation of an associative data structure. In Elixir, when we have a list of tuples and the first item of the tuple (i.e. the key) is an atom, we call it a keyword list: +In many functional programming languages, it is common to use a list of 2-item tuples as the representation of a key-value data structure. In Elixir, when we have a list of tuples and the first item of the tuple (i.e. the key) is an atom, we call it a keyword list: ```iex iex> list = [{:a, 1}, {:b, 2}] [a: 1, b: 2] iex> list == [a: 1, b: 2] true -iex> list[:a] -1 ``` -As you can see above, Elixir supports a special syntax for defining such lists, and underneath they just map to a list of tuples. Since they are simply lists, we can use all operations available to lists. For example, we can use `++` to add new values to a keyword list: +As you can see above, Elixir supports a special syntax for defining such lists: `[key: value]`. Underneath it maps to the same list of tuples as above. Since keyword lists are lists, we can use all operations available to lists. For example, we can use `++` to add new values to a keyword list: ```iex iex> list ++ [c: 3] @@ -58,7 +56,7 @@ query = from w in Weather, select: w ``` -These features are what prompted keyword lists to be the default mechanism for passing options to functions in Elixir. In chapter 5, when we discussed the `if/2` macro, we mentioned the following syntax is supported: +These characteristics are what prompted keyword lists to be the default mechanism for passing options to functions in Elixir. In chapter 5, when we discussed the `if/2` macro, we mentioned the following syntax is supported: ```iex iex> if false, do: :this, else: :that @@ -72,9 +70,14 @@ iex> if(false, [do: :this, else: :that]) :that ``` -In general, when the keyword list is the last argument of a function, the square brackets are optional. +Which, as we have seen above, is the same as: + +```iex +iex> if(false, [{:do, :this}, {:else, :that}]) +:that +``` -In order to manipulate keyword lists, Elixir provides [the `Keyword` module](/docs/stable/elixir/Keyword.html). Remember, though, keyword lists are simply lists, and as such they provide the same linear performance characteristics as lists. The longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly as options. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. +In general, when the keyword list is the last argument of a function, the square brackets are optional. Although we can pattern match on keyword lists, it is rarely done in practice since pattern matching on lists requires the number of items and their order to match: @@ -89,6 +92,8 @@ iex> [b: b, a: a] = [a: 1, b: 2] ** (MatchError) no match of right hand side value: [a: 1, b: 2] ``` +In order to manipulate keyword lists, Elixir provides [the `Keyword` module](/docs/stable/elixir/Keyword.html). Remember, though, keyword lists are simply lists, and as such they provide the same linear performance characteristics as lists. The longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly for passing optional values. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. + ## Maps Whenever you need a key-value store, maps are the "go to" data structure in Elixir. A map is created using the `%{}` syntax: From b554adfe69e950144b5d413d4a2f39d9c0599b6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 28 Aug 2016 20:28:19 +0200 Subject: [PATCH 0547/1761] Remove usage of simply and just --- .../alias-require-and-import.markdown | 17 +++-------------- getting-started/basic-types.markdown | 2 +- .../binaries-strings-and-char-lists.markdown | 6 +++--- getting-started/case-cond-and-if.markdown | 6 +++--- .../enumerables-and-streams.markdown | 2 +- .../io-and-the-file-system.markdown | 6 +++--- .../meta/domain-specific-languages.markdown | 6 +++--- .../dependencies-and-umbrella-apps.markdown | 6 +++--- ...istributed-tasks-and-configuration.markdown | 18 +++++++++--------- .../mix-otp/docs-tests-and-with.markdown | 8 ++++---- getting-started/mix-otp/ets.markdown | 4 ++-- getting-started/mix-otp/genserver.markdown | 2 +- .../supervisor-and-application.markdown | 12 ++++++------ .../mix-otp/task-and-gen-tcp.markdown | 12 ++++++------ getting-started/module-attributes.markdown | 2 +- getting-started/modules.markdown | 4 ++-- getting-started/protocols.markdown | 2 +- getting-started/sigils.markdown | 2 +- getting-started/structs.markdown | 2 +- getting-started/try-catch-and-rescue.markdown | 6 +++--- getting-started/where-to-go-next.markdown | 2 +- 21 files changed, 58 insertions(+), 69 deletions(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 772f977a0..33e07a16e 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -72,7 +72,7 @@ defmodule Math do end ``` -In the example above, since we are invoking `alias` inside the function `plus/2`, the alias will just be valid inside the function `plus/2`. `minus/2` won't be affected at all. +In the example above, since we are invoking `alias` inside the function `plus/2`, the alias will be valid only inside the function `plus/2`. `minus/2` won't be affected at all. ## require @@ -95,7 +95,7 @@ In general a module does not need to be required before usage, except if we want ## import -We use `import` whenever we want to easily access functions or macros from other modules without using the fully-qualified name. For instance, if we want to use the `duplicate/2` function from the `List` module several times, we can simply import it: +We use `import` whenever we want to easily access functions or macros from other modules without using the fully-qualified name. For instance, if we want to use the `duplicate/2` function from the `List` module several times, we can import it: ```iex iex> import List, only: [duplicate: 2] @@ -183,7 +183,7 @@ iex> :"Elixir.String" == String true ``` -By using the `alias/2` directive, we are simply changing the atom the alias expands to. +By using the `alias/2` directive, we are changing the atom the alias expands to. Aliases expand to atoms because in the Erlang VM (and consequently Elixir) modules are always represented by atoms. For example, that's the mechanism we use to call Erlang modules: @@ -192,17 +192,6 @@ iex> :lists.flatten([1, [2], 3]) [1, 2, 3] ``` -This is also the mechanism that allows us to dynamically call a given function in a module: - -```iex -iex> mod = :lists -:lists -iex> mod.flatten([1, [2], 3]) -[1, 2, 3] -``` - -We are simply calling the function `flatten` on the atom `:lists`. - ## Module nesting Now that we have talked about aliases, we can talk about nesting and how it works in Elixir. Consider the following example: diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 791da33fd..95f53c224 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -209,7 +209,7 @@ iex> add.(1, 2) 3 ``` -Functions are "first class citizens" in Elixir meaning they can be passed as arguments to other functions just as integers and strings can. In the example, we have passed the function in the variable `add` to the `is_function/1` function which correctly returned `true`. We can also check the arity of the function by calling `is_function/2`. +Functions are "first class citizens" in Elixir meaning they can be passed as arguments to other functions as integers and strings can. In the example, we have passed the function in the variable `add` to the `is_function/1` function which correctly returned `true`. We can also check the arity of the function by calling `is_function/2`. Note a dot (`.`) between the variable and parenthesis is required to invoke an anonymous function. diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 68c9f1b42..01fd8fe9f 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -57,7 +57,7 @@ iex> String.codepoints("hełło") You will see that Elixir has excellent support for working with strings. It also supports many of the Unicode operations. In fact, Elixir passes all the tests showcased in the article ["The string type is broken"](http://mortoray.com/2013/11/27/the-string-type-is-broken/). -However, strings are just part of the story. If a string is a binary, and we have used the `is_binary/1` function, Elixir must have an underlying type empowering strings. And it does. Let's talk about binaries! +However, strings are just part of the story. If a string is a binary, and we have used the `is_binary/1` function, Elixir must have an underlying type empowering strings. And it does! Let's talk about binaries. ## Binaries (and bitstrings) @@ -70,7 +70,7 @@ iex> byte_size(<<0, 1, 2, 3>>) 4 ``` -A binary is just a sequence of bytes. Of course, those bytes can be organized in any way, even in a sequence that does not make them a valid string: +A binary is a sequence of bytes. Those bytes can be organized in any way, even in a sequence that does not make them a valid string: ```iex iex> String.valid?(<<239, 191, 191>>) @@ -121,7 +121,7 @@ iex> bit_size(<< 1 :: size(1)>>) 1 ``` -The value is no longer a binary, but a bitstring -- just a bunch of bits! So a binary is a bitstring where the number of bits is divisible by 8. +The value is no longer a binary, but a bitstring -- a bunch of bits! So a binary is a bitstring where the number of bits is divisible by 8. We can also pattern match on binaries / bitstrings: diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 3a34b6e05..a0cca117a 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -104,7 +104,7 @@ module defines guards as functions and operators: `bnot`, `~~~`, `band`, Note that while boolean operators such as `and`, `or`, `not` are allowed in guards, the more general and short-circuiting operators `&&`, `||` and `!` are not. -Keep in mind errors in guards do not leak but simply make the guard fail: +Keep in mind errors in guards do not leak but instead make the guard fail: ```iex iex> hd(1) @@ -194,7 +194,7 @@ iex> cond do ## `if` and `unless` -Besides `case` and `cond`, Elixir also provides the macros `if/2` and `unless/2` which are useful when you need to check for just one condition: +Besides `case` and `cond`, Elixir also provides the macros `if/2` and `unless/2` which are useful when you need to check for only one condition: ```iex iex> if true do @@ -207,7 +207,7 @@ iex> unless true do nil ``` -If the condition given to `if/2` returns `false` or `nil`, the body given between `do/end` is not executed and it simply returns `nil`. The opposite happens with `unless/2`. +If the condition given to `if/2` returns `false` or `nil`, the body given between `do/end` is not executed and instead it returns `nil`. The opposite happens with `unless/2`. They also support `else` blocks: diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 70ba77fc7..cb7caf087 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -55,7 +55,7 @@ The example above has a pipeline of operations. We start with a range and then m ## The pipe operator -The `|>` symbol used in the snippet above is the **pipe operator**: it simply takes the output from the expression on its left side and passes it as the first argument to the function call on its right side. It's similar to the Unix `|` operator. Its purpose is to highlight the flow of data being transformed by a series of functions. To see how it can make the code cleaner, have a look at the example above rewritten without using the `|>` operator: +The `|>` symbol used in the snippet above is the **pipe operator**: it takes the output from the expression on its left side and passes it as the first argument to the function call on its right side. It's similar to the Unix `|` operator. Its purpose is to highlight the data being transformed by a series of functions. To see how it can make the code cleaner, have a look at the example above rewritten without using the `|>` operator: ```iex iex> Enum.sum(Enum.filter(Enum.map(1..100_000, &(&1 * 3)), odd?)) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index a81f1c370..8eee2e311 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -94,7 +94,7 @@ iex> Path.expand("~/hello") "/Users/jose/hello" ``` -Using functions from the `Path` module as opposed to just manipulating binaries is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slashes (`/`) into backslashes (`\`) on Windows when performing file operations. +Using functions from the `Path` module as opposed to directly manipulating string is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slashes (`/`) into backslashes (`\`) on Windows when performing file operations. With this we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next sections, we will discuss some advanced topics regarding IO. Those sections are not necessary in order to write Elixir code, so feel free to skip them, but they do provide a nice overview of how the IO system is implemented in the VM and other curiosities. @@ -147,7 +147,7 @@ The group leader can be configured per process and is used in different situatio ## `iodata` and `chardata` -In all of the examples above, we used binaries when writing to files. In the chapter ["Binaries, strings and char lists"](/getting-started/binaries-strings-and-char-lists.html), we mentioned how strings are simply bytes while char lists are lists with code points. +In all of the examples above, we used binaries when writing to files. In the chapter ["Binaries, strings and char lists"](/getting-started/binaries-strings-and-char-lists.html), we mentioned how strings are made of bytes while char lists are lists with unicode codepoints. The functions in `IO` and `File` also allow lists to be given as arguments. Not only that, they also allow a mixed list of lists, integers and binaries to be given: @@ -160,7 +160,7 @@ hello world :ok ``` -However, this requires some attention. A list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as argument; i.e., they expect a list of integers representing bytes and binaries to be given. +However, using list in IO operations requires some attention. A list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as argument; i.e., they expect a list of integers representing bytes and binaries to be given. On the other hand, `:stdio` and files opened with `:utf8` encoding work with the remaining functions in the `IO` module. Those functions expect a `char_data` as an argument, that is, a list of characters or strings. diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index 66c714bbc..98b8aeb0e 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -69,17 +69,17 @@ end MyTest.run ``` -In the example above, by using `TestCase`, we can write tests using the `test` macro, which defines a function named `run` to automatically run all tests for us. Our prototype will simply rely on the match operator (`=`) as a mechanism to do assertions. +In the example above, by using `TestCase`, we can write tests using the `test` macro, which defines a function named `run` to automatically run all tests for us. Our prototype will rely on the match operator (`=`) as a mechanism to do assertions. ## The `test` macro -Let's start by creating a module that simply defines and imports the `test` macro when used: +Let's start by creating a module that defines and imports the `test` macro when used: ```elixir defmodule TestCase do # Callback invoked by `use`. # - # For now it simply returns a quoted expression that + # For now it returns a quoted expression that # imports the module itself into the user code. @doc false defmacro __using__(_opts) do diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index fd77f7cb9..25d26c5f6 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -79,7 +79,7 @@ Internal dependencies are the ones that are specific to your project. They usual If you have an internal dependency, Mix supports two methods to work with them: git repositories or umbrella projects. -For example, if you push the `kv` project to a git repository, you just need to list it in your deps code in order to use it: +For example, if you push the `kv` project to a git repository, you'll need to list it in your deps code in order to use it: ```elixir def deps do @@ -139,7 +139,7 @@ defmodule KvUmbrella.Mixfile do end ``` -What makes this project different from the previous one is simply the `apps_path: "apps"` entry in the project definition. This means this project will act as an umbrella. Such projects do not have source files nor tests, although they can have their own dependencies (not shared with children). We'll create new applications inside the apps directory. +What makes this project different from the previous one is the `apps_path: "apps"` entry in the project definition. This means this project will act as an umbrella. Such projects do not have source files nor tests, although they can have their own dependencies. Each child application must be defined inside the `apps` directory. Let's move inside the apps directory and start building `kv_server`. This time, we are going to pass the `--sup` flag, which will tell Mix to generate a supervision tree automatically for us, instead of building one manually as we did in previous chapters: @@ -260,7 +260,7 @@ Finally, copy the `kv` application we have built so far to the `apps` directory + kv + kv_server -We now just need to modify `apps/kv/mix.exs` to contain the umbrella entries we have seen in `apps/kv_server/mix.exs`. Open up `apps/kv/mix.exs` and add to the `project` function: +We now need to modify `apps/kv/mix.exs` to contain the umbrella entries we have seen in `apps/kv_server/mix.exs`. Open up `apps/kv/mix.exs` and add to the `project` function: ```elixir build_path: "../../_build", diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 58d501c23..4d76b5376 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -22,7 +22,7 @@ The router will check the first byte of the bucket name against the table and di If the matching entry points to the node evaluating the request, then we've finished routing, and this node will perform the requested operation. If the matching entry points to a different node, we'll pass the request to this node, which will look at its own routing table (which may be different from the one in the first node) and act accordingly. If no entry matches, an error will be raised. -You may wonder why we don't simply tell the node we find in our routing table to perform the requested operation directly, but instead pass the routing request on to that node to process. While a routing table as simple as the one above might reasonably be shared between all nodes, passing on the routing request in this way makes it much simpler to break the routing table into smaller pieces as our application grows. Perhaps at some point, `foo@computer-name` will only be responsible for routing bucket requests, and the buckets it handles will be dispatched to different nodes. In this way, `bar@computer-name` does not need to know anything about this change. +You may wonder why we don't tell the node we found in our routing table to perform the requested operation directly, but instead pass the routing request on to that node to process. While a routing table as simple as the one above might reasonably be shared between all nodes, passing on the routing request in this way makes it much simpler to break the routing table into smaller pieces as our application grows. Perhaps at some point, `foo@computer-name` will only be responsible for routing bucket requests, and the buckets it handles will be dispatched to different nodes. In this way, `bar@computer-name` does not need to know anything about this change. > Note: we will be using two nodes in the same machine throughout this chapter. You are free to use two (or more) different machines in the same network but you need to do some prep work. First of all, you need to ensure all machines have a `~/.erlang.cookie` file with exactly the same value. Second, you need to guarantee [epmd](http://www.erlang.org/doc/man/epmd.html) is running on a port that is not blocked (you can run `epmd -d` for debug info). Third, if you want to learn more about distribution in general, we recommend [this great Distribunomicon chapter from Learn You Some Erlang](http://learnyousomeerlang.com/distribunomicon). @@ -51,7 +51,7 @@ iex> defmodule Hello do ...> end ``` -If you have another computer on the same network with both Erlang and Elixir installed, you can start another shell on it. If you don't, you can simply start another IEx session in another terminal. In either case, give it the short name of `bar`: +If you have another computer on the same network with both Erlang and Elixir installed, you can start another shell on it. If you don't, you can start another IEx session in another terminal. In either case, give it the short name of `bar`: ```bash $ iex --sname bar @@ -91,13 +91,13 @@ iex> flush :ok ``` -From our quick exploration, we could conclude that we should simply use `Node.spawn_link/2` to spawn processes on a remote node every time we need to do a distributed computation. However we have learned throughout this guide that spawning processes outside of supervision trees should be avoided if possible, so we need to look for other options. +From our quick exploration, we could conclude that we should use `Node.spawn_link/2` to spawn processes on a remote node every time we need to do a distributed computation. However we have learned throughout this guide that spawning processes outside of supervision trees should be avoided if possible, so we need to look for other options. There are three better alternatives to `Node.spawn_link/2` that we could use in our implementation: 1. We could use Erlang's [:rpc](http://www.erlang.org/doc/man/rpc.html) module to execute functions on a remote node. Inside the `bar@computer-name` shell above, you can call `:rpc.call(:"foo@computer-name", Hello, :world, [])` and it will print "hello world" -2. We could have a server running on the other node and send requests to that node via the [GenServer](/docs/stable/elixir/GenServer.html) API. For example, you can call a remote named server using `GenServer.call({name, node}, arg)` or simply passing the remote process PID as first argument +2. We could have a server running on the other node and send requests to that node via the [GenServer](/docs/stable/elixir/GenServer.html) API. For example, you can call a server on a remote node by using `GenServer.call({name, node}, arg)` or passing the remote process PID as first argument 3. We could use [tasks](/docs/stable/elixir/Task.html), which we have learned about in [a previous chapter](/getting-started/mix-otp/task-and-gen-tcp.html), as they can be spawned on both local and remote nodes @@ -143,7 +143,7 @@ iex> Task.await(task) {:ok, :"foo@computer-name"} ``` -Our first distributed task simply retrieves the name of the node the task is running on. Notice we have given an anonymous function to `Task.Supervisor.async/2` but, in distributed cases, it is preferable to give the module, function and arguments explicitly: +Our first distributed task retrieves the name of the node the task is running on. Notice we have given an anonymous function to `Task.Supervisor.async/2` but, in distributed cases, it is preferable to give the module, function and arguments explicitly: ```iex iex> task = Task.Supervisor.async {KV.RouterTasks, :"foo@computer-name"}, Kernel, :node, [] @@ -222,9 +222,9 @@ defmodule KV.RouterTest do end ``` -The first test simply invokes `Kernel.node/0`, which returns the name of the current node, based on the bucket names "hello" and "world". According to our routing table so far, we should get `foo@computer-name` and `bar@computer-name` as responses, respectively. +The first test invokes `Kernel.node/0`, which returns the name of the current node, based on the bucket names "hello" and "world". According to our routing table so far, we should get `foo@computer-name` and `bar@computer-name` as responses, respectively. -The second test just checks that the code raises for unknown entries. +The second test checks that the code raises for unknown entries. In order to run the first test, we need to have two nodes running. Move into `apps/kv` and let's restart the node named `bar` which is going to be used by tests. @@ -304,7 +304,7 @@ end We have added a new `:env` key to the application. It returns the application default environment, which has an entry of key `:routing_table` and value of an empty list. It makes sense for the application environment to ship with an empty table, as the specific routing table depends on the testing/deployment structure. -In order to use the application environment in our code, we just need to replace `KV.Router.table/0` with the definition below: +In order to use the application environment in our code, we need to replace `KV.Router.table/0` with the definition below: ```elixir @doc """ @@ -367,7 +367,7 @@ Finally, we have learned some new things in this chapter, and they could be appl * change the `:kv_server` application to read the port from its application environment instead of using the hardcoded value of 4040 -* change and configure the `:kv_server` application to use the routing functionality instead of dispatching directly to the local `KV.Registry`. For `:kv_server` tests, you can make the routing table simply point to the current node itself +* change and configure the `:kv_server` application to use the routing functionality instead of dispatching directly to the local `KV.Registry`. For `:kv_server` tests, you can make the routing table point to the current node itself ## Summing up diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index c210a4fb7..d93964163 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -84,7 +84,7 @@ Run the test suite and the doctest should fail: Excellent! -Now it is just a matter of making the doctest pass. Let's implement the `parse/1` function: +Now let's make the doctest pass. Let's implement the `parse/1` function: ```elixir def parse(line) do @@ -94,7 +94,7 @@ def parse(line) do end ``` -Our implementation simply splits the line on whitespace and then matches the command against a list. Using `String.split/1` means our commands will be whitespace-insensitive. Leading and trailing whitespace won't matter, nor will consecutive spaces between words. Let's add some new doctests to test this behaviour along with the other commands: +Our implementation splits the line on whitespace and then matches the command against a list. Using `String.split/1` means our commands will be whitespace-insensitive. Leading and trailing whitespace won't matter, nor will consecutive spaces between words. Let's add some new doctests to test this behaviour along with the other commands: ```elixir @doc ~S""" @@ -329,7 +329,7 @@ defp lookup(bucket, callback) do end ``` -The implementation is straightforward: we just dispatch to the `KV.Registry` server that we registered during the `:kv` application startup. Since our `:kv_server` depends on the `:kv` application, it is completely fine to depend on the servers/services it provides. +Every function clause dispatches the appropriate command to the `KV.Registry` server that we registered during the `:kv` application startup. Since our `:kv_server` depends on the `:kv` application, it is completely fine to depend on the services it provides. Note that we have also defined a private function named `lookup/2` to help with the common functionality of looking up a bucket and returning its `pid` if it exists, `{:error, :not_found}` otherwise. @@ -341,7 +341,7 @@ defp write_line(socket, {:error, :not_found}) do end ``` -And our server functionality is almost complete! We just need to add tests. This time, we have left tests for last because there are some important considerations to be made. +And our server functionality is almost complete! Only tests are missing. This time, we have left tests for last because there are some important considerations to be made. `KVServer.Command.run/1`'s implementation is sending commands directly to the server named `KV.Registry`, which is registered by the `:kv` application. This means this server is global and if we have two tests sending messages to it at the same time, our tests will conflict with each other (and likely fail). We need to decide between having unit tests that are isolated and can run asynchronously, or writing integration tests that work on top of the global state, but exercise our application's full stack as it is meant to be exercised in production. diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 9da6ad67e..be70ff772 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -182,7 +182,7 @@ However, since `KV.Registry.create/2` is a cast operation, the command will retu 3. The command above returns `:error` 4. The registry creates the bucket and updates the cache table -To fix the failure we just need to make `KV.Registry.create/2` synchronous by using `call/2` rather than `cast/2`. This will guarantee that the client will only continue after changes have been made to the table. Let's change the function and its callback as follows: +To fix the failure we need to make `KV.Registry.create/2` synchronous by using `call/2` rather than `cast/2`. This will guarantee that the client will only continue after changes have been made to the table. Let's change the function and its callback as follows: ```elixir def create(server, name) do @@ -203,7 +203,7 @@ def handle_call({:create, name}, _from, {names, refs}) do end ``` -We simply changed the callback from `handle_cast/2` to `handle_call/3` and changed it to reply with the pid of the created bucket. Generally speaking, Elixir developers prefer to use `call/2` instead of `cast/2` as it also provides back-pressure (you block until you get a reply). Using `cast/2` when not necessary can also be considered a premature optimization. +We changed the callback from `handle_cast/2` to `handle_call/3` and changed it to reply with the pid of the created bucket. Generally speaking, Elixir developers prefer to use `call/2` instead of `cast/2` as it also provides back-pressure (you block until you get a reply). Using `cast/2` when not necessary can also be considered a premature optimization. Let's run the tests once again. This time though, we will pass the `--trace` option: diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 5148c1c0b..064b5cc10 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -254,7 +254,7 @@ We don't need to worry about this for `handle_call/3` and `handle_cast/2` becaus We have previously learned about links in the [Process chapter](/getting-started/processes.html). Now, with the registry complete, you may be wondering: when should we use monitors and when should we use links? -Links are bi-directional. If you link two processes and one of them crashes, the other side will crash too (unless it is trapping exits). A monitor is uni-directional: only the monitoring process will receive notifications about the monitored one. Simply put, use links when you want linked crashes, and monitors when you just want to be informed of crashes, exits, and so on. +Links are bi-directional. If you link two processes and one of them crashes, the other side will crash too (unless it is trapping exits). A monitor is uni-directional: only the monitoring process will receive notifications about the monitored one. In other words: use links when you want linked crashes, and monitors when you just want to be informed of crashes, exits, and so on. Returning to our `handle_cast/2` implementation, you can see the registry is both linking and monitoring the buckets: diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 89c3b5e16..024fffd78 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -163,7 +163,7 @@ iex> Application.ensure_all_started(:kv) Nothing really exciting happens but it shows how we can control our application. -> When you run `iex -S mix`, it is equivalent to running `iex -S mix run`. So whenever you need to pass more options to Mix when starting IEx, it's just a matter of typing `iex -S mix run` and then passing any options the `run` command accepts. You can find more information about `run` by running `mix help run` in your shell. +> When you run `iex -S mix`, it is equivalent to running `iex -S mix run`. So whenever you need to pass more options to Mix when starting IEx, it's a matter of typing `iex -S mix run` and then passing any options the `run` command accepts. You can find more information about `run` by running `mix help run` in your shell. ### The application callback @@ -260,7 +260,7 @@ Since the bucket is linked to the registry, which is then linked to the test pro ** (EXIT from #PID<0.94.0>) shutdown ``` -One possible solution to this issue would be to provide a `KV.Bucket.start/0`, that invokes `Agent.start/1`, and use it from the registry, removing the link between registry and buckets. However, this would be a bad idea because buckets would not be linked to any process after this change. This means that if someone stops the `:kv` application, all buckets would remain alive as they are unreachable. Not only that, if a process is unreacheable, they are harder to introspect. +One possible solution to this issue would be to provide a `KV.Bucket.start/0`, that invokes `Agent.start/1`, and use it from the registry, removing the link between registry and buckets. However, this would be a bad idea because buckets would not be linked to any process after this change. This means that, if someone stops the `:kv` application, all buckets would remain alive as they are unreachable. Not only that, if a process is unreacheable, they are harder to introspect. We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. There is one supervisor strategy, called `:simple_one_for_one`, that is the perfect fit for such situations: it allows us to specify a worker template and supervise many children based on this template. With this strategy, no workers are started during the supervisor initialization, and a new worker is started each time `start_child/2` is called. @@ -293,9 +293,9 @@ end There are three changes in this supervisor compared to the first one. -Instead of receiving the registered process name as argument, we have simply decided to name it `KV.Bucket.Supervisor` as we won't spawn different versions of this process. We have also defined a `start_bucket/0` function that will start a bucket as a child of our supervisor named `KV.Bucket.Supervisor`. `start_bucket/0` is the function we are going to invoke instead of calling `KV.Bucket.start_link` directly in the registry. +First of all, we have decided to give the supervisor a local name of `KV.Bucket.Supervisor`. We have also defined a `start_bucket/0` function that will start a bucket as a child of our supervisor named `KV.Bucket.Supervisor`. `start_bucket/0` is the function we are going to invoke instead of calling `KV.Bucket.start_link` directly in the registry. -Finally, in the `init/1` callback, we are marking the worker as `:temporary`. This means that if the bucket dies, it won't be restarted! That's because we only want to use the supervisor as a mechanism to group the buckets. The creation of buckets should always pass through the registry. +Finally, in the `init/1` callback, we are marking the worker as `:temporary`. This means that if the bucket dies, it won't be restarted. That's because we only want to use the supervisor as a mechanism to group the buckets. Run `iex -S mix` so we can give our new supervisor a try: @@ -330,7 +330,7 @@ Once we perform those changes, our test suite should fail as there is no bucket ## Supervision trees -In order to use the buckets supervisor in our application, we need to add it as a child of `KV.Supervisor`. Notice we are beginning to have supervisors that supervise other supervisors, forming so-called "supervision trees." +In order to use the buckets supervisor in our application, we need to add it as a child of `KV.Supervisor`. Notice we are beginning to have supervisors that supervise other supervisors, forming so-called "supervision trees". Open up `lib/kv/supervisor.ex` and change `init/1` to match the following: @@ -349,7 +349,7 @@ This time we have added a supervisor as child, starting it with no arguments. Re Since we have added more children to the supervisor, it is also important to evaluate if the `:one_for_one` supervision strategy is still correct. One flaw that shows up right away is the relationship between the `KV.Registry` worker process and the `KV.Bucket.Supervisor` supervisor process. If `KV.Registry` dies, all information linking `KV.Bucket` names to `KV.Bucket` processes is lost, and therefore `KV.Bucket.Supervisor` must die too- otherwise, the `KV.Bucket` processes it manages would be orphaned. -In light of this observation, we should consider moving to another supervision strategy. Two likely candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:one_for_all` strategy will kill and restart all of its children processes whenever any one of them dies. At first glance, this would appear to suit our use case, but it also seems a little heavy-handed, because `KV.Registry` is perfectly capable of cleaning itself up if `KV.Bucket.Supervisor` dies. In this case, the `:rest_for_one` strategy comes in handy- when a child process crashes, the supervisor will only kill and restart child processes which were started *after* the crashed child. Let's rewrite our supervision tree to use this strategy instead: +In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:one_for_all` strategy will kill and restart all of its children processes whenever any one of them dies. At first glance, this would appear to suit our use case, but it also seems a little heavy-handed, because `KV.Registry` is perfectly capable of cleaning itself up if `KV.Bucket.Supervisor` dies. In this case, the `:rest_for_one` strategy comes in handy: when a child process crashes, the supervisor will only kill and restart child processes which were started *after* the crashed child. Let's rewrite our supervision tree to use this strategy instead: ```elixir def init(:ok) do diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 3642914bf..cd088f0d1 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -13,7 +13,7 @@ In this chapter, we are going to learn how to use [Erlang's `:gen_tcp` module](h ## Echo server -We will start our TCP server by first implementing an echo server. It will simply send a response with the text it received in the request. We will slowly improve our server until it is supervised and ready to handle multiple connections. +We will start our TCP server by first implementing an echo server. It will send a response with the text it received in the request. We will slowly improve our server until it is supervised and ready to handle multiple connections. A TCP server, in broad strokes, performs the following steps: @@ -64,7 +64,7 @@ defp write_line(line, socket) do end ``` -We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is just a loop accepting client connections. For each accepted connection, we call `serve/1`. +We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is a loop accepting client connections. For each accepted connection, we call `serve/1`. `serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](/docs/stable/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: @@ -198,7 +198,7 @@ This is similar to the mistake we made when we called `KV.Bucket.start_link/0` s The code above would have the same flaw: if we link the `serve(client)` task to the acceptor, a crash when serving a request would bring the acceptor, and consequently all other connections, down. -We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that `Task` already comes with a solution: a simple one for one supervisor with temporary workers that we can just use in our supervision tree! +We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that `Task` already comes with a solution: a simple one for one supervisor that starts temporary tasks as part of our supervision tree! Let's change `start/2` once again, to add a supervisor to our tree: @@ -216,9 +216,9 @@ def start(_type, _args) do end ``` -We simply start a [`Task.Supervisor`](/docs/stable/elixir/Task.Supervisor.html) process with name `KVServer.TaskSupervisor`. Remember, since the acceptor task depends on this supervisor, the supervisor must be started first. +We'll now start a [`Task.Supervisor`](/docs/stable/elixir/Task.Supervisor.html) process with name `KVServer.TaskSupervisor`. Remember, since the acceptor task depends on this supervisor, the supervisor must be started first. -Now we just need to change `loop_acceptor/1` to use `Task.Supervisor` to serve each request: +Now we need to change `loop_acceptor/1` to use `Task.Supervisor` to serve each request: ```elixir defp loop_acceptor(socket) do @@ -229,7 +229,7 @@ defp loop_acceptor(socket) do end ``` -You might notice that we added a line, `:ok = :gen_tcp.controlling_process(client, pid)`. This makes the child process the "controlling process" of the `client` socket. If we didn't do this, the acceptor would bring down all the clients if it crashed because sockets are tied to the process that `accept`ed them by default. +You might notice that we added a line, `:ok = :gen_tcp.controlling_process(client, pid)`. This makes the child process the "controlling process" of the `client` socket. If we didn't do this, the acceptor would bring down all the clients if it crashed because sockets would be tied to the process that accepted them (which is the default behaviour). Start a new server with `mix run --no-halt` and we can now open up many concurrent telnet clients. You will also notice that quitting a client does not bring the acceptor down. Excellent! diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 28daf0169..9888ccb49 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -27,7 +27,7 @@ end In the example above, we are explicitly setting the version attribute for that module. `@vsn` is used by the code reloading mechanism in the Erlang VM to check if a module has been updated or not. If no version is specified, the version is set to the MD5 checksum of the module functions. -Elixir has a handful of reserved attributes. Here are just a few of them, the most commonly used ones: +Elixir has a handful of reserved attributes. Here are a few of them, the most commonly used ones: * `@moduledoc` - provides documentation for the current module. * `@doc` - provides documentation for the function or macro that follows the attribute. diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index a8aa909d3..8af70b66c 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -126,7 +126,7 @@ IO.puts Math.zero?(0.0) #=> ** (FunctionClauseError) Giving an argument that does not match any of the clauses raises an error. -Similar to constructs like `if`, named functions support both `do:` and `do`/`end` block syntax, as [we learned `do`/`end` is just a convenient syntax for the keyword list format](/getting-started/case-cond-and-if.html#doend-blocks). For example, we can edit `math.exs` to look like this: +Similar to constructs like `if`, named functions support both `do:` and `do`/`end` block syntax, as [we learned `do`/`end` is a convenient syntax for the keyword list format](/getting-started/case-cond-and-if.html#doend-blocks). For example, we can edit `math.exs` to look like this: ```elixir defmodule Math do @@ -202,7 +202,7 @@ IO.puts Concat.join("Hello", "world") #=> Hello world IO.puts Concat.join("Hello", "world", "_") #=> Hello_world ``` -Any expression is allowed to serve as a default value, but it won't be evaluated during the function definition; it will simply be stored for later use. Every time the function is invoked and any of its default values have to be used, the expression for that default value will be evaluated: +Any expression is allowed to serve as a default value, but it won't be evaluated during the function definition. Every time the function is invoked and any of its default values have to be used, the expression for that default value will be evaluated: ```elixir defmodule DefaultTest do diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index bd618262a..92460a331 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -194,7 +194,7 @@ iex> "tuple: #{tuple}" ** (Protocol.UndefinedError) protocol String.Chars not implemented for {1, 2, 3} ``` -When there is a need to "print" a more complex data structure, one can simply use the `inspect` function, based on the `Inspect` protocol: +When there is a need to "print" a more complex data structure, one can use the `inspect` function, based on the `Inspect` protocol: ```iex iex> "tuple: #{inspect tuple}" diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 5197431b1..575902176 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -176,7 +176,7 @@ iex> h sigil_r ... ``` -We can also provide our own sigils by simply implementing functions that follow the `sigil_{identifier}` pattern. For example, let's implement the `~i` sigil that returns an integer (with the optional `n` modifier to make it negative): +We can also provide our own sigils by implementing functions that follow the `sigil_{identifier}` pattern. For example, let's implement the `~i` sigil that returns an integer (with the optional `n` modifier to make it negative): ```iex iex> defmodule MySigils do diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index 5594872e9..c88898819 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -81,7 +81,7 @@ iex> %User{} = %{} ## Structs are bare maps underneath -In the example above, pattern matching works because underneath structs are just bare maps with a fixed set of fields. As maps, structs store a "special" field named `__struct__` that holds the name of the struct: +In the example above, pattern matching works because underneath structs are bare maps with a fixed set of fields. As maps, structs store a "special" field named `__struct__` that holds the name of the struct: ```iex iex> is_map(john) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 0cbbf66f0..167f6e834 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -80,7 +80,7 @@ iex> File.read "hello" {:ok, "world"} ``` -There is no `try/rescue` here. In case you want to handle multiple outcomes of opening a file, you can simply use pattern matching with the `case` construct: +There is no `try/rescue` here. In case you want to handle multiple outcomes of opening a file, you can use pattern matching within the `case` construct: ```iex iex> case File.read "hello" do @@ -91,7 +91,7 @@ iex> case File.read "hello" do At the end of the day, it's up to your application to decide if an error while opening a file is exceptional or not. That's why Elixir doesn't impose exceptions on `File.read/1` and many other functions. Instead, it leaves it up to the developer to choose the best way to proceed. -For the cases where you do expect a file to exist (and the lack of that file is truly an *error*) you can simply use `File.read!/1`: +For the cases where you do expect a file to exist (and the lack of that file is truly an *error*) you may use `File.read!/1`: ```iex iex> File.read! "unknown" @@ -153,7 +153,7 @@ iex> try do Using `try/catch` is already uncommon and using it to catch exits is even more rare. -`exit` signals are an important part of the fault tolerant system provided by the Erlang VM. Processes usually run under supervision trees which are themselves processes that just wait for `exit` signals from the supervised processes. Once an exit signal is received, the supervision strategy kicks in and the supervised process is restarted. +`exit` signals are an important part of the fault tolerant system provided by the Erlang VM. Processes usually run under supervision trees which are themselves processes that listen to `exit` signals from the supervised processes. Once an exit signal is received, the supervision strategy kicks in and the supervised process is restarted. It is exactly this supervision system that makes constructs like `try/catch` and `try/rescue` so uncommon in Elixir. Instead of rescuing an error, we'd rather "fail fast" since the supervision tree will guarantee our application will go back to a known initial state after the error. diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index 5a09abc9a..82f12cd80 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -11,7 +11,7 @@ Eager to learn more? Keep reading! ## Build your first Elixir project -In order to get your first project started, Elixir ships with a build tool called Mix. You can get your new project started by simply running: +In order to get your first project started, Elixir ships with a build tool called Mix. You can get your new project started by running: ```bash $ mix new path/to/new/project From 48326b75a67b6e5d3ec23743b02ae09bdb8b7c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 29 Aug 2016 00:56:29 +0200 Subject: [PATCH 0548/1761] Remove later fedora instructions (packages are outdated) --- install.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.markdown b/install.markdown index 52d4ef665..fdea8da51 100644 --- a/install.markdown +++ b/install.markdown @@ -16,6 +16,8 @@ Note Elixir requires Erlang 18.0 or later. Many of the instructions below will a The preferred option for installing Elixir. Choose your operating system and tool. +If your distribution contains an old Elixir/Erlang version, see the sections below for installing Elixir/Erlang from version managers or from source. + ### Mac OS X * Homebrew @@ -35,10 +37,8 @@ The preferred option for installing Elixir. Choose your operating system and too * Run: `emerge --ask dev-lang/elixir` * GNU Guix * Run: `guix package -i elixir` - * Fedora 17 and newer + * Fedora 21 (and older) * Run: `yum install elixir` - * Fedora 22 and newer - * Run: `dnf install elixir` * FreeBSD * From ports: `cd /usr/ports/lang/elixir && make install clean` * From pkg: `pkg install elixir` From 3e30eafdafcc31b3603267c865968df47b855c41 Mon Sep 17 00:00:00 2001 From: Nikias Kalpaxis Date: Thu, 1 Sep 2016 05:00:36 -0400 Subject: [PATCH 0549/1761] Fix a typo in the "Agent" chapter (#841) --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index f587090b5..8a074824e 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -68,7 +68,7 @@ defmodule KV.BucketTest do end ``` -Our first test starts a new `KV.Bucket` and perform some `get/2` and `put/3` operations on it, asserting the result. We don't need to explicitly stop the agent because it is linked to the test process and the agent is shut down automatically once the test finishes. This will always work unless the process is named. +Our first test starts a new `KV.Bucket` and performs some `get/2` and `put/3` operations on it, asserting the result. We don't need to explicitly stop the agent because it is linked to the test process and the agent is shut down automatically once the test finishes. This will always work unless the process is named. Also note that we passed the `async: true` option to `ExUnit.Case`. This option makes this test case run in parallel with other test cases that set up the `:async` option. This is extremely useful to speed up our test suite by using multiple cores in our machine. Note though the `:async` option must only be set if the test case does not rely or change any global value. For example, if the test requires writing to the filesystem, registering processes, accessing a database, you must not make it async to avoid race conditions in between tests. From 62d686843730dd5ee90a5641040aec270558702f Mon Sep 17 00:00:00 2001 From: Derek Shang Date: Tue, 6 Sep 2016 16:02:09 -0500 Subject: [PATCH 0550/1761] Fix a typo in ETS chapter (#842) --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index be70ff772..6eae963e2 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -178,7 +178,7 @@ What is happening in our tests is that there is a delay in between an operation However, since `KV.Registry.create/2` is a cast operation, the command will return before we actually write to the table! In other words, this is happening: 1. We invoke `KV.Registry.create(registry, "shopping")` -2. We access the information from the table with `KV.Registry.lookup(ets, "shopping")` +2. We access the information from the table with `KV.Registry.lookup(registry, "shopping")` 3. The command above returns `:error` 4. The registry creates the bucket and updates the cache table From c6da436ec9323ff5e3e3a325109d362c3fd081a0 Mon Sep 17 00:00:00 2001 From: Benjamin Tan Wei Hao Date: Wed, 7 Sep 2016 18:44:28 +0800 Subject: [PATCH 0551/1761] Added cheat sheet link (#843) --- getting-started/mix-otp/genserver.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 064b5cc10..9aedfac03 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -264,3 +264,7 @@ ref = Process.monitor(pid) ``` This is a bad idea, as we don't want the registry to crash when a bucket crashes! We typically avoid creating new processes directly, instead we delegate this responsibility to supervisors. As we'll see in the next chapter, supervisors rely on links and that explains why link-based APIs (`spawn_link`, `start_link`, etc) are so prevalent in Elixir and OTP. + +## Having trouble remembering everything? + +You don't have to! [Benjamin Tan Wei Hao](http://benjamintan.io), author of [The Little Elixir and OTP Guidebook](https://www.manning.com/books/the-little-elixir-and-otp-guidebook), has created a [GenServer cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/GenServer_CheatSheet.pdf) that captures the essential steps needed to quickly get started with using GenServer. Get it [here](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/GenServer_CheatSheet.pdf). From 2062c0667eaba7010011e914ce7a9567a4be9694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 7 Sep 2016 12:51:16 +0200 Subject: [PATCH 0552/1761] Update genserver.markdown --- getting-started/mix-otp/genserver.markdown | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 9aedfac03..c70f541bc 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -238,17 +238,17 @@ Finally, different from the other callbacks, we have defined a "catch-all" claus ## `call`, `cast` or `info`? -So far we have used three callbacks: `handle_call/3`, `handle_cast/2` and `handle_info/2`. Deciding when to use each is straightforward: +So far we have used three callbacks: `handle_call/3`, `handle_cast/2` and `handle_info/2`. Here is what we should consider when deciding when to use each: 1. `handle_call/3` must be used for synchronous requests. This should be the default choice as waiting for the server reply is a useful backpressure mechanism. 2. `handle_cast/2` must be used for asynchronous requests, when you don't care about a reply. A cast does not even guarantee the server has received the message and, for this reason, must be used sparingly. For example, the `create/2` function we have defined in this chapter should have used `call/2`. We have used `cast/2` for didactic purposes. -3. `handle_info/2` must be used for all other messages a server may receive that are not sent via `GenServer.call/2` or `GenServer.cast/2`, including regular messages sent with `send/2`. The monitoring `:DOWN` messages are a perfect example of this. +3. `handle_info/2` must be used for all other messages a server may receive that are not sent via `GenServer.call/2` or `GenServer.cast/2`, including regular messages sent with `send/2`. The monitoring `:DOWN` messages are such an example of this. -Since any message, including the ones sent via `send/2`, go to `handle_info/2`, there is a chance unexpected messages will arrive to the server. Therefore, if we don't define the catch-all clause, those messages could lead our registry to crash, because no clause would match. +Since any message, including the ones sent via `send/2`, go to `handle_info/2`, there is a chance unexpected messages will arrive to the server. Therefore, if we don't define the catch-all clause, those messages could lead our registry to crash, because no clause would match. We don't need to worry about such cases for `handle_call/3` and `handle_cast/2` though. Calls and casts are only done via the `GenServer` API, so an unknown message is quite likely to be due to a developer mistake. -We don't need to worry about this for `handle_call/3` and `handle_cast/2` because these requests are only done via the `GenServer` API, so an unknown message is quite likely to be due to a developer mistake. +To help developers remember the differences between call, cast and info, their valid return types and more, [Benjamin Tan Wei Hao](http://benjamintan.io) has created a [GenServer cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/GenServer_CheatSheet.pdf). The cheat sheet can also be found as part of [The Little Elixir and OTP Guidebook](https://www.manning.com/books/the-little-elixir-and-otp-guidebook). ## Monitors or links? @@ -265,6 +265,3 @@ ref = Process.monitor(pid) This is a bad idea, as we don't want the registry to crash when a bucket crashes! We typically avoid creating new processes directly, instead we delegate this responsibility to supervisors. As we'll see in the next chapter, supervisors rely on links and that explains why link-based APIs (`spawn_link`, `start_link`, etc) are so prevalent in Elixir and OTP. -## Having trouble remembering everything? - -You don't have to! [Benjamin Tan Wei Hao](http://benjamintan.io), author of [The Little Elixir and OTP Guidebook](https://www.manning.com/books/the-little-elixir-and-otp-guidebook), has created a [GenServer cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/GenServer_CheatSheet.pdf) that captures the essential steps needed to quickly get started with using GenServer. Get it [here](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/GenServer_CheatSheet.pdf). From 30943ebcd7805b78857621abfa3d3f8fcd15d4bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 7 Sep 2016 13:12:38 +0200 Subject: [PATCH 0553/1761] The cheatsheet is not part of the book --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index c70f541bc..ee26fb12d 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -248,7 +248,7 @@ So far we have used three callbacks: `handle_call/3`, `handle_cast/2` and `handl Since any message, including the ones sent via `send/2`, go to `handle_info/2`, there is a chance unexpected messages will arrive to the server. Therefore, if we don't define the catch-all clause, those messages could lead our registry to crash, because no clause would match. We don't need to worry about such cases for `handle_call/3` and `handle_cast/2` though. Calls and casts are only done via the `GenServer` API, so an unknown message is quite likely to be due to a developer mistake. -To help developers remember the differences between call, cast and info, their valid return types and more, [Benjamin Tan Wei Hao](http://benjamintan.io) has created a [GenServer cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/GenServer_CheatSheet.pdf). The cheat sheet can also be found as part of [The Little Elixir and OTP Guidebook](https://www.manning.com/books/the-little-elixir-and-otp-guidebook). +To help developers remember the differences between call, cast and info, the supported return values and more, [Benjamin Tan Wei Hao](http://benjamintan.io) has created an excellent [GenServer cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/GenServer_CheatSheet.pdf). ## Monitors or links? From b7d751bdf371249848bbae99bd8447f802ad44f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 11 Sep 2016 00:20:43 +0200 Subject: [PATCH 0554/1761] Remove links to elixir-lang-talk --- _includes/important-links.html | 1 - getting-started/introduction.markdown | 1 - getting-started/mix-otp/introduction-to-mix.markdown | 2 +- getting-started/where-to-go-next.markdown | 2 -- 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 697d06523..9ac30ff2a 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -4,7 +4,6 @@

        Join the Community

      • #elixir-lang on freenode IRC
      • Elixir on Slack
      • Elixir Forum
      • -
      • elixir-talk mailing list
      • @elixirlang on Twitter
      • Meetups around the world
      • Wiki with events, resources and talks organized by the community
      • diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 0248a075b..96b735786 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -70,7 +70,6 @@ When going through this getting started guide, it is common to have questions, a * [#elixir-lang on freenode IRC](irc://irc.freenode.net/elixir-lang) * [Elixir on Slack](https://elixir-slackin.herokuapp.com/) * [Elixir Forum](http://elixirforum.com) - * [elixir-talk mailing list](https://groups.google.com/group/elixir-lang-talk) * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) When asking questions, remember these two tips: diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 3ff888a5b..9a637ba2a 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -41,7 +41,7 @@ In this chapter, we will create our first project using Mix and explore differen > Note: this guide requires Elixir v1.2.0 or later. You can check your Elixir version with `elixir -v` and install a more recent version if required by following the steps described in [the first chapter of the Getting Started guide](/getting-started/introduction.html). > -> If you have any questions or improvements to the guide, please let us know in [our mailing list](https://groups.google.com/d/forum/elixir-lang-talk) or [issues tracker](https://github.com/elixir-lang/elixir-lang.github.com/issues) respectively. Your input is really important to help us guarantee the guides are accessible and up to date! +> If you have any questions or improvements to the guide, please reach discussion channels such as the [Elixir Forum](https://elixirforum.com) or the [issues tracker](https://github.com/elixir-lang/elixir-lang.github.com/issues). Your input is really important to help us guarantee the guides are accessible and up to date! > > The final code for this guide is in [this repository](https://github.com/josevalim/kv_umbrella) and can be used as a reference. diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index 82f12cd80..baaf86564 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -31,8 +31,6 @@ Elixir is an extensible and very customizable programming language thanks to its We have a [Learning](/learning.html) section that suggests books, screencasts and other resources for learning Elixir and exploring the ecosystem. There are also plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. -Remember that in case of any difficulties, you can always visit the **#elixir-lang** channel on **irc.freenode.net** or send a message to the [mailing list](https://groups.google.com/group/elixir-lang-talk). You can be sure that there will be someone willing to help. To keep posted on the latest news and announcements, follow the [blog](/blog/) and follow the language development on the [elixir-core mailing list](https://groups.google.com/group/elixir-lang-core). - Don't forget that you can also check the [source code of Elixir itself](https://github.com/elixir-lang/elixir), which is mostly written in Elixir (mainly the `lib` directory), or [explore Elixir's documentation](/docs.html). ## A byte of Erlang From 3957464db5a61f64a5b9015cfe888c02cbbcc976 Mon Sep 17 00:00:00 2001 From: Izel Nakri Date: Mon, 12 Sep 2016 13:07:18 +0200 Subject: [PATCH 0555/1761] better name for a code example in the homepage (#844) --- index.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 54f6655ce..880a15a6f 100644 --- a/index.html +++ b/index.html @@ -27,11 +27,11 @@

        Scalability

        All Elixir code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages:

        {% highlight elixir %} -parent = self() +current_process = self() # Spawns an Elixir process (not an operating system one!) spawn_link(fn -> - send parent, {:msg, "hello world"} + send current_process, {:msg, "hello world"} end) # Block until the message is received @@ -175,4 +175,3 @@

        Erlang compatible

        - From a8fc2ec0db0ef8748c2e5acbaaf362ad889063f9 Mon Sep 17 00:00:00 2001 From: Rob Conery Date: Thu, 15 Sep 2016 11:34:56 -0700 Subject: [PATCH 0556/1761] Updated Take Off With Elixir link (#846) --- learning.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/learning.markdown b/learning.markdown index b99aa2542..e8af1a2e1 100644 --- a/learning.markdown +++ b/learning.markdown @@ -75,7 +75,8 @@ Elixir-School is an open and community driven effort inspired by Twitter’s Sca

        Take Off With Elixir

        -Red:4 +Red:4 + Red:4 is a fictional aerospace startup that needs your help! Through a book, a video, or both you can learn Elixir the fun way by immersing yourself in an on-the-job style set of problems. For instance, you will set up a project to calculate escape velocity for each of the planets in our solar system, learning pattern matching and language basics along the way. You'll move on to orbital mechanics while learning how to debug and refactor your code for clarity and meaning. You'll learn list basics and data storage techniques as you build a solar flare tracking system. Finally, you'll dive into OTP using Ecto and PostgreSQL - all in an effort to overwhelm our internal systems with the power of Elixir! From 69d70e11612813cc318756e482a598af318867b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 17 Sep 2016 18:22:42 +0200 Subject: [PATCH 0557/1761] Release v1.3.3 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 3597b8317..26eae1c13 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1 1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1 1.3.1,https://github.com/elixir-lang/elixir/releases/download/v1.3.1/Precompiled.zip,release,1 1.3.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0/Precompiled.zip,release,1 From ec4b2fb2a801a839d0229b15e3dc3e19fda9e11f Mon Sep 17 00:00:00 2001 From: Travis Elnicky Date: Thu, 22 Sep 2016 02:42:08 -0600 Subject: [PATCH 0558/1761] Rename variable in `unless` example (#847) --- getting-started/meta/macros.markdown | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 650c4ec06..d85f0fb86 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -23,11 +23,11 @@ In order to better understand how macros work, let's create a new module where w ```elixir defmodule Unless do - def fun_unless(clause, expression) do + def fun_unless(clause, do: expression) do if(!clause, do: expression) end - defmacro macro_unless(clause, expression) do + defmacro macro_unless(clause, do: expression) do quote do if(!unquote(clause), do: unquote(expression)) end @@ -47,9 +47,9 @@ And play with those definitions: ```iex iex> require Unless -iex> Unless.macro_unless true, IO.puts "this should never be printed" +iex> Unless.macro_unless true, do: IO.puts "this should never be printed" nil -iex> Unless.fun_unless true, IO.puts "this should never be printed" +iex> Unless.fun_unless true, do: IO.puts "this should never be printed" "this should never be printed" nil ``` @@ -59,14 +59,14 @@ Note that in our macro implementation, the sentence was not printed, although it In other words, when invoked as: ```elixir -Unless.macro_unless true, IO.puts "this should never be printed" +Unless.macro_unless true, do: IO.puts "this should never be printed" ``` Our `macro_unless` macro received the following: {% raw %} ```elixir -macro_unless(true, {{:., [], [{:aliases, [], [:IO]}, :puts]}, [], ["this should never be printed"]}) +macro_unless(true, [do: {{:., [], [{:__aliases__, [alias: false], [:IO]}, :puts]}, [], ["this should never be printed"]}]) ``` {% endraw %} @@ -86,7 +86,7 @@ And it then returned a quoted expression as follows: We can actually verify that this is the case by using `Macro.expand_once/2`: ```iex -iex> expr = quote do: Unless.macro_unless(true, IO.puts "this should never be printed") +iex> expr = quote do: Unless.macro_unless(true, do: IO.puts "this should never be printed") iex> res = Macro.expand_once(expr, __ENV__) iex> IO.puts Macro.to_string(res) if(!true) do @@ -100,9 +100,9 @@ end That's what macros are all about. They are about receiving quoted expressions and transforming them into something else. In fact, `unless/2` in Elixir is implemented as a macro: ```elixir -defmacro unless(clause, options) do +defmacro unless(clause, do: expression) do quote do - if(!unquote(clause), do: unquote(options)) + if(!unquote(clause), do: unquote(expression)) end end ``` From c4387f059d900fab1e28f42c35d094977c1f93a0 Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Thu, 22 Sep 2016 08:45:51 +0000 Subject: [PATCH 0559/1761] Correct types in sorting order (#848) --- getting-started/basic-operators.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 09ca99abb..c297f9c28 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -107,7 +107,7 @@ true The reason we can compare different data types is pragmatism. Sorting algorithms don't need to worry about different data types in order to sort. The overall sorting order is defined below: - number < atom < reference < functions < port < pid < tuple < maps < list < bitstring + number < atom < reference < function < port < pid < tuple < map < list < bitstring You don't actually need to memorize this ordering, but it is important just to know an order exists. From 0c76066816413cf924b76048f6df5a1223feee5b Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Thu, 22 Sep 2016 10:51:23 +0200 Subject: [PATCH 0560/1761] Update wording at the end of the "Basic Operators" chapter --- getting-started/basic-operators.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index c297f9c28..3ea868628 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -109,8 +109,8 @@ The reason we can compare different data types is pragmatism. Sorting algorithms number < atom < reference < function < port < pid < tuple < map < list < bitstring -You don't actually need to memorize this ordering, but it is important just to know an order exists. +You don't actually need to memorize this ordering, it's enough to know that this ordering exists. -For reference information about operators, you can visit the ["Operators" page](/docs/master/elixir/operators.html) in the documentation. +For reference information about operators (and ordering), check the [reference page on operators](/docs/master/elixir/operators.html). In the next chapter, we are going to discuss some basic functions, data type conversions and a bit of control-flow. From 950aed5b04b59433a7ba507cc20357f1cc97e725 Mon Sep 17 00:00:00 2001 From: Gustavo Armagno Date: Sat, 24 Sep 2016 20:47:28 -0300 Subject: [PATCH 0561/1761] Remove unreachable line (#850) --- getting-started/mix-otp/task-and-gen-tcp.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index cd088f0d1..22322c062 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -43,7 +43,6 @@ end defp loop_acceptor(socket) do {:ok, client} = :gen_tcp.accept(socket) serve(client) - loop_acceptor(socket) end defp serve(socket) do From e69228b387f828daae0c33991292ddfaa3c56764 Mon Sep 17 00:00:00 2001 From: Gustavo Armagno Date: Sun, 25 Sep 2016 14:59:33 -0300 Subject: [PATCH 0562/1761] Add unreachable line back plus a note (#851) --- getting-started/mix-otp/task-and-gen-tcp.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 22322c062..a8fc8f4b2 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -51,6 +51,7 @@ defp serve(socket) do |> write_line(socket) serve(socket) + loop_acceptor(socket) end defp read_line(socket) do @@ -79,6 +80,8 @@ write_line(read_line(socket), socket) The `read_line/1` implementation receives data from the socket using `:gen_tcp.recv/2` and `write_line/2` writes to the socket using `:gen_tcp.send/2`. +Note that `serve/1` is an infinite loop called sequentially inside `loop_acceptor/1`, so the tail call to `loop_acceptor/1` is never reached and could be avoided. However, as we shall see, we will need to execute `serve/1` in a separate process, so we will need that tail call soon. + This is pretty much all we need to implement our echo server. Let's give it a try! Start an IEx session inside the `kv_server` application with `iex -S mix`. Inside IEx, run: From 2bbe83dc3a334b9393707561280422cd3f0e5e3d Mon Sep 17 00:00:00 2001 From: Gustavo Armagno Date: Mon, 26 Sep 2016 03:35:07 -0300 Subject: [PATCH 0563/1761] Fix call to loop_acceptor (#852) --- getting-started/mix-otp/task-and-gen-tcp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index a8fc8f4b2..304ce69a1 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -43,6 +43,7 @@ end defp loop_acceptor(socket) do {:ok, client} = :gen_tcp.accept(socket) serve(client) + loop_acceptor(socket) end defp serve(socket) do @@ -51,7 +52,6 @@ defp serve(socket) do |> write_line(socket) serve(socket) - loop_acceptor(socket) end defp read_line(socket) do From 725f2efd981004804d52269faea801f5610e9449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 27 Sep 2016 18:36:43 +0200 Subject: [PATCH 0564/1761] Update module-attributes.markdown --- getting-started/module-attributes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 9888ccb49..5dda53872 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -113,7 +113,7 @@ MyServer.first_data #=> 14 MyServer.second_data #=> 13 ``` -Notice that reading an attribute inside a function takes a snapshot of its current value. In other words, the value is read at compilation time and not at runtime. As we are going to see, this makes attributes useful to be used as storage during module compilation. +Every time an attribute is read inside a function, a snapshot of its current value is taken. In other words, the value is read at compilation time and not at runtime. As we are going to see, this also makes attributes useful to be used as storage during module compilation. ## As temporary storage From 04d06e871efd54d51cf5f9eb21e967919029e2b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 28 Sep 2016 14:36:13 +0200 Subject: [PATCH 0565/1761] Increase font-sizes, closes #853 --- css/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/css/style.css b/css/style.css index dab2d5343..b0e4eaae1 100644 --- a/css/style.css +++ b/css/style.css @@ -33,7 +33,7 @@ html { } body { margin: 0; - font: 0.8125em/1.692307em 'Bitter', Georgia, 'Times New Roman', Times, serif; /* 13 / 16 = 0.8125; 22 / 13 = 1.692307 */ + font: 0.9em/1.692307em 'Bitter', Georgia, 'Times New Roman', Times, serif; color: #555; padding: 0; height: 100%; @@ -487,7 +487,7 @@ iframe.video { border:0; } } #menu-primary li a { line-height: 1em; - font-size: 14px; + font-size: 1em; margin-left: 20px; display: block; text-transform: uppercase; From 52ec2d98cc2b271e94abd8547d153bc1eb9b64ba Mon Sep 17 00:00:00 2001 From: Benjamin Tan Wei Hao Date: Fri, 30 Sep 2016 18:32:47 +0800 Subject: [PATCH 0566/1761] Add link to Supervisor cheat sheet (#855) --- getting-started/mix-otp/supervisor-and-application.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 024fffd78..b7ba122ac 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -364,7 +364,9 @@ end Now, if the registry worker crashes, both the registry and the "rest" of `KV.Supervisor`'s children (i.e. `KV.Bucket.Supervisor`) will be restarted. However, if `KV.Bucket.Supervisor` crashes, `KV.Registry` will not be restarted, because it was started prior to `KV.Bucket.Supervisor`. -There are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check both [`Supervisor`](/docs/stable/elixir/Supervisor.html) and [`Supervisor.Spec`](/docs/stable/elixir/Supervisor.Spec.html) modules. +There are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check both [`Supervisor`](/docs/stable/elixir/Supervisor.html) and [`Supervisor.Spec`](/docs/stable/elixir/Supervisor.Spec.html) modules. + +To help developers remember how to work with Supervisors and its convenience functions, [Benjamin Tan Wei Hao](http://benjamintan.io/) has created a [Supervisor cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/Supervisor_CheatSheet.pdf). There are two topics left before we move on to the next chapter. From bfb6912557f64058b649addb87ab9afd2e9df68a Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sat, 1 Oct 2016 03:44:16 -0500 Subject: [PATCH 0567/1761] Update 'mix help' output (#857) --- .../mix-otp/dependencies-and-umbrella-apps.markdown | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 25d26c5f6..4655ce5c9 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -63,12 +63,13 @@ Mix provides many tasks for working with dependencies, which can be seen in `mix ```bash $ mix help -mix deps # List dependencies and their status -mix deps.clean # Remove the given dependencies' files -mix deps.compile # Compile dependencies -mix deps.get # Get all out of date dependencies -mix deps.unlock # Unlock the given dependencies -mix deps.update # Update the given dependencies +mix deps # Lists dependencies and their status +mix deps.clean # Deletes the given dependencies' files +mix deps.compile # Compiles dependencies +mix deps.get # Gets all out of date dependencies +mix deps.tree # Prints the dependency tree +mix deps.unlock # Unlocks the given dependencies +mix deps.update # Updates the given dependencies ``` The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependencies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](/docs/stable/mix/Mix.Tasks.Deps.html). From 302422fd30fa33b6d3822d7b34d1f91bb9d9cb54 Mon Sep 17 00:00:00 2001 From: Marco Milanesi Date: Sun, 2 Oct 2016 22:15:15 +0200 Subject: [PATCH 0568/1761] Rename to_char_list to to_charlist (#859) --- getting-started/binaries-strings-and-char-lists.markdown | 4 ++-- getting-started/erlang-libraries.markdown | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 01fd8fe9f..14cccfd29 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -169,10 +169,10 @@ iex> 'hello' You can see that, instead of containing bytes, a char list contains the code points of the characters between single-quotes (note that IEx will only output code points if any of the chars is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represents a char list (i.e. a list). -In practice, char lists are used mostly when interfacing with Erlang, in particular old libraries that do not accept binaries as arguments. You can convert a char list to a string and back by using the `to_string/1` and `to_char_list/1` functions: +In practice, char lists are used mostly when interfacing with Erlang, in particular old libraries that do not accept binaries as arguments. You can convert a char list to a string and back by using the `to_string/1` and `to_charlist/1` functions: ```iex -iex> to_char_list "hełło" +iex> to_charlist "hełło" [104, 101, 322, 322, 111] iex> to_string 'hełło' "hełło" diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index 15e62664a..6226c3409 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -23,7 +23,7 @@ The built-in Elixir String module handles binaries that are UTF-8 encoded. you are dealing with binary data that is not necessarily UTF-8 encoded. ```iex -iex> String.to_char_list "Ø" +iex> String.to_charlist "Ø" [216] iex> :binary.bin_to_list "Ø" [195, 152] From cefbd27e6ecf3133a0c5bc6fd9664cf12db76d5e Mon Sep 17 00:00:00 2001 From: Marco Milanesi Date: Thu, 6 Oct 2016 22:20:34 +0200 Subject: [PATCH 0569/1761] Minor doc improvements (#861) --- _includes/mix-otp-preface.html | 2 +- getting-started/io-and-the-file-system.markdown | 2 +- getting-started/mix-otp/genserver.markdown | 2 +- getting-started/processes.markdown | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_includes/mix-otp-preface.html b/_includes/mix-otp-preface.html index 430ab4753..4459d0d3a 100644 --- a/_includes/mix-otp-preface.html +++ b/_includes/mix-otp-preface.html @@ -1,2 +1,2 @@ This chapter is part of the Mix and OTP guide and it depends on previous chapters in this guide. -For more information, read the guide introduction or check out the chapter index in the sidebar. +For more information, read the introduction guide or check out the chapter index in the sidebar. diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 8eee2e311..e4296d3e0 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -94,7 +94,7 @@ iex> Path.expand("~/hello") "/Users/jose/hello" ``` -Using functions from the `Path` module as opposed to directly manipulating string is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slashes (`/`) into backslashes (`\`) on Windows when performing file operations. +Using functions from the `Path` module as opposed to directly manipulating strings is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slashes (`/`) into backslashes (`\`) on Windows when performing file operations. With this we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next sections, we will discuss some advanced topics regarding IO. Those sections are not necessary in order to write Elixir code, so feel free to skip them, but they do provide a nice overview of how the IO system is implemented in the VM and other curiosities. diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index ee26fb12d..de7c40d6a 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -40,7 +40,7 @@ In practice it is more likely you will reach the Erlang OTP. diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 1e9fc9213..0db9098dc 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -233,7 +233,7 @@ iex> flush :ok ``` -Using processes around state and name registering are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ship with Elixir. For example, Elixir provides [agents](/docs/stable/elixir/Agent.html), which are simple abstractions around state: +Using processes to maintain state and name registration are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ship with Elixir. For example, Elixir provides [agents](/docs/stable/elixir/Agent.html), which are simple abstractions around state: ```iex iex> {:ok, pid} = Agent.start_link(fn -> %{} end) From 4c5adedc1aa466239f0f4da289285f5a8c3f18e0 Mon Sep 17 00:00:00 2001 From: Cameron Dykes Date: Thu, 6 Oct 2016 17:00:17 -0500 Subject: [PATCH 0570/1761] Singularize macro describing Elixir constructs (#862) --- getting-started/meta/macros.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index d85f0fb86..230cbc3de 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -107,7 +107,7 @@ defmacro unless(clause, do: expression) do end ``` -Constructs such as `unless/2`, `defmacro/2`, `def/2`, `defprotocol/2`, and many others used throughout this getting started guide are implemented in pure Elixir, often as a macros. This means that the constructs being used to build the language can be used by developers to extend the language to the domains they are working on. +Constructs such as `unless/2`, `defmacro/2`, `def/2`, `defprotocol/2`, and many others used throughout this getting started guide are implemented in pure Elixir, often as a macro. This means that the constructs being used to build the language can be used by developers to extend the language to the domains they are working on. We can define any function and macro we want, including ones that override the built-in definitions provided by Elixir. The only exceptions are Elixir special forms which are not implemented in Elixir and therefore cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](/docs/stable/elixir/Kernel.SpecialForms.html#summary). From 5842b62e4a8a87d0bf424df5b185aeef21173f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 9 Oct 2016 16:40:41 +0200 Subject: [PATCH 0571/1761] Release v1.3.4 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 26eae1c13..b515f7cd7 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat +1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1 1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1 1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1 1.3.1,https://github.com/elixir-lang/elixir/releases/download/v1.3.1/Precompiled.zip,release,1 From 9a0b4adfd74c190c87a5efd3994356c6632bb92a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 10 Oct 2016 23:05:01 +0200 Subject: [PATCH 0572/1761] Update elixir.csv --- elixir.csv | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/elixir.csv b/elixir.csv index b515f7cd7..2f114dbe6 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,21 +1,21 @@ -version,url_precompiled,release_type,windows_installer_compat -1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1 -1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1 -1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1 -1.3.1,https://github.com/elixir-lang/elixir/releases/download/v1.3.1/Precompiled.zip,release,1 -1.3.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0/Precompiled.zip,release,1 -1.2.6,https://github.com/elixir-lang/elixir/releases/download/v1.2.6/Precompiled.zip,release,1 -1.2.5,https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip,release,1 -1.2.4,https://github.com/elixir-lang/elixir/releases/download/v1.2.4/Precompiled.zip,release,1 -1.2.3,https://github.com/elixir-lang/elixir/releases/download/v1.2.3/Precompiled.zip,release,1 -1.2.2,https://github.com/elixir-lang/elixir/releases/download/v1.2.2/Precompiled.zip,release,1 -1.2.1,https://github.com/elixir-lang/elixir/releases/download/v1.2.1/Precompiled.zip,release,1 -1.2.0,https://github.com/elixir-lang/elixir/releases/download/v1.2.0/Precompiled.zip,release,1 -1.1.1,https://github.com/elixir-lang/elixir/releases/download/v1.1.1/Precompiled.zip,release,1 -1.1.0,https://github.com/elixir-lang/elixir/releases/download/v1.1.0/Precompiled.zip,release,1 -1.0.5,https://github.com/elixir-lang/elixir/releases/download/v1.0.5/Precompiled.zip,release,1 -1.0.4,https://github.com/elixir-lang/elixir/releases/download/v1.0.4/Precompiled.zip,release,1 -1.0.3,https://github.com/elixir-lang/elixir/releases/download/v1.0.3/Precompiled.zip,release,1 -1.0.2,https://github.com/elixir-lang/elixir/releases/download/v1.0.2/Precompiled.zip,release,1 -1.0.1,https://github.com/elixir-lang/elixir/releases/download/v1.0.1/Precompiled.zip,release,1 -1.0.0,https://github.com/elixir-lang/elixir/releases/download/v1.0.0/Precompiled.zip,release,1 +version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1,, +1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1,, +1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1,, +1.3.1,https://github.com/elixir-lang/elixir/releases/download/v1.3.1/Precompiled.zip,release,1,, +1.3.0,https://github.com/elixir-lang/elixir/releases/download/v1.3.0/Precompiled.zip,release,1,, +1.2.6,https://github.com/elixir-lang/elixir/releases/download/v1.2.6/Precompiled.zip,release,1,, +1.2.5,https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip,release,1,, +1.2.4,https://github.com/elixir-lang/elixir/releases/download/v1.2.4/Precompiled.zip,release,1,, +1.2.3,https://github.com/elixir-lang/elixir/releases/download/v1.2.3/Precompiled.zip,release,1,, +1.2.2,https://github.com/elixir-lang/elixir/releases/download/v1.2.2/Precompiled.zip,release,1,, +1.2.1,https://github.com/elixir-lang/elixir/releases/download/v1.2.1/Precompiled.zip,release,1,, +1.2.0,https://github.com/elixir-lang/elixir/releases/download/v1.2.0/Precompiled.zip,release,1,, +1.1.1,https://github.com/elixir-lang/elixir/releases/download/v1.1.1/Precompiled.zip,release,1,, +1.1.0,https://github.com/elixir-lang/elixir/releases/download/v1.1.0/Precompiled.zip,release,1,, +1.0.5,https://github.com/elixir-lang/elixir/releases/download/v1.0.5/Precompiled.zip,release,1,, +1.0.4,https://github.com/elixir-lang/elixir/releases/download/v1.0.4/Precompiled.zip,release,1,, +1.0.3,https://github.com/elixir-lang/elixir/releases/download/v1.0.3/Precompiled.zip,release,1,, +1.0.2,https://github.com/elixir-lang/elixir/releases/download/v1.0.2/Precompiled.zip,release,1,, +1.0.1,https://github.com/elixir-lang/elixir/releases/download/v1.0.1/Precompiled.zip,release,1,, +1.0.0,https://github.com/elixir-lang/elixir/releases/download/v1.0.0/Precompiled.zip,release,1,, From 5cfbed9b0526c587623ea27cb6f95880c888778a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 11 Oct 2016 19:33:49 +0200 Subject: [PATCH 0573/1761] Clean up the sidebar --- _includes/code-editor-support.html | 14 ------------- .../{distilled_by.html => distilled-by.html} | 4 ++-- _includes/elixir-radar.html | 10 ++++------ _includes/important-links.html | 20 ++++++++++++++++++- _includes/pagination.html | 4 ---- _layouts/blog.html | 3 --- _layouts/default.html | 3 --- _layouts/getting-started.html | 2 +- css/style.css | 2 +- 9 files changed, 27 insertions(+), 35 deletions(-) delete mode 100644 _includes/code-editor-support.html rename _includes/{distilled_by.html => distilled-by.html} (81%) diff --git a/_includes/code-editor-support.html b/_includes/code-editor-support.html deleted file mode 100644 index 9fbf98145..000000000 --- a/_includes/code-editor-support.html +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/_includes/distilled_by.html b/_includes/distilled-by.html similarity index 81% rename from _includes/distilled_by.html rename to _includes/distilled-by.html index 5eba075e6..35256a4b9 100644 --- a/_includes/distilled_by.html +++ b/_includes/distilled-by.html @@ -1,5 +1,5 @@ -
        -

        Distilled By

        +
        +

        Created at

        • Plataformatec Logo
        diff --git a/_includes/elixir-radar.html b/_includes/elixir-radar.html index add2b8e21..b4d4090c3 100644 --- a/_includes/elixir-radar.html +++ b/_includes/elixir-radar.html @@ -1,8 +1,6 @@
        -

        Elixir Radar

        -

        - A weekly Elixir email newsletter with content curated by Plataformatec. Subscribe below. -

        +

        Elixir Radar Newsletter

        +

        A weekly Elixir email newsletter with content curated by Plataformatec.

        @@ -13,9 +11,9 @@

        Elixir Radar

        -
        \ No newline at end of file +
        diff --git a/_includes/important-links.html b/_includes/important-links.html index 9ac30ff2a..3c1924873 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -15,7 +15,25 @@

        Important links

        + + + +{% include elixir-radar.html %} + +{% include distilled-by.html %} diff --git a/_includes/pagination.html b/_includes/pagination.html index 111c62b82..79e8af0aa 100644 --- a/_includes/pagination.html +++ b/_includes/pagination.html @@ -1,7 +1,3 @@ - - {% include categories-list.html %} {% include important-links.html %} - {% include code-editor-support.html %} - {% include elixir-radar.html %} - {% include distilled_by.html %} {% include bottom.html %} diff --git a/_layouts/default.html b/_layouts/default.html index 92858f3bc..3fdc4254c 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -7,9 +7,6 @@ {% include bottom.html %} diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index d1de0c073..3014148c0 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -20,7 +20,7 @@

        {{guide.title}}

        {% endfor %} {% include elixir-radar.html %} - {% include distilled_by.html %} + {% include distilled-by.html %}
        diff --git a/css/style.css b/css/style.css index b0e4eaae1..44a6104c7 100644 --- a/css/style.css +++ b/css/style.css @@ -816,7 +816,7 @@ li.image { width: 100%; clear: left; } - #distilled_by ul { + #distilled-by ul { margin: 0; } } From f7dd1d73de3fa5c96cfc2fe69742e188afb3c14a Mon Sep 17 00:00:00 2001 From: Theo Pack Date: Thu, 13 Oct 2016 10:30:55 +0200 Subject: [PATCH 0574/1761] Docker (#863) --- install.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/install.markdown b/install.markdown index fdea8da51..b954cbd27 100644 --- a/install.markdown +++ b/install.markdown @@ -58,6 +58,15 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel Those distributions will likely install Erlang automatically for you too. In case they don't, check the [Installing Erlang](/install.html#installing-erlang) section below. +### Docker + +If you are familiar with Docker you can use the offical Docker image to get started quickly with Elixir. + + * Enter interactive mode + * Run: `docker run -it --rm elixir` + * Enter bash within container with installed `elixir` + * Run: `docker run -it --rm elixir bash` + ## Precompiled package Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/). From bb98d255f3ce919e72e334ff9be7411797eda165 Mon Sep 17 00:00:00 2001 From: Milad Date: Fri, 14 Oct 2016 19:51:09 +0200 Subject: [PATCH 0575/1761] Add alchemist.vim to editor list (#865) --- _includes/important-links.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_includes/important-links.html b/_includes/important-links.html index 3c1924873..9b66b07d8 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -27,6 +27,7 @@

        Code editor support

      • TextMate / Sublime Text Bundle
      • Sublime Plugin
      • Vim Elixir
      • +
      • Alchemist.vim (Vim Elixir Tooling)
      • GtkSourceView (gedit)
      • Atom Package
      • IntelliJ Elixir
      • From 0d54fda25e8fe2ed7e07ff30b62708450d00cf11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cruz?= Date: Sat, 15 Oct 2016 21:06:43 +0100 Subject: [PATCH 0576/1761] Mention default values and required keys for structs (#864) --- getting-started/structs.markdown | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index c88898819..1b0bcddfe 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -113,3 +113,27 @@ iex> Map.keys(john) ``` Structs alongside protocols provide one of the most important features for Elixir developers: data polymorphism. That's what we will explore in the next chapter. + +## Default values and required keys + +If you don't specify a default key value when defining a struct, `nil` will be assumed: + +```iex +iex> defmodule Product do +...> defstruct [:name] +...> end +iex> %Product{} +%Product{name: nil} +``` + +You can also enforce that certain keys have to be specified when creating the struct: + +```iex +iex> defmodule Car do +...> @enforce_keys [:make] +...> defstruct [:model, :make] +...> end +iex> %Car{} +** (ArgumentError) the following keys must also be given when building struct Car: [:make] + expanding struct: Car.__struct__/1 +``` From c0d2fbe640c0c577938303655ec53a191c47df89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 18 Oct 2016 17:12:36 -0400 Subject: [PATCH 0577/1761] Update docs-tests-and-with.markdown --- .../mix-otp/docs-tests-and-with.markdown | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index d93964163..3ce7d2648 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -345,27 +345,22 @@ And our server functionality is almost complete! Only tests are missing. This ti `KVServer.Command.run/1`'s implementation is sending commands directly to the server named `KV.Registry`, which is registered by the `:kv` application. This means this server is global and if we have two tests sending messages to it at the same time, our tests will conflict with each other (and likely fail). We need to decide between having unit tests that are isolated and can run asynchronously, or writing integration tests that work on top of the global state, but exercise our application's full stack as it is meant to be exercised in production. -So far we have only written unit tests, typically testing a single module directly. However, in order to make `KVServer.Command.run/1` testable as a unit we would need to change its implementation to not send commands directly to the `KV.Registry` process but instead pass a server as argument. This means we would need to change `run`'s signature to `def run(command, pid)` and the implementation for the `:create` command would look like: +So far we have only written unit tests, typically testing a single module directly. However, in order to make `KVServer.Command.run/1` testable as a unit we would need to change its implementation to not send commands directly to the `KV.Registry` process but instead pass a server as argument. For example, we would need to change `run`'s signature to `def run(command, pid)` and then change all clauses accordingly: ```elixir def run({:create, bucket}, pid) do KV.Registry.create(pid, bucket) {:ok, "OK\r\n"} end -``` - -Then in `KVServer.Command`'s test case, we would need to start an instance of the `KV.Registry`, similar to what we've done in `apps/kv/test/kv/registry_test.exs`, and pass it as an argument to `run/2`. -This has been the approach we have taken so far in our tests, and it has some benefits: - -1. Our implementation is not coupled to any particular server name -2. We can keep our tests running asynchronously, because there is no shared state +# ... other run clauses ... +``` -However, it comes with the downside that our APIs become increasingly large in order to accommodate all external parameters. +Feel free to go ahead and do the changes above and write some unit tests. The idea is that your tests will start an instance of the `KV.Registry` and pass it as argument to `run/2` instead of relying on the global `KV.Registry`. This has the advantage of keeping our tests asynchronous as there is no shared state. -The alternative is to write integration tests that will rely on the global server names to exercise the whole stack, from the TCP server to the bucket. The downside of integration tests is that they can be much slower than unit tests, and as such they must be used more sparingly. For example, we should not use integration tests to test an edge case in our command parsing implementation. +Since this is the approach we have done so far in our tests, we will try something different. Let's write integration tests that rely on the global server names to exercise the whole stack from the TCP server to the bucket. Our integration tests will rely on global state and must be synchronous. With integration tests we get coverage on how the components in our application work together at the cost of test performance. They are typically used to test the main flows in your application. For example, we should avoid using integration tests to test an edge case in our command parsing implementation. -This time we will write an integration test. The integration test will use a TCP client that sends commands to our server and assert we are getting the desired responses. +Our integration test will use a TCP client that sends commands to our server and assert we are getting the desired responses. Let's implement the integration test in `test/kv_server_test.exs` as shown below: From 7024d96ffd3f1982ff4ef94f7d7309a5b6776969 Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sat, 29 Oct 2016 02:10:41 +0700 Subject: [PATCH 0578/1761] Properly spell UTF-8, built-in and format bitsintax (#867) --- _posts/2012-10-20-elixir-v0-7-0-released.markdown | 2 +- _posts/2013-01-27-elixir-v0-8-0-released.markdown | 2 +- crash-course.markdown | 2 +- docs.markdown | 10 +++++----- .../binaries-strings-and-char-lists.markdown | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/_posts/2012-10-20-elixir-v0-7-0-released.markdown b/_posts/2012-10-20-elixir-v0-7-0-released.markdown index e0d34ecfd..16db42d47 100644 --- a/_posts/2012-10-20-elixir-v0-7-0-released.markdown +++ b/_posts/2012-10-20-elixir-v0-7-0-released.markdown @@ -7,7 +7,7 @@ excerpt: Elixir v0.7.0 is released with many improvements! Read on for more info --- -Elixir v0.7.0 was released with bug fixes and many improvements, like a `String` module to handle utf-8 binaries and support to environments and nested dependencies in Mix. +Elixir v0.7.0 was released with bug fixes and many improvements, like a `String` module to handle UTF-8 binaries and support to environments and nested dependencies in Mix. We have also taken important steps into normalizing our APIs. In Erlang, accesses to tuple and lists are one-based and binaries are zero-based, but in Elixir we have normalized all of them to rely on zero-based access. diff --git a/_posts/2013-01-27-elixir-v0-8-0-released.markdown b/_posts/2013-01-27-elixir-v0-8-0-released.markdown index 7df2f3911..84a695b40 100644 --- a/_posts/2013-01-27-elixir-v0-8-0-released.markdown +++ b/_posts/2013-01-27-elixir-v0-8-0-released.markdown @@ -22,7 +22,7 @@ We have written a whole [guide chapter about creating OTP applications, supervis ## Improved Unicode support -Elixir favors the use of utf-8 binaries since its first release. In the latest releases, we took it up a notch by adding Unicode support, built upon the Unicode Standard 6.2.0. Elixir v0.8 takes this even further, adding more convenience functions and better support to named sequences: +Elixir favors the use of UTF-8 binaries since its first release. In the latest releases, we took it up a notch by adding Unicode support, built upon the Unicode Standard 6.2.0. Elixir v0.8 takes this even further, adding more convenience functions and better support to named sequences: ```elixir String.capitalize("fiN") #=> "Fin" diff --git a/crash-course.markdown b/crash-course.markdown index 744449711..7fdbb3b0f 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -825,7 +825,7 @@ end ## Adding Elixir to existing Erlang programs -Elixir compiles into BEAM byte code (via Erlang Abstract Format). This means that Elixir code can be called from Erlang and vice versa, without the need to write any bindings. All Elixir modules start with the `Elixir.` prefix followed by the regular Elixir name. For example, here is how to use the utf-8 aware `String` downcase from Elixir in Erlang: +Elixir compiles into BEAM byte code (via Erlang Abstract Format). This means that Elixir code can be called from Erlang and vice versa, without the need to write any bindings. All Elixir modules start with the `Elixir.` prefix followed by the regular Elixir name. For example, here is how to use the UTF-8 aware `String` downcase from Elixir in Erlang: ```erlang -module(bstring). diff --git a/docs.markdown b/docs.markdown index 98a0ad1f4..b70f675d8 100644 --- a/docs.markdown +++ b/docs.markdown @@ -14,7 +14,7 @@ Choose which version you want documentation for. * [EEx](/docs/stable/eex/) - templating library * [ExUnit](/docs/stable/ex_unit/) - unit test library * [IEx](/docs/stable/iex/) - interactive shell -* [Logger](/docs/stable/logger/) - builtin Logger +* [Logger](/docs/stable/logger/) - built-in Logger * [Mix](/docs/stable/mix/) - build tool #### Master @@ -23,7 +23,7 @@ Choose which version you want documentation for. * [EEx](/docs/master/eex/) - templating library * [ExUnit](/docs/master/ex_unit/) - unit test library * [IEx](/docs/master/iex/) - interactive shell -* [Logger](/docs/master/logger/) - builtin Logger +* [Logger](/docs/master/logger/) - built-in Logger * [Mix](/docs/master/mix/) - build tool

        v1.3 (download)

        @@ -32,7 +32,7 @@ Choose which version you want documentation for. * [EEx](/docs/v1.3/eex/) - templating library * [ExUnit](/docs/v1.3/ex_unit/) - unit test library * [IEx](/docs/v1.3/iex/) - interactive shell -* [Logger](/docs/v1.3/logger/) - builtin Logger +* [Logger](/docs/v1.3/logger/) - built-in Logger * [Mix](/docs/v1.3/mix/) - build tool

        v1.2 (download)

        @@ -41,7 +41,7 @@ Choose which version you want documentation for. * [EEx](/docs/v1.2/eex/) - templating library * [ExUnit](/docs/v1.2/ex_unit/) - unit test library * [IEx](/docs/v1.2/iex/) - interactive shell -* [Logger](/docs/v1.2/logger/) - builtin Logger +* [Logger](/docs/v1.2/logger/) - built-in Logger * [Mix](/docs/v1.2/mix/) - build tool

        v1.1 (download)

        @@ -50,5 +50,5 @@ Choose which version you want documentation for. * [EEx](/docs/v1.1/eex/) - templating library * [ExUnit](/docs/v1.1/ex_unit/) - unit test library * [IEx](/docs/v1.1/iex/) - interactive shell -* [Logger](/docs/v1.1/logger/) - builtin Logger +* [Logger](/docs/v1.1/logger/) - built-in Logger * [Mix](/docs/v1.1/mix/) - build tool diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 14cccfd29..85377a61c 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -91,7 +91,7 @@ iex> "hełło" <> <<0>> <<104, 101, 197, 130, 197, 130, 111, 0>> ``` -Each number given to a binary is meant to represent a byte and therefore must go up to 255. Binaries allow modifiers to be given to store numbers bigger than 255 or to convert a code point to its utf8 representation: +Each number given to a binary is meant to represent a byte and therefore must go up to 255. Binaries allow modifiers to be given to store numbers bigger than 255 or to convert a code point to its UTF-8 representation: ```iex iex> <<255>> @@ -113,9 +113,9 @@ iex> <<1 :: size(1)>> <<1::size(1)>> iex> <<2 :: size(1)>> # truncated <<0::size(1)>> -iex> is_binary(<< 1 :: size(1)>>) +iex> is_binary(<<1 :: size(1)>>) false -iex> is_bitstring(<< 1 :: size(1)>>) +iex> is_bitstring(<<1 :: size(1)>>) true iex> bit_size(<< 1 :: size(1)>>) 1 From 09eb2ad5034eb971803ac2499e26cca73c4b9a99 Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sat, 29 Oct 2016 02:15:54 +0700 Subject: [PATCH 0579/1761] Add examples and little improments and typo correction in Binaries page (#868) --- getting-started/binaries-strings-and-char-lists.markdown | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 85377a61c..f398591f4 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -123,6 +123,13 @@ iex> bit_size(<< 1 :: size(1)>>) The value is no longer a binary, but a bitstring -- a bunch of bits! So a binary is a bitstring where the number of bits is divisible by 8. +```iex +iex> is_binary(<<1 :: size(16)>>) +true +iex> is_binary(<<1 :: size(15)>>) +false +``` + We can also pattern match on binaries / bitstrings: ```iex @@ -167,7 +174,7 @@ iex> 'hello' 'hello' ``` -You can see that, instead of containing bytes, a char list contains the code points of the characters between single-quotes (note that IEx will only output code points if any of the chars is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represents a char list (i.e. a list). +You can see that, instead of containing bytes, a char list contains the code points of the characters between single-quotes (note that by default IEx will only output code points if any of the chars is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represent a char list (i.e. a list). In practice, char lists are used mostly when interfacing with Erlang, in particular old libraries that do not accept binaries as arguments. You can convert a char list to a string and back by using the `to_string/1` and `to_charlist/1` functions: From b7ba2da3283c202b1779798c9c267575af73a19f Mon Sep 17 00:00:00 2001 From: Lucas Lessa Date: Sun, 6 Nov 2016 21:43:20 -1000 Subject: [PATCH 0580/1761] Improve readability in mix-otp/agent.markdown (#870) --- getting-started/mix-otp/agent.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 8a074824e..1efa4675c 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -9,9 +9,9 @@ title: Agent {% include mix-otp-preface.html %} -In this chapter, we will create a module named `KV.Bucket`. This module will be responsible for storing our key-value entries in a way it can be read and modified by other processes. +In this chapter, we will create a module named `KV.Bucket`. This module will be responsible for storing our key-value entries in a way that allows them to be read and modified by other processes. -If you have skipped the Getting Started guide or if you have read it long ago, be sure to re-read the chapter about [Processes](/getting-started/processes.html). We will use it as a starting point. +If you have skipped the Getting Started guide or read it long ago, be sure to re-read the [Processes](/getting-started/processes.html) chapter. We will use it as a starting point. ## The trouble with state @@ -70,9 +70,9 @@ end Our first test starts a new `KV.Bucket` and performs some `get/2` and `put/3` operations on it, asserting the result. We don't need to explicitly stop the agent because it is linked to the test process and the agent is shut down automatically once the test finishes. This will always work unless the process is named. -Also note that we passed the `async: true` option to `ExUnit.Case`. This option makes this test case run in parallel with other test cases that set up the `:async` option. This is extremely useful to speed up our test suite by using multiple cores in our machine. Note though the `:async` option must only be set if the test case does not rely or change any global value. For example, if the test requires writing to the filesystem, registering processes, accessing a database, you must not make it async to avoid race conditions in between tests. +Also note the `async: true` option passed to `ExUnit.Case`. This option makes the test case run in parallel with other `:async` test cases by using multiple cores in our machine. This is extremely useful to speed up our test suite. However, `:async` must *only* be set if the test case does not rely on or change any global values. For example, if the test requires writing to the filesystem, registering processes, or accessing a database, keep it synchronous (omit the `:async` option) to avoid race conditions between tests. -Regardless of being async or not, our new test should obviously fail, as none of the functionality is implemented. +Async or not, our new test should obviously fail, as none of the functionality is implemented in the module being tested. In order to fix the failing test, let's create a file at `lib/kv/bucket.ex` with the contents below. Feel free to give a try at implementing the `KV.Bucket` module yourself using agents before peeking at the implementation below. @@ -105,7 +105,7 @@ We are using a map to store our keys and values. The capture operator, `&`, is i Now that the `KV.Bucket` module has been defined, our test should pass! You can try it yourself by running: `mix test`. -## ExUnit callbacks +## Test setup with ExUnit callbacks Before moving on and adding more features to `KV.Bucket`, let's talk about ExUnit callbacks. As you may expect, all `KV.Bucket` tests will require a bucket to be started during setup and stopped after the test. Luckily, ExUnit supports callbacks that allow us to skip such repetitive tasks. From 6cc2b121c511a7a2eead33d499cc049ca92376a0 Mon Sep 17 00:00:00 2001 From: Daniel Clarke Date: Thu, 10 Nov 2016 16:05:43 +0200 Subject: [PATCH 0581/1761] Two small edits (#871) --- getting-started/pattern-matching.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 5aa2421bd..8b9672cae 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -53,7 +53,7 @@ iex> b "world" ``` -A pattern match will error in the case the sides can't match. This is, for example, the case when the tuples have different sizes: +A pattern match will error if the sides can't be matched, for example if the tuples have different sizes: ```iex iex> {a, b, c} = {:hello, "world"} @@ -115,7 +115,7 @@ iex> [0 | list] [0, 1, 2, 3] ``` -Pattern matching allows developers to easily destructure data types such as tuples and lists. As we will see in following chapters, it is one of the foundations of recursion in Elixir and applies to other types as well, like maps and binaries. +Pattern matching allows developers to easily destructure data types such as tuples and lists. As we will see in the following chapters, it is one of the foundations of recursion in Elixir and applies to other types as well, like maps and binaries. ## The pin operator @@ -128,7 +128,7 @@ iex> x = 2 2 ``` -The pin operator `^` should be used when you want to pattern match against an existing variable's value rather than rebinding the variable: +Use the pin operator `^` when you want to pattern match against an existing variable's value rather than rebinding the variable: ```iex iex> x = 1 From 42025cb2d87d76c21f0c05c81a58dacc39abdd8b Mon Sep 17 00:00:00 2001 From: Lucas Lessa Date: Sun, 13 Nov 2016 00:53:18 -1000 Subject: [PATCH 0582/1761] Amend explanation of `with` construct in mix-otp guide (#872) When introducing `with`, explain briefly how the construct can replace nested `case` clauses. Additionally, fix a typo referring to KVServer. --- getting-started/mix-otp/docs-tests-and-with.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 3ce7d2648..81e258df1 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -265,7 +265,7 @@ This means our implementation is going in the correct direction, but it doesn't The previous implementation used pipelines which made the logic straight-forward to follow. However, now that we need to handle different error codes along the way, our server logic is nested inside many `case` calls. -Thankfully, Elixir v1.2 introduced a construct called `with` which allows to simplify code like above. Let's rewrite the `serve/1` function to use it: +Thankfully, Elixir v1.2 introduced the `with` construct, which allows you to simplify code like the above, replacing nested `case` calls with a chain of matching clauses. Let's rewrite the `serve/1` function to use `with`: ```elixir defp serve(socket) do @@ -333,7 +333,7 @@ Every function clause dispatches the appropriate command to the `KV.Registry` se Note that we have also defined a private function named `lookup/2` to help with the common functionality of looking up a bucket and returning its `pid` if it exists, `{:error, :not_found}` otherwise. -By the way, since we are now returning `{:error, :not_found}`, we should amend the `write_line/2` function in `KV.Server` to print such error as well: +By the way, since we are now returning `{:error, :not_found}`, we should amend the `write_line/2` function in `KVServer` to print such error as well: ```elixir defp write_line(socket, {:error, :not_found}) do From 36beb5478f08d517beacc71edd72835e60233929 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 14 Nov 2016 11:24:53 +0100 Subject: [PATCH 0583/1761] Update install.markdown --- install.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.markdown b/install.markdown index b954cbd27..fe7f4e01d 100644 --- a/install.markdown +++ b/install.markdown @@ -56,8 +56,6 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Chocolatey * `cinst elixir` -Those distributions will likely install Erlang automatically for you too. In case they don't, check the [Installing Erlang](/install.html#installing-erlang) section below. - ### Docker If you are familiar with Docker you can use the offical Docker image to get started quickly with Elixir. @@ -67,6 +65,8 @@ If you are familiar with Docker you can use the offical Docker image to get star * Enter bash within container with installed `elixir` * Run: `docker run -it --rm elixir bash` +Those distributions will likely install Erlang automatically for you too. In case they don't, check the [Installing Erlang](/install.html#installing-erlang) section below. + ## Precompiled package Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/). From b9b17523e4001d4f68979460d8e1846caf980ed2 Mon Sep 17 00:00:00 2001 From: "John W. O'Grady" Date: Mon, 14 Nov 2016 13:21:00 -0600 Subject: [PATCH 0584/1761] Correction to case-cond-and-if Getting Started Statement appears to be in conflict with Getting Started Guide, [Basic Operators](https://github.com/elixir-lang/elixir-lang.github.com/edit/master/getting-started/basic-operators.markdown) where on line 44 it says. ```` `or` and `and` are short-circuit operators. ```` I removed `short-circuit` when describing `&&`, `||` and `!` usage in guard clauses. --- getting-started/case-cond-and-if.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index a0cca117a..7176ef898 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -102,7 +102,7 @@ module defines guards as functions and operators: `bnot`, `~~~`, `band`, `&&&`, `bor`, `|||`, `bxor`, `^^^`, `bsl`, `<<<`, `bsr`, `>>>`. Note that while boolean operators such as `and`, `or`, `not` are allowed in guards, -the more general and short-circuiting operators `&&`, `||` and `!` are not. +the more general operators `&&`, `||` and `!` are not. Keep in mind errors in guards do not leak but instead make the guard fail: From d859231cf0e4dc764994f5f1505936c16cb88f3a Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Mon, 14 Nov 2016 20:38:26 +0100 Subject: [PATCH 0585/1761] assorted edits --- getting-started/basic-types.markdown | 8 ++++---- getting-started/introduction.markdown | 11 +++++++---- index.html | 4 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 95f53c224..42eebe1f9 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -46,7 +46,7 @@ iex> rem 10, 3 Notice that parentheses are not required in order to invoke a function. -Elixir also supports shortcut notations for entering binary, octal and hexadecimal numbers: +Elixir also supports shortcut notations for entering binary, octal, and hexadecimal numbers: ```iex iex> 0b1010 @@ -99,7 +99,7 @@ iex> is_boolean(1) false ``` -You can also use `is_integer/1`, `is_float/1` or `is_number/1` to check, respectively, if an argument is an integer, a float or either. +You can also use `is_integer/1`, `is_float/1` or `is_number/1` to check, respectively, if an argument is an integer, a float, or either. > Note: At any moment you can type `h` in the shell to print information on how to use the shell. The `h` helper can also be used to access documentation for any function. For example, typing `h is_integer/1` is going to print the documentation for the `is_integer/1` function. It also works with operators and other constructs (try `h ==/2`). @@ -381,8 +381,8 @@ iex> elem(tuple, 1) "hello" ``` -When "counting" the number of elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). +When "counting" the number of elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). As a mnemonic, both "length" and "linear" start with "l". For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for the tuple size), `length/1` (for the list length) and `String.length/1` (for the number of graphemes in a string). That said, we use `byte_size` to get the number of bytes in a string, which is cheap, but retrieving the number of unicode characters uses `String.length`, which may be expensive since the whole string needs to be traversed. -Elixir also provides `Port`, `Reference` and `PID` as data types (usually used in process communication), and we will take a quick look at them when talking about processes. For now, let's take a look at some of the basic operators that go with our basic types. +Elixir also provides `Port`, `Reference`, and `PID` as data types (usually used in process communication), and we will take a quick look at them when talking about processes. For now, let's take a look at some of the basic operators that go with our basic types. diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 96b735786..c5118a759 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -10,7 +10,7 @@ redirect_from: /getting_started/1.html Welcome! -In this tutorial we are going to teach you the Elixir foundation, the language syntax, how to define modules, how to manipulate the characteristics of common data structures and more. This chapter will focus on ensuring Elixir is installed and that you can successfully run Elixir's Interactive Shell, called IEx. +In this tutorial we are going to teach you the Elixir foundation, the language syntax, how to define modules, how to manipulate the characteristics of common data structures, and more. This chapter will focus on ensuring Elixir is installed and that you can successfully run Elixir's Interactive Shell, called IEx. Our requirements are: @@ -34,14 +34,17 @@ For now, let's start by running `iex` (or `iex.bat` if you are on Windows) which Open up `iex` and type the following expressions: ```iex -Interactive Elixir - press Ctrl+C to exit (type h() ENTER for help) +Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace] -iex> 40 + 2 +Interactive Elixir (1.3.4) - press Ctrl+C to exit (type h() ENTER for help) +iex(1)> 40 + 2 42 -iex> "hello" <> " world" +iex(2)> "hello" <> " world" "hello world" ``` +Please note that some details like version numbers may differ a bit in your session, that's not important. From now on `iex` sessions will be stripped down to focus on the code. To exit `iex` press `Ctrl+C` twice. + It seems we are ready to go! We will use the interactive shell quite a lot in the next chapters to get a bit more familiar with the language constructs and basic types, starting in the next chapter. > Note: if you are on Windows, you can also try `iex.bat --werl` which may provide a better experience depending on which console you are using. diff --git a/index.html b/index.html index 880a15a6f..98b51172d 100644 --- a/index.html +++ b/index.html @@ -50,7 +50,7 @@

        Scalability

        Fault-tolerance

        -

        The unavoidable truth about software running in production is that things will go wrong. Even more when we take network, file systems and other third-party resources into account.

        +

        The unavoidable truth about software running in production is that things will go wrong. Even more when we take network, file systems, and other third-party resources into account.

        To cope with failures, Elixir provides supervisors which describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work:

        @@ -164,7 +164,7 @@

        Interactive development

        Erlang compatible

        -

        Elixir runs on the Erlang VM giving developers complete access to Erlang’s ecosystem, used by companies like Heroku, WhatsApp, Klarna, Basho and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

        +

        Elixir runs on the Erlang VM giving developers complete access to Erlang’s ecosystem, used by companies like Heroku, WhatsApp, Klarna, Basho and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

        {% highlight iex %} iex> :crypto.md5("Using crypto from Erlang OTP") From 517abb1e96afe88c30ac6b873e86d35230e0ed29 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Tue, 15 Nov 2016 10:17:33 +0100 Subject: [PATCH 0586/1761] more assorted edits --- getting-started/basic-operators.markdown | 4 ++-- .../binaries-strings-and-char-lists.markdown | 2 +- getting-started/case-cond-and-if.markdown | 19 ++++++++++--------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 3ea868628..a29da40b6 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -78,7 +78,7 @@ true As a rule of thumb, use `and`, `or` and `not` when you are expecting booleans. If any of the arguments are non-boolean, use `&&`, `||` and `!`. -Elixir also provides `==`, `!=`, `===`, `!==`, `<=`, `>=`, `<` and `>` as comparison operators: +Elixir also provides `==`, `!=`, `===`, `!==`, `<=`, `>=`, `<`, and `>` as comparison operators: ```iex iex> 1 == 1 @@ -113,4 +113,4 @@ You don't actually need to memorize this ordering, it's enough to know that this For reference information about operators (and ordering), check the [reference page on operators](/docs/master/elixir/operators.html). -In the next chapter, we are going to discuss some basic functions, data type conversions and a bit of control-flow. +In the next chapter, we are going to discuss some basic functions, data type conversions, and a bit of control flow. diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index f398591f4..d7cd1d967 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: Binaries, strings and char lists +title: Binaries, strings, and char lists --- # {{ page.title }} diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 7176ef898..baf52adfb 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -1,13 +1,13 @@ --- layout: getting-started -title: case, cond and if +title: case, cond, and if --- # {{ page.title }} {% include toc.html %} -In this chapter, we will learn about the `case`, `cond` and `if` control-flow structures. +In this chapter, we will learn about the `case`, `cond`, and `if` control flow structures. ## `case` @@ -102,14 +102,13 @@ module defines guards as functions and operators: `bnot`, `~~~`, `band`, `&&&`, `bor`, `|||`, `bxor`, `^^^`, `bsl`, `<<<`, `bsr`, `>>>`. Note that while boolean operators such as `and`, `or`, `not` are allowed in guards, -the more general operators `&&`, `||` and `!` are not. +the more general operators `&&`, `||`, and `!` are not. Keep in mind errors in guards do not leak but instead make the guard fail: ```iex iex> hd(1) ** (ArgumentError) argument error - :erlang.hd(1) iex> case 1 do ...> x when hd(x) -> "Won't match" ...> x -> "Got #{x}" @@ -168,7 +167,7 @@ iex> cond do This is equivalent to `else if` clauses in many imperative languages (although used way less frequently here). -If none of the conditions return true, an error(`CondClauseError`) is raised. For this reason, it may be necessary to add a final condition, equal to `true`, which will always match: +If none of the conditions return true, an error (`CondClauseError`) is raised. For this reason, it may be necessary to add a final condition, equal to `true`, which will always match: ```iex iex> cond do @@ -224,14 +223,14 @@ iex> if nil do ## `do/end` blocks -At this point, we have learned four control structures: `case`, `cond`, `if` and `unless`, and they were all wrapped in `do/end` blocks. It happens we could also write `if` as follows: +At this point, we have learned four control structures: `case`, `cond`, `if`, and `unless`, and they were all wrapped in `do/end` blocks. It happens we could also write `if` as follows: ```iex iex> if true, do: 1 + 2 3 ``` -Notice how the example above has a comma between `true` and `do:`, that's because it is using Elixir's regular syntax where each argument is separated by comma. We say this syntax is using **keyword lists**. We can pass `else` using keywords too: +Notice how the example above has a comma between `true` and `do:`, that's because it is using Elixir's regular syntax where each argument is separated by comma. We say this syntax is using *keyword lists*. We can pass `else` using keywords too: ```iex iex> if false, do: :this, else: :that @@ -271,7 +270,9 @@ iex> is_number(if true) do ** (CompileError) undefined function: is_number/2 ``` -which leads to an undefined function error as Elixir attempts to invoke `is_number/1`, but passing it *two* arguments (the `if true` expression - which would throw an undefined function error itself as `if` needs a second argument - the `do/end` block). Adding explicit parentheses is enough to resolve the ambiguity: +which leads to an undefined function error because that invocation passes two arguments, and `is_number/2` does not exist. The `if true` expression is invalid in itself because it needs the block, but since the arity of `is_number/2` does not match, Elixir does not even reach its evaluation. + +Adding explicit parentheses is enough to bind the block to `if`: ```iex iex> is_number(if true do @@ -280,4 +281,4 @@ iex> is_number(if true do true ``` -Keyword lists play an important role in the language and are quite common in many functions and macros. We will explore them a bit more in a future chapter. Now it is time to talk about "Binaries, strings and char lists". +Keyword lists play an important role in the language and are quite common in many functions and macros. We will explore them a bit more in a future chapter. Now it is time to talk about "Binaries, strings, and char lists". From 07ee2cd00f33bc29a7ad7ccaadfc53b534819d2d Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Tue, 22 Nov 2016 09:32:50 +0100 Subject: [PATCH 0587/1761] revises Unicode terminology --- .../binaries-strings-and-char-lists.markdown | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index d7cd1d967..bddaa0bdb 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -26,7 +26,7 @@ The Unicode standard assigns code points to many of the characters we know. For When representing code points in bytes, we need to encode them somehow. Elixir chose the UTF-8 encoding as its main and default encoding. When we say a string is a UTF-8 encoded binary, we mean a string is a bunch of bytes organized in a way to represent certain code points, as specified by the UTF-8 encoding. -Since we have code points like `ł` assigned to the number `322`, we actually need more than one byte to represent it. That's why we see a difference when we calculate the `byte_size/1` of a string compared to its `String.length/1`: +Since we have characters like `ł` assigned to the code point `322`, we actually need more than one byte to represent them. That's why we see a difference when we calculate the `byte_size/1` of a string compared to its `String.length/1`: ```iex iex> string = "hełło" @@ -37,9 +37,11 @@ iex> String.length(string) 5 ``` +There, `byte_size/1` counts the underlying raw bytes, and `String.length/1` counts characters. + > Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering `iex` (`iex.bat`). -UTF-8 requires one byte to represent the code points `h`, `e` and `o`, but two bytes to represent `ł`. In Elixir, you can get a code point's value by using `?`: +UTF-8 requires one byte to represent the characters `h`, `e`, and `o`, but two bytes to represent `ł`. In Elixir, you can get a character's code point by using `?`: ```iex iex> ?a @@ -48,7 +50,7 @@ iex> ?ł 322 ``` -You can also use the functions in [the `String` module](/docs/stable/elixir/String.html) to split a string in its code points: +You can also use the functions in [the `String` module](/docs/stable/elixir/String.html) to split a string in its individual characters, each one as a string of length 1: ```iex iex> String.codepoints("hełło") @@ -163,7 +165,7 @@ A complete reference about the binary / bitstring constructor `<<>>` can be foun ## Char lists -A char list is nothing more than a list of characters: +A char list is nothing more than a list of code points. Char lists may be created with single-quoted literals: ```iex iex> 'hełło' @@ -172,9 +174,11 @@ iex> is_list 'hełło' true iex> 'hello' 'hello' +iex> List.first('hello') +104 ``` -You can see that, instead of containing bytes, a char list contains the code points of the characters between single-quotes (note that by default IEx will only output code points if any of the chars is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represent a char list (i.e. a list). +You can see that, instead of containing bytes, a char list contains the code points of the characters between single-quotes (note that by default IEx will only output code points if any of the integers is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represent a char list (i.e. a list). In practice, char lists are used mostly when interfacing with Erlang, in particular old libraries that do not accept binaries as arguments. You can convert a char list to a string and back by using the `to_string/1` and `to_charlist/1` functions: From 54d778ec95a43a21a0159869b1ac8853231b1739 Mon Sep 17 00:00:00 2001 From: Rick Liu Date: Thu, 24 Nov 2016 17:48:06 +0800 Subject: [PATCH 0588/1761] Update Programming Elixir book (#879) https://pragprog.com/book/elixir13/programming-elixir-1-3 This book is updated to Elixir 1.3. --- images/learning/programming-elixir-1-3.jpg | Bin 0 -> 75838 bytes images/learning/programming-elixir.jpg | Bin 41898 -> 0 bytes learning.markdown | 11 +++++------ 3 files changed, 5 insertions(+), 6 deletions(-) create mode 100644 images/learning/programming-elixir-1-3.jpg delete mode 100644 images/learning/programming-elixir.jpg diff --git a/images/learning/programming-elixir-1-3.jpg b/images/learning/programming-elixir-1-3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8fe089986dd013d4466750a9a09088afb209e396 GIT binary patch literal 75838 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 X?E7uD_uto9BFS-`T`y|*ck;ggGO$@D literal 0 HcmV?d00001 diff --git a/images/learning/programming-elixir.jpg b/images/learning/programming-elixir.jpg deleted file mode 100644 index 432e37f56070be495ee4a8b8b494199bc8fad0bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41898 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 zx=zfProgramming Elixir 1.2

        +

        Programming Elixir 1.3

        -Programming Elixir cover +Programming Elixir cover -You want to explore functional programming, but are put off by the academic feel (tell me about monads just one more time). You know you need concurrent applications, but also know these are almost impossible to get right. Meet Elixir, a functional, concurrent language built on the rock-solid Erlang VM. +Explore functional programming without the academic overtones (tell me about monads just one more time). Create concurrent applications, but get them right without all the locking and consistency headaches. Meet Elixir, a modern, functional, concurrent language built on the rock-solid Erlang VM. -Elixir’s pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. And Programming Elixir is the introduction to Elixir for experienced programmers, written by the same person that wrote the first English books on Ruby and then Rails. Starting with pattern matching, it takes you all the way through concurrency, agents, supervisors, and ends with OTP applications. Along the way, you'll learn tools, techniques, and good practices for creating tomorrow's applications. +Elixir’s pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. Maybe the time is right for the Next Big Thing. Maybe it’s Elixir. This book is the introduction to Elixir for experienced programmers, completely updated for Elixir 1.3.
        @@ -135,4 +135,3 @@ Write code that writes code with Elixir macros. Macros make metaprogramming poss This book intends to be a little guide about how to be the Erlang medic in a time of war. It is first and foremost a collection of tips and tricks to help understand where failures come from, and a dictionary of different code snippets and practices that helped developers debug production systems that were built in Erlang.
        - From 3d1c9a2ac9631859f829fce25176a1acc20fe131 Mon Sep 17 00:00:00 2001 From: Jan Dudulski Date: Thu, 24 Nov 2016 12:45:37 +0100 Subject: [PATCH 0589/1761] Update install section about Fedora and dnf (#880) Since Fedora 22 they switched from yum to dnf tool. More: https://fedoraproject.org/wiki/F22_release_announcement#Faster_and_better_dependency_management_with_DNF --- install.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.markdown b/install.markdown index fe7f4e01d..085329a0f 100644 --- a/install.markdown +++ b/install.markdown @@ -39,6 +39,8 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Run: `guix package -i elixir` * Fedora 21 (and older) * Run: `yum install elixir` + * Fedora 22 (and newer) + * Run `dnf install elixir` * FreeBSD * From ports: `cd /usr/ports/lang/elixir && make install clean` * From pkg: `pkg install elixir` From dde3e54fd04eba3c57e38199dd8600de873c9da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 28 Nov 2016 11:40:54 +0100 Subject: [PATCH 0590/1761] Release v1.4.0-rc.0 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 2f114dbe6..cc86461db 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.4.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0-rc.0/Precompiled.zip,prerelease,1,23257bcd484e767fa1149cf8046da1f865a6ad3b,9756080922820dad162c08d794eeec1f6655806bdaddeabf4dfb0ae5128363d6 1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1,, 1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1,, 1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1,, From d1396ef524dcc64c5f88c7c1ac9100a7c5e0bba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 28 Nov 2016 12:10:27 +0100 Subject: [PATCH 0591/1761] Point docs to hexdocs --- ...2013-01-27-elixir-v0-8-0-released.markdown | 6 +- ...2013-04-29-elixir-v0-8-2-released.markdown | 2 +- ...2013-05-23-elixir-v0-9-0-released.markdown | 2 +- ...013-07-13-elixir-v0-10-0-released.markdown | 8 +-- .../2013-08-08-elixir-design-goals.markdown | 4 +- ...013-11-05-elixir-v0-11-0-released.markdown | 6 +- ...014-04-21-elixir-v0-13-0-released.markdown | 12 ++-- ...014-06-17-elixir-v0-14-0-released.markdown | 10 +-- ...014-08-07-elixir-v0-15-0-released.markdown | 6 +- ...2014-09-18-elixir-v1-0-0-released.markdown | 12 ++-- ...2015-09-28-elixir-v1-1-0-released.markdown | 2 +- .../2016-07-14-announcing-genstage.markdown | 4 +- docs.markdown | 62 +++++++++---------- getting-started/basic-types.markdown | 4 +- .../binaries-strings-and-char-lists.markdown | 4 +- getting-started/case-cond-and-if.markdown | 2 +- .../enumerables-and-streams.markdown | 12 ++-- .../io-and-the-file-system.markdown | 10 +-- getting-started/keywords-and-maps.markdown | 8 +-- .../meta/domain-specific-languages.markdown | 2 +- getting-started/meta/macros.markdown | 4 +- .../meta/quote-and-unquote.markdown | 2 +- getting-started/mix-otp/agent.markdown | 16 ++--- .../dependencies-and-umbrella-apps.markdown | 6 +- ...stributed-tasks-and-configuration.markdown | 10 +-- .../mix-otp/docs-tests-and-with.markdown | 4 +- getting-started/mix-otp/genserver.markdown | 4 +- .../mix-otp/introduction-to-mix.markdown | 6 +- .../supervisor-and-application.markdown | 8 +-- .../mix-otp/task-and-gen-tcp.markdown | 6 +- getting-started/module-attributes.markdown | 8 +-- getting-started/modules.markdown | 4 +- getting-started/processes.markdown | 4 +- getting-started/recursion.markdown | 2 +- getting-started/sigils.markdown | 2 +- getting-started/try-catch-and-rescue.markdown | 2 +- .../typespecs-and-behaviours.markdown | 6 +- index.html | 6 +- 38 files changed, 139 insertions(+), 139 deletions(-) diff --git a/_posts/2013-01-27-elixir-v0-8-0-released.markdown b/_posts/2013-01-27-elixir-v0-8-0-released.markdown index 84a695b40..aae6f2db7 100644 --- a/_posts/2013-01-27-elixir-v0-8-0-released.markdown +++ b/_posts/2013-01-27-elixir-v0-8-0-released.markdown @@ -30,7 +30,7 @@ String.capitalize("fiN") #=> "Fin" The example above contains a string with only two codepoints, [the codepoint fi](http://www.fileformat.info/info/unicode/char/FB01/index.htm) and [the codepoint n](http://www.fileformat.info/info/unicode/char/006E/index.htm). Look how Elixir properly capitalizes the string, returning a new string made of three codepoints (all ascii letters). -Learn more about [Unicode support with the String module](/docs/stable/elixir/String.html). +Learn more about [Unicode support with the String module](https://hexdocs.pm/elixir/String.html). ## AST metadata @@ -70,11 +70,11 @@ When some code call the `unless` macro above, in previous Elixir versions, it wo Elixir v0.8 ensures that the `unless` macro above will expand to the same `if` macro available when quoted, guaranteeing different libraries can integrate easily without imposing hidden requirements. -You can read more about [macros in the getting started guide](/getting-started/case-cond-and-if.html) or [go deep into the quote macro docs](/docs/stable/elixir/Kernel.SpecialForms.html#quote/2). +You can read more about [macros in the getting started guide](/getting-started/case-cond-and-if.html) or [go deep into the quote macro docs](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#quote/2). ## A new way to manipulate pathnames -Elixir v0.8 contains a bit of house cleaning too. We have created [the Path module](/docs/stable/elixir/Path.html) to accommodate functions used to manipulate filesystem paths and have also added functions like [`System.tmp_dir` and `System.user_home`](/docs/stable/elixir/System.html) which are meant to work accross different operating systems and are very handy when scripting. +Elixir v0.8 contains a bit of house cleaning too. We have created [the Path module](https://hexdocs.pm/elixir/Path.html) to accommodate functions used to manipulate filesystem paths and have also added functions like [`System.tmp_dir` and `System.user_home`](https://hexdocs.pm/elixir/System.html) which are meant to work accross different operating systems and are very handy when scripting. ## The new HashDict diff --git a/_posts/2013-04-29-elixir-v0-8-2-released.markdown b/_posts/2013-04-29-elixir-v0-8-2-released.markdown index 1524630ff..9579766ac 100644 --- a/_posts/2013-04-29-elixir-v0-8-2-released.markdown +++ b/_posts/2013-04-29-elixir-v0-8-2-released.markdown @@ -44,6 +44,6 @@ defmodule MathTest do end ``` -You can learn more about [doctests on our documentation page](/docs/stable/ex_unit/ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md). +You can learn more about [doctests on our documentation page](https://hexdocs.pm/ex_unit/ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md). If you are new to Elixir, [it's easy to get started with](/getting-started/introduction.html)! diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index 0389135f6..cd319e93a 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -123,7 +123,7 @@ A special thanks to [Eric Meadows-Jonsson](https://github.com/ericmj) for implem We have also many other smaller improvements: * Our CLI now supports `--hidden` and `--cookie` flags which are useful for distributed modes; -* Our test framework, ExUnit, is now able to capture all the communication that happens with a registed IO device, like `:stdio` and `:stderr`, via [`ExUnit.CaptureIO`](/docs/stable/ex_unit/ExUnit.CaptureIO.html). This is very useful for testing how your software reacts to some inputs and what it prints to the terminal; +* Our test framework, ExUnit, is now able to capture all the communication that happens with a registed IO device, like `:stdio` and `:stderr`, via [`ExUnit.CaptureIO`](https://hexdocs.pm/ex_unit/ExUnit.CaptureIO.html). This is very useful for testing how your software reacts to some inputs and what it prints to the terminal; * `IEx` now allows files to be imported into the shell with `import_file` and also loads `~/.iex` on startup for custom configuration; * The `String`, `Enum` and `Dict` modules got more convenience functions that goes from checking unicode character validity to taking values out of a dictionary; * And many, many more! diff --git a/_posts/2013-07-13-elixir-v0-10-0-released.markdown b/_posts/2013-07-13-elixir-v0-10-0-released.markdown index bf8ed2412..3d28ad7ba 100644 --- a/_posts/2013-07-13-elixir-v0-10-0-released.markdown +++ b/_posts/2013-07-13-elixir-v0-10-0-released.markdown @@ -54,11 +54,11 @@ Stream.repeatedly(fn -> :random.uniform end) |> Enum.take(3) #=> [0.4435846174457203, 0.7230402056221108, 0.94581636451987] ``` -`Stream.repeatedly/1` returns an infinite stream but that's ok we just need its first three elements. You can learn more about [stream and related functions in `Stream` module documentation](/docs/stable/elixir/Stream.html). +`Stream.repeatedly/1` returns an infinite stream but that's ok we just need its first three elements. You can learn more about [stream and related functions in `Stream` module documentation](https://hexdocs.pm/elixir/Stream.html). ## Sets -This release also adds [the Sets API](/docs/stable/elixir/Set.html) to Elixir and a HashSet implementation. The HashSet implementation follows [the same design goals as the HashDict implementation](/blog/2013/01/27/elixir-v0-8-0-released/) released at the beginning of this year, starting with a compact representation and expanding and contracting as needed. +This release also adds [the Sets API](https://hexdocs.pm/elixir/Set.html) to Elixir and a HashSet implementation. The HashSet implementation follows [the same design goals as the HashDict implementation](/blog/2013/01/27/elixir-v0-8-0-released/) released at the beginning of this year, starting with a compact representation and expanding and contracting as needed. This feature was a contribution from [Joseph Wilk](https://github.com/josephwilk) and he talks about its implementation and provides some benchmarks [on his blog](http://blog.josephwilk.net/elixir/sets-in-elixir.html). @@ -66,7 +66,7 @@ This feature was a contribution from [Joseph Wilk](https://github.com/josephwilk Another addition to this release is pretty printing. The pretty printing started as an implementation of the [Wadler paper](http://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf) by [Jonns Mostovoys](https://github.com/manpages) which was then improved by [Gustavo Brunoro](https://github.com/brunoro) under his Google Summer of Code project as described in [Lindig's _Strictly Prettier_ paper](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.34.2200). -As soon as you upgrade to Elixir v0.10.0 and start IEx, you will get pretty printing for all data structures provided by Elixir. We have also added documentation to the `Inspect` module about [adding pretty printing to your own structures](/docs/stable/elixir/Inspect.html) as well as [using the document algebra for any other kind of formatting](/docs/stable/elixir/Inspect.Algebra.html). +As soon as you upgrade to Elixir v0.10.0 and start IEx, you will get pretty printing for all data structures provided by Elixir. We have also added documentation to the `Inspect` module about [adding pretty printing to your own structures](https://hexdocs.pm/elixir/Inspect.html) as well as [using the document algebra for any other kind of formatting](https://hexdocs.pm/elixir/Inspect.Algebra.html). ## Other improvements @@ -78,7 +78,7 @@ Other notable improvements are: * We are also working hard on Windows support, improving its command-line tools and working towards a green test suite, thanks to [Tom Jansens](https://github.com/tojans); -* Meta-programming in Elixir was also improved by the addition of the `binding/0` and `binding/1` macros plus the additions of `Macro.expand_once/2` and `Macro.expand_all/2` to the [`Macro` module](/docs/stable/elixir/Macro.html); +* Meta-programming in Elixir was also improved by the addition of the `binding/0` and `binding/1` macros plus the additions of `Macro.expand_once/2` and `Macro.expand_all/2` to the [`Macro` module](https://hexdocs.pm/elixir/Macro.html); There are also improvements to typespecs, error messages, many bug fixes and some backwards incompatible changes. We have posted a detailed [upgrade instructions on the mailing list](https://groups.google.com/forum/?fromgroups#!topic/elixir-lang-talk/ksrefrgK1eY). For a general overview, [check out the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.10.0/CHANGELOG.md). diff --git a/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown index a261336f7..6b5b316e8 100644 --- a/_posts/2013-08-08-elixir-design-goals.markdown +++ b/_posts/2013-08-08-elixir-design-goals.markdown @@ -202,9 +202,9 @@ Enum.map set, fn(x) -> x * 2 end #=> [2, 4, 6] ``` -Not only that, any developer can **extend** the `Enum` module to work with any data type as long as the data type implements [the `Enumerable` protocol](/docs/stable/elixir/Enumerable.html) (protocols in Elixir are based on Clojure's protocol). This is extremely convenient because the developer needs to know only the `Enum` API for enumeration, instead of memorizing specific APIs for sets, lists, dicts, etc. +Not only that, any developer can **extend** the `Enum` module to work with any data type as long as the data type implements [the `Enumerable` protocol](https://hexdocs.pm/elixir/Enumerable.html) (protocols in Elixir are based on Clojure's protocol). This is extremely convenient because the developer needs to know only the `Enum` API for enumeration, instead of memorizing specific APIs for sets, lists, dicts, etc. -There are many other protocols exposed by the language, like [the `Inspect` protocol](/docs/stable/elixir/Inspect.html) for pretty printing data structures and [the `Access` protocol](/docs/stable/elixir/Access.html) for accessing key-value data by key. By being extensible, Elixir ensures developers can work **with** the language, instead of **against** the language. +There are many other protocols exposed by the language, like [the `Inspect` protocol](https://hexdocs.pm/elixir/Inspect.html) for pretty printing data structures and [the `Access` protocol](https://hexdocs.pm/elixir/Access.html) for accessing key-value data by key. By being extensible, Elixir ensures developers can work **with** the language, instead of **against** the language. ## Summing up diff --git a/_posts/2013-11-05-elixir-v0-11-0-released.markdown b/_posts/2013-11-05-elixir-v0-11-0-released.markdown index d139d9a46..80e3bb825 100644 --- a/_posts/2013-11-05-elixir-v0-11-0-released.markdown +++ b/_posts/2013-11-05-elixir-v0-11-0-released.markdown @@ -22,7 +22,7 @@ In this new release, IEx also supports a very simple debugging mechanism called ![IEx pry example](/images/contents/iex-pry.png) -In Elixir, your code runs in many processes that talk to each other and the Elixir shell is no different. `IEx.pry` allows another process to take over the shell, allowing the developer to inspect the binding and halt the execution of the process being "pried" (i.e. the one that invoked `IEx.pry`). We called this feature `pry` as a gentle reminder that you can only inspect existing information, you cannot change the binding over a pried process. For more information, check the docs for [`IEx.pry/1`](/docs/stable/iex/IEx.html#pry/1). +In Elixir, your code runs in many processes that talk to each other and the Elixir shell is no different. `IEx.pry` allows another process to take over the shell, allowing the developer to inspect the binding and halt the execution of the process being "pried" (i.e. the one that invoked `IEx.pry`). We called this feature `pry` as a gentle reminder that you can only inspect existing information, you cannot change the binding over a pried process. For more information, check the docs for [`IEx.pry/1`](https://hexdocs.pm/iex/IEx.html#pry/1). ## ExUnit @@ -59,9 +59,9 @@ fun.(1..3) #=> true ``` -You can learn more about the [new capture operator in our docs](/docs/stable/elixir/Kernel.SpecialForms.html#&/1). +You can learn more about the [new capture operator in our docs](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#&/1). -We have also pushed improvements to [the String module](/docs/stable/elixir/String.html), including new APIs. In particular, in order to know that `String.length("josé")` has length 4 (even though it takes 5 bytes to be represented in UTF-8), we need to use some algorithms defined by the Unicode Standard. These have been implemented as specified in the [extended grapheme cluster algorithm, defined in the version 6.3.0 of the Unicode Standard](http://www.unicode.org/reports/tr29/). +We have also pushed improvements to [the String module](https://hexdocs.pm/elixir/String.html), including new APIs. In particular, in order to know that `String.length("josé")` has length 4 (even though it takes 5 bytes to be represented in UTF-8), we need to use some algorithms defined by the Unicode Standard. These have been implemented as specified in the [extended grapheme cluster algorithm, defined in the version 6.3.0 of the Unicode Standard](http://www.unicode.org/reports/tr29/). In the optimization front, we have pushed the first iteration of a [feature called Protocol consolidation](https://groups.google.com/forum/#!topic/elixir-lang-core/RoXAUtoyjk4), which speeds up the polymorphic dispatch done by protocols, sometimes reducing the dispatching time to 10% of the original time. We will continue working in upcoming releases to integrate protocol consolidation as a regular part of the developer workflow. diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index e441e4e63..554029398 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -30,11 +30,11 @@ In a nutshell, here is what new: * The [Getting Started guide](/getting-started/introduction.html) was rewritten from scratch. The previous guide was comprised of 7 chapters and was about to become 2 years old. The new guide features 20 chapters, it explores the new maps and structs (which are part of this release), and it goes deeper into topics like IO and File handling. It also includes an extra guide, still in development, about [Meta-Programming in Elixir](/getting-started/meta/quote-and-unquote.html); -* Elixir v0.13 provides a new comprehension syntax that not only works with lists, but with any [`Enumerable`](/docs/stable/elixir/Enumerable.html). The output of a comprehension is also extensible via the [`Collectable`](/docs/stable/elixir/Collectable.html) protocol; +* Elixir v0.13 provides a new comprehension syntax that not only works with lists, but with any [`Enumerable`](https://hexdocs.pm/elixir/Enumerable.html). The output of a comprehension is also extensible via the [`Collectable`](https://hexdocs.pm/elixir/Collectable.html) protocol; * Mix, Elixir's build tool, has been improved in order to provide better workflows when compiling projects and working with dependencies; -* There are many other changes, like the addition of [StringIO](/docs/stable/elixir/StringIO.html), support for [tags and filters in ExUnit](/docs/stable/ex_unit/ExUnit.Case.html) and more. Please check the [CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.13.0/CHANGELOG.md) for the complete list. +* There are many other changes, like the addition of [StringIO](https://hexdocs.pm/elixir/StringIO.html), support for [tags and filters in ExUnit](https://hexdocs.pm/ex_unit/ExUnit.Case.html) and more. Please check the [CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.13.0/CHANGELOG.md) for the complete list. Even with all those improvements, Elixir v0.13.0 is backwards compatible with Elixir v0.12.5 and upgrading should be a clean process. @@ -68,7 +68,7 @@ iex> %{"other" => value} = map A map pattern will match any map that has all the keys specified in the pattern. The values for the matching keys must also match. For example, `%{"hello" => world}` will match any map that has the key `"hello"` and assign the value to `world`, while `%{"hello" => "world"}` will match any map that has the key `"hello"` with value equals to `"world"`. An empty map pattern (`%{}`) will match all maps. -Developers can use the functions in the [`Map` module](/docs/stable/elixir/Map.html) to work with maps. For more information on maps and how they compare to other associative data structures in the language, please check the [Maps chapter in our new Getting Started guide](/getting-started/keywords-and-maps.html). Elixir Sips has also released two episodes that cover maps ([part 1](http://elixirsips.com/episodes/054_maps_part_1.html) and [part 2](http://elixirsips.com/episodes/055_maps_part_2.html)). +Developers can use the functions in the [`Map` module](https://hexdocs.pm/elixir/Map.html) to work with maps. For more information on maps and how they compare to other associative data structures in the language, please check the [Maps chapter in our new Getting Started guide](/getting-started/keywords-and-maps.html). Elixir Sips has also released two episodes that cover maps ([part 1](http://elixirsips.com/episodes/054_maps_part_1.html) and [part 2](http://elixirsips.com/episodes/055_maps_part_2.html)). Maps also provide special syntax for creating, accessing and updating maps with atom keys: @@ -185,7 +185,7 @@ For more information on structs, check out the [Structs chapter in the getting s With the introduction of maps and structs, some deprecations will arrive on upcoming releases. First of all, the `ListDict` data structure is being deprecated and phased out. Records are also being deprecated from the language, although it is going to be a longer process, as many projects and Elixir itself still use records in diverse occasions. -Note though only Elixir records are being deprecated. Erlang records, which are basically syntax sugar around tuples, will remain in the language for the rare cases Elixir developers need to interact with Erlang libraries that provide records. In particular, the [Record](/docs/stable/elixir/Record.html) has been updated to provide the new Record API (while keeping the old one for backwards compatibility). +Note though only Elixir records are being deprecated. Erlang records, which are basically syntax sugar around tuples, will remain in the language for the rare cases Elixir developers need to interact with Erlang libraries that provide records. In particular, the [Record](https://hexdocs.pm/elixir/Record.html) has been updated to provide the new Record API (while keeping the old one for backwards compatibility). Finally, structs are still in active development and new features, like `@derive`, should land in upcoming Elixir releases. For those interested, the [original maps and structs proposal is still availble](https://gist.github.com/josevalim/b30c881df36801611d13). @@ -222,7 +222,7 @@ iex> for <>, c != ?\s, into: "", do: <> "helloworld" ``` -Sets, maps and other dictionaries can also be given with the `:into` option. In general, the `:into` accepts any structure as long as it implements the [`Collectable` protocol](/docs/stable/elixir/Collectable.html). +Sets, maps and other dictionaries can also be given with the `:into` option. In general, the `:into` accepts any structure as long as it implements the [`Collectable` protocol](https://hexdocs.pm/elixir/Collectable.html). For example, the `IO` module provides streams, that are both `Enumerable` and `Collectable`. You can implement an echo terminal that returns whatever is typed into the shell, but in upcase, using comprehensions: @@ -275,7 +275,7 @@ That said, in the next months we plan to: * Integrate applications configuration (provided by OTP) right into Mix; * Provide an Elixir logger that knows how to print and format Elixir exceptions and stacktraces; -* Properly expose the functionality provided by Applications, Supervisors, GenServers and GenEvents and study how they can integrate with Elixir. For example, how to consume events from GenEvent as a [stream of data](/docs/stable/elixir/Stream.html)? +* Properly expose the functionality provided by Applications, Supervisors, GenServers and GenEvents and study how they can integrate with Elixir. For example, how to consume events from GenEvent as a [stream of data](https://hexdocs.pm/elixir/Stream.html)? * Study how patterns like tasks and agents can be integrated into the language, often picking up the lessons learned by libraries like [e2](http://e2project.org/erlang.html) and [functionality exposed by OTP itself](http://www.erlang.org/doc/man/rpc.html); * Rewrite the Mix and ExUnit guides to focus on applications and OTP as a whole, rebranding it to "Building Apps with Mix and OTP"; diff --git a/_posts/2014-06-17-elixir-v0-14-0-released.markdown b/_posts/2014-06-17-elixir-v0-14-0-released.markdown index c268a3756..b1955d87b 100644 --- a/_posts/2014-06-17-elixir-v0-14-0-released.markdown +++ b/_posts/2014-06-17-elixir-v0-14-0-released.markdown @@ -40,7 +40,7 @@ Structs allow us to provide default values for a map fields. Structs also valida #=> ** (CompileError) iex:2: unknown key :unknown for struct User ``` -We say structs are *raw* because they do not implement any of the protocols that are implemented for maps by default. For instance, we can call `Enum.each/2` for a map, which uses the [`Enumerable`](/docs/stable/elixir/Enumerable.html) protocol: +We say structs are *raw* because they do not implement any of the protocols that are implemented for maps by default. For instance, we can call `Enum.each/2` for a map, which uses the [`Enumerable`](https://hexdocs.pm/elixir/Enumerable.html) protocol: ```elixir Enum.each %{foo: :bar}, fn {k, v} -> @@ -134,15 +134,15 @@ update_in dungeon.rooms[room_id].users[user_id].device_codes, &Set.delete(&1, co put_in dungeon, [:rooms, room_id, :users, user_id, :username], "new username" ``` -You can read more information about nested access in [the Access protocol documentation](/docs/stable/elixir/Access.html) and in the docs for [`get_in/2`](/docs/stable/elixir/Kernel.html#get_in/2) and friends. +You can read more information about nested access in [the Access protocol documentation](https://hexdocs.pm/elixir/Access.html) and in the docs for [`get_in/2`](https://hexdocs.pm/elixir/Kernel.html#get_in/2) and friends. ## Mix and OTP OTP is a set of libraries that ships with Erlang. Erlang developers use OTP to build robust, fault-tolerant applications. -In v0.14.0, Elixir closely integrates with OTP by providing modules for building [servers](/docs/stable/elixir/GenServer.html), [supervisors](/docs/stable/elixir/Supervisor.html) and [applications](/docs/stable/elixir/Application.html). +In v0.14.0, Elixir closely integrates with OTP by providing modules for building [servers](https://hexdocs.pm/elixir/GenServer.html), [supervisors](https://hexdocs.pm/elixir/Supervisor.html) and [applications](https://hexdocs.pm/elixir/Application.html). -We have also introduced the concepts of [agents](/docs/stable/elixir/Agent.html) and the idea of [tasks](/docs/stable/elixir/Task.html), which can be supervised and distributed. Application configuration has been made first class in Mix, allowing developers to configure their dependencies, sometimes even using different configurations per environment (dev, test or prod by default). +We have also introduced the concepts of [agents](https://hexdocs.pm/elixir/Agent.html) and the idea of [tasks](https://hexdocs.pm/elixir/Task.html), which can be supervised and distributed. Application configuration has been made first class in Mix, allowing developers to configure their dependencies, sometimes even using different configurations per environment (dev, test or prod by default). This functionality is at the core of building applications in Erlang and Elixir. For this reason we have published a new guide called [Mix and OTP](/getting-started/mix-otp/introduction-to-mix.html) where we build a distributed key-value store to help explore all concepts mentioned above. The guide is quite fresh, so please do submit pull requests for typos and mistakes. Feedback is also welcome! @@ -154,7 +154,7 @@ With v0.14.0 we have reached many of the milestones [we have set in the previous * Provide an Elixir logger that knows how to print and format Elixir exceptions and stacktraces. Work has already started on this front as Elixir already prints errors coming from the application startup nicely; -* Continue the work of cleaning up the [Kernel module](/docs/stable/elixir/Kernel.html). In v0.14.0, we added alternatives for conversion functions, like `integer_to_binary/1` to `Integer.to_string/1`, now they must be properly deprecated and removed; +* Continue the work of cleaning up the [Kernel module](https://hexdocs.pm/elixir/Kernel.html). In v0.14.0, we added alternatives for conversion functions, like `integer_to_binary/1` to `Integer.to_string/1`, now they must be properly deprecated and removed; * Support mix aliases, allowing developers to easily define Mix shortcuts for their favorite tasks; diff --git a/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown index 4d1674b23..dee1c607e 100644 --- a/_posts/2014-08-07-elixir-v0-15-0-released.markdown +++ b/_posts/2014-08-07-elixir-v0-15-0-released.markdown @@ -16,7 +16,7 @@ If you are interested in the specific details for this release, [please check ou ## Logger -Elixir now ships with a new application called logger. This application provides [the Logger module](/docs/stable/logger/Logger.html), which is the main API developers will use for logging: +Elixir now ships with a new application called logger. This application provides [the Logger module](https://hexdocs.pm/logger/Logger.html), which is the main API developers will use for logging: ```elixir require Logger @@ -70,7 +70,7 @@ Function: #Function<20.90072148/0 in :erl_eval.expr/5> As soon as we started working on Logger, we realized we could go further than simply translating Erlang messages and provide a fully featured logger library. At this moment, Logger also supports: * 4 log levels: debug, info, warn and error - * Custom formatting: you can specify a format string that tells exactly how messages should be logged. The default string is: "$time $metadata[$level] $message\n" but [many attributes are supported](/docs/stable/logger/Logger.Formatter.html) + * Custom formatting: you can specify a format string that tells exactly how messages should be logged. The default string is: "$time $metadata[$level] $message\n" but [many attributes are supported](https://hexdocs.pm/logger/Logger.Formatter.html) * Custom translators: so you can translate log messages coming from any Erlang application into Elixir syntax * Metadata: metadata allows developers to store information in the current process that will be available to all logged messages. For example, a web application can generate a `request_id`, store it as metadata, and all messages logged during that request will be properly identified with `request_id=...` in the log @@ -136,7 +136,7 @@ In other words, aliases can be three different structures: 2. An anonymous function (that is invoked passing the task arguments) 3. A list containing strings or anonymous functions -You can find more information about aliases by reading the [Mix documentation](/docs/stable/mix/) (there is a section about Aliases around the middle). +You can find more information about aliases by reading the [Mix documentation](https://hexdocs.pm/mix/) (there is a section about Aliases around the middle). We also would like to thank [Anthony Grimes](https://github.com/raynes) for the support and [Phil Halgelberg](https://github.com/technomancy) for [the work on Lein](https://github.com/technomancy/leiningen) which Mix borrows a lot from. diff --git a/_posts/2014-09-18-elixir-v1-0-0-released.markdown b/_posts/2014-09-18-elixir-v1-0-0-released.markdown index 334c5d407..c1499fa2b 100644 --- a/_posts/2014-09-18-elixir-v1-0-0-released.markdown +++ b/_posts/2014-09-18-elixir-v1-0-0-released.markdown @@ -22,12 +22,12 @@ Elixir will follow [semantic versioning](http://semver.org), which means code wr Elixir is composed of 6 applications, all under the same versioning constraints: - * [Elixir](/docs/stable/elixir/) - the Elixir compiler, runtime and the standard library - * [EEx](/docs/stable/eex/) - Elixir's templating library, useful for generating any kind of document dynamically - * [ExUnit](/docs/stable/ex_unit/) - Elixir's unit test library, with support for concurrent testing, custom formatters, filters and much more - * [IEx](/docs/stable/iex/) - Elixir's interactive shell with code reloading, auto-complete, and easy access to documentation, typespecs and more - * [Logger](/docs/stable/logger/) - the latest addition to the group, Logger provides reliable logging and configurable backends (with syslog, file and many other backends provided by the community) - * [Mix](/docs/stable/mix/) - Elixir's build tool that generates, compiles and tests projects as well as manages your dependencies + * [Elixir](https://hexdocs.pm/elixir/) - the Elixir compiler, runtime and the standard library + * [EEx](https://hexdocs.pm/eex/) - Elixir's templating library, useful for generating any kind of document dynamically + * [ExUnit](https://hexdocs.pm/ex_unit/) - Elixir's unit test library, with support for concurrent testing, custom formatters, filters and much more + * [IEx](https://hexdocs.pm/iex/) - Elixir's interactive shell with code reloading, auto-complete, and easy access to documentation, typespecs and more + * [Logger](https://hexdocs.pm/logger/) - the latest addition to the group, Logger provides reliable logging and configurable backends (with syslog, file and many other backends provided by the community) + * [Mix](https://hexdocs.pm/mix/) - Elixir's build tool that generates, compiles and tests projects as well as manages your dependencies With v1.0, we are providing a stable platform for the community to leverage and extend, and we are extremely excited with the projects and possibilities that are ahead of us! diff --git a/_posts/2015-09-28-elixir-v1-1-0-released.markdown b/_posts/2015-09-28-elixir-v1-1-0-released.markdown index 6c17cba0b..e5f85c7a5 100644 --- a/_posts/2015-09-28-elixir-v1-1-0-released.markdown +++ b/_posts/2015-09-28-elixir-v1-1-0-released.markdown @@ -20,7 +20,7 @@ Mix also provides faster re-compilation times. Every time you compile your Elixi We have also seen great progress on areas that go beyond the source code. In particular, we have added a [CODE\_OF\_CONDUCT.md](https://github.com/elixir-lang/elixir/blob/v1.1/CODE_OF_CONDUCT.md) to guarantee our community continues to grow into a safe and welcoming place for everyone. -We have also released a new ExDoc version. It provides a [beautiful, clean and readable way to navigate the Elixir documentation](http://elixir-lang.org/docs/v1.1/elixir) and it is available to any Elixir project. The latest version includes initial support for User Guides and we have more features and improvements coming on the way. +We have also released a new ExDoc version. It provides a [beautiful, clean and readable way to navigate the Elixir documentation](https://hexdocs.pm/elixir/1.1.0) and it is available to any Elixir project. The latest version includes initial support for User Guides and we have more features and improvements coming on the way. The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.1.0). Don't forget to check [the Install section](/install.html) to get Elixir installed. diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index a2793bdb8..5636fb1f9 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -45,7 +45,7 @@ File.stream!("path/to/some/file") |> Enum.to_list() ``` -By using `File.stream!` and `Stream.flat_map`, we build a lazy computation that will emit a single line, break that line into words, and emit such words one by one without building huge lists in memory when enumerated. The functions in the [Stream module](http://elixir-lang.org/docs/stable/elixir/Stream.html) just express the computation we want to perform. The computation itself, like traversing the file or breaking into words in `flat_map`, only happens when we call a function in the `Enum` module. We have covered [the foundation for Enum and Streams](http://blog.plataformatec.com.br/2015/05/introducing-reducees/) in another article. +By using `File.stream!` and `Stream.flat_map`, we build a lazy computation that will emit a single line, break that line into words, and emit such words one by one without building huge lists in memory when enumerated. The functions in the [Stream module](https://hexdocs.pm/elixir/Stream.html) just express the computation we want to perform. The computation itself, like traversing the file or breaking into words in `flat_map`, only happens when we call a function in the `Enum` module. We have covered [the foundation for Enum and Streams](http://blog.plataformatec.com.br/2015/05/introducing-reducees/) in another article. The solution above allows us to work with large datasets without loading them all into memory. For large files, it is going to provide much better performance than the eager version. However, the solution above still does not leverage concurrency. For a machine with more than one core, which is the huge majority of machines we have available today, it is a suboptimal solution. @@ -204,7 +204,7 @@ During the Elixir London Meetup, I have live-coded a short example that shows ho ### GenStage for event dispatching -Another scenario where GenStage can be useful today is to replace cases where developers would have used [GenEvent](http://elixir-lang.org/docs/stable/elixir/GenEvent.html) in the past. For those unfamiliar with GenEvent, it is a behaviour where events are sent to an "event manager" which then proceeds to invoke "event handlers" for each event. GenEvent, however, has one big flaw: the event manager and all event handlers run in the same process. This means GenEvent handlers cannot easily leverage concurrency without forcing developers to implement those mechanisms themselves. Furthermore, GenEvent handlers have very awkward error semantics. Because event handlers are not separate processes, we cannot simply rely on supervisors restarting them. +Another scenario where GenStage can be useful today is to replace cases where developers would have used [GenEvent](https://hexdocs.pm/elixir/GenEvent.html) in the past. For those unfamiliar with GenEvent, it is a behaviour where events are sent to an "event manager" which then proceeds to invoke "event handlers" for each event. GenEvent, however, has one big flaw: the event manager and all event handlers run in the same process. This means GenEvent handlers cannot easily leverage concurrency without forcing developers to implement those mechanisms themselves. Furthermore, GenEvent handlers have very awkward error semantics. Because event handlers are not separate processes, we cannot simply rely on supervisors restarting them. GenStage solves those problems by having a producer as the event manager. The producer itself should be configured to use [`GenStage.BroadcastDispatcher`](https://hexdocs.pm/gen_stage/Experimental.GenStage.BroadcastDispatcher.html) as its dispatcher. The broadcast dispatcher will guarantee events are dispatched to all consumers in a way that does not exceed the demand of any of the consumers. This allows us to leverage concurrency and having the "event manager" as a producer gives us much more flexibility in terms of buffering and reacting to failures. diff --git a/docs.markdown b/docs.markdown index b70f675d8..532c3f17f 100644 --- a/docs.markdown +++ b/docs.markdown @@ -10,45 +10,45 @@ Choose which version you want documentation for. #### Stable -* [Elixir](/docs/stable/elixir/) - standard library -* [EEx](/docs/stable/eex/) - templating library -* [ExUnit](/docs/stable/ex_unit/) - unit test library -* [IEx](/docs/stable/iex/) - interactive shell -* [Logger](/docs/stable/logger/) - built-in Logger -* [Mix](/docs/stable/mix/) - build tool +* [Elixir](https://hexdocs.pm/elixir/) - standard library +* [EEx](https://hexdocs.pm/eex/) - templating library +* [ExUnit](https://hexdocs.pm/ex_unit/) - unit test library +* [IEx](https://hexdocs.pm/iex/) - interactive shell +* [Logger](https://hexdocs.pm/logger/) - built-in Logger +* [Mix](https://hexdocs.pm/mix/) - build tool #### Master -* [Elixir](/docs/master/elixir/) - standard library -* [EEx](/docs/master/eex/) - templating library -* [ExUnit](/docs/master/ex_unit/) - unit test library -* [IEx](/docs/master/iex/) - interactive shell -* [Logger](/docs/master/logger/) - built-in Logger -* [Mix](/docs/master/mix/) - build tool +* [Elixir](https://hexdocs.pm/elixir/master/) - standard library +* [EEx](https://hexdocs.pm/eex/master/) - templating library +* [ExUnit](https://hexdocs.pm/ex_unit/master/) - unit test library +* [IEx](https://hexdocs.pm/iex/master/) - interactive shell +* [Logger](https://hexdocs.pm/logger/master/) - built-in Logger +* [Mix](https://hexdocs.pm/mix/master/) - build tool -

        v1.3 (download)

        +

        v1.3 (download)

        -* [Elixir](/docs/v1.3/elixir/) - standard library -* [EEx](/docs/v1.3/eex/) - templating library -* [ExUnit](/docs/v1.3/ex_unit/) - unit test library -* [IEx](/docs/v1.3/iex/) - interactive shell -* [Logger](/docs/v1.3/logger/) - built-in Logger -* [Mix](/docs/v1.3/mix/) - build tool +* [Elixir](https://hexdocs.pm/elixir/1.3.3/) - standard library +* [EEx](https://hexdocs.pm/eex/1.3.3/) - templating library +* [ExUnit](https://hexdocs.pm/ex_unit/1.3.3/) - unit test library +* [IEx](https://hexdocs.pm/iex/1.3.3/) - interactive shell +* [Logger](https://hexdocs.pm/logger/1.3.3/) - built-in Logger +* [Mix](https://hexdocs.pm/mix/1.3.3/) - build tool

        v1.2 (download)

        -* [Elixir](/docs/v1.2/elixir/) - standard library -* [EEx](/docs/v1.2/eex/) - templating library -* [ExUnit](/docs/v1.2/ex_unit/) - unit test library -* [IEx](/docs/v1.2/iex/) - interactive shell -* [Logger](/docs/v1.2/logger/) - built-in Logger -* [Mix](/docs/v1.2/mix/) - build tool +* [Elixir](https://hexdocs.pm/elixir/1.2.6/) - standard library +* [EEx](https://hexdocs.pm/eex/1.2.6/) - templating library +* [ExUnit](https://hexdocs.pm/ex_unit/1.2.6/) - unit test library +* [IEx](https://hexdocs.pm/iex/1.2.6/) - interactive shell +* [Logger](https://hexdocs.pm/logger/1.2.6/) - built-in Logger +* [Mix](https://hexdocs.pm/mix/1.2.6/) - build tool

        v1.1 (download)

        -* [Elixir](/docs/v1.1/elixir/) - standard library -* [EEx](/docs/v1.1/eex/) - templating library -* [ExUnit](/docs/v1.1/ex_unit/) - unit test library -* [IEx](/docs/v1.1/iex/) - interactive shell -* [Logger](/docs/v1.1/logger/) - built-in Logger -* [Mix](/docs/v1.1/mix/) - build tool +* [Elixir](https://hexdocs.pm/elixir/1.1.1/) - standard library +* [EEx](https://hexdocs.pm/eex/1.1.1/) - templating library +* [ExUnit](https://hexdocs.pm/ex_unit/1.1.1/) - unit test library +* [IEx](https://hexdocs.pm/iex/1.1.1/) - interactive shell +* [Logger](https://hexdocs.pm/logger/1.1.1/) - built-in Logger +* [Mix](https://hexdocs.pm/mix/1.1.1/) - build tool diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 42eebe1f9..31daa367d 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -185,7 +185,7 @@ iex> String.length("hellö") 5 ``` -The [String module](/docs/stable/elixir/String.html) contains a bunch of functions that operate on strings as defined in the Unicode standard: +The [String module](https://hexdocs.pm/elixir/String.html) contains a bunch of functions that operate on strings as defined in the Unicode standard: ```iex iex> String.upcase("hellö") @@ -233,7 +233,7 @@ iex> x 42 ``` -The capture syntax [`&()`](/docs/stable/elixir/Kernel.SpecialForms.html) can also be used for creating anonymous functions. This type of syntax will be discussed in [Chapter 8](/getting-started/modules.html). +The capture syntax [`&()`](https://hexdocs.pm/elixir/Kernel.SpecialForms.html) can also be used for creating anonymous functions. This type of syntax will be discussed in [Chapter 8](/getting-started/modules.html). ## (Linked) Lists diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index bddaa0bdb..83b450c23 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -50,7 +50,7 @@ iex> ?ł 322 ``` -You can also use the functions in [the `String` module](/docs/stable/elixir/String.html) to split a string in its individual characters, each one as a string of length 1: +You can also use the functions in [the `String` module](https://hexdocs.pm/elixir/String.html) to split a string in its individual characters, each one as a string of length 1: ```iex iex> String.codepoints("hełło") @@ -161,7 +161,7 @@ iex> rest "llo" ``` -A complete reference about the binary / bitstring constructor `<<>>` can be found [in the Elixir documentation](http://elixir-lang.org/docs/stable/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1). This concludes our tour of bitstrings, binaries and strings. A string is a UTF-8 encoded binary and a binary is a bitstring where the number of bits is divisible by 8. Although this shows the flexibility Elixir provides for working with bits and bytes, 99% of the time you will be working with binaries and using the `is_binary/1` and `byte_size/1` functions. +A complete reference about the binary / bitstring constructor `<<>>` can be found [in the Elixir documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1). This concludes our tour of bitstrings, binaries and strings. A string is a UTF-8 encoded binary and a binary is a bitstring where the number of bits is divisible by 8. Although this shows the flexibility Elixir provides for working with bits and bytes, 99% of the time you will be working with binaries and using the `is_binary/1` and `byte_size/1` functions. ## Char lists diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index baf52adfb..a0585398c 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -219,7 +219,7 @@ iex> if nil do "This will" ``` -> Note: An interesting note regarding `if/2` and `unless/2` is that they are implemented as macros in the language; they aren't special language constructs as they would be in many languages. You can check the documentation and the source of `if/2` in [the `Kernel` module docs](/docs/stable/elixir/Kernel.html). The `Kernel` module is also where operators like `+/2` and functions like `is_function/2` are defined, all automatically imported and available in your code by default. +> Note: An interesting note regarding `if/2` and `unless/2` is that they are implemented as macros in the language; they aren't special language constructs as they would be in many languages. You can check the documentation and the source of `if/2` in [the `Kernel` module docs](https://hexdocs.pm/elixir/Kernel.html). The `Kernel` module is also where operators like `+/2` and functions like `is_function/2` are defined, all automatically imported and available in your code by default. ## `do/end` blocks diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index cb7caf087..608e7fe32 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -9,7 +9,7 @@ title: Enumerables and Streams ## Enumerables -Elixir provides the concept of enumerables and [the `Enum` module](/docs/stable/elixir/Enum.html) to work with them. We have already learned two enumerables: lists and maps. +Elixir provides the concept of enumerables and [the `Enum` module](https://hexdocs.pm/elixir/Enum.html) to work with them. We have already learned two enumerables: lists and maps. ```iex iex> Enum.map([1, 2, 3], fn x -> x * 2 end) @@ -29,9 +29,9 @@ iex> Enum.reduce(1..3, 0, &+/2) 6 ``` -The functions in the Enum module are limited to, as the name says, enumerating values in data structures. For specific operations, like inserting and updating particular elements, you may need to reach for modules specific to the data type. For example, if you want to insert an element at a given position in a list, you should use the `List.insert_at/3` function from [the `List` module](/docs/stable/elixir/List.html), as it would make little sense to insert a value into, for example, a range. +The functions in the Enum module are limited to, as the name says, enumerating values in data structures. For specific operations, like inserting and updating particular elements, you may need to reach for modules specific to the data type. For example, if you want to insert an element at a given position in a list, you should use the `List.insert_at/3` function from [the `List` module](https://hexdocs.pm/elixir/List.html), as it would make little sense to insert a value into, for example, a range. -We say the functions in the `Enum` module are polymorphic because they can work with diverse data types. In particular, the functions in the `Enum` module can work with any data type that implements [the `Enumerable` protocol](/docs/stable/elixir/Enumerable.html). We are going to discuss Protocols in a later chapter; for now we are going to move on to a specific kind of enumerable called a stream. +We say the functions in the `Enum` module are polymorphic because they can work with diverse data types. In particular, the functions in the `Enum` module can work with any data type that implements [the `Enumerable` protocol](https://hexdocs.pm/elixir/Enumerable.html). We are going to discuss Protocols in a later chapter; for now we are going to move on to a specific kind of enumerable called a stream. ## Eager vs Lazy @@ -62,11 +62,11 @@ iex> Enum.sum(Enum.filter(Enum.map(1..100_000, &(&1 * 3)), odd?)) 7500000000 ``` -Find more about the pipe operator [by reading its documentation](/docs/stable/elixir/Kernel.html#%7C%3E/2). +Find more about the pipe operator [by reading its documentation](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2). ## Streams -As an alternative to `Enum`, Elixir provides [the `Stream` module](/docs/stable/elixir/Stream.html) which supports lazy operations: +As an alternative to `Enum`, Elixir provides [the `Stream` module](https://hexdocs.pm/elixir/Stream.html) which supports lazy operations: ```iex iex> 1..100_000 |> Stream.map(&(&1 * 3)) |> Stream.filter(odd?) |> Enum.sum @@ -119,6 +119,6 @@ iex> Enum.take(stream, 10) The example above will fetch the first 10 lines of the file you have selected. This means streams can be very useful for handling large files or even slow resources like network resources. -The amount of functionality in the [`Enum`](/docs/stable/elixir/Enum.html) and [`Stream`](/docs/stable/elixir/Stream.html) modules can be daunting at first, but you will get familiar with them case by case. In particular, focus on the `Enum` module first and only move to `Stream` for the particular scenarios where laziness is required, to either deal with slow resources or large, possibly infinite, collections. +The amount of functionality in the [`Enum`](https://hexdocs.pm/elixir/Enum.html) and [`Stream`](https://hexdocs.pm/elixir/Stream.html) modules can be daunting at first, but you will get familiar with them case by case. In particular, focus on the `Enum` module first and only move to `Stream` for the particular scenarios where laziness is required, to either deal with slow resources or large, possibly infinite, collections. Next we'll look at a feature central to Elixir, Processes, which allows us to write concurrent, parallel and distributed programs in an easy and understandable way. diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index e4296d3e0..8abab42aa 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -7,7 +7,7 @@ title: IO and the file system {% include toc.html %} -This chapter is a quick introduction to input/output mechanisms and file-system-related tasks, as well as to related modules like [`IO`](/docs/stable/elixir/IO.html), [`File`](/docs/stable/elixir/File.html) and [`Path`](/docs/stable/elixir/Path.html). +This chapter is a quick introduction to input/output mechanisms and file-system-related tasks, as well as to related modules like [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html) and [`Path`](https://hexdocs.pm/elixir/Path.html). We had originally sketched this chapter to come much earlier in the getting started guide. However, we noticed the IO system provides a great opportunity to shed some light on some philosophies and curiosities of Elixir and the VM. @@ -34,7 +34,7 @@ hello world ## The `File` module -The [`File`](/docs/stable/elixir/File.html) module contains functions that allow us to open files as IO devices. By default, files are opened in binary mode, which requires developers to use the specific `IO.binread/2` and `IO.binwrite/2` functions from the `IO` module: +The [`File`](https://hexdocs.pm/elixir/File.html) module contains functions that allow us to open files as IO devices. By default, files are opened in binary mode, which requires developers to use the specific `IO.binread/2` and `IO.binwrite/2` functions from the `IO` module: ```iex iex> {:ok, file} = File.open "hello", [:write] @@ -85,7 +85,7 @@ Therefore, if you don't want to handle the error outcomes, prefer using `File.re ## The `Path` module -The majority of the functions in the `File` module expect paths as arguments. Most commonly, those paths will be regular binaries. The [`Path`](/docs/stable/elixir/Path.html) module provides facilities for working with such paths: +The majority of the functions in the `File` module expect paths as arguments. Most commonly, those paths will be regular binaries. The [`Path`](https://hexdocs.pm/elixir/Path.html) module provides facilities for working with such paths: ```iex iex> Path.join("foo", "bar") @@ -121,7 +121,7 @@ iex> IO.write(pid, "hello") After `IO.write/2`, we can see the request sent by the `IO` module (a four-elements tuple) printed out. Soon after that, we see that it fails since the `IO` module expected some kind of result that we did not supply. -The [`StringIO`](/docs/stable/elixir/StringIO.html) module provides an implementation of the `IO` device messages on top of strings: +The [`StringIO`](https://hexdocs.pm/elixir/StringIO.html) module provides an implementation of the `IO` device messages on top of strings: ```iex iex> {:ok, pid} = StringIO.open("hello") @@ -166,4 +166,4 @@ On the other hand, `:stdio` and files opened with `:utf8` encoding work with the Although this is a subtle difference, you only need to worry about these details if you intend to pass lists to those functions. Binaries are already represented by the underlying bytes and as such their representation is always "raw". -This finishes our tour of IO devices and IO related functionality. We have learned about four Elixir modules - [`IO`](/docs/stable/elixir/IO.html), [`File`](/docs/stable/elixir/File.html), [`Path`](/docs/stable/elixir/Path.html) and [`StringIO`](/docs/stable/elixir/StringIO.html) - as well as how the VM uses processes for the underlying IO mechanisms and how to use `chardata` and `iodata` for IO operations. +This finishes our tour of IO devices and IO related functionality. We have learned about four Elixir modules - [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html), [`Path`](https://hexdocs.pm/elixir/Path.html) and [`StringIO`](https://hexdocs.pm/elixir/StringIO.html) - as well as how the VM uses processes for the underlying IO mechanisms and how to use `chardata` and `iodata` for IO operations. diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 4463b67a9..df389346e 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -92,7 +92,7 @@ iex> [b: b, a: a] = [a: 1, b: 2] ** (MatchError) no match of right hand side value: [a: 1, b: 2] ``` -In order to manipulate keyword lists, Elixir provides [the `Keyword` module](/docs/stable/elixir/Keyword.html). Remember, though, keyword lists are simply lists, and as such they provide the same linear performance characteristics as lists. The longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly for passing optional values. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. +In order to manipulate keyword lists, Elixir provides [the `Keyword` module](https://hexdocs.pm/elixir/Keyword.html). Remember, though, keyword lists are simply lists, and as such they provide the same linear performance characteristics as lists. The longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly for passing optional values. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. ## Maps @@ -142,7 +142,7 @@ iex> %{^n => :one} = %{1 => :one, 2 => :two, 3 => :three} %{1 => :one, 2 => :two, 3 => :three} ``` -[The `Map` module](/docs/stable/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to manipulate maps: +[The `Map` module](https://hexdocs.pm/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to manipulate maps: ```iex iex> Map.get(%{:a => 1, 2 => :b}, :a) @@ -179,7 +179,7 @@ Both access and update syntaxes above require the given keys to exist. For examp Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post](http://blog.plataformatec.com.br/2014/09/writing-assertive-code-with-elixir/) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. -> Note: Maps were recently introduced into the Erlang VM and only from Elixir v1.2 they are capable of holding millions of keys efficiently. Therefore, if you are working with previous Elixir versions (v1.0 or v1.1) and you need to support at least hundreds of keys, you may consider using [the `HashDict` module](/docs/stable/elixir/HashDict.html). +> Note: Maps were recently introduced into the Erlang VM and only from Elixir v1.2 they are capable of holding millions of keys efficiently. Therefore, if you are working with previous Elixir versions (v1.0 or v1.1) and you need to support at least hundreds of keys, you may consider using [the `HashDict` module](https://hexdocs.pm/elixir/HashDict.html). ## Nested data structures @@ -219,6 +219,6 @@ iex> users = update_in users[:mary].languages, &List.delete(&1, "Clojure") mary: %{age: 29, languages: ["Elixir", "F#"], name: "Mary"}] ``` -There is more to learn about `put_in/2` and `update_in/2`, including the `get_and_update_in/2` that allows us to extract a value and update the data structure at once. There are also `put_in/3`, `update_in/3` and `get_and_update_in/3` which allow dynamic access into the data structure. [Check their respective documentation in the `Kernel` module for more information](/docs/stable/elixir/Kernel.html). +There is more to learn about `put_in/2` and `update_in/2`, including the `get_and_update_in/2` that allows us to extract a value and update the data structure at once. There are also `put_in/3`, `update_in/3` and `get_and_update_in/3` which allow dynamic access into the data structure. [Check their respective documentation in the `Kernel` module for more information](https://hexdocs.pm/elixir/Kernel.html). This concludes our introduction to associative data structures in Elixir. You will find out that, given keyword lists and maps, you will always have the right tool to tackle problems that require associative data structures in Elixir. diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index 98b8aeb0e..1fbd5708f 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -203,4 +203,4 @@ Running test hello Although we have overlooked some details, this is the main idea behind creating domain specific modules in Elixir. Macros enable us to return quoted expressions that are executed in the caller, which we can then use to transform code and store relevant information in the target module via module attributes. Finally, callbacks such as `@before_compile` allow us to inject code into the module when its definition is complete. -Besides `@before_compile`, there are other useful module attributes like `@on_definition` and `@after_compile`, which you can read more about in [the docs for the `Module` module](/docs/stable/elixir/Module.html). You can also find useful information about macros and the compilation environment in the documentation for the [`Macro` module](/docs/stable/elixir/Macro.html) and [`Macro.Env`](/docs/stable/elixir/Macro.Env.html). +Besides `@before_compile`, there are other useful module attributes like `@on_definition` and `@after_compile`, which you can read more about in [the docs for the `Module` module](https://hexdocs.pm/elixir/Module.html). You can also find useful information about macros and the compilation environment in the documentation for the [`Macro` module](https://hexdocs.pm/elixir/Macro.html) and [`Macro.Env`](https://hexdocs.pm/elixir/Macro.Env.html). diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 230cbc3de..bd7cc8843 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -109,7 +109,7 @@ end Constructs such as `unless/2`, `defmacro/2`, `def/2`, `defprotocol/2`, and many others used throughout this getting started guide are implemented in pure Elixir, often as a macro. This means that the constructs being used to build the language can be used by developers to extend the language to the domains they are working on. -We can define any function and macro we want, including ones that override the built-in definitions provided by Elixir. The only exceptions are Elixir special forms which are not implemented in Elixir and therefore cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](/docs/stable/elixir/Kernel.SpecialForms.html#summary). +We can define any function and macro we want, including ones that override the built-in definitions provided by Elixir. The only exceptions are Elixir special forms which are not implemented in Elixir and therefore cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#summary). ## Macros hygiene @@ -223,7 +223,7 @@ iex> __ENV__.requires [IEx.Helpers, Integer, Kernel, Kernel.Typespec] ``` -Many of the functions in the `Macro` module expect an environment. You can read more about these functions in [the docs for the `Macro` module](/docs/stable/elixir/Macro.html) and learn more about the compilation environment in the [docs for `Macro.Env`](/docs/stable/elixir/Macro.Env.html). +Many of the functions in the `Macro` module expect an environment. You can read more about these functions in [the docs for the `Macro` module](https://hexdocs.pm/elixir/Macro.html) and learn more about the compilation environment in the [docs for `Macro.Env`](https://hexdocs.pm/elixir/Macro.Env.html). ## Private macros diff --git a/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown index 1d774ae63..28ec811ae 100644 --- a/getting-started/meta/quote-and-unquote.markdown +++ b/getting-started/meta/quote-and-unquote.markdown @@ -150,6 +150,6 @@ Macros receive quoted expressions and must return quoted expressions. However, s In other words, it is important to make a distinction between a regular Elixir value (like a list, a map, a process, a reference, etc) and a quoted expression. Some values, such as integers, atoms and strings, have a quoted expression equal to the value itself. Other values, like maps, need to be explicitly converted. Finally, values like functions and references cannot be converted to a quoted expression at all. -You can read more about `quote` and `unquote` in the [`Kernel.SpecialForms` module](/docs/stable/elixir/Kernel.SpecialForms.html). Documentation for `Macro.escape/1` and other functions related to quoted expressions can be found in the [`Macro` module](/docs/stable/elixir/Macro.html). +You can read more about `quote` and `unquote` in the [`Kernel.SpecialForms` module](https://hexdocs.pm/elixir/Kernel.SpecialForms.html). Documentation for `Macro.escape/1` and other functions related to quoted expressions can be found in the [`Macro` module](https://hexdocs.pm/elixir/Macro.html). In this introduction we have laid the groundwork to finally write our first macro, so let's move to the next chapter. diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 1efa4675c..dd556bb55 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -22,16 +22,16 @@ Elixir is an immutable language where nothing is shared by default. If we want t We have already talked about processes, while ETS is something new that we will explore later in this guide. When it comes to processes though, we rarely hand-roll our own, instead we use the abstractions available in Elixir and OTP: -* [Agent](/docs/stable/elixir/Agent.html) - Simple wrappers around state. -* [GenServer](/docs/stable/elixir/GenServer.html) - "Generic servers" (processes) that encapsulate state, provide sync and async calls, support code reloading, and more. -* [GenEvent](/docs/stable/elixir/GenEvent.html) - "Generic event" managers that allow publishing events to multiple handlers. -* [Task](/docs/stable/elixir/Task.html) - Asynchronous units of computation that allow spawning a process and potentially retrieving its result at a later time. +* [Agent](https://hexdocs.pm/elixir/Agent.html) - Simple wrappers around state. +* [GenServer](https://hexdocs.pm/elixir/GenServer.html) - "Generic servers" (processes) that encapsulate state, provide sync and async calls, support code reloading, and more. +* [GenEvent](https://hexdocs.pm/elixir/GenEvent.html) - "Generic event" managers that allow publishing events to multiple handlers. +* [Task](https://hexdocs.pm/elixir/Task.html) - Asynchronous units of computation that allow spawning a process and potentially retrieving its result at a later time. We will explore most of these abstractions in this guide. Keep in mind that they are all implemented on top of processes using the basic features provided by the VM, like `send`, `receive`, `spawn` and `link`. ## Agents -[Agents](/docs/stable/elixir/Agent.html) are simple wrappers around state. If all you want from a process is to keep state, agents are a great fit. Let's start an `iex` session inside the project with: +[Agents](https://hexdocs.pm/elixir/Agent.html) are simple wrappers around state. If all you want from a process is to keep state, agents are a great fit. Let's start an `iex` session inside the project with: ```bash $ iex -S mix @@ -50,7 +50,7 @@ iex> Agent.stop(agent) :ok ``` -We started an agent with an initial state of an empty list. We updated the agent's state, adding our new item to the head of the list. The second argument of [`Agent.update/3`](/docs/stable/elixir/Agent.html#update/3) is a function that takes the agent's current state as input and returns its desired new state. Finally, we retrieved the whole list. The second argument of [`Agent.get/3`](/docs/stable/elixir/Agent.html#get/3) is a function that takes the state as input and returns the value that [`Agent.get/3`](/docs/stable/elixir/Agent.html#get/3) itself will return. Once we are done with the agent, we can call [`Agent.stop/3`](/docs/stable/elixir/Agent.html#stop/3) to terminate the agent process. +We started an agent with an initial state of an empty list. We updated the agent's state, adding our new item to the head of the list. The second argument of [`Agent.update/3`](https://hexdocs.pm/elixir/Agent.html#update/3) is a function that takes the agent's current state as input and returns its desired new state. Finally, we retrieved the whole list. The second argument of [`Agent.get/3`](https://hexdocs.pm/elixir/Agent.html#get/3) is a function that takes the state as input and returns the value that [`Agent.get/3`](https://hexdocs.pm/elixir/Agent.html#get/3) itself will return. Once we are done with the agent, we can call [`Agent.stop/3`](https://hexdocs.pm/elixir/Agent.html#stop/3) to terminate the agent process. Let's implement our `KV.Bucket` using agents. But before starting the implementation, let's first write some tests. Create a file at `test/kv/bucket_test.exs` (remember the `.exs` extension) with the following: @@ -139,7 +139,7 @@ test "stores values by key", %{bucket: bucket} do end ``` -You can read more about ExUnit cases in the [`ExUnit.Case` module documentation](/docs/stable/ex_unit/ExUnit.Case.html) and more about callbacks in [`ExUnit.Callbacks` docs](/docs/stable/ex_unit/ExUnit.Callbacks.html). +You can read more about ExUnit cases in the [`ExUnit.Case` module documentation](https://hexdocs.pm/ex_unit/ExUnit.Case.html) and more about callbacks in [`ExUnit.Callbacks` docs](https://hexdocs.pm/ex_unit/ExUnit.Callbacks.html). ## Other agent actions @@ -156,7 +156,7 @@ def delete(bucket, key) do end ``` -Now it is your turn to write a test for the functionality above! Also, be sure to explore [the documentation for the `Agent` module](/docs/stable/elixir/Agent.html) to learn more about them. +Now it is your turn to write a test for the functionality above! Also, be sure to explore [the documentation for the `Agent` module](https://hexdocs.pm/elixir/Agent.html) to learn more about them. ## Client/Server in agents diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 4655ce5c9..edf0e8e45 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -47,7 +47,7 @@ def deps do end ``` -This dependency refers to the latest version of Plug in the 1.x.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](/docs/stable/elixir/Version.html). +This dependency refers to the latest version of Plug in the 1.x.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](https://hexdocs.pm/elixir/Version.html). Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage git dependencies too: @@ -72,7 +72,7 @@ mix deps.unlock # Unlocks the given dependencies mix deps.update # Updates the given dependencies ``` -The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependencies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](/docs/stable/mix/Mix.Tasks.Deps.html). +The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependencies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](https://hexdocs.pm/mix/Mix.Tasks.Deps.html). ## Internal dependencies @@ -221,7 +221,7 @@ defmodule KVServer do end ``` -Notice that it defines the application callback function, `start/2`, and instead of defining a supervisor named `KVServer.Supervisor` that uses the `Supervisor` module, it conveniently defined the supervisor inline! You can read more about such supervisors by reading [the Supervisor module documentation](/docs/stable/elixir/Supervisor.html). +Notice that it defines the application callback function, `start/2`, and instead of defining a supervisor named `KVServer.Supervisor` that uses the `Supervisor` module, it conveniently defined the supervisor inline! You can read more about such supervisors by reading [the Supervisor module documentation](https://hexdocs.pm/elixir/Supervisor.html). We can already try out our first umbrella child. We could run tests inside the `apps/kv_server` directory, but that wouldn't be much fun. Instead, go to the root of the umbrella project and run `mix test`: diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 4d76b5376..6cbf22b32 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -97,9 +97,9 @@ There are three better alternatives to `Node.spawn_link/2` that we could use in 1. We could use Erlang's [:rpc](http://www.erlang.org/doc/man/rpc.html) module to execute functions on a remote node. Inside the `bar@computer-name` shell above, you can call `:rpc.call(:"foo@computer-name", Hello, :world, [])` and it will print "hello world" -2. We could have a server running on the other node and send requests to that node via the [GenServer](/docs/stable/elixir/GenServer.html) API. For example, you can call a server on a remote node by using `GenServer.call({name, node}, arg)` or passing the remote process PID as first argument +2. We could have a server running on the other node and send requests to that node via the [GenServer](https://hexdocs.pm/elixir/GenServer.html) API. For example, you can call a server on a remote node by using `GenServer.call({name, node}, arg)` or passing the remote process PID as first argument -3. We could use [tasks](/docs/stable/elixir/Task.html), which we have learned about in [a previous chapter](/getting-started/mix-otp/task-and-gen-tcp.html), as they can be spawned on both local and remote nodes +3. We could use [tasks](https://hexdocs.pm/elixir/Task.html), which we have learned about in [a previous chapter](/getting-started/mix-otp/task-and-gen-tcp.html), as they can be spawned on both local and remote nodes The options above have different properties. Both `:rpc` and using a GenServer would serialize your requests on a single server, while tasks are effectively running asynchronously on the remote node, with the only serialization point being the spawning done by the supervisor. @@ -115,7 +115,7 @@ res = compute_something_else() res + Task.await(task) ``` -`async/await` provides a very simple mechanism to compute values concurrently. Not only that, `async/await` can also be used with the same [`Task.Supervisor`](/docs/stable/elixir/Task.Supervisor.html) we have used in previous chapters. We just need to call `Task.Supervisor.async/2` instead of `Task.Supervisor.start_child/2` and use `Task.await/2` to read the result later on. +`async/await` provides a very simple mechanism to compute values concurrently. Not only that, `async/await` can also be used with the same [`Task.Supervisor`](https://hexdocs.pm/elixir/Task.Supervisor.html) we have used in previous chapters. We just need to call `Task.Supervisor.async/2` instead of `Task.Supervisor.start_child/2` and use `Task.await/2` to read the result later on. ## Distributed tasks @@ -284,7 +284,7 @@ The `mix test` command also allows us to dynamically include and exclude tags. F $ elixir --sname foo -S mix test --only distributed ``` -You can read more about filters, tags and the default tags in [`ExUnit.Case` module documentation](/docs/stable/ex_unit/ExUnit.Case.html). +You can read more about filters, tags and the default tags in [`ExUnit.Case` module documentation](https://hexdocs.pm/ex_unit/ExUnit.Case.html). ## Application environment and configuration @@ -315,7 +315,7 @@ def table do end ``` -We use `Application.fetch_env!/2` to read the entry for `:routing_table` in `:kv`'s environment. You can find more information and other functions to manipulate the app environment in the [Application module](/docs/stable/elixir/Application.html). +We use `Application.fetch_env!/2` to read the entry for `:routing_table` in `:kv`'s environment. You can find more information and other functions to manipulate the app environment in the [Application module](https://hexdocs.pm/elixir/Application.html). Since our routing table is now empty, our distributed test should fail. Restart the apps and re-run tests to see the failure: diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 81e258df1..727a66176 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -164,7 +164,7 @@ iex> KVServer.Command.parse "GET shopping\r\n" {:error, :unknown_command} ``` -You can read more about doctests in [the `ExUnit.DocTest` docs](/docs/stable/ex_unit/ExUnit.DocTest.html). +You can read more about doctests in [the `ExUnit.DocTest` docs](https://hexdocs.pm/ex_unit/ExUnit.DocTest.html). ## with @@ -283,7 +283,7 @@ Much better! Syntax-wise, `with` is quite similar to `for` comprehensions. `with In other words, we converted each expression given to `case/2` as a step in `with`. As soon as any of the steps return something that does not match `{:ok, x}`, `with` aborts, and returns the non-matching value. -You can read more about [`with` in our documentation](/docs/stable/elixir/Kernel.SpecialForms.html#with/1). +You can read more about [`with` in our documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#with/1). ## Running commands diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index de7c40d6a..8aea292ed 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -42,7 +42,7 @@ Instead of abusing the name registry facility, we will create our own *registry The registry needs to guarantee that the dictionary is always up to date. For example, if one of the bucket processes crashes due to a bug, the registry must clean up the dictionary in order to avoid serving stale entries. In Elixir, we describe this by saying that the registry needs to *monitor* each bucket. -We will use a [GenServer](/docs/stable/elixir/GenServer.html) to create a registry process that can monitor the bucket processes. GenServers are the go-to abstraction for building generic servers in both Elixir and OTP. +We will use a [GenServer](https://hexdocs.pm/elixir/GenServer.html) to create a registry process that can monitor the bucket processes. GenServers are the go-to abstraction for building generic servers in both Elixir and OTP. ## Our first GenServer @@ -118,7 +118,7 @@ For `call/2` requests, we must implement a `handle_call/3` callback that receive For `cast/2` requests, we must implement a `handle_cast/2` callback that receives the `request` and the current server state (`names`). The `handle_cast/2` callback returns a tuple in the format `{:noreply, new_state}`. -There are other tuple formats both `handle_call/3` and `handle_cast/2` callbacks may return. There are also other callbacks like `terminate/2` and `code_change/3` that we could implement. You are welcome to explore the [full GenServer documentation](/docs/stable/elixir/GenServer.html) to learn more about those. +There are other tuple formats both `handle_call/3` and `handle_cast/2` callbacks may return. There are also other callbacks like `terminate/2` and `code_change/3` that we could implement. You are welcome to explore the [full GenServer documentation](https://hexdocs.pm/elixir/GenServer.html) to learn more about those. For now, let's write some tests to guarantee our GenServer works as expected. diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 9a637ba2a..a5f1ca0e2 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -161,7 +161,7 @@ It is important to note a couple things: 1. the test file is an Elixir script file (`.exs`). This is convenient because we don't need to compile test files before running them; -2. we define a test module named `KVTest`, use [`ExUnit.Case`](/docs/stable/ex_unit/ExUnit.Case.html) to inject the testing API and define a simple test using the `test/2` macro; +2. we define a test module named `KVTest`, use [`ExUnit.Case`](https://hexdocs.pm/ex_unit/ExUnit.Case.html) to inject the testing API and define a simple test using the `test/2` macro; Mix also generated a file named `test/test_helper.exs` which is responsible for setting up the test framework: @@ -229,7 +229,7 @@ Mix supports the concept of "environments". They allow a developer to customize The environment applies only to the current project. As we will see later on, any dependency you add to your project will by default run in the `:prod` environment. -Customization per environment can be done by accessing [the `Mix.env` function](/docs/stable/mix/Mix.html#env/1) in your `mix.exs` file, which returns the current environment as an atom. That's what we have used in both `:build_embedded` and `:start_permanent` options: +Customization per environment can be done by accessing [the `Mix.env` function](https://hexdocs.pm/mix/Mix.html#env/1) in your `mix.exs` file, which returns the current environment as an atom. That's what we have used in both `:build_embedded` and `:start_permanent` options: ```elixir def project do @@ -258,7 +258,7 @@ Or on Windows: ## Exploring -There is much more to Mix, and we will continue to explore it as we build our project. A [general overview is available on the Mix documentation](/docs/stable/mix/). +There is much more to Mix, and we will continue to explore it as we build our project. A [general overview is available on the Mix documentation](https://hexdocs.pm/mix/). Keep in mind that you can always invoke the help task to list all available tasks: diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index b7ba122ac..9ad7048b6 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -17,7 +17,7 @@ In this chapter, we are going to learn about supervisors and also about applicat ## Our first supervisor -Creating a supervisor is not much different from creating a GenServer. We are going to define a module named `KV.Supervisor`, which will use the [Supervisor](/docs/stable/elixir/Supervisor.html) behaviour, inside the `lib/kv/supervisor.ex` file: +Creating a supervisor is not much different from creating a GenServer. We are going to define a module named `KV.Supervisor`, which will use the [Supervisor](https://hexdocs.pm/elixir/Supervisor.html) behaviour, inside the `lib/kv/supervisor.ex` file: ```elixir defmodule KV.Supervisor do @@ -180,7 +180,7 @@ def application do end ``` -The `:mod` option specifies the "application callback module", followed by the arguments to be passed on application start. The application callback module can be any module that implements the [Application](/docs/stable/elixir/Application.html) behaviour. +The `:mod` option specifies the "application callback module", followed by the arguments to be passed on application start. The application callback module can be any module that implements the [Application](https://hexdocs.pm/elixir/Application.html) behaviour. Now that we have specified `KV` as the module callback, we need to change the `KV` module, defined in `lib/kv.ex`: @@ -217,7 +217,7 @@ Mix makes a distinction between projects and applications. Based on the contents When we say "project" you should think about Mix. Mix is the tool that manages your project. It knows how to compile your project, test your project and more. It also knows how to compile and start the application relevant to your project. -When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications in the [docs for the Application module](/docs/stable/elixir/Application.html), as well as by running `mix help compile.app` to learn more about the supported options in `def application`. +When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications in the [docs for the Application module](https://hexdocs.pm/elixir/Application.html), as well as by running `mix help compile.app` to learn more about the supported options in `def application`. ## Simple one for one supervisors @@ -364,7 +364,7 @@ end Now, if the registry worker crashes, both the registry and the "rest" of `KV.Supervisor`'s children (i.e. `KV.Bucket.Supervisor`) will be restarted. However, if `KV.Bucket.Supervisor` crashes, `KV.Registry` will not be restarted, because it was started prior to `KV.Bucket.Supervisor`. -There are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check both [`Supervisor`](/docs/stable/elixir/Supervisor.html) and [`Supervisor.Spec`](/docs/stable/elixir/Supervisor.Spec.html) modules. +There are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check both [`Supervisor`](https://hexdocs.pm/elixir/Supervisor.html) and [`Supervisor.Spec`](https://hexdocs.pm/elixir/Supervisor.Spec.html) modules. To help developers remember how to work with Supervisors and its convenience functions, [Benjamin Tan Wei Hao](http://benjamintan.io/) has created a [Supervisor cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/Supervisor_CheatSheet.pdf). diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 304ce69a1..5fec7485c 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -66,7 +66,7 @@ end We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is a loop accepting client connections. For each accepted connection, we call `serve/1`. -`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](/docs/stable/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: +`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: ```elixir socket |> read_line() |> write_line(socket) @@ -124,7 +124,7 @@ For now there is a more important bug we need to fix: what happens if our TCP ac We have learned about agents, generic servers, and supervisors. They are all meant to work with multiple messages or manage state. But what do we use when we only need to execute some task and that is it? -[The Task module](/docs/stable/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/3` function that receives a module, function and arguments, allowing us to run a given function as part of a supervision tree. +[The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/3` function that receives a module, function and arguments, allowing us to run a given function as part of a supervision tree. Let's give it a try. Open up `lib/kv_server.ex`, and let's change the supervisor in the `start/2` function to the following: @@ -218,7 +218,7 @@ def start(_type, _args) do end ``` -We'll now start a [`Task.Supervisor`](/docs/stable/elixir/Task.Supervisor.html) process with name `KVServer.TaskSupervisor`. Remember, since the acceptor task depends on this supervisor, the supervisor must be started first. +We'll now start a [`Task.Supervisor`](https://hexdocs.pm/elixir/Task.Supervisor.html) process with name `KVServer.TaskSupervisor`. Remember, since the acceptor task depends on this supervisor, the supervisor must be started first. Now we need to change `loop_acceptor/1` to use `Task.Supervisor` to serve each request: diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 5dda53872..65e317f02 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -34,7 +34,7 @@ Elixir has a handful of reserved attributes. Here are a few of them, the most co * `@behaviour` - (notice the British spelling) used for specifying an OTP or user-defined behaviour. * `@before_compile` - provides a hook that will be invoked before the module is compiled. This makes it possible to inject functions inside the module exactly before compilation. -`@moduledoc` and `@doc` are by far the most used attributes, and we expect you to use them a lot. Elixir treats documentation as first-class and provides many functions to access documentation. You can read more about [writing documentation in Elixir in our official documentation](/docs/stable/elixir/writing-documentation.html). +`@moduledoc` and `@doc` are by far the most used attributes, and we expect you to use them a lot. Elixir treats documentation as first-class and provides many functions to access documentation. You can read more about [writing documentation in Elixir in our official documentation](https://hexdocs.pm/elixir/writing-documentation.html). Let's go back to the `Math` module defined in the previous chapters, add some documentation and save it to the `math.ex` file: @@ -73,7 +73,7 @@ iex> h Math.sum # Access the docs for the sum function We also provide a tool called [ExDoc](https://github.com/elixir-lang/ex_doc) which is used to generate HTML pages from the documentation. -You can take a look at the docs for [Module](/docs/stable/elixir/Module.html) for a complete list of supported attributes. Elixir also uses attributes to define [typespecs](/getting-started/typespecs-and-behaviours.html). +You can take a look at the docs for [Module](https://hexdocs.pm/elixir/Module.html) for a complete list of supported attributes. Elixir also uses attributes to define [typespecs](/getting-started/typespecs-and-behaviours.html). This section covers built-in attributes. However, attributes can also be used by developers or extended by libraries to support custom behaviour. @@ -88,7 +88,7 @@ defmodule MyServer do end ``` -> Note: Unlike Erlang, user defined attributes are not stored in the module by default. The value exists only during compilation time. A developer can configure an attribute to behave closer to Erlang by calling [`Module.register_attribute/3`](/docs/stable/elixir/Module.html#register_attribute/3). +> Note: Unlike Erlang, user defined attributes are not stored in the module by default. The value exists only during compilation time. A developer can configure an attribute to behave closer to Erlang by calling [`Module.register_attribute/3`](https://hexdocs.pm/elixir/Module.html#register_attribute/3). Trying to access an attribute that was not defined will print a warning: @@ -145,7 +145,7 @@ In the example above, we have used the `plug/1` macro to connect functions that In order to understand the underlying code, we'd need macros, so we will revisit this pattern in the meta-programming guide. However the focus here is on how using module attributes as storage allows developers to create DSLs. -Another example comes from [the ExUnit framework](/docs/stable/ex_unit/) which uses module attributes as annotation and storage: +Another example comes from [the ExUnit framework](https://hexdocs.pm/ex_unit/) which uses module attributes as annotation and storage: ```elixir defmodule MyTest do diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 8af70b66c..5699d24a8 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -7,7 +7,7 @@ title: Modules {% include toc.html %} -In Elixir we group several functions into modules. We've already used many different modules in the previous chapters such as [the `String` module](/docs/stable/elixir/String.html): +In Elixir we group several functions into modules. We've already used many different modules in the previous chapters such as [the `String` module](https://hexdocs.pm/elixir/String.html): ```iex iex> String.length("hello") @@ -185,7 +185,7 @@ iex> fun.([1, [[2], 3]], [4, 5]) [1, 2, 3, 4, 5] ``` -`&List.flatten(&1, &2)` is the same as writing `fn(list, tail) -> List.flatten(list, tail) end` which in this case is equivalent to `&List.flatten/2`. You can read more about the capture operator `&` in [the `Kernel.SpecialForms` documentation](/docs/stable/elixir/Kernel.SpecialForms.html#&/1). +`&List.flatten(&1, &2)` is the same as writing `fn(list, tail) -> List.flatten(list, tail) end` which in this case is equivalent to `&List.flatten/2`. You can read more about the capture operator `&` in [the `Kernel.SpecialForms` documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#&/1). ## Default arguments diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 0db9098dc..31c179ac7 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -141,7 +141,7 @@ $ elixir spawn.exs spawn.exs:1: anonymous fn/0 in :elixir_compiler_0.__FILE__/1 ``` -This time the process failed and brought the parent process down as they are linked. Linking can also be done manually by calling `Process.link/1`. We recommend that you take a look at [the `Process` module](/docs/stable/elixir/Process.html) for other functionality provided by processes. +This time the process failed and brought the parent process down as they are linked. Linking can also be done manually by calling `Process.link/1`. We recommend that you take a look at [the `Process` module](https://hexdocs.pm/elixir/Process.html) for other functionality provided by processes. Processes and links play an important role when building fault-tolerant systems. In Elixir applications, we often link our processes to supervisors which will detect when a process dies and start a new process in its place. This is only possible because processes are isolated and don't share anything by default. And since processes are isolated, there is no way a failure in a process will crash or corrupt the state of another. @@ -233,7 +233,7 @@ iex> flush :ok ``` -Using processes to maintain state and name registration are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ship with Elixir. For example, Elixir provides [agents](/docs/stable/elixir/Agent.html), which are simple abstractions around state: +Using processes to maintain state and name registration are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ship with Elixir. For example, Elixir provides [agents](https://hexdocs.pm/elixir/Agent.html), which are simple abstractions around state: ```iex iex> {:ok, pid} = Agent.start_link(fn -> %{} end) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index a106451bf..6d2fbee66 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -109,7 +109,7 @@ Here we have used recursion to traverse a list, doubling each element and return Recursion and [tail call](https://en.wikipedia.org/wiki/Tail_call) optimization are an important part of Elixir and are commonly used to create loops. However, when programming in Elixir you will rarely use recursion as above to manipulate lists. -The [`Enum` module](/docs/stable/elixir/Enum.html), which we're going to see in the next chapter, already provides many conveniences for working with lists. For instance, the examples above could be written as: +The [`Enum` module](https://hexdocs.pm/elixir/Enum.html), which we're going to see in the next chapter, already provides many conveniences for working with lists. For instance, the examples above could be written as: ```iex iex> Enum.reduce([1, 2, 3], 0, fn(x, acc) -> x + acc end) diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 575902176..fbb637891 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -36,7 +36,7 @@ iex> "HELLO" =~ ~r/hello/i true ``` -Check out the [`Regex` module](/docs/stable/elixir/Regex.html) for more information on other modifiers and the supported operations with regular expressions. +Check out the [`Regex` module](https://hexdocs.pm/elixir/Regex.html) for more information on other modifiers and the supported operations with regular expressions. So far, all examples have used `/` to delimit a regular expression. However sigils support 8 different delimiters: diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 167f6e834..2fb0fcbbb 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -99,7 +99,7 @@ iex> File.read! "unknown" (elixir) lib/file.ex:305: File.read!/1 ``` -Many functions in the standard library follow the pattern of having a counterpart that raises an exception instead of returning tuples to match against. The convention is to create a function (`foo`) which returns `{:ok, result}` or `{:error, reason}` tuples and another function (`foo!`, same name but with a trailing `!`) that takes the same arguments as `foo` but which raises an exception if there's an error. `foo!` should return the result (not wrapped in a tuple) if everything goes fine. The [`File` module](/docs/stable/elixir/File.html) is a good example of this convention. +Many functions in the standard library follow the pattern of having a counterpart that raises an exception instead of returning tuples to match against. The convention is to create a function (`foo`) which returns `{:ok, result}` or `{:error, reason}` tuples and another function (`foo!`, same name but with a trailing `!`) that takes the same arguments as `foo` but which raises an exception if there's an error. `foo!` should return the result (not wrapped in a tuple) if everything goes fine. The [`File` module](https://hexdocs.pm/elixir/File.html) is a good example of this convention. In Elixir, we avoid using `try/rescue` because **we don't use errors for control flow**. We take errors literally: they are reserved for unexpected and/or exceptional situations. In case you actually need flow control constructs, *throws* should be used. That's what we are going to see next. diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 544264d74..101576bb7 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -16,7 +16,7 @@ Elixir is a dynamically typed language, so all types in Elixir are inferred by t ### Function specifications -By default, Elixir provides some basic types, such as `integer` or `pid`, as well as more complex types: for example, the `round/1` function, which rounds a float to its nearest integer, takes a `number` as an argument (an `integer` or a `float`) and returns an `integer`. As you can see [in its documentation](/docs/stable/elixir/Kernel.html#round/1), `round/1`'s typed signature is written as: +By default, Elixir provides some basic types, such as `integer` or `pid`, as well as more complex types: for example, the `round/1` function, which rounds a float to its nearest integer, takes a `number` as an argument (an `integer` or a `float`) and returns an `integer`. As you can see [in its documentation](https://hexdocs.pm/elixir/Kernel.html#round/1), `round/1`'s typed signature is written as: ``` round(number) :: integer @@ -29,7 +29,7 @@ round(number) :: integer def round(number), do: # implementation... ``` -Elixir supports compound types as well. For example, a list of integers has type `[integer]`. You can see all the built-in types provided by Elixir [in the typespecs docs](/docs/stable/elixir/typespecs.html). +Elixir supports compound types as well. For example, a list of integers has type `[integer]`. You can see all the built-in types provided by Elixir [in the typespecs docs](https://hexdocs.pm/elixir/typespecs.html). ### Defining custom types @@ -47,7 +47,7 @@ defmodule LousyCalculator do end ``` -As you can see in the example, tuples are a compound type and each tuple is identified by the types inside it. To understand why `String.t` is not written as `string`, have another look at the [notes in the typespecs docs](/docs/stable/elixir/typespecs.html#notes). +As you can see in the example, tuples are a compound type and each tuple is identified by the types inside it. To understand why `String.t` is not written as `string`, have another look at the [notes in the typespecs docs](https://hexdocs.pm/elixir/typespecs.html#notes). Defining function specs this way works, but it quickly becomes annoying since we're repeating the type `{number, String.t}` over and over. We can use the `@type` directive in order to declare our own custom type. diff --git a/index.html b/index.html index 98b51172d..97f56354f 100644 --- a/index.html +++ b/index.html @@ -103,7 +103,7 @@

        Extensibility and DSLs

        Elixir has been designed to be extensible, letting developers naturally extend the language to particular domains, in order to increase their productivity.

        -

        As an example, let’s write a simple test case using Elixir’s test framework called ExUnit:

        +

        As an example, let’s write a simple test case using Elixir’s test framework called ExUnit:

        {% highlight elixir %} defmodule MathTest do @@ -127,7 +127,7 @@

        Tooling features

        A growing ecosystem

        -

        Elixir ships with a great set of tools to ease development. Mix is a build tool that allows you to easily create projects, manage tasks, run tests and more:

        +

        Elixir ships with a great set of tools to ease development. Mix is a build tool that allows you to easily create projects, manage tasks, run tests and more:

        {% highlight text %} $ mix new my_app @@ -147,7 +147,7 @@

        A growing ecosystem

        Interactive development

        -

        Tools like IEx (Elixir’s interactive shell) are able to leverage many aspects of the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation:

        +

        Tools like IEx (Elixir’s interactive shell) are able to leverage many aspects of the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation:

        {% highlight text %} $ iex From a4054361fcfac759330a0237235a04e51f51015a Mon Sep 17 00:00:00 2001 From: Gal Tsubery Date: Tue, 29 Nov 2016 13:19:40 -0600 Subject: [PATCH 0592/1761] This installation procedure works for ubuntu 16.04 (#882) --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 085329a0f..20b15b4c3 100644 --- a/install.markdown +++ b/install.markdown @@ -44,7 +44,7 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * FreeBSD * From ports: `cd /usr/ports/lang/elixir && make install clean` * From pkg: `pkg install elixir` - * Ubuntu 12.04 and 14.04 / Debian 7 + * Ubuntu 12.04/14.04/16.04 or Debian 7 * Add Erlang Solutions repo: `wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb` * Run: `sudo apt-get update` * Install the Erlang/OTP platform and all of its applications: `sudo apt-get install esl-erlang` From 49688ea272e3d768074867a716106d5821b75973 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Fri, 2 Dec 2016 11:52:30 +0100 Subject: [PATCH 0593/1761] updates the output of an example (#884) --- getting-started/modules.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 5699d24a8..8425006e1 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -261,7 +261,7 @@ end If we save the code above in a file named "concat.ex" and compile it, Elixir will emit the following warning: - concat.ex:7: warning: this clause cannot match because a previous clause at line 2 always matches + warning: this clause cannot match because a previous clause at line 2 always matches The compiler is telling us that invoking the `join` function with two arguments will always choose the first definition of `join` whereas the second one will only be invoked when three arguments are passed: From 5a3fdf97ec03840d2580214df234355a4101036d Mon Sep 17 00:00:00 2001 From: Dan McClain Date: Sun, 4 Dec 2016 10:32:05 -0500 Subject: [PATCH 0594/1761] Fix GenServer.cast/3 to GenServer.cast/2 (#885) --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 9ad7048b6..0710b2ed1 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -205,7 +205,7 @@ iex> KV.Registry.lookup(KV.Registry, "shopping") {:ok, #PID<0.88.0>} ``` -How do we know this is working? After all, we are creating the bucket and then looking it up; of course it should work, right? Well, remember that `KV.Registry.create/2` uses `GenServer.cast/3`, and therefore will return `:ok` regardless of whether the message finds its target or not. At that point, we don't know whether the supervisor and the server are up, and if the bucket was created. However, `KV.Registry.lookup/2` uses `GenServer.call/3`, and will block and wait for a response from the server. We do get a positive response, so we know all is up and running. +How do we know this is working? After all, we are creating the bucket and then looking it up; of course it should work, right? Well, remember that `KV.Registry.create/2` uses `GenServer.cast/2`, and therefore will return `:ok` regardless of whether the message finds its target or not. At that point, we don't know whether the supervisor and the server are up, and if the bucket was created. However, `KV.Registry.lookup/2` uses `GenServer.call/3`, and will block and wait for a response from the server. We do get a positive response, so we know all is up and running. For an experiment, try reimplementing `KV.Registry.create/2` to use `GenServer.call/3` instead, and momentarily disable the application callback. Run the code above on the console again, and you will see the creation step fail straightaway. From d17bcbc9e5fa76b27761f2c30582205e0c30c814 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Wed, 7 Dec 2016 13:57:28 +0100 Subject: [PATCH 0595/1761] Remove the Blank protocol in favour of a Size protocol Following the lead of https://github.com/elixir-lang/elixir/commit/ff9d41c7d49b590d89920152fff9b254d9fa801b. --- getting-started/protocols.markdown | 143 ++++++++++++++--------------- 1 file changed, 70 insertions(+), 73 deletions(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 92460a331..8a9adda28 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -9,48 +9,56 @@ title: Protocols Protocols are a mechanism to achieve polymorphism in Elixir. Dispatching on a protocol is available to any data type as long as it implements the protocol. Let's see an example. -In Elixir, only `false` and `nil` are treated as false. Everything else evaluates to true. Depending on the application, it may be important to specify a `blank?` protocol that returns a boolean for other data types that should be considered blank. For instance, an empty list or an empty binary could be considered blanks. +In Elixir, we have two verbs for checking how many items there are in a data structure: `length` and `size`. `length` means the information must be computed. For example, `length(list)` needs to traverse the whole list to calculate its length. On the other hand, `tuple_size(tuple)` and `byte_size(binary)` do not depend on the tuple and binary size as the size information is precomputed in the data structure. -We could define this protocol as follows: +Even if we have type-specific functions for getting the size built into Elixir (such as `tuple_size/1`), we could implement a generic `Size` protocol that all data structures for which size is precomputed would implement. + +The protocol definition would look like this: ```elixir -defprotocol Blank do - @doc "Returns true if data is considered blank/empty" - def blank?(data) +defprotocol Size do + @doc "Calculates the size (and not the length!) of a data structure" + def size(data) end ``` -The protocol expects a function called `blank?` that receives one argument to be implemented. We can implement this protocol for different Elixir data types as follows: +The `Size` protocol expects a function called `size` that receives one argument (the data structure we want to know the size of) to be implemented. We can now implement this protocol for the data structures that would have a compliant implementation: ```elixir -# Integers are never blank -defimpl Blank, for: Integer do - def blank?(_), do: false +defimpl Size, for: Binary do + def size(binary), do: byte_size(binary) end -# Just empty list is blank -defimpl Blank, for: List do - def blank?([]), do: true - def blank?(_), do: false +defimpl Size, for: Map do + def size(map), do: map_size(map) end -# Just empty map is blank -defimpl Blank, for: Map do - # Keep in mind we could not pattern match on %{} because - # it matches on all maps. We can however check if the size - # is zero (and size is a fast operation). - def blank?(map), do: map_size(map) == 0 +defimpl Size, for: Tuple do + def size(tuple), do: tuple_size(tuple) end +``` -# Just the atoms false and nil are blank -defimpl Blank, for: Atom do - def blank?(false), do: true - def blank?(nil), do: true - def blank?(_), do: false -end +We didn't implement the `Size` protocol for lists as there is no "size" information precomputed for lists, and the length of a list has to be computed (with `length/1`). + +Now with the protocol defined and implementations in hand, we can start using it: + +```iex +iex> Size.size("foo") +3 +iex> Size.size({:ok, "hello"}) +2 +iex> Size.size(%{label: "some label"}) +1 ``` -And we would do so for all native data types. The types available are: +Passing a data type that doesn't implement the protocol raises an error: + +```iex +iex> Size.size([1, 2, 3]) +** (Protocol.UndefinedError) protocol Size not implemented for [1, 2, 3] +``` + +It's possible to implement protocols for all Elixir data types: * `Atom` * `BitString` @@ -64,102 +72,91 @@ And we would do so for all native data types. The types available are: * `Reference` * `Tuple` -Now with the protocol defined and implementations in hand, we can invoke it: - -```iex -iex> Blank.blank?(0) -false -iex> Blank.blank?([]) -true -iex> Blank.blank?([1, 2, 3]) -false -``` - -Passing a data type that does not implement the protocol raises an error: - -```iex -iex> Blank.blank?("hello") -** (Protocol.UndefinedError) protocol Blank not implemented for "hello" ``` ## Protocols and structs The power of Elixir's extensibility comes when protocols and structs are used together. -In the [previous chapter](/getting-started/structs.html), we have learned that although structs are maps, they do not share protocol implementations with maps. Let's define a `User` struct as in that chapter: +In the [previous chapter](/getting-started/structs.html), we have learned that although structs are maps, they do not share protocol implementations with maps. For example, [`MapSet`](https://hexdocs.pm/elixir/MapSet.html)s (sets based on maps) are implemented as structs. Let's try to use the `Size` protocol with a `MapSet`: ```iex -iex> defmodule User do -...> defstruct name: "john", age: 27 -...> end -{:module, User, - <<70, 79, 82, ...>>, {:__struct__, 0}} +iex> Size.size(%{}) +0 +iex> set = %MapSet{} = MapSet.new +iex> Size.size(set) +** (Protocol.UndefinedError) protocol Size not implemented for #MapSet<[]> ``` -And then check: +Instead of sharing protocol implementation with maps, structs require their own protocol implementation. Since a `MapSet` has its size precomputed and accessible through `MapSet.size/1`, we can define a `Size` implementation for it: -```iex -iex> Blank.blank?(%{}) -true -iex> Blank.blank?(%User{}) -** (Protocol.UndefinedError) protocol Blank not implemented for %User{age: 27, name: "john"} +```elixir +defimpl Size, for: MapSet do + def size(set), do: MapSet.size(set) +end ``` -Instead of sharing protocol implementation with maps, structs require their own protocol implementation: +If desired, you could come up with your own semantics for the size of your struct. Not only that, you could use structs to build more robust data types, like queues, and implement all relevant protocols, such as `Enumerable` and possibly `Size`, for this data type. ```elixir -defimpl Blank, for: User do - def blank?(_), do: false +defmodule User do + defstruct [:name, :age] end -``` -If desired, you could come up with your own semantics for a user being blank. Not only that, you could use structs to build more robust data types, like queues, and implement all relevant protocols, such as `Enumerable` and possibly `Blank`, for this data type. +defimpl Size, for: User do + def size(_user), do: 2 +end +``` ## Implementing `Any` -Manually implementing protocols for all types can quickly become repetitive and tedious. In such cases, Elixir provides two options: we can explicitly derive the protocol implementation for our types or automatically implement the protocol for all types. In both cases, we need to implement the protocol for `Any`. +Manually implementing protocols for all types can quickly become repetitive and tedious. In such cases, Elixir provides two options: we can explicitly derive the protocol implementation for our types or automatically implement the protocol for all types. In both cases, we need to implement the protocol for `Any`. ### Deriving Elixir allows us to derive a protocol implementation based on the `Any` implementation. Let's first implement `Any` as follows: ```elixir -defimpl Blank, for: Any do - def blank?(_), do: false +defimpl Size, for: Any do + def size(_), do: 0 end ``` -Now, when defining the struct, we can explicitly derive the implementation for the `Blank` protocol. Let's create another struct, this one called `DeriveUser`: +The implementation above is arguably not a reasonable one. For example, it makes no sense to say that the size of a `PID` or an `Integer` is `0`. + +However, should we be fine with the implementation for `Any`, in order to use such implementation we would need to tell our struct to explicitly derive the `Size` protocol: ```elixir -defmodule DeriveUser do - @derive Blank - defstruct name: "john", age: 27 +defprotocol OtherUser do + @derive [Size] + defstruct [:name, :age] end ``` -When deriving, Elixir will implement the `Blank` protocol for `DeriveUser` based on the implementation provided for `Any`. Note this behaviour is opt-in: structs will only work with the protocol as long as they explicitly implement or derive it. +When deriving, Elixir will implement the `Size` protocol for `OtherUser` based on the implementation provided for `Any`. ### Fallback to `Any` Another alternative to `@derive` is to explicitly tell the protocol to fallback to `Any` when an implementation cannot be found. This can be achieved by setting `@fallback_to_any` to `true` in the protocol definition: ```elixir -defprotocol Blank do +defprotocol Size do @fallback_to_any true - def blank?(data) + def size(data) end ``` -Assuming we have implemented `Any` as in the previous section: +As we said in the previous section, the implementation of `Size` for `Any` is not one that can apply to any data type. That's one of the reasons why `@fallback_to_any` is an opt-in behaviour. For the majority of protocols, raising an error when a protocol is not implemented is the proper behaviour. That said, assuming we have implemented `Any` as in the previous section: ```elixir -defimpl Blank, for: Any do - def blank?(_), do: false +defimpl Size, for: Any do + def size(_), do: 0 end ``` -Now all data types (including structs) that have not implemented the `Blank` protocol will be considered non-blank. In contrast to `@derive`, falling back to `Any` is opt-out: all data types get a pre-defined behaviour unless they provide their own implementation of the protocol. Which technique is best depends on the use case but, given Elixir developers prefer explicit over implicit, you may see many libraries pushing towards the `@derive` approach. +Now all data types (including structs) that have not implemented the `Size` protocol will be considered to have a size of `0`. + +Which technique is best between deriving and falling back to any depends on the use case but, given Elixir developers prefer explicit over implicit, you may see many libraries pushing towards the `@derive` approach. ## Built-in protocols From 99a26dd86bee9e200c743790fa43ee203f34a94b Mon Sep 17 00:00:00 2001 From: russolsen Date: Wed, 7 Dec 2016 10:03:53 -0500 Subject: [PATCH 0596/1761] Fixed typo: Extra code fencing near the list of data types. (#887) --- getting-started/protocols.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 8a9adda28..88a9214f4 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -72,7 +72,6 @@ It's possible to implement protocols for all Elixir data types: * `Reference` * `Tuple` -``` ## Protocols and structs From 1073ea61e585e6cb7c5ec64133c84195faec9fd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Ferreira?= Date: Sat, 10 Dec 2016 18:25:15 +0000 Subject: [PATCH 0597/1761] Fix a typo (#889) Signed-off-by: jmnsf --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 88a9214f4..26cb42b41 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -126,7 +126,7 @@ The implementation above is arguably not a reasonable one. For example, it makes However, should we be fine with the implementation for `Any`, in order to use such implementation we would need to tell our struct to explicitly derive the `Size` protocol: ```elixir -defprotocol OtherUser do +defmodule OtherUser do @derive [Size] defstruct [:name, :age] end From 9566d74a2ae9e2e050ce4a37db2379dd2463a125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 15 Dec 2016 10:16:03 +0100 Subject: [PATCH 0598/1761] exrm -> distillery --- .../mix-otp/distributed-tasks-and-configuration.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 6cbf22b32..e1f65a7f7 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -361,7 +361,7 @@ Overall, the built-in ability to configure applications and the fact that we hav As we add more applications in the future, we can continue controlling our deploy with the same level of granularity, cherry-picking which applications with which configuration are going to production. -You can also consider building multiple releases with a tool like [exrm](https://github.com/bitwalker/exrm), which will package the chosen applications and configuration, including the current Erlang and Elixir installations, so we can deploy the application even if the runtime is not pre-installed on the target system. +You can also consider building multiple releases with a tool like [Distillery](https://github.com/bitwalker/distillery), which will package the chosen applications and configuration, including the current Erlang and Elixir installations, so we can deploy the application even if the runtime is not pre-installed on the target system. Finally, we have learned some new things in this chapter, and they could be applied to the `:kv_server` application as well. We are going to leave the next steps as an exercise: From fb3b59b23608d6446d347ff18658012174376446 Mon Sep 17 00:00:00 2001 From: jessica Date: Fri, 16 Dec 2016 14:07:36 +0000 Subject: [PATCH 0599/1761] Add short paragraph about arity in getting started/basic types chapter (#890) --- getting-started/basic-types.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 31daa367d..0d06e15b6 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -77,6 +77,10 @@ iex> trunc(3.58) 3 ``` +## Identifying functions + +Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments which the function takes. From this point on we will use both the function name and its arity to decribe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes 1 argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of only `2`. + ## Booleans Elixir supports `true` and `false` as booleans: @@ -90,7 +94,6 @@ false Elixir provides a bunch of predicate functions to check for a value type. For example, the `is_boolean/1` function can be used to check if a value is a boolean or not: -> Note: Functions in Elixir are identified by name and by number of arguments (i.e. arity). Therefore, `is_boolean/1` identifies a function named `is_boolean` that takes 1 argument. `is_boolean/2` identifies a different (nonexistent) function with the same name but different arity. ```iex iex> is_boolean(true) From 69db6a85a0caf923856ad9bf5f76d1738c61076a Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 18 Dec 2016 15:53:38 -0800 Subject: [PATCH 0600/1761] Edits in processes.markdown (#891) --- getting-started/processes.markdown | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 31c179ac7..3194b2309 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -11,11 +11,11 @@ In Elixir, all code runs inside processes. Processes are isolated from each othe Elixir's processes should not be confused with operating system processes. Processes in Elixir are extremely lightweight in terms of memory and CPU (unlike threads in many other programming languages). Because of this, it is not uncommon to have tens or even hundreds of thousands of processes running simultaneously. -In this chapter, we will learn about the basic constructs for spawning new processes, as well as sending and receiving messages between different processes. +In this chapter, we will learn about the basic constructs for spawning new processes, as well as sending and receiving messages between processes. ## `spawn` -The basic mechanism for spawning new processes is with the auto-imported `spawn/1` function: +The basic mechanism for spawning new processes is the auto-imported `spawn/1` function: ```iex iex> spawn fn -> 1 + 2 end @@ -62,6 +62,8 @@ iex> receive do When a message is sent to a process, the message is stored in the process mailbox. The `receive/1` block goes through the current process mailbox searching for a message that matches any of the given patterns. `receive/1` supports guards and many clauses, such as `case/2`. +The process that sends the message does not block on `send/2`, it just puts the message in the recipient's mailbox and continues. In particular, a process can send messages to itself. In the previous example, when the `receive` block gets executed the sender process may be already dead. + If there is no message in the mailbox matching any of the patterns, the current process will wait until a matching message arrives. A timeout can also be specified: ```iex @@ -165,9 +167,9 @@ Function: #Function<20.90072148/0 in :erl_eval.expr/5> Args: [] ``` -Instead of `spawn/1` and `spawn_link/1`, we use `Task.start/1` and `Task.start_link/1` to return `{:ok, pid}` rather than just the PID. This is what enables Tasks to be used in supervision trees. Furthermore, `Task` provides convenience functions, like `Task.async/1` and `Task.await/1`, and functionality to ease distribution. +Instead of `spawn/1` and `spawn_link/1`, we use `Task.start/1` and `Task.start_link/1` which return `{:ok, pid}` rather than just the PID. This is what enables tasks to be used in supervision trees. Furthermore, `Task` provides convenience functions, like `Task.async/1` and `Task.await/1`, and functionality to ease distribution. -We will explore those functionalities in the ***Mix and OTP guide***, for now it is enough to remember to use Task to get better error reports. +We will explore those functionalities in the ***Mix and OTP guide***, for now it is enough to remember to use `Task` to get better error reports. ## State @@ -199,7 +201,7 @@ Let's give it a try by running `iex kv.exs`: ```iex iex> {:ok, pid} = KV.start_link -#PID<0.62.0> +{:ok, #PID<0.62.0>} iex> send pid, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} iex> flush @@ -244,6 +246,6 @@ iex> Agent.get(pid, fn map -> Map.get(map, :hello) end) :world ``` -A `:name` option could also be given to `Agent.start_link/2` and it would be automatically registered. Besides agents, Elixir provides an API for building generic servers (called GenServer), tasks and more, all powered by processes underneath. Those, along with supervision trees, will be explored with more detail in the ***Mix and OTP guide*** which will build a complete Elixir application from start to finish. +A `:name` option could also be given to `Agent.start_link/2` and it would be automatically registered. Besides agents, Elixir provides an API for building generic servers (called `GenServer`), tasks, and more, all powered by processes underneath. Those, along with supervision trees, will be explored with more detail in the ***Mix and OTP guide*** which will build a complete Elixir application from start to finish. For now, let's move on and explore the world of I/O in Elixir. From 596bf2bfbc0113c0701dbff7282804fb48a66333 Mon Sep 17 00:00:00 2001 From: Jagdeep Singh Date: Tue, 20 Dec 2016 14:29:15 +0530 Subject: [PATCH 0601/1761] Implement protocol for BitString to make it work for strings (#894) Implementing the protocol for `Binary` does not work with strings. Instead we need to implement it for `BitString` in 1.3.4. I guess this should be fixed (hopefully soon) as it is related to the code, not just the documentation or error messages. --- getting-started/protocols.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 26cb42b41..b19f8c9f2 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -25,8 +25,8 @@ end The `Size` protocol expects a function called `size` that receives one argument (the data structure we want to know the size of) to be implemented. We can now implement this protocol for the data structures that would have a compliant implementation: ```elixir -defimpl Size, for: Binary do - def size(binary), do: byte_size(binary) +defimpl Size, for: BitString do + def size(string), do: byte_size(string) end defimpl Size, for: Map do From 71812ccecb340dbf44d25868c9fdf85a177d59fc Mon Sep 17 00:00:00 2001 From: m-allanson Date: Fri, 23 Dec 2016 13:33:07 +0000 Subject: [PATCH 0602/1761] Fix typo in the "Basic types" page (#896) --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 0d06e15b6..7b21d6a79 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -79,7 +79,7 @@ iex> trunc(3.58) ## Identifying functions -Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments which the function takes. From this point on we will use both the function name and its arity to decribe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes 1 argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of only `2`. +Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments which the function takes. From this point on we will use both the function name and its arity to describe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes 1 argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of only `2`. ## Booleans From dd6af214af2b25b8838b7188ba7a783991adc18a Mon Sep 17 00:00:00 2001 From: bogdan-dumitru Date: Fri, 23 Dec 2016 18:00:43 +0200 Subject: [PATCH 0603/1761] Make it a bit clearer by providing ``dirs`` (#897) --- getting-started/comprehensions.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index 440b20819..1bb408f77 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -48,6 +48,7 @@ Comprehensions discard all elements for which the filter expression returns `fal Comprehensions generally provide a much more concise representation than using the equivalent functions from the `Enum` and `Stream` modules. Furthermore, comprehensions also allow multiple generators and filters to be given. Here is an example that receives a list of directories and gets the size of each file in those directories: ```elixir +dirs = ['/home/mikey', '/home/james'] for dir <- dirs, file <- File.ls!(dir), path = Path.join(dir, file), From 36d93e952ce0d5c41ec0f4eeb2bd551bdcdf7cd1 Mon Sep 17 00:00:00 2001 From: russolsen Date: Fri, 23 Dec 2016 11:02:31 -0500 Subject: [PATCH 0604/1761] Edits to genserver getting started guide for clarity (#895) --- getting-started/mix-otp/genserver.markdown | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 8aea292ed..f64e1768d 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -42,11 +42,13 @@ Instead of abusing the name registry facility, we will create our own *registry The registry needs to guarantee that the dictionary is always up to date. For example, if one of the bucket processes crashes due to a bug, the registry must clean up the dictionary in order to avoid serving stale entries. In Elixir, we describe this by saying that the registry needs to *monitor* each bucket. -We will use a [GenServer](https://hexdocs.pm/elixir/GenServer.html) to create a registry process that can monitor the bucket processes. GenServers are the go-to abstraction for building generic servers in both Elixir and OTP. +We will use a [GenServer](https://hexdocs.pm/elixir/GenServer.html) to create a registry process that can monitor the bucket processes. GenServer provides an industrial strength framework for building servers in both Elixir and OTP. ## Our first GenServer -A GenServer is implemented in two parts: the client API and the server callbacks, either in a single module or in two different modules implementing client API in one and server callbacks in the other. The client and server run in separate processes, with the client passing messages back and forth to the server as its functions are called. Here we use a single module for both the server callbacks and client API. Create a new file at `lib/kv/registry.ex` with the following contents: +A GenServer is implemented in two parts: the client API and the server callbacks. You can either combine both parts into a single module or you can separate them into a client module and a server module. The client and server run in separate processes, with the client passing messages back and forth to the server as its functions are called. Here we'll use a single module for both the server callbacks and the client API. + +Create a new file at `lib/kv/registry.ex` with the following contents: ```elixir defmodule KV.Registry do @@ -104,19 +106,19 @@ The first function is `start_link/3`, which starts a new GenServer passing three 2. The initialization arguments, in this case the atom `:ok` -3. A list of options which can, for example, hold the name of the server. For now, we pass an empty list +3. A list of options which can be used to specify things like the name of the server. For now, we pass an empty list There are two types of requests you can send to a GenServer: calls and casts. Calls are synchronous and the server **must** send a response back to such requests. Casts are asynchronous and the server won't send a response back. -The next two functions, `lookup/2` and `create/2` are responsible for sending these requests to the server. The requests are represented by the first argument to `handle_call/3` or `handle_cast/2`. In this case, we have used `{:lookup, name}` and `{:create, name}` respectively. Requests are often specified as tuples, like this, in order to provide more than one "argument" in that first argument slot. It's common to specify the action being requested as the first element of a tuple, and arguments for that action in the remaining elements. +The next two functions, `lookup/2` and `create/2` are responsible for sending these requests to the server. In this case, we have used `{:lookup, name}` and `{:create, name}` respectively. Requests are often specified as tuples, like this, in order to provide more than one "argument" in that first argument slot. It's common to specify the action being requested as the first element of a tuple, and arguments for that action in the remaining elements. Note that the requests must match the first argument to `handle_call/3` or `handle_cast/2`. -On the server side, we can implement a variety of callbacks to guarantee the server initialization, termination and handling of requests. Those callbacks are optional and for now we have only implemented the ones we care about. +That's it for the client API. On the server side, we can implement a variety of callbacks to guarantee the server initialization, termination and handling of requests. Those callbacks are optional and for now we have only implemented the ones we care about. The first is the `init/1` callback, that receives the argument given to `GenServer.start_link/3` and returns `{:ok, state}`, where state is a new map. We can already notice how the `GenServer` API makes the client/server segregation more apparent. `start_link/3` happens in the client, while `init/1` is the respective callback that runs on the server. -For `call/2` requests, we must implement a `handle_call/3` callback that receives the `request`, the process from which we received the request (`_from`), and the current server state (`names`). The `handle_call/3` callback returns a tuple in the format `{:reply, reply, new_state}`, where `reply` is what will be sent to the client and the `new_state` is the new server state. +For `call/2` requests, we implement a `handle_call/3` callback that receives the `request`, the process from which we received the request (`_from`), and the current server state (`names`). The `handle_call/3` callback returns a tuple in the format `{:reply, reply, new_state}`. The first element of the tuple, `:reply`, indicates that server should send a reply back to the client. The second element, `reply`, is what will be sent to the client while the third, `new_state` is the new server state. -For `cast/2` requests, we must implement a `handle_cast/2` callback that receives the `request` and the current server state (`names`). The `handle_cast/2` callback returns a tuple in the format `{:noreply, new_state}`. +For `cast/2` requests, we implement a `handle_cast/2` callback that receives the `request` and the current server state (`names`). The `handle_cast/2` callback returns a tuple in the format `{:noreply, new_state}`. Note that in a real application we would have probably implemented the callback for `:create` with a synchronous call instead of an asynchronous cast. We are doing it this way to illustrate how to implemented a cast callback. There are other tuple formats both `handle_call/3` and `handle_cast/2` callbacks may return. There are also other callbacks like `terminate/2` and `code_change/3` that we could implement. You are welcome to explore the [full GenServer documentation](https://hexdocs.pm/elixir/GenServer.html) to learn more about those. @@ -242,7 +244,7 @@ So far we have used three callbacks: `handle_call/3`, `handle_cast/2` and `handl 1. `handle_call/3` must be used for synchronous requests. This should be the default choice as waiting for the server reply is a useful backpressure mechanism. -2. `handle_cast/2` must be used for asynchronous requests, when you don't care about a reply. A cast does not even guarantee the server has received the message and, for this reason, must be used sparingly. For example, the `create/2` function we have defined in this chapter should have used `call/2`. We have used `cast/2` for didactic purposes. +2. `handle_cast/2` must be used for asynchronous requests, when you don't care about a reply. A cast does not even guarantee the server has received the message and, for this reason, should be used sparingly. For example, the `create/2` function we have defined in this chapter should have used `call/2`. We have used `cast/2` for didactic purposes. 3. `handle_info/2` must be used for all other messages a server may receive that are not sent via `GenServer.call/2` or `GenServer.cast/2`, including regular messages sent with `send/2`. The monitoring `:DOWN` messages are such an example of this. @@ -264,4 +266,3 @@ ref = Process.monitor(pid) ``` This is a bad idea, as we don't want the registry to crash when a bucket crashes! We typically avoid creating new processes directly, instead we delegate this responsibility to supervisors. As we'll see in the next chapter, supervisors rely on links and that explains why link-based APIs (`spawn_link`, `start_link`, etc) are so prevalent in Elixir and OTP. - From be0750e1b4dfd39e21acab51094a2fa1545b9847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 23 Dec 2016 17:04:24 +0100 Subject: [PATCH 0605/1761] Go with functionality --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index f64e1768d..78555c874 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -42,7 +42,7 @@ Instead of abusing the name registry facility, we will create our own *registry The registry needs to guarantee that the dictionary is always up to date. For example, if one of the bucket processes crashes due to a bug, the registry must clean up the dictionary in order to avoid serving stale entries. In Elixir, we describe this by saying that the registry needs to *monitor* each bucket. -We will use a [GenServer](https://hexdocs.pm/elixir/GenServer.html) to create a registry process that can monitor the bucket processes. GenServer provides an industrial strength framework for building servers in both Elixir and OTP. +We will use a [GenServer](https://hexdocs.pm/elixir/GenServer.html) to create a registry process that can monitor the bucket processes. GenServer provides industrial strength functionality for building servers in both Elixir and OTP. ## Our first GenServer From 464dbace17ec734c8259be75b5a581a58b313f1e Mon Sep 17 00:00:00 2001 From: Milton Mazzarri Date: Sun, 25 Dec 2016 18:07:22 -0600 Subject: [PATCH 0606/1761] Fix end of fenced code blocks (#899) This commit also close correctly the img tag element in "Supervisor and Application" section. --- getting-started/mix-otp/supervisor-and-application.markdown | 4 ++-- getting-started/modules.markdown | 2 +- getting-started/pattern-matching.markdown | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 0710b2ed1..0d563dcd3 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -364,7 +364,7 @@ end Now, if the registry worker crashes, both the registry and the "rest" of `KV.Supervisor`'s children (i.e. `KV.Bucket.Supervisor`) will be restarted. However, if `KV.Bucket.Supervisor` crashes, `KV.Registry` will not be restarted, because it was started prior to `KV.Bucket.Supervisor`. -There are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check both [`Supervisor`](https://hexdocs.pm/elixir/Supervisor.html) and [`Supervisor.Spec`](https://hexdocs.pm/elixir/Supervisor.Spec.html) modules. +There are other strategies and other options that could be given to `worker/2`, `supervisor/2` and `supervise/2` functions, so don't forget to check both [`Supervisor`](https://hexdocs.pm/elixir/Supervisor.html) and [`Supervisor.Spec`](https://hexdocs.pm/elixir/Supervisor.Spec.html) modules. To help developers remember how to work with Supervisors and its convenience functions, [Benjamin Tan Wei Hao](http://benjamintan.io/) has created a [Supervisor cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/Supervisor_CheatSheet.pdf). @@ -382,7 +382,7 @@ A GUI should pop-up containing all sorts of information about our system, from g In the Applications tab, you will see all applications currently running in your system along side their supervision tree. You can select the `kv` application to explore it further: - + Not only that, as you create new buckets on the terminal, you should see new processes spawned in the supervision tree shown in Observer: diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 8425006e1..3613be76d 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -154,7 +154,7 @@ iex> is_function(fun) true iex> fun.(0) true -```` +``` Local or imported functions, like `is_function/1`, can be captured without the module: diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 8b9672cae..9206c98c5 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -36,7 +36,7 @@ A variable can only be assigned on the left side of `=`: ```iex iex> 1 = unknown ** (CompileError) iex:1: undefined function unknown/0 -```` +``` Since there is no variable `unknown` previously defined, Elixir imagined you were trying to call a function named `unknown/0`, but such a function does not exist. From 48c1120c0166a609190a70d364a2eb2a9290656a Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Mon, 26 Dec 2016 03:44:17 -0800 Subject: [PATCH 0607/1761] Edits in the "IO and the file system" chapter (#898) --- getting-started/io-and-the-file-system.markdown | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 8abab42aa..a092c010a 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -13,7 +13,7 @@ We had originally sketched this chapter to come much earlier in the getting star ## The `IO` module -The `IO` module is the main mechanism in Elixir for reading and writing to standard input/output (`:stdio`), standard error (`:stderr`), files and other IO devices. Usage of the module is pretty straightforward: +The [`IO`](http://elixir-lang.org/docs/v1.0/elixir/IO.html) module is the main mechanism in Elixir for reading and writing to standard input/output (`:stdio`), standard error (`:stderr`), files, and other IO devices. Usage of the module is pretty straightforward: ```iex iex> IO.puts "hello world" @@ -24,7 +24,7 @@ yes or no? yes "yes\n" ``` -By default, functions in the IO module read from the standard input and write to the standard output. We can change that by passing, for example, `:stderr` as an argument (in order to write to the standard error device): +By default, functions in the `IO` module read from the standard input and write to the standard output. We can change that by passing, for example, `:stderr` as an argument (in order to write to the standard error device): ```iex iex> IO.puts :stderr, "hello world" @@ -61,10 +61,12 @@ iex> File.read! "hello" iex> File.read "unknown" {:error, :enoent} iex> File.read! "unknown" -** (File.Error) could not read file unknown: no such file or directory +** (File.Error) could not read file "unknown": no such file or directory ``` -Notice that when the file does not exist, the version with `!` raises an error. The version without `!` is preferred when you want to handle different outcomes using pattern matching: +Notice that the version with `!` returns the contents of the file instead of a tuple, and if anything goes wrong the function raises an error. + +The version without `!` is preferred when you want to handle different outcomes using pattern matching: ```elixir case File.read(file) do @@ -115,7 +117,8 @@ iex> pid = spawn fn -> ...> end #PID<0.57.0> iex> IO.write(pid, "hello") -{:io_request, #PID<0.41.0>, #Reference<0.0.8.91>, {:put_chars, :unicode, "hello"}} +{:io_request, #PID<0.41.0>, #Reference<0.0.8.91>, + {:put_chars, :unicode, "hello"}} ** (ErlangError) erlang error: :terminated ``` From 6e7ff4236632a866a9d6814e0bb29937277f96e1 Mon Sep 17 00:00:00 2001 From: Joris Ooms Date: Mon, 26 Dec 2016 17:32:01 +0100 Subject: [PATCH 0608/1761] Replace deprecated :crypto.md5 call with :crypto.hash(:md5, str) (#901) --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 97f56354f..64aea8a7b 100644 --- a/index.html +++ b/index.html @@ -167,7 +167,7 @@

        Erlang compatible

        Elixir runs on the Erlang VM giving developers complete access to Erlang’s ecosystem, used by companies like Heroku, WhatsApp, Klarna, Basho and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

        {% highlight iex %} -iex> :crypto.md5("Using crypto from Erlang OTP") +iex> :crypto.hash(:md5, "Using crypto from Erlang OTP") <<192, 223, 75, 115, ...>> {% endhighlight %} From 2074d7abaaf9a9f86ad92cdf0dde017ee4f657ae Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Mon, 26 Dec 2016 12:38:27 -0800 Subject: [PATCH 0609/1761] Edits in the "alias, require, and import" chapter (#900) --- .../alias-require-and-import.markdown | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 33e07a16e..bb098eb79 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: alias, require and import +title: alias, require, and import --- # {{ page.title }} @@ -27,23 +27,20 @@ We are going to explore them in detail now. Keep in mind the first three are cal ## alias -`alias` allows you to set up aliases for any given module name. Imagine our `Math` module uses a special list implementation for doing math specific operations: +`alias` allows you to set up aliases for any given module name. + +Imagine a module uses a specialized list implemented in `Math.List`. The `alias` directive allows referring to `Math.List` just as `List` within the module definition: ```elixir -defmodule Math do +defmodule Stats do alias Math.List, as: List + # In the remaining module definition List expands to Math.List. end ``` -From now on, any reference to `List` will automatically expand to `Math.List`. In case one wants to access the original `List`, it can be done by prefixing the module name with `Elixir.`: +The original `List` can still be accessed within `Stats` by the fully-qualified name `Elixir.List`. -```elixir -List.flatten #=> uses Math.List.flatten -Elixir.List.flatten #=> uses List.flatten -Elixir.Math.List.flatten #=> uses Math.List.flatten -``` - -> Note: All modules defined in Elixir are defined inside a main Elixir namespace. However, for convenience, you can omit "Elixir." when referencing them. +> Note: All modules defined in Elixir are defined inside a main `Elixir` namespace. However, for convenience, you can omit "Elixir." when referencing them. Aliases are frequently used to define shortcuts. In fact, calling `alias` without an `:as` option sets the alias automatically to the last part of the module name, for example: @@ -82,7 +79,7 @@ Macros are chunks of code that are executed and expanded at compilation time. Th ```iex iex> Integer.is_odd(3) -** (CompileError) iex:1: you must require Integer before invoking the macro Integer.is_odd/1 +** (UndefinedFunctionError) function Integer.is_odd/1 is undefined or private. However there is a macro with the same name and arity. Be sure to require Integer if you intend to invoke this macro iex> require Integer Integer iex> Integer.is_odd(3) @@ -166,8 +163,6 @@ defmodule Example do end ``` -With this we have almost finished our tour of Elixir modules. The last topic to cover is module attributes. - ## Understanding Aliases At this point, you may be wondering: what exactly is an Elixir alias and how is it represented? @@ -226,3 +221,5 @@ From Elixir v1.2, it is possible to alias, import or require multiple modules at ```elixir alias MyApp.{Foo, Bar, Baz} ``` + +With this we have finished our tour of Elixir modules. The last topic to cover is module attributes. \ No newline at end of file From e596ded6c3157da65c918e13b9d19660bf8eee58 Mon Sep 17 00:00:00 2001 From: Jagdeep Singh Date: Tue, 27 Dec 2016 16:18:49 +0530 Subject: [PATCH 0610/1761] Fix error message for missing key in Structs (#903) Resolve #893 --- getting-started/structs.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index 1b0bcddfe..3fdfd3993 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -48,7 +48,7 @@ Structs provide *compile-time* guarantees that only the fields (and *all* of the ```iex iex> %User{oops: :field} -** (CompileError) iex:3: unknown key :oops for struct User +** (KeyError) key :oops not found in: %User{age: 27, name: "John"} ``` ## Accessing and updating structs From 2ba05c848a0cecee765930a7eaf7ad2e5a2ace9d Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Wed, 28 Dec 2016 12:10:06 -0800 Subject: [PATCH 0611/1761] edits in the module attributes chapter (#904) --- getting-started/module-attributes.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 65e317f02..b8bb8bde7 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -57,7 +57,7 @@ defmodule Math do end ``` -Elixir promotes the use of markdown with heredocs to write readable documentation. Heredocs are multiline strings, they start and end with triple double-quotes, keeping the formatting of the inner text. We can access the documentation of any compiled module directly from IEx: +Elixir promotes the use of Markdown with heredocs to write readable documentation. Heredocs are multiline strings, they start and end with triple double-quotes, keeping the formatting of the inner text. We can access the documentation of any compiled module directly from IEx: ```bash $ elixirc math.ex @@ -141,7 +141,7 @@ IO.puts "Running MyPlug with Cowboy on http://localhost:4000" Plug.Adapters.Cowboy.http MyPlug, [] ``` -In the example above, we have used the `plug/1` macro to connect functions that will be invoked when there is a web request. Internally, every time you call `plug/1`, the Plug library stores the given argument in a `@plugs` attribute. Just before the module is compiled, Plug runs a callback that defines a function (`call/2`) which handles http requests. This function will run all plugs inside `@plugs` in order. +In the example above, we have used the `plug/1` macro to connect functions that will be invoked when there is a web request. Internally, every time you call `plug/1`, the Plug library stores the given argument in a `@plugs` attribute. Just before the module is compiled, Plug runs a callback that defines a function (`call/2`) which handles HTTP requests. This function will run all plugs inside `@plugs` in order. In order to understand the underlying code, we'd need macros, so we will revisit this pattern in the meta-programming guide. However the focus here is on how using module attributes as storage allows developers to create DSLs. From c6845386f441af52981a5223032a7ceb12c1b502 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sat, 31 Dec 2016 02:23:33 -0800 Subject: [PATCH 0612/1761] Error message updated in structs.markdown (#905) --- getting-started/structs.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index 3fdfd3993..067a48c98 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -96,7 +96,8 @@ Notice that we referred to structs as **bare** maps because none of the protocol iex> john = %User{} %User{age: 27, name: "John"} iex> john[:name] -** (UndefinedFunctionError) undefined function: User.fetch/2 +** (UndefinedFunctionError) function User.fetch/2 is undefined (User does not implement the Access behaviour) + User.fetch(%User{age: 27, name: "John"}, :name) iex> Enum.each john, fn({field, value}) -> IO.puts(value) end ** (Protocol.UndefinedError) protocol Enumerable not implemented for %User{age: 27, name: "John"} ``` From b75dc65ec066c5b0e194f5f6a7e42e6772f17b02 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 1 Jan 2017 09:22:55 -0800 Subject: [PATCH 0613/1761] Edits in the try/catch/rescue guide (#908) --- getting-started/try-catch-and-rescue.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 2fb0fcbbb..a0f2dcabd 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -1,13 +1,13 @@ --- layout: getting-started -title: try, catch and rescue +title: try, catch, and rescue --- # {{ page.title }} {% include toc.html %} -Elixir has three error mechanisms: errors, throws and exits. In this chapter we will explore each of them and include remarks about when each should be used. +Elixir has three error mechanisms: errors, throws, and exits. In this chapter we will explore each of them and include remarks about when each should be used. ## Errors @@ -222,4 +222,4 @@ iex> what_happened :rescued ``` -This finishes our introduction to `try`, `catch` and `rescue`. You will find they are used less frequently in Elixir than in other languages, although they may be handy in some situations where a library or some particular code is not playing "by the rules". +This finishes our introduction to `try`, `catch`, and `rescue`. You will find they are used less frequently in Elixir than in other languages, although they may be handy in some situations where a library or some particular code is not playing "by the rules". From d7b684dde86456eef6f88acbd994fb038c7ea785 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 1 Jan 2017 09:33:45 -0800 Subject: [PATCH 0614/1761] Some edits in the "Sigils" page (#907) --- getting-started/sigils.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index fbb637891..ccd03ac6c 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -9,7 +9,7 @@ title: Sigils We have already learned that Elixir provides double-quoted strings and single-quoted char lists. However, this only covers the surface of structures that have textual representation in the language. Atoms, for example, are mostly created via the `:atom` representation. -One of Elixir's goals is extensibility: developers should be able to extend the language to fit any particular domain. Computer science has become such a wide field that it is impossible for a language to tackle many fields as part of its core. Rather, our best bet is to make the language extensible, so developers, companies and communities can extend the language to their relevant domains. +One of Elixir's goals is extensibility: developers should be able to extend the language to fit any particular domain. Computer science has become such a wide field that it is impossible for a language to tackle many fields as part of its core. Rather, our best bet is to make the language extensible, so developers, companies, and communities can extend the language to their relevant domains. In this chapter, we are going to explore sigils, which are one of the mechanisms provided by the language for working with textual representations. Sigils start with the tilde (`~`) character which is followed by a letter (which identifies the sigil) and then a delimiter; optionally, modifiers can be added after the final delimiter. @@ -51,15 +51,15 @@ So far, all examples have used `/` to delimit a regular expression. However sigi ~r ``` -The reason behind supporting different delimiters is that different delimiters can be more suited for different sigils. For example, using parentheses for regular expressions may be a confusing choice as they can get mixed with the parentheses inside the regex. However, parentheses can be handy for other sigils, as we will see in the next section. +The reason behind supporting different delimiters is to provide a way to write literals without escaped delimiters. For example, a regular expression with forward slashes like `~r(^https?://)` reads arguably better than `~r/^https?:\/\/`. Similarly, if the regular expression has forward slashes and capturing groups (that use `()`), you may then choose double quotes instead of parentheses. -## Strings, char lists and words sigils +## Strings, char lists, and word lists sigils Besides regular expressions, Elixir ships with three other sigils. ### Strings -The `~s` sigil is used to generate strings, like double quotes are. The `~s` sigil is useful, for example, when a string contains both double and single quotes: +The `~s` sigil is used to generate strings, like double quotes are. The `~s` sigil is useful when a string contains double quotes: ```iex iex> ~s(this is a string with "double" quotes, not 'single' ones) @@ -68,7 +68,7 @@ iex> ~s(this is a string with "double" quotes, not 'single' ones) ### Char lists -The `~c` sigil is used to generate char lists: +The `~c` sigil is useful for generating char lists that contain single quotes: ```iex iex> ~c(this is a char list containing 'single quotes') @@ -104,8 +104,6 @@ iex> ~S(String without escape codes \x26 without #{interpolation}) The following escape codes can be used in strings and char lists: -* `\"` – double quote -* `\'` – single quote * `\\` – single backslash * `\a` – bell/alert * `\b` – backspace @@ -121,6 +119,8 @@ The following escape codes can be used in strings and char lists: * `\xDD` - represents a single byte in hexadecimal (such as `\x13`) * `\uDDDD` and `\u{D...}` - represents a Unicode codepoint in hexadecimal (such as `\u{1F600}`) +In addition to those, a double quote inside a double-quoted string needs to be escaped as `\"`, and, analogously, a single quote inside a single-quoted char list needs to be escaped as `\'`. Nevertheless, it is better style to change delimiters as seen above than to escape them. + Sigils also support heredocs, that is, triple double- or single-quotes as separators: ```iex From ef2ecbec3a12721c54d091f897838476b3a0deb7 Mon Sep 17 00:00:00 2001 From: Zane Hitchcox Date: Tue, 3 Jan 2017 03:23:19 -0500 Subject: [PATCH 0615/1761] Update typespecs-and-behaviours.markdown (#910) --- getting-started/typespecs-and-behaviours.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 101576bb7..9858778ef 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -84,7 +84,7 @@ If you want to keep a custom type private, you can use the `@typep` directive in ### Static code analysis -Typespecs are not only useful to developers and as additional documentation. The Erlang tool [Dialyzer](http://www.erlang.org/doc/man/dialyzer.html), for example, uses typespecs in order to perform static analysis of code. That's why, in the `QuietCalculator` example, we wrote a spec for the `make_quiet/1` function even if it was defined as a private function. +Typespecs are not only useful to developers as additional documentation. The Erlang tool [Dialyzer](http://www.erlang.org/doc/man/dialyzer.html), for example, uses typespecs in order to perform static analysis of code. That's why, in the `QuietCalculator` example, we wrote a spec for the `make_quiet/1` function even if it was defined as a private function. ## Behaviours From 9b47aaabf8d500abc110fbc58d1ac013da604f63 Mon Sep 17 00:00:00 2001 From: vanchagreen Date: Tue, 3 Jan 2017 12:17:03 -0700 Subject: [PATCH 0616/1761] Fix a typo in the "GenServer" page (#911) --- getting-started/mix-otp/genserver.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 78555c874..df0db7ed0 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -118,7 +118,7 @@ The first is the `init/1` callback, that receives the argument given to `GenServ For `call/2` requests, we implement a `handle_call/3` callback that receives the `request`, the process from which we received the request (`_from`), and the current server state (`names`). The `handle_call/3` callback returns a tuple in the format `{:reply, reply, new_state}`. The first element of the tuple, `:reply`, indicates that server should send a reply back to the client. The second element, `reply`, is what will be sent to the client while the third, `new_state` is the new server state. -For `cast/2` requests, we implement a `handle_cast/2` callback that receives the `request` and the current server state (`names`). The `handle_cast/2` callback returns a tuple in the format `{:noreply, new_state}`. Note that in a real application we would have probably implemented the callback for `:create` with a synchronous call instead of an asynchronous cast. We are doing it this way to illustrate how to implemented a cast callback. +For `cast/2` requests, we implement a `handle_cast/2` callback that receives the `request` and the current server state (`names`). The `handle_cast/2` callback returns a tuple in the format `{:noreply, new_state}`. Note that in a real application we would have probably implemented the callback for `:create` with a synchronous call instead of an asynchronous cast. We are doing it this way to illustrate how to implement a cast callback. There are other tuple formats both `handle_call/3` and `handle_cast/2` callbacks may return. There are also other callbacks like `terminate/2` and `code_change/3` that we could implement. You are welcome to explore the [full GenServer documentation](https://hexdocs.pm/elixir/GenServer.html) to learn more about those. From 24d3eef492d1837c7caba575df5ac5dd7c538ae7 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Wed, 4 Jan 2017 03:34:11 -0800 Subject: [PATCH 0617/1761] Minor details (#909) --- getting-started/erlang-libraries.markdown | 22 +++++++++---------- .../typespecs-and-behaviours.markdown | 7 +++--- getting-started/where-to-go-next.markdown | 6 ++--- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index 6226c3409..02579f3b0 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -29,7 +29,7 @@ iex> :binary.bin_to_list "Ø" [195, 152] ``` -The above example shows the difference; the `String` module returns UTF-8 +The above example shows the difference; the `String` module returns Unicode codepoints, while `:binary` deals with raw data bytes. ## Formatted text output @@ -80,9 +80,6 @@ functions for dealing with directed graphs built of vertices and edges. After constructing the graph, the algorithms in there will help finding for instance the shortest path between two vertices, or loops in the graph. -Note that the functions in `:digraph` alter the graph structure indirectly -as a side effect, while returning the added vertices or edges. - Given three vertices, find the shortest path from the first to the last. ```iex @@ -95,6 +92,9 @@ iex> :digraph.get_short_path(digraph, v0, v2) [{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}] ``` +Note that the functions in `:digraph` alter the graph structure in-place, this +is possible because they are implemented as ETS tables, explained next. + ## Erlang Term Storage The modules [`ets`](http://erlang.org/doc/man/ets.html) and @@ -116,15 +116,15 @@ iex> :ets.insert(table, {"China", 1_374_000_000}) iex> :ets.insert(table, {"India", 1_284_000_000}) iex> :ets.insert(table, {"USA", 322_000_000}) iex> :ets.i(table) -<1 > {"USA", 322000000} -<2 > {"China", 1_374_000_000} -<3 > {"India", 1_284_000_000} +<1 > {<<"India">>,1284000000} +<2 > {<<"USA">>,322000000} +<3 > {<<"China">>,1374000000} ``` ## The math module [The `math` module](http://erlang.org/doc/man/math.html) contains common -mathematical operations covering trigonometry, exponential and logarithmic +mathematical operations covering trigonometry, exponential, and logarithmic functions. ```iex @@ -174,10 +174,10 @@ iex> :rand.uniform(6) ## The zip and zlib modules -[The `zip` module](http://erlang.org/doc/man/zip.html) lets you read and write zip files to and from disk or memory, -as well as extracting file information. +[The `zip` module](http://erlang.org/doc/man/zip.html) lets you read and write +ZIP files to and from disk or memory, as well as extracting file information. -This code counts the number of files in a zip file: +This code counts the number of files in a ZIP file: ```iex iex> :zip.foldl(fn _, _, _, acc -> acc + 1 end, 0, :binary.bin_to_list("file.zip")) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 9858778ef..1f13a9fb1 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -11,8 +11,9 @@ title: Typespecs and behaviours Elixir is a dynamically typed language, so all types in Elixir are inferred by the runtime. Nonetheless, Elixir comes with **typespecs**, which are a notation used for: -1. declaring custom data types; -2. declaring typed function signatures (specifications). +1. declaring typed function signatures (specifications); +2. declaring custom data types. + ### Function specifications @@ -35,7 +36,7 @@ Elixir supports compound types as well. For example, a list of integers has type While Elixir provides a lot of useful built-in types, it's convenient to define custom types when appropriate. This can be done when defining modules through the `@type` directive. -Say we have a `LousyCalculator` module, which performs the usual arithmetic operations (sum, product and so on) but, instead of returning numbers, it returns tuples with the result of an operation as the first element and a random remark as the second element. +Say we have a `LousyCalculator` module, which performs the usual arithmetic operations (sum, product, and so on) but, instead of returning numbers, it returns tuples with the result of an operation as the first element and a random remark as the second element. ```elixir defmodule LousyCalculator do diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index baaf86564..c22e60131 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -17,7 +17,7 @@ In order to get your first project started, Elixir ships with a build tool calle $ mix new path/to/new/project ``` -We have written a guide that covers how to build an Elixir application, with its own supervision tree, configuration, tests and more. The application works as a distributed key-value store where we organize key-value pairs into buckets and distribute those buckets across multiple nodes: +We have written a guide that covers how to build an Elixir application, with its own supervision tree, configuration, tests, and more. The application works as a distributed key-value store where we organize key-value pairs into buckets and distribute those buckets across multiple nodes: * [Mix and OTP](/getting-started/mix-otp/introduction-to-mix.html) @@ -29,7 +29,7 @@ Elixir is an extensible and very customizable programming language thanks to its ## Community and other resources -We have a [Learning](/learning.html) section that suggests books, screencasts and other resources for learning Elixir and exploring the ecosystem. There are also plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. +We have a [Learning](/learning.html) section that suggests books, screencasts, and other resources for learning Elixir and exploring the ecosystem. There are also plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. Don't forget that you can also check the [source code of Elixir itself](https://github.com/elixir-lang/elixir), which is mostly written in Elixir (mainly the `lib` directory), or [explore Elixir's documentation](/docs.html). @@ -41,4 +41,4 @@ Elixir runs on the Erlang Virtual Machine and, sooner or later, an Elixir develo * Erlang's official website has a short [tutorial](http://www.erlang.org/course/concurrent_programming.html) with pictures that briefly describe Erlang's primitives for concurrent programming. -* [Learn You Some Erlang for Great Good!](http://learnyousomeerlang.com/) is an excellent introduction to Erlang, its design principles, standard library, best practices and much more. Once you have read through the crash course mentioned above, you'll be able to safely skip the first couple of chapters in the book that mostly deal with the syntax. When you reach [The Hitchhiker's Guide to Concurrency](http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency) chapter, that's where the real fun starts. +* [Learn You Some Erlang for Great Good!](http://learnyousomeerlang.com/) is an excellent introduction to Erlang, its design principles, standard library, best practices, and much more. Once you have read through the crash course mentioned above, you'll be able to safely skip the first couple of chapters in the book that mostly deal with the syntax. When you reach [The Hitchhiker's Guide to Concurrency](http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency) chapter, that's where the real fun starts. From ae3a13ad26f5db76d64d85cd91ceb3df5c089128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 4 Jan 2017 13:57:56 +0100 Subject: [PATCH 0618/1761] Build early on a distinction between named and anonymous functions --- .../2013-08-08-elixir-design-goals.markdown | 2 +- crash-course.markdown | 9 +------- getting-started/basic-types.markdown | 21 ++++++++----------- getting-started/modules.markdown | 2 ++ 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown index 6b5b316e8..f9fe6fc48 100644 --- a/_posts/2013-08-08-elixir-design-goals.markdown +++ b/_posts/2013-08-08-elixir-design-goals.markdown @@ -136,7 +136,7 @@ defmodule Hello do end ``` -Given my previous background in Ruby, it is natural that some of the constructs added were borrowed from Ruby. However, those additions were a by-product, never a language goal. +Given my previous background in Ruby, it is natural that some of the constructs added were borrowed from Ruby. However, those additions were a by-product, and not a language goal. Many language constructs are also inspired by their Erlang counter-parts, like some of the control-flow macros, operators and containers. Notice how some Elixir code: diff --git a/crash-course.markdown b/crash-course.markdown index 7fdbb3b0f..41722a40c 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -152,13 +152,6 @@ iex> ^a = 3 ### Calling functions -Elixir allows you to omit parentheses in function calls, Erlang does not. - -| Erlang | Elixir | -|-------------------|----------------| -| some_function(). | some_function | -| sum(A, B) | sum a, b | - Invoking a function from a module uses different syntax. In Erlang, you would write ```erlang @@ -174,7 +167,7 @@ List.last([1, 2]) **Note**. Since Erlang modules are represented by atoms, you may invoke Erlang functions in Elixir as follows: ```elixir -:lists.sort [3, 2, 1] +:lists.sort([3, 2, 1]) ``` All of the Erlang built-ins reside in the `:erlang` module. diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 7b21d6a79..720714c7e 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -44,7 +44,7 @@ iex> rem 10, 3 1 ``` -Notice that parentheses are not required in order to invoke a function. +Notice Elixir allows you to drop the parentheses when invoking named functions. Such feature gives a cleaner syntax when writing declarations and control-flow constructs. Elixir also supports shortcut notations for entering binary, octal, and hexadecimal numbers: @@ -94,7 +94,6 @@ false Elixir provides a bunch of predicate functions to check for a value type. For example, the `is_boolean/1` function can be used to check if a value is a boolean or not: - ```iex iex> is_boolean(true) true @@ -104,7 +103,7 @@ false You can also use `is_integer/1`, `is_float/1` or `is_number/1` to check, respectively, if an argument is an integer, a float, or either. -> Note: At any moment you can type `h` in the shell to print information on how to use the shell. The `h` helper can also be used to access documentation for any function. For example, typing `h is_integer/1` is going to print the documentation for the `is_integer/1` function. It also works with operators and other constructs (try `h ==/2`). +> Note: At any moment you can type `h()` in the shell to print information on how to use the shell. The `h` helper can also be used to access documentation for any function. For example, typing `h is_integer/1` is going to print the documentation for the `is_integer/1` function. It also works with operators and other constructs (try `h ==/2`). ## Atoms @@ -197,24 +196,24 @@ iex> String.upcase("hellö") ## Anonymous functions -Functions are delimited by the keywords `fn` and `end`: +Anonymous functions can be created inline and are delimited by the keywords `fn` and `end`: ```iex iex> add = fn a, b -> a + b end #Function<12.71889879/2 in :erl_eval.expr/5> +iex> add.(1, 2) +3 iex> is_function(add) true -iex> is_function(add, 2) +iex> is_function(add, 2) # check if it expects exactly 2 arguments true -iex> is_function(add, 1) +iex> is_function(add, 1) # check if it expects exactly 1 argument false -iex> add.(1, 2) -3 ``` -Functions are "first class citizens" in Elixir meaning they can be passed as arguments to other functions as integers and strings can. In the example, we have passed the function in the variable `add` to the `is_function/1` function which correctly returned `true`. We can also check the arity of the function by calling `is_function/2`. +Functions are "first class citizens" in Elixir meaning they can be passed as arguments to other functions in the same way as integers and strings. In the example, we have passed the function in the variable `add` to the `is_function/1` function which correctly returned `true`. We can also check the arity of the function by calling `is_function/2`. -Note a dot (`.`) between the variable and parenthesis is required to invoke an anonymous function. +Note a dot (`.`) between the variable and parentheses is required to invoke an anonymous function. The dot ensures there is no ambiguity between calling an anonymous function named `add` and a named function `add/2`. In this sense, Elixir makes a clear distinction between anonymous functions and named functions. We will explore those differences in [Chapter 8](/getting-started/modules.html). Anonymous functions are closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anonymous function we have previously defined: @@ -236,8 +235,6 @@ iex> x 42 ``` -The capture syntax [`&()`](https://hexdocs.pm/elixir/Kernel.SpecialForms.html) can also be used for creating anonymous functions. This type of syntax will be discussed in [Chapter 8](/getting-started/modules.html). - ## (Linked) Lists Elixir uses square brackets to specify a list of values. Values can be of any type: diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index 3613be76d..a3bf7c04f 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -156,6 +156,8 @@ iex> fun.(0) true ``` +Remember Elixir makes a distinction between anonymous functions and named functions, where the former must be invoked with a dot (`.`) between the variable name and parentheses. The capture operator bridges this gap by allowing named functions to be assigned to variables and passed as arguments in the same way we assign, invoke and pass anonymous functions. + Local or imported functions, like `is_function/1`, can be captured without the module: ```iex From ebcc54da01acb7e3fbbddebfcab855f2c7a42827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 5 Jan 2017 00:20:05 +0100 Subject: [PATCH 0619/1761] Release v1.4.0 --- elixir.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index cc86461db..f54516b0c 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.4.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0-rc.0/Precompiled.zip,prerelease,1,23257bcd484e767fa1149cf8046da1f865a6ad3b,9756080922820dad162c08d794eeec1f6655806bdaddeabf4dfb0ae5128363d6 +1.4.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0/Precompiled.zip,release,1,d6241b0fd335a80d553e71cdb1a4b4e61a6cae42,d94fa3f0f147611552ef7d34b97fa7852c0eb721ff9a73053e753f13578e689fe48a476e2529b8f644dee1693c0c15e637c0c77ec49bdf989ae6c4201482a4b4 1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1,, 1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1,, 1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1,, From af8a909d1d78ffbbdf1ba458cc54f22214b115f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 5 Jan 2017 01:50:57 +0100 Subject: [PATCH 0620/1761] Release v1.4.0 announcement (#912) --- _includes/search.html | 2 +- ...2017-01-05-elixir-v1-4-0-released.markdown | 134 ++++++++++++++++++ images/contents/iex-coloring.png | Bin 0 -> 36856 bytes 3 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 _posts/2017-01-05-elixir-v1-4-0-released.markdown create mode 100644 images/contents/iex-coloring.png diff --git a/_includes/search.html b/_includes/search.html index aabe51dff..9c7f5f80e 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ diff --git a/_posts/2017-01-05-elixir-v1-4-0-released.markdown b/_posts/2017-01-05-elixir-v1-4-0-released.markdown new file mode 100644 index 000000000..948e76cd1 --- /dev/null +++ b/_posts/2017-01-05-elixir-v1-4-0-released.markdown @@ -0,0 +1,134 @@ +--- +layout: post +title: Elixir v1.4 released +author: José Valim +category: Releases +excerpt: Elixir v1.4 brings many improvements to the language, its standard library and the Mix build tool. +--- + +Elixir v1.4 brings new features, enhancements and bug fixes. The most notable changes are the addition of the `Registry` module, the `Task.async_stream/3` and `Task.async_stream/5` function which aid developers in writing concurrent software, and the new application inference and commands added to Mix. + +In this post we will cover the main additions. The complete [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.4.0) are also available. + +## Registry + +The [`Registry`](https://hexdocs.pm/elixir/Registry.html) is a new module in Elixir's standard library that allows Elixir developers to implement patterns such as name lookups, code dispatching or even a pubsub system in a simple and scalable way. + +Broadly speaking, the Registry is a local, decentralized and scalable key-value process storage. Let's break this in parts: + + * Local because keys and values are only accessible to the current node (opposite to distributed) + * Decentralized because there is no single entity responsible for managing the registry + * Scalable because performance scales linearly with the addition of more cores upon partitioning + +A registry may have unique or duplicate keys. Every key-value pair is associated to the process registering the key. Keys are automatically removed once the owner process terminates. Starting, registering and looking up keys is quite straight-forward: + +```iex +iex> Registry.start_link(:unique, MyRegistry) +iex> {:ok, _} = Registry.register(MyRegistry, "hello", 1) +iex> Registry.lookup(MyRegistry, "hello") +[{self(), 1}] +``` + +Finally, huge thanks to [Bram Verburg](https://twitter.com/voltonez) who has performed [extensive benchmarks](https://docs.google.com/spreadsheets/d/1MByRZJMCnZ1wPiLhBEnSRRSuy1QXp8kr27PIOXO3qqg/edit#gid=0) on the registry to show it scales linearly with the number of cores by increasing the number of partitions. + +## Syntax coloring + +Elixir v1.4 introduces the ability to syntax color inspected data structures and IEx automatically relies on this feature to provide syntax coloring for evaluated shell results: + +![IEx coloring](/images/contents/iex-coloring.png) + +This behaviour can be configured via the `:syntax_colors` coloring option: + +```elixir +IEx.configure [colors: [syntax_colors: [atom: :cyan, string: :green]]] +``` + +To disable coloring altogether, simply pass an empty list to `:syntax_colors`. + +## Task.async_stream + +When there is a need to traverse a collection of items concurrently, Elixir developers often resort to tasks: + +```elixir +collection +|> Enum.map(&Task.async(SomeMod, :function, [&1])) +|> Enum.map(&Task.await/1) +``` + +The snippet above will spawn a new task by invoking `SomeMod.function(element)` for every element in the collection and then await for the task results. + +However, the snippet above will spawn and run concurrently as many tasks as there are items in the collection. While this may be fine in many occasions, including small collections, sometimes it is necessary to restrict amount of tasks running concurrently, specially when shared resources are involved. + +Elixir v1.4 adds `Task.async_stream/3` and `Task.async_stream/5` which brings some of the lessons we learned from [the GenStage project](/blog/2016/07/14/announcing-genstage/) directly into Elixir: + +```elixir +collection +|> Task.async_stream(SomeMod, :function, [], max_concurrency: 8) +|> Enum.to_list() +``` + +The code above will also start the same `SomeMod.function(element)` task for every element in the collection except it will also guarantee we have at most 8 tasks being processed at the same time. You can use `System.schedulers_online` to retrieve the number of cores and balance the processing based on the amount of cores available. + +The `Task.async_stream` functions are also lazy, allowing developers to partially consume the stream until a condition is reached. Furthermore, `Task.Supervisor.async_stream/4` and `Task.Supervisor.async_stream/6` can be used to ensure the concurrent tasks are spawned under a given supervisor. + +## Application inference + +In previous Mix versions, most of your dependencies had to be added both to your dependencies list and applications list. Here is how a `mix.exs` would look like: + +```elixir +def application do + [applications: [:logger, :plug, :postgrex]] +end + +def deps do + [{:plug, "~> 1.2"}, + {:postgrex, "~> 1.0"}] +end +``` + +This was a common source of confusion and quite error prone as many developers would not list their dependencies in the applications list. + +Mix v1.4 now automatically infers your applications list as long as you leave the `:applications` key empty. The `mix.exs` above can be rewritten to: + +```elixir +def application do + [extra_applications: [:logger]] +end + +def deps do + [{:plug, "~> 1.2"}, + {:postgrex, "~> 1.0"}] +end +``` + +With the above, Mix will automatically build your application list based on your dependencies. Developers now only need to specify which applications shipped as part of Erlang or Elixir that they require, such as `:logger`. + +Finally, if there is a dependency you don't want to include in the application runtime list, you can do so by specifying the `runtime: false` option: + + {:distillery, "> 0.0.0", runtime: false} + +We hope this feature provides a more streamlined workflow for developers who are building releases for their Elixir projects. + +## Mix install from SCM + +Mix v1.4 can now install escripts and archives from both Git and Hex, providing you with even more options for distributing Elixir code. + +This makes it possible to distribute CLI applications written in Elixir by publishing a package which builds an escript to Hex. [`ex_doc`](https://hex.pm/packages/ex_doc) has been updated to serve as an example of how to use this new functionality. + +Simply running: + + mix escript.install hex ex_doc + +will fetch `ex_doc` and its dependencies, build them, and then install `ex_doc` to `~/.mix/escripts` (by default). After adding `~/.mix/escripts` to your `PATH`, running `ex_doc` is as simple as: + + ex_doc + +You can now also install archives from Hex in this way. Since they are fetched and built on the user's machine, they do not have the same limitations as pre-built archives. However, keep in mind archives are loaded on every Mix command and may conflict with modules or dependencies in your projects. For this reason, escripts is the preferred format for sharing executables. + +It is also possible to install escripts and archives by providing a Git/GitHub repo. See `mix help escript.install` and `mix help archive.install` for more details. + +## Summing up + +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.4.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. + +Happy coding! diff --git a/images/contents/iex-coloring.png b/images/contents/iex-coloring.png new file mode 100644 index 0000000000000000000000000000000000000000..7e3e4a67a31f85256227107791ef3c2fa9f60a15 GIT binary patch literal 36856 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≤Mg~|Lqx?Z2FyTFm9Tl?jl(wxHn5CQ2S98T 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 Date: Thu, 5 Jan 2017 01:52:23 +0100 Subject: [PATCH 0621/1761] Remove .0 from news link --- _includes/search.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/search.html b/_includes/search.html index 9c7f5f80e..da3aa845f 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ From d65a1142cb09f5658a293794ead4e9783ecb6c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 5 Jan 2017 11:10:03 +0100 Subject: [PATCH 0622/1761] Remove sha information to new installer --- elixir.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index f54516b0c..4ff6fd04d 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.4.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0/Precompiled.zip,release,1,d6241b0fd335a80d553e71cdb1a4b4e61a6cae42,d94fa3f0f147611552ef7d34b97fa7852c0eb721ff9a73053e753f13578e689fe48a476e2529b8f644dee1693c0c15e637c0c77ec49bdf989ae6c4201482a4b4 +1.4.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0/Precompiled.zip,release,1,, 1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1,, 1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1,, 1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1,, From afcf169ef5e1203d259778f2c8faa9ed3b73c4f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 5 Jan 2017 11:37:53 +0100 Subject: [PATCH 0623/1761] Add signatures back --- elixir.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index 4ff6fd04d..acabf2d34 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.4.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0/Precompiled.zip,release,1,, +1.4.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0/Precompiled.zip,release,1,5869965e1b1c4e9495615165ad0f235a683283b0,13f5b29ab21de0cedcc67046019aae54ef147769672521cb842737801be2ef5da52915ed4b992ff488724b89a329f36d6119aee93b52cb5fe50dd06f93876cd8 1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1,, 1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1,, 1.3.2,https://github.com/elixir-lang/elixir/releases/download/v1.3.2/Precompiled.zip,release,1,, From 068488887d40f29614a719882d14ec4a6a83965c Mon Sep 17 00:00:00 2001 From: Tony Han Date: Thu, 5 Jan 2017 22:56:22 +0800 Subject: [PATCH 0624/1761] Update current year of copyright to 2017 (#914) --- _includes/bottom.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index dc8509af8..2a71f789a 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -3,7 +3,7 @@
        From 1925dd0e652ad23f5a1bf141551c3e6bd9f91b4f Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Thu, 5 Jan 2017 12:53:41 -0500 Subject: [PATCH 0625/1761] Add v1.4.0 to Docs page (#916) --- docs.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs.markdown b/docs.markdown index 532c3f17f..d52ba003d 100644 --- a/docs.markdown +++ b/docs.markdown @@ -26,6 +26,15 @@ Choose which version you want documentation for. * [Logger](https://hexdocs.pm/logger/master/) - built-in Logger * [Mix](https://hexdocs.pm/mix/master/) - build tool +

        v1.4 (download)

        + +* [Elixir](https://hexdocs.pm/elixir/1.4.0/) - standard library +* [EEx](https://hexdocs.pm/eex/1.4.0/) - templating library +* [ExUnit](https://hexdocs.pm/ex_unit/1.4.0/) - unit test library +* [IEx](https://hexdocs.pm/iex/1.4.0/) - interactive shell +* [Logger](https://hexdocs.pm/logger/1.4.0/) - built-in Logger +* [Mix](https://hexdocs.pm/mix/1.4.0/) - build tool +

        v1.3 (download)

        * [Elixir](https://hexdocs.pm/elixir/1.3.3/) - standard library From 86e06dce9ec04924f98ba98c41afe3403d7af072 Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Thu, 5 Jan 2017 14:47:51 -0500 Subject: [PATCH 0626/1761] Dynamically update year based on last site build (#915) So we don't need to update the footer every new year. Improved version of https://github.com/elixir-lang/elixir-lang.github.com/pull/914 Additionally replaced the hyphen with an en-dash to separate the years (that's the proper way of writing years lapses). --- _includes/bottom.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/bottom.html b/_includes/bottom.html index 2a71f789a..89cbcbea9 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -3,7 +3,7 @@
        From 429954557b3fce2f55ffd7880ca4e5040e40ab30 Mon Sep 17 00:00:00 2001 From: Ryder Timberlake Date: Fri, 6 Jan 2017 03:14:54 -0500 Subject: [PATCH 0627/1761] Update basic-types.markdown (#913) --- getting-started/basic-types.markdown | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 720714c7e..733710843 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -79,7 +79,7 @@ iex> trunc(3.58) ## Identifying functions -Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments which the function takes. From this point on we will use both the function name and its arity to describe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes 1 argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of only `2`. +Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments which the function takes. From this point on we will use both the function name and its arity to describe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes 1 argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of `2`. ## Booleans @@ -205,9 +205,9 @@ iex> add.(1, 2) 3 iex> is_function(add) true -iex> is_function(add, 2) # check if it expects exactly 2 arguments +iex> is_function(add, 2) # check if add is a function that expects exactly 2 arguments true -iex> is_function(add, 1) # check if it expects exactly 1 argument +iex> is_function(add, 1) # check if add is a function that expects exactly 1 argument false ``` @@ -246,7 +246,7 @@ iex> length [1, 2, 3] 3 ``` -Two lists can be concatenated and subtracted using the `++/2` and `--/2` operators: +Two lists can be concatenated or subtracted using the `++/2` and `--/2` operators: ```iex iex> [1, 2, 3] ++ [4, 5, 6] @@ -255,7 +255,7 @@ iex> [1, true, 2, false, 3, true] -- [true, false] [1, 2, 3, true] ``` -Throughout the tutorial, we will talk a lot about the head and tail of a list. The head is the first element of a list and the tail is the remainder of a list. They can be retrieved with the functions `hd/1` and `tl/1`. Let's assign a list to a variable and retrieve its head and tail: +Throughout the tutorial, we will talk a lot about the head and tail of a list. The head is the first element of a list and the tail is the remainder of the list. They can be retrieved with the functions `hd/1` and `tl/1`. Let's assign a list to a variable and retrieve its head and tail: ```iex iex> list = [1, 2, 3] @@ -265,14 +265,14 @@ iex> tl(list) [2, 3] ``` -Getting the head or the tail of an empty list is an error: +Getting the head or the tail of an empty list throws an error: ```iex iex> hd [] ** (ArgumentError) argument error ``` -Sometimes you will create a list and it will return a value in single-quotes. For example: +Sometimes you will create a list and it will return a value in single quotes. For example: ```iex iex> [11, 12, 13] @@ -304,7 +304,7 @@ iex> 'hello' == "hello" false ``` -Single-quotes are char lists, double-quotes are strings. We will talk more about them in the ["Binaries, strings and char lists"](/getting-started/binaries-strings-and-char-lists.html) chapter. +Single quotes are char lists, double quotes are strings. We will talk more about them in the ["Binaries, strings and char lists"](/getting-started/binaries-strings-and-char-lists.html) chapter. ## Tuples @@ -317,7 +317,7 @@ iex> tuple_size {:ok, "hello"} 2 ``` -Tuples store elements contiguously in memory. This means accessing a tuple element per index or getting the tuple size is a fast operation. Indexes start from zero: +Tuples store elements contiguously in memory. This means accessing a tuple element by index or getting the tuple size is a fast operation. Indexes start from zero: ```iex iex> tuple = {:ok, "hello"} @@ -339,7 +339,7 @@ iex> tuple {:ok, "hello"} ``` -Notice that `put_elem/3` returned a new tuple. The original tuple stored in the `tuple` variable was not modified because Elixir data types are immutable. By being immutable, Elixir code is easier to reason about as you never need to worry if a particular code is mutating your data structure in place. +Notice that `put_elem/3` returned a new tuple. The original tuple stored in the `tuple` variable was not modified because Elixir data types are immutable. By being immutable, Elixir code is easier to reason about as you never need to worry that any code might be mutating your data structure in place. ## Lists or tuples? @@ -361,7 +361,7 @@ iex> [0 | list] Tuples, on the other hand, are stored contiguously in memory. This means getting the tuple size or accessing an element by index is fast. However, updating or adding elements to tuples is expensive because it requires copying the whole tuple in memory. -Those performance characteristics dictate the usage of those data structures. One very common use case for tuples is to use them to return extra information from a function. For example, `File.read/1` is a function that can be used to read file contents and it returns tuples: +Those performance characteristics dictate the usage of those data structures. One very common use case for tuples is to use them to return extra information from a function. For example, `File.read/1` is a function that can be used to read file contents. It returns tuples: ```iex iex> File.read("path/to/existing/file") @@ -381,8 +381,8 @@ iex> elem(tuple, 1) "hello" ``` -When "counting" the number of elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). As a mnemonic, both "length" and "linear" start with "l". +When counting the elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). As a mnemonic, both "length" and "linear" start with "l". -For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for the tuple size), `length/1` (for the list length) and `String.length/1` (for the number of graphemes in a string). That said, we use `byte_size` to get the number of bytes in a string, which is cheap, but retrieving the number of unicode characters uses `String.length`, which may be expensive since the whole string needs to be traversed. +For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for tuple size), `length/1` (for list length) and `String.length/1` (for the number of graphemes in a string). We use `byte_size` to get the number of bytes in a string -- a cheap operation. Retrieving the number of unicode characters, on the other hand, uses `String.length`, and may be expensive as it relies on a traversal of the entire string. Elixir also provides `Port`, `Reference`, and `PID` as data types (usually used in process communication), and we will take a quick look at them when talking about processes. For now, let's take a look at some of the basic operators that go with our basic types. From bdc0d39e06b62358ab3d536b63d901b1336d1f34 Mon Sep 17 00:00:00 2001 From: Bonghyun Kim Date: Sun, 8 Jan 2017 03:20:13 +0900 Subject: [PATCH 0628/1761] Update mix.exs of guide to use :extra_applications (#918) Mix 1.4 introduced automatic inference of required applications from dependencies list. Now Mix creates `:extra_applications` instead of `:applications` by default in application configuration in `mix.exs`. This commit updates the example `mix.exs` configurations in the guide to reflect that change. Signed-off-by: Bonghyun Kim --- .../mix-otp/dependencies-and-umbrella-apps.markdown | 6 +++--- .../mix-otp/distributed-tasks-and-configuration.markdown | 2 +- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index edf0e8e45..fb8c74a3e 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -169,7 +169,7 @@ defmodule KVServer.Mixfile do end def application do - [applications: [:logger], + [extra_applications: [:logger], mod: {KVServer, []}] end @@ -195,7 +195,7 @@ The second change is in the `application` function inside `mix.exs`: ```elixir def application do - [applications: [:logger], + [extra_applications: [:logger], mod: {KVServer, []}] end ``` @@ -247,7 +247,7 @@ The line above makes `:kv` available as a dependency inside `:kv_server`. We can ```elixir def application do - [applications: [:logger, :kv], + [extra_applications: [:logger, :kv], mod: {KVServer, []}] end ``` diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index e1f65a7f7..9c9a35d67 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -296,7 +296,7 @@ Open up `apps/kv/mix.exs` and change the `application/0` function to return the ```elixir def application do - [applications: [], + [extra_applications: [:logger], env: [routing_table: []], mod: {KV, []}] end diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index a5f1ca0e2..0f5ad1037 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -102,7 +102,7 @@ defmodule KV.Mixfile do end def application do - [applications: [:logger]] + [extra_applications: [:logger]] end defp deps do diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 0d563dcd3..a71cd0bd3 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -175,7 +175,7 @@ We can configure the application callback in two steps. First, open up the `mix. ```elixir def application do - [applications: [:logger], + [extra_applications: [:logger], mod: {KV, []}] end ``` From 693e7d57c67ab599a295f533817e3f55f199af93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 7 Jan 2017 19:23:56 +0100 Subject: [PATCH 0629/1761] More fixes for :extra_applications --- getting-started/erlang-libraries.markdown | 2 +- getting-started/introduction.markdown | 2 +- .../mix-otp/dependencies-and-umbrella-apps.markdown | 11 +---------- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index 02579f3b0..115a98a00 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -68,7 +68,7 @@ edit your `mix.exs` file to include: ```elixir def application do - [applications: [:crypto]] + [extra_applications: [:crypto]] end ``` diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index c5118a759..32be21b48 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -14,7 +14,7 @@ In this tutorial we are going to teach you the Elixir foundation, the language s Our requirements are: - * Elixir - Version 1.2.0 onwards + * Elixir - Version 1.4.0 onwards * Erlang - Version 18.0 onwards Let's get started! diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index fb8c74a3e..c8125941c 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -243,16 +243,7 @@ defp deps do end ``` -The line above makes `:kv` available as a dependency inside `:kv_server`. We can invoke the modules defined in `:kv` but it does not automatically start the `:kv` application. For that, we also need to list `:kv` as an application inside `application/0`: - -```elixir -def application do - [extra_applications: [:logger, :kv], - mod: {KVServer, []}] -end -``` - -Now Mix will guarantee the `:kv` application is started before `:kv_server` is started. +The line above makes `:kv` available as a dependency inside `:kv_server` and automatically starts the `:kv` application before the server starts. Finally, copy the `kv` application we have built so far to the `apps` directory in our new umbrella project. The final directory structure should match the structure we mentioned earlier: From d1d916fd1c42ac7d56c75cf112d3488b98167e67 Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sun, 8 Jan 2017 12:23:28 -0500 Subject: [PATCH 0630/1761] Update github-pages gem (#919) Run: bundle update github-pages --- Gemfile.lock | 146 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 108 insertions(+), 38 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e4471ec3e..14feaea99 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,78 +7,145 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.4.0) + addressable (2.5.0) + public_suffix (~> 2.0, >= 2.0.2) coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.10.0) - colorator (0.1) - ethon (0.9.0) + coffee-script-source (1.12.2) + colorator (1.1.0) + ethon (0.10.1) ffi (>= 1.3.0) execjs (2.7.0) - faraday (0.9.2) + faraday (0.10.1) multipart-post (>= 1.2, < 3) ffi (1.9.14) + forwardable-extended (2.6.0) gemoji (2.1.0) - github-pages (89) + github-pages (112) activesupport (= 4.2.7) - github-pages-health-check (= 1.1.0) - jekyll (= 3.1.6) + github-pages-health-check (= 1.3.0) + jekyll (= 3.3.1) + jekyll-avatar (= 0.4.2) jekyll-coffeescript (= 1.0.1) - jekyll-feed (= 0.5.1) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.8.0) jekyll-gist (= 1.4.0) - jekyll-github-metadata (= 2.0.2) - jekyll-mentions (= 1.1.3) + jekyll-github-metadata (= 2.2.0) + jekyll-mentions (= 1.2.0) + jekyll-optional-front-matter (= 0.1.2) jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.0.3) jekyll-redirect-from (= 0.11.0) + jekyll-relative-links (= 0.2.1) jekyll-sass-converter (= 1.3.0) - jekyll-seo-tag (= 2.0.0) - jekyll-sitemap (= 0.10.0) + jekyll-seo-tag (= 2.1.0) + jekyll-sitemap (= 0.12.0) + jekyll-swiss (= 0.4.0) + jekyll-theme-architect (= 0.0.3) + jekyll-theme-cayman (= 0.0.3) + jekyll-theme-dinky (= 0.0.3) + jekyll-theme-hacker (= 0.0.3) + jekyll-theme-leap-day (= 0.0.3) + jekyll-theme-merlot (= 0.0.3) + jekyll-theme-midnight (= 0.0.3) + jekyll-theme-minimal (= 0.0.3) + jekyll-theme-modernist (= 0.0.3) + jekyll-theme-primer (= 0.1.5) + jekyll-theme-slate (= 0.0.3) + jekyll-theme-tactile (= 0.0.3) + jekyll-theme-time-machine (= 0.0.3) + jekyll-titles-from-headings (= 0.1.3) jemoji (= 0.7.0) kramdown (= 1.11.1) liquid (= 3.0.6) listen (= 3.0.6) mercenary (~> 0.3) + minima (= 2.0.0) rouge (= 1.11.1) terminal-table (~> 1.4) - github-pages-health-check (1.1.0) + github-pages-health-check (1.3.0) addressable (~> 2.3) net-dns (~> 0.8) octokit (~> 4.0) - public_suffix (~> 1.4) + public_suffix (~> 2.0) typhoeus (~> 0.7) html-pipeline (2.4.2) activesupport (>= 2) nokogiri (>= 1.4) i18n (0.7.0) - jekyll (3.1.6) - colorator (~> 0.1) + jekyll (3.3.1) + addressable (~> 2.4) + colorator (~> 1.0) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 1.1) kramdown (~> 1.3) liquid (~> 3.0) mercenary (~> 0.3.3) + pathutil (~> 0.9) rouge (~> 1.7) safe_yaml (~> 1.0) + jekyll-avatar (0.4.2) + jekyll (~> 3.0) jekyll-coffeescript (1.0.1) coffee-script (~> 2.2) - jekyll-feed (0.5.1) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.8.0) + jekyll (~> 3.3) jekyll-gist (1.4.0) octokit (~> 4.2) - jekyll-github-metadata (2.0.2) + jekyll-github-metadata (2.2.0) jekyll (~> 3.1) - octokit (~> 4.0) - jekyll-mentions (1.1.3) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.2.0) + activesupport (~> 4.0) html-pipeline (~> 2.3) jekyll (~> 3.0) + jekyll-optional-front-matter (0.1.2) + jekyll (~> 3.0) jekyll-paginate (1.1.0) + jekyll-readme-index (0.0.3) + jekyll (~> 3.0) jekyll-redirect-from (0.11.0) jekyll (>= 2.0) + jekyll-relative-links (0.2.1) + jekyll (~> 3.3) jekyll-sass-converter (1.3.0) sass (~> 3.2) - jekyll-seo-tag (2.0.0) - jekyll (~> 3.1) - jekyll-sitemap (0.10.0) + jekyll-seo-tag (2.1.0) + jekyll (~> 3.3) + jekyll-sitemap (0.12.0) + jekyll (~> 3.3) + jekyll-swiss (0.4.0) + jekyll-theme-architect (0.0.3) + jekyll (~> 3.3) + jekyll-theme-cayman (0.0.3) + jekyll (~> 3.3) + jekyll-theme-dinky (0.0.3) + jekyll (~> 3.3) + jekyll-theme-hacker (0.0.3) + jekyll (~> 3.3) + jekyll-theme-leap-day (0.0.3) + jekyll (~> 3.3) + jekyll-theme-merlot (0.0.3) + jekyll (~> 3.3) + jekyll-theme-midnight (0.0.3) + jekyll (~> 3.3) + jekyll-theme-minimal (0.0.3) + jekyll (~> 3.3) + jekyll-theme-modernist (0.0.3) + jekyll (~> 3.3) + jekyll-theme-primer (0.1.5) + jekyll (~> 3.3) + jekyll-theme-slate (0.0.3) + jekyll (~> 3.3) + jekyll-theme-tactile (0.0.3) + jekyll (~> 3.3) + jekyll-theme-time-machine (0.0.3) + jekyll (~> 3.3) + jekyll-titles-from-headings (0.1.3) + jekyll (~> 3.3) jekyll-watch (1.5.0) listen (~> 3.0, < 3.1) jemoji (0.7.0) @@ -94,31 +161,34 @@ GEM rb-inotify (>= 0.9.7) mercenary (0.3.6) mini_portile2 (2.1.0) - minitest (5.9.0) + minima (2.0.0) + minitest (5.10.1) multipart-post (2.0.0) net-dns (0.8.0) - nokogiri (1.6.8) + nokogiri (1.7.0.1) mini_portile2 (~> 2.1.0) - pkg-config (~> 1.1.7) - octokit (4.3.0) - sawyer (~> 0.7.0, >= 0.5.3) - pkg-config (1.1.7) - public_suffix (1.5.3) - rb-fsevent (0.9.7) + octokit (4.6.2) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.14.0) + forwardable-extended (~> 2.6) + public_suffix (2.0.5) + rb-fsevent (0.9.8) rb-inotify (0.9.7) ffi (>= 0.5.0) rouge (1.11.1) safe_yaml (1.0.4) - sass (3.4.22) - sawyer (0.7.0) - addressable (>= 2.3.5, < 2.5) - faraday (~> 0.8, < 0.10) - terminal-table (1.6.0) + sass (3.4.23) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + terminal-table (1.7.3) + unicode-display_width (~> 1.1.1) thread_safe (0.3.5) typhoeus (0.8.0) ethon (>= 0.8.0) tzinfo (1.2.2) thread_safe (~> 0.1) + unicode-display_width (1.1.2) PLATFORMS ruby @@ -127,4 +197,4 @@ DEPENDENCIES github-pages BUNDLED WITH - 1.11.2 + 1.13.6 From 41ecb741cd1c1b89c3d0dfe1f1d84b4ae1466666 Mon Sep 17 00:00:00 2001 From: Bonghyun Kim Date: Mon, 9 Jan 2017 06:43:22 +0900 Subject: [PATCH 0631/1761] Update Mix and OTP guide for Elixir 1.4 (#920) Reflect new application directory structure from `mix new MyApp --sup` in Mix 1.4. Add parentheses to function calls used like variable, like `self()`, `table()`, `flush()`. Change a few wordings for better clarity. Other minor changes like the result of `Task.async`. Signed-off-by: Bonghyun Kim --- .../dependencies-and-umbrella-apps.markdown | 20 +++++++++++----- ...stributed-tasks-and-configuration.markdown | 14 +++++------ .../mix-otp/docs-tests-and-with.markdown | 6 ++--- getting-started/mix-otp/ets.markdown | 4 ++-- getting-started/mix-otp/genserver.markdown | 2 +- .../mix-otp/task-and-gen-tcp.markdown | 24 ++++++++++--------- 6 files changed, 40 insertions(+), 30 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index c8125941c..3545bd0bc 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -170,7 +170,7 @@ defmodule KVServer.Mixfile do def application do [extra_applications: [:logger], - mod: {KVServer, []}] + mod: {KVServer.Application, []}] end defp deps do @@ -196,25 +196,33 @@ The second change is in the `application` function inside `mix.exs`: ```elixir def application do [extra_applications: [:logger], - mod: {KVServer, []}] + mod: {KVServer.Application, []}] end ``` -Because we passed the `--sup` flag, Mix automatically added `mod: {KVServer, []}`, specifying that `KVServer` is our application callback module. `KVServer` will start our application supervision tree. +Because we passed the `--sup` flag, Mix automatically added `mod: {KVServer.Application, []}`, specifying that `KVServer.Application` is our application callback module. `KVServer.Application` will start our application supervision tree. -In fact, let's open up `lib/kv_server.ex`: +In fact, let's open up `lib/kv_server/application.ex`: ```elixir -defmodule KVServer do +defmodule KVServer.Application do + # See http://elixir-lang.org/docs/stable/elixir/Application.html + # for more information on OTP Applications + @moduledoc false + use Application def start(_type, _args) do import Supervisor.Spec, warn: false + # Define workers and child supervisors to be supervised children = [ - # worker(KVServer.Worker, [arg1, arg2, arg3]) + # Starts a worker by calling: KVServer.Worker.start_link(arg1, arg2, arg3) + # worker(KVServer.Worker, [arg1, arg2, arg3]), ] + # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html + # for other strategies and supported options opts = [strategy: :one_for_one, name: KVServer.Supervisor] Supervisor.start_link(children, opts) end diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 9c9a35d67..8db36fad9 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -84,9 +84,9 @@ iex> pid = Node.spawn_link :"foo@computer-name", fn -> ...> end ...> end #PID<9014.59.0> -iex> send pid, {:ping, self} +iex> send pid, {:ping, self()} {:ping, #PID<0.73.0>} -iex> flush +iex> flush() :pong :ok ``` @@ -138,7 +138,7 @@ From inside `bar@computer-name`, we can now spawn a task directly on the other n iex> task = Task.Supervisor.async {KV.RouterTasks, :"foo@computer-name"}, fn -> ...> {:ok, node()} ...> end -%Task{pid: #PID<12467.88.0>, ref: #Reference<0.0.0.400>} +%Task{owner: #PID<0.122.0>, pid: #PID<12467.88.0>, ref: #Reference<0.0.0.400>} iex> Task.await(task) {:ok, :"foo@computer-name"} ``` @@ -147,7 +147,7 @@ Our first distributed task retrieves the name of the node the task is running on ```iex iex> task = Task.Supervisor.async {KV.RouterTasks, :"foo@computer-name"}, Kernel, :node, [] -%Task{pid: #PID<12467.88.0>, ref: #Reference<0.0.0.400>} +%Task{owner: #PID<0.122.0>, pid: #PID<12467.89.0>, ref: #Reference<0.0.0.404>} iex> Task.await(task) :"foo@computer-name" ``` @@ -170,9 +170,9 @@ defmodule KV.Router do # Get the first byte of the binary first = :binary.first(bucket) - # Try to find an entry in the table or raise + # Try to find an entry in the table() or raise entry = - Enum.find(table, fn {enum, _node} -> + Enum.find(table(), fn {enum, _node} -> first in enum end) || no_entry_error(bucket) @@ -187,7 +187,7 @@ defmodule KV.Router do end defp no_entry_error(bucket) do - raise "could not find entry for #{inspect bucket} in table #{inspect table}" + raise "could not find entry for #{inspect bucket} in table() #{inspect table()}" end @doc """ diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 727a66176..98b481be5 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -181,7 +181,7 @@ defmodule KVServer.Command do end ``` -Before we implement this function, let's change our server to start using our new `parse/1` and `run/1` functions. Remember, our `read_line/1` function was also crashing when the client closed the socket, so let's take the opportunity to fix it, too. Open up `lib/kv_server.ex` and replace the existing server definition: +Before we implement this function, let's change our server to start using our new `parse/1` and `run/1` functions. Remember, our `read_line/1` function was also crashing when the client closed the socket, so let's take the opportunity to fix it, too. Open up `lib/kv_server/application.ex` and replace the existing server definition: ```elixir defp serve(socket) do @@ -333,7 +333,7 @@ Every function clause dispatches the appropriate command to the `KV.Registry` se Note that we have also defined a private function named `lookup/2` to help with the common functionality of looking up a bucket and returning its `pid` if it exists, `{:error, :not_found}` otherwise. -By the way, since we are now returning `{:error, :not_found}`, we should amend the `write_line/2` function in `KVServer` to print such error as well: +By the way, since we are now returning `{:error, :not_found}`, we should amend the `write_line/2` function in `KVServer.Application` to print such error as well: ```elixir defp write_line(socket, {:error, :not_found}) do @@ -422,7 +422,7 @@ This time, since our test relies on global data, we have not given `async: true` To avoid printing log messages during tests, ExUnit provides a neat feature called `:capture_log`. By setting `@tag :capture_log` before each test or `@moduletag :capture_log` for the whole test case, ExUnit will automatically capture anything that is logged while the test runs. In case our test fails, the captured logs will be printed alongside the ExUnit report. -Before setup, add the following call: +Between `use ExUnit.Case` and setup, add the following call: ```elixir @moduletag :capture_log diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 6eae963e2..a33b3075b 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -22,7 +22,7 @@ ETS allows us to store any Elixir term in an in-memory table. Working with ETS t ```iex iex> table = :ets.new(:buckets_registry, [:set, :protected]) 8207 -iex> :ets.insert(table, {"foo", self}) +iex> :ets.insert(table, {"foo", self()}) true iex> :ets.lookup(table, "foo") [{"foo", #PID<0.41.0>}] @@ -35,7 +35,7 @@ ETS tables can also be named, allowing us to access them by a given name: ```iex iex> :ets.new(:buckets_registry, [:named_table]) :buckets_registry -iex> :ets.insert(:buckets_registry, {"foo", self}) +iex> :ets.insert(:buckets_registry, {"foo", self()}) true iex> :ets.lookup(:buckets_registry, "foo") [{"foo", #PID<0.41.0>}] diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index df0db7ed0..6bb72db95 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -190,7 +190,7 @@ iex> Process.monitor(pid) #Reference<0.0.0.551> iex> Agent.stop(pid) :ok -iex> flush +iex> flush() {:DOWN, #Reference<0.0.0.551>, :process, #PID<0.66.0>, :normal} ``` diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 5fec7485c..111739dfd 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -21,7 +21,7 @@ A TCP server, in broad strokes, performs the following steps: 2. Waits for a client connection on that port and accepts it 3. Reads the client request and writes a response back -Let's implement those steps. Move to the `apps/kv_server` application, open up `lib/kv_server.ex`, and add the following functions: +Let's implement those steps. Move to the `apps/kv_server` application, open up `lib/kv_server/application.ex`, and add the following functions: ```elixir require Logger @@ -64,7 +64,7 @@ defp write_line(line, socket) do end ``` -We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is a loop accepting client connections. For each accepted connection, we call `serve/1`. +We are going to start our server by calling `KVServer.Application.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is a loop accepting client connections. For each accepted connection, we call `serve/1`. `serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: @@ -87,7 +87,7 @@ This is pretty much all we need to implement our echo server. Let's give it a tr Start an IEx session inside the `kv_server` application with `iex -S mix`. Inside IEx, run: ```iex -iex> KVServer.accept(4040) +iex> KVServer.Application.accept(4040) ``` The server is now running, and you will even notice the console is blocked. Let's use [a `telnet` client](https://en.wikipedia.org/wiki/Telnet) to access our server. There are clients available on most operating systems, and their command lines are generally similar: @@ -112,9 +112,9 @@ My particular telnet client can be exited by typing `ctrl + ]`, typing `quit`, a Once you exit the telnet client, you will likely see an error in the IEx session: ** (MatchError) no match of right hand side value: {:error, :closed} - (kv_server) lib/kv_server.ex:41: KVServer.read_line/1 - (kv_server) lib/kv_server.ex:33: KVServer.serve/1 - (kv_server) lib/kv_server.ex:27: KVServer.loop_acceptor/1 + (kv_server) lib/kv_server/application.ex:45: KVServer.Application.read_line/1 + (kv_server) lib/kv_server/application.ex:37: KVServer.Application.serve/1 + (kv_server) lib/kv_server/application.ex:30: KVServer.Application.loop_acceptor/1 That's because we were expecting data from `:gen_tcp.recv/2` but the client closed the connection. We need to handle such cases better in future revisions of our server. @@ -126,14 +126,14 @@ We have learned about agents, generic servers, and supervisors. They are all mea [The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/3` function that receives a module, function and arguments, allowing us to run a given function as part of a supervision tree. -Let's give it a try. Open up `lib/kv_server.ex`, and let's change the supervisor in the `start/2` function to the following: +Let's give it a try. Open up `lib/kv_server/application.ex`, and let's change the supervisor in the `start/2` function to the following: ```elixir def start(_type, _args) do import Supervisor.Spec children = [ - worker(Task, [KVServer, :accept, [4040]]) + worker(Task, [KVServer.Application, :accept, [4040]]) ] opts = [strategy: :one_for_one, name: KVServer.Supervisor] @@ -141,7 +141,7 @@ def start(_type, _args) do end ``` -With this change, we are saying that we want to run `KVServer.accept(4040)` as a worker. We are hardcoding the port for now, but we will discuss ways in which this could be changed later. +With this change, we are saying that we want to run `KVServer.Application.accept(4040)` as a worker. We are hardcoding the port for now, but we will discuss ways in which this could be changed later. Now that the server is part of the supervision tree, it should start automatically when we run the application. Type `mix run --no-halt` in the terminal, and once again use the `telnet` client to make sure that everything still works: @@ -156,7 +156,7 @@ say me say me ``` -Yes, it works! If you kill the client, causing the whole server to crash, you will see another one starts right away. However, does it *scale*? +Yes, it works! If you kill the client, the whole server will still crash. But you will see that another one starts right away. However, does it *scale*? Try to connect two telnet clients at the same time. When you do so, you will notice that the second client doesn't echo: @@ -238,7 +238,9 @@ Start a new server with `mix run --no-halt` and we can now open up many concurre Here is the full echo server implementation, in a single module: ```elixir -defmodule KVServer do +defmodule KVServer.Application do + @moduledoc false + use Application require Logger From 67b8e25e802cc31c926167fc6d0db8ff2b3283ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 8 Jan 2017 23:05:52 +0100 Subject: [PATCH 0632/1761] Keep the server implementation in KVServer --- ...stributed-tasks-and-configuration.markdown | 4 +- .../mix-otp/docs-tests-and-with.markdown | 10 ++--- .../mix-otp/task-and-gen-tcp.markdown | 44 ++++++------------- 3 files changed, 21 insertions(+), 37 deletions(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 8db36fad9..4e9af1618 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -187,7 +187,7 @@ defmodule KV.Router do end defp no_entry_error(bucket) do - raise "could not find entry for #{inspect bucket} in table() #{inspect table()}" + raise "could not find entry for #{inspect bucket} in table #{inspect table()}" end @doc """ @@ -238,7 +238,7 @@ And now run tests with: $ elixir --sname foo -S mix test ``` -Our test should successfully pass. Excellent! +The test should pass. ## Test filters and tags diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 98b481be5..06d506b01 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -181,7 +181,7 @@ defmodule KVServer.Command do end ``` -Before we implement this function, let's change our server to start using our new `parse/1` and `run/1` functions. Remember, our `read_line/1` function was also crashing when the client closed the socket, so let's take the opportunity to fix it, too. Open up `lib/kv_server/application.ex` and replace the existing server definition: +Before we implement this function, let's change our server to start using our new `parse/1` and `run/1` functions. Remember, our `read_line/1` function was also crashing when the client closed the socket, so let's take the opportunity to fix it, too. Open up `lib/kv_server.ex` and replace the existing server definition: ```elixir defp serve(socket) do @@ -279,7 +279,7 @@ defp serve(socket) do end ``` -Much better! Syntax-wise, `with` is quite similar to `for` comprehensions. `with` will retrieve the value returned by the right-side of `<-` and match it against the pattern on the left side. If the value matches the pattern, `with` moves on to the next expression. In case there is no match, the non-matching value is returned. +Much better! `with` will retrieve the value returned by the right-side of `<-` and match it against the pattern on the left side. If the value matches the pattern, `with` moves on to the next expression. In case there is no match, the non-matching value is returned. In other words, we converted each expression given to `case/2` as a step in `with`. As soon as any of the steps return something that does not match `{:ok, x}`, `with` aborts, and returns the non-matching value. @@ -333,7 +333,7 @@ Every function clause dispatches the appropriate command to the `KV.Registry` se Note that we have also defined a private function named `lookup/2` to help with the common functionality of looking up a bucket and returning its `pid` if it exists, `{:error, :not_found}` otherwise. -By the way, since we are now returning `{:error, :not_found}`, we should amend the `write_line/2` function in `KVServer.Application` to print such error as well: +By the way, since we are now returning `{:error, :not_found}`, we should amend the `write_line/2` function in `KVServer` to print such error as well: ```elixir defp write_line(socket, {:error, :not_found}) do @@ -341,7 +341,7 @@ defp write_line(socket, {:error, :not_found}) do end ``` -And our server functionality is almost complete! Only tests are missing. This time, we have left tests for last because there are some important considerations to be made. +Our server functionality is almost complete. Only tests are missing. This time, we have left tests for last because there are some important considerations to be made. `KVServer.Command.run/1`'s implementation is sending commands directly to the server named `KV.Registry`, which is registered by the `:kv` application. This means this server is global and if we have two tests sending messages to it at the same time, our tests will conflict with each other (and likely fail). We need to decide between having unit tests that are isolated and can run asynchronously, or writing integration tests that work on top of the global state, but exercise our application's full stack as it is meant to be exercised in production. @@ -442,7 +442,7 @@ In case the test crashes, you will see a report as follows: 13:44:10.035 [info] Application kv exited: :stopped ``` -With this simple integration test, we start to see why integration tests may be slow. Not only can this particular test not run asynchronously, it also requires the expensive setup of stopping and starting the `:kv` application. +With this simple integration test, we start to see why integration tests may be slow. Not only this test cannot run asynchronously, it also requires the expensive setup of stopping and starting the `:kv` application. At the end of the day, it is up to you and your team to figure out the best testing strategy for your applications. You need to balance code quality, confidence, and test suite runtime. For example, we may start with testing the server only with integration tests, but if the server continues to grow in future releases, or it becomes a part of the application with frequent bugs, it is important to consider breaking it apart and writing more intensive unit tests that don't have the weight of an integration test. diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 111739dfd..2d9dc44bf 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -17,11 +17,11 @@ We will start our TCP server by first implementing an echo server. It will send A TCP server, in broad strokes, performs the following steps: -1. Listens to a port until the port is available and it gets hold of the socket -2. Waits for a client connection on that port and accepts it -3. Reads the client request and writes a response back + 1. Listens to a port until the port is available and it gets hold of the socket + 2. Waits for a client connection on that port and accepts it + 3. Reads the client request and writes a response back -Let's implement those steps. Move to the `apps/kv_server` application, open up `lib/kv_server/application.ex`, and add the following functions: +Let's implement those steps. Move to the `apps/kv_server` application, open up `lib/kv_server.ex`, and add the following functions: ```elixir require Logger @@ -64,7 +64,7 @@ defp write_line(line, socket) do end ``` -We are going to start our server by calling `KVServer.Application.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is a loop accepting client connections. For each accepted connection, we call `serve/1`. +We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is a loop accepting client connections. For each accepted connection, we call `serve/1`. `serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: @@ -87,7 +87,7 @@ This is pretty much all we need to implement our echo server. Let's give it a tr Start an IEx session inside the `kv_server` application with `iex -S mix`. Inside IEx, run: ```iex -iex> KVServer.Application.accept(4040) +iex> KVServer.accept(4040) ``` The server is now running, and you will even notice the console is blocked. Let's use [a `telnet` client](https://en.wikipedia.org/wiki/Telnet) to access our server. There are clients available on most operating systems, and their command lines are generally similar: @@ -112,9 +112,9 @@ My particular telnet client can be exited by typing `ctrl + ]`, typing `quit`, a Once you exit the telnet client, you will likely see an error in the IEx session: ** (MatchError) no match of right hand side value: {:error, :closed} - (kv_server) lib/kv_server/application.ex:45: KVServer.Application.read_line/1 - (kv_server) lib/kv_server/application.ex:37: KVServer.Application.serve/1 - (kv_server) lib/kv_server/application.ex:30: KVServer.Application.loop_acceptor/1 + (kv_server) lib/kv_server.ex:45: KVServer.read_line/1 + (kv_server) lib/kv_server.ex:37: KVServer.serve/1 + (kv_server) lib/kv_server.ex:30: KVServer.loop_acceptor/1 That's because we were expecting data from `:gen_tcp.recv/2` but the client closed the connection. We need to handle such cases better in future revisions of our server. @@ -133,7 +133,7 @@ def start(_type, _args) do import Supervisor.Spec children = [ - worker(Task, [KVServer.Application, :accept, [4040]]) + worker(Task, [KVServer, :accept, [4040]]) ] opts = [strategy: :one_for_one, name: KVServer.Supervisor] @@ -141,7 +141,7 @@ def start(_type, _args) do end ``` -With this change, we are saying that we want to run `KVServer.Application.accept(4040)` as a worker. We are hardcoding the port for now, but we will discuss ways in which this could be changed later. +With this change, we are saying that we want to run `KVServer.accept(4040)` as a worker. We are hardcoding the port for now, but we will discuss ways in which this could be changed later. Now that the server is part of the supervision tree, it should start automatically when we run the application. Type `mix run --no-halt` in the terminal, and once again use the `telnet` client to make sure that everything still works: @@ -200,7 +200,7 @@ This is similar to the mistake we made when we called `KV.Bucket.start_link/0` s The code above would have the same flaw: if we link the `serve(client)` task to the acceptor, a crash when serving a request would bring the acceptor, and consequently all other connections, down. -We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that `Task` already comes with a solution: a simple one for one supervisor that starts temporary tasks as part of our supervision tree! +We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that `Task` already comes with a solution: a simple one for one supervisor that starts temporary tasks as part of our supervision tree. Let's change `start/2` once again, to add a supervisor to our tree: @@ -235,28 +235,12 @@ You might notice that we added a line, `:ok = :gen_tcp.controlling_process(clien Start a new server with `mix run --no-halt` and we can now open up many concurrent telnet clients. You will also notice that quitting a client does not bring the acceptor down. Excellent! -Here is the full echo server implementation, in a single module: +Here is the full echo server implementation: ```elixir -defmodule KVServer.Application do - @moduledoc false - - use Application +defmodule KVServer do require Logger - @doc false - def start(_type, _args) do - import Supervisor.Spec - - children = [ - supervisor(Task.Supervisor, [[name: KVServer.TaskSupervisor]]), - worker(Task, [KVServer, :accept, [4040]]) - ] - - opts = [strategy: :one_for_one, name: KVServer.Supervisor] - Supervisor.start_link(children, opts) - end - @doc """ Starts accepting connections on the given `port`. """ From ff3af5af928fb7b4b421d6c2ba68be2a11335d8b Mon Sep 17 00:00:00 2001 From: Tim Buchwaldt Date: Wed, 11 Jan 2017 21:38:46 +0100 Subject: [PATCH 0633/1761] Add documentation of try/else construct (#922) --- getting-started/try-catch-and-rescue.markdown | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index a0f2dcabd..3030f303a 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -193,6 +193,29 @@ cleaning up! Elixir will automatically wrap the function body in a `try` whenever one of `after`, `rescue` or `catch` is specified. +## Else + +Providing an `else` block allows for pattern matching on the result of the expression executed. + +```iex +x = 2 +try do + 1 / x +rescue + ArithmeticError -> + :infinity +else + y when y < 1 and y > -1 -> + :small + _ -> + :large +end +``` + +The result is passed to `else` where it can be pattern matched. Please note that the `else` block is also executed if an exception has been caught, the result of the `catch/rescue` block will then be passed in. + +Exceptions in the `else` block are not caught. If no pattern inside the `else` block matches an exception will be raised, this exception is not caught by the current `try/catch/rescue/after` block. + ## Variables scope It is important to bear in mind that variables defined inside `try/catch/rescue/after` blocks do not leak to the outer context. This is because the `try` block may fail and as such the variables may never be bound in the first place. In other words, this code is invalid: From 0d4e992ab205478d56b7bb2a13301b6d98e4b932 Mon Sep 17 00:00:00 2001 From: railsnewbie257 Date: Sun, 15 Jan 2017 08:02:02 -0600 Subject: [PATCH 0634/1761] Add installation instructions for Raspberry Pi (#923) --- install.markdown | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/install.markdown b/install.markdown index 20b15b4c3..a6212c4fc 100644 --- a/install.markdown +++ b/install.markdown @@ -58,6 +58,24 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Chocolatey * `cinst elixir` +### Raspberry Pi + +If necessary replace "jessie" with the name of your Raspian release. + + * The Erlang Solutions repository has a prebuilt package for armhf. + This saves significant time instead of recompiling natively. + + * Get Erlang key + + * `echo "deb http://packages.erlang-solutions.com/debian jessie contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` + * Run: `wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc` + * Add to keychain: `sudo apt-key add erlang_solutions.asc` + + * Install Elixir + * Update apt to latest: `sudo apt update` + * Run: `sudo apt install elixir` + * Check: `elixir -v` + ### Docker If you are familiar with Docker you can use the offical Docker image to get started quickly with Elixir. From 0f91eb05f1054bd6d0bbf8d0b9497c900e495965 Mon Sep 17 00:00:00 2001 From: Martin Gotink Date: Tue, 17 Jan 2017 15:40:56 +0100 Subject: [PATCH 0635/1761] Add parentheses to function calls without arguments (#926) --- getting-started/processes.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 3194b2309..e14e45242 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -204,7 +204,7 @@ iex> {:ok, pid} = KV.start_link {:ok, #PID<0.62.0>} iex> send pid, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} -iex> flush +iex> flush() nil :ok ``` @@ -216,7 +216,7 @@ iex> send pid, {:put, :hello, :world} {:put, :hello, :world} iex> send pid, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} -iex> flush +iex> flush() :world :ok ``` @@ -230,7 +230,7 @@ iex> Process.register(pid, :kv) true iex> send :kv, {:get, :hello, self()} {:get, :hello, #PID<0.41.0>} -iex> flush +iex> flush() :world :ok ``` From 779d43c077bfa73028d03983175cef0a4a70d214 Mon Sep 17 00:00:00 2001 From: Mohnish G J Date: Thu, 19 Jan 2017 17:42:50 +0530 Subject: [PATCH 0636/1761] Specify elixir version in appropriate places (#927) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We’re also renaming the preferred way to find one's currently installed Elixir version. The reason is that some command line programs use -V, whereas some others use -v to find out the version. The usage of --version makes it easy on the new user and saves one from remembering yet another option. --- getting-started/introduction.markdown | 2 +- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- install.markdown | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 32be21b48..ef61d1cbd 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -23,7 +23,7 @@ Let's get started! ## Installation -If you still haven't installed Elixir, run to our [installation page](/install.html). Once you are done, you can run `elixir -v` to get the current Elixir version. +If you still haven't installed Elixir, run to our [installation page](/install.html). Once you are done, you can run `elixir --version` to get the current Elixir version. ## Interactive mode diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 0f5ad1037..a95115b9c 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -39,7 +39,7 @@ In order to build our key-value application, we are going to use three main tool In this chapter, we will create our first project using Mix and explore different features in OTP, Mix and ExUnit as we go. -> Note: this guide requires Elixir v1.2.0 or later. You can check your Elixir version with `elixir -v` and install a more recent version if required by following the steps described in [the first chapter of the Getting Started guide](/getting-started/introduction.html). +> Note: this guide requires Elixir v1.2.0 or later. You can check your Elixir version with `elixir --version` and install a more recent version if required by following the steps described in [the first chapter of the Getting Started guide](/getting-started/introduction.html). > > If you have any questions or improvements to the guide, please reach discussion channels such as the [Elixir Forum](https://elixirforum.com) or the [issues tracker](https://github.com/elixir-lang/elixir-lang.github.com/issues). Your input is really important to help us guarantee the guides are accessible and up to date! > diff --git a/install.markdown b/install.markdown index a6212c4fc..b850393dc 100644 --- a/install.markdown +++ b/install.markdown @@ -74,7 +74,6 @@ If necessary replace "jessie" with the name of your Raspian release. * Install Elixir * Update apt to latest: `sudo apt update` * Run: `sudo apt install elixir` - * Check: `elixir -v` ### Docker @@ -145,3 +144,7 @@ On **Unix systems**, you need to [find your shell profile file](https://unix.sta ```bash export PATH="$PATH:/path/to/elixir/bin" ``` + +## Checking the installed version of Elixir + +Once you have Elixir installed, you can check its version by running `elixir --version`. From e604c6ebbb7eaf4d700315376324769ec09f1050 Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sun, 22 Jan 2017 13:22:02 -0500 Subject: [PATCH 0637/1761] Config repository key (#929) --- Gemfile.lock | 27 ++++++++++++++------------- _config.yml | 1 + 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 14feaea99..0e85f147c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,12 +17,12 @@ GEM ethon (0.10.1) ffi (>= 1.3.0) execjs (2.7.0) - faraday (0.10.1) + faraday (0.11.0) multipart-post (>= 1.2, < 3) - ffi (1.9.14) + ffi (1.9.17) forwardable-extended (2.6.0) gemoji (2.1.0) - github-pages (112) + github-pages (116) activesupport (= 4.2.7) github-pages-health-check (= 1.3.0) jekyll (= 3.3.1) @@ -31,7 +31,7 @@ GEM jekyll-default-layout (= 0.1.4) jekyll-feed (= 0.8.0) jekyll-gist (= 1.4.0) - jekyll-github-metadata (= 2.2.0) + jekyll-github-metadata (= 2.3.1) jekyll-mentions (= 1.2.0) jekyll-optional-front-matter (= 0.1.2) jekyll-paginate (= 1.1.0) @@ -51,17 +51,18 @@ GEM jekyll-theme-midnight (= 0.0.3) jekyll-theme-minimal (= 0.0.3) jekyll-theme-modernist (= 0.0.3) - jekyll-theme-primer (= 0.1.5) + jekyll-theme-primer (= 0.1.7) jekyll-theme-slate (= 0.0.3) jekyll-theme-tactile (= 0.0.3) jekyll-theme-time-machine (= 0.0.3) - jekyll-titles-from-headings (= 0.1.3) + jekyll-titles-from-headings (= 0.1.4) jemoji (= 0.7.0) kramdown (= 1.11.1) liquid (= 3.0.6) listen (= 3.0.6) mercenary (~> 0.3) minima (= 2.0.0) + nokogiri (= 1.6.8.1) rouge (= 1.11.1) terminal-table (~> 1.4) github-pages-health-check (1.3.0) @@ -70,7 +71,7 @@ GEM octokit (~> 4.0) public_suffix (~> 2.0) typhoeus (~> 0.7) - html-pipeline (2.4.2) + html-pipeline (2.5.0) activesupport (>= 2) nokogiri (>= 1.4) i18n (0.7.0) @@ -95,7 +96,7 @@ GEM jekyll (~> 3.3) jekyll-gist (1.4.0) octokit (~> 4.2) - jekyll-github-metadata (2.2.0) + jekyll-github-metadata (2.3.1) jekyll (~> 3.1) octokit (~> 4.0, != 4.4.0) jekyll-mentions (1.2.0) @@ -136,7 +137,7 @@ GEM jekyll (~> 3.3) jekyll-theme-modernist (0.0.3) jekyll (~> 3.3) - jekyll-theme-primer (0.1.5) + jekyll-theme-primer (0.1.7) jekyll (~> 3.3) jekyll-theme-slate (0.0.3) jekyll (~> 3.3) @@ -144,7 +145,7 @@ GEM jekyll (~> 3.3) jekyll-theme-time-machine (0.0.3) jekyll (~> 3.3) - jekyll-titles-from-headings (0.1.3) + jekyll-titles-from-headings (0.1.4) jekyll (~> 3.3) jekyll-watch (1.5.0) listen (~> 3.0, < 3.1) @@ -153,7 +154,7 @@ GEM gemoji (~> 2.0) html-pipeline (~> 2.2) jekyll (>= 3.0) - json (1.8.3) + json (1.8.6) kramdown (1.11.1) liquid (3.0.6) listen (3.0.6) @@ -165,7 +166,7 @@ GEM minitest (5.10.1) multipart-post (2.0.0) net-dns (0.8.0) - nokogiri (1.7.0.1) + nokogiri (1.6.8.1) mini_portile2 (~> 2.1.0) octokit (4.6.2) sawyer (~> 0.8.0, >= 0.5.3) @@ -188,7 +189,7 @@ GEM ethon (>= 0.8.0) tzinfo (1.2.2) thread_safe (~> 0.1) - unicode-display_width (1.1.2) + unicode-display_width (1.1.3) PLATFORMS ruby diff --git a/_config.yml b/_config.yml index 2e55119e6..a9ee05912 100644 --- a/_config.yml +++ b/_config.yml @@ -3,6 +3,7 @@ permalink: none kramdown: input: GFM hard_wrap: false +repository: elixir-lang/elixir-lang.github.com gems: - jemoji - jekyll-sitemap From 8cc857137100e2762576cfe760f43b999378c092 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sun, 22 Jan 2017 06:05:17 +0700 Subject: [PATCH 0638/1761] Keep latest minor Elixir versions in data file --- _data/elixir-versions.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 _data/elixir-versions.yml diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml new file mode 100644 index 000000000..020228084 --- /dev/null +++ b/_data/elixir-versions.yml @@ -0,0 +1,26 @@ +stable: v1_4 + +v1_0: + name: v1.0 + version: 1.0.5 + docs_zip: false + +v1_1: + name: v1.1 + version: 1.1.1 + docs_zip: true + +v1_2: + name: v1.2 + version: 1.2.6 + docs_zip: true + +v1_3: + name: v1.3 + version: 1.3.3 + docs_zip: true + +v1_4: + name: v1.4 + version: 1.4.0 + docs_zip: true From fa85aa75b6e25e665a2d6de750c097cf86dcebd1 Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sun, 22 Jan 2017 06:05:40 +0700 Subject: [PATCH 0639/1761] Use latest Elixir versions in documentation page --- docs.markdown | 59 ++++++++++++++++++++------------------------------- 1 file changed, 23 insertions(+), 36 deletions(-) diff --git a/docs.markdown b/docs.markdown index d52ba003d..0991cd443 100644 --- a/docs.markdown +++ b/docs.markdown @@ -8,7 +8,13 @@ layout: default Choose which version you want documentation for. -#### Stable +{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} + +

        Stable + {% if stable.docs_zip == true %} + (download) + {% endif %} +

        * [Elixir](https://hexdocs.pm/elixir/) - standard library * [EEx](https://hexdocs.pm/eex/) - templating library @@ -26,38 +32,19 @@ Choose which version you want documentation for. * [Logger](https://hexdocs.pm/logger/master/) - built-in Logger * [Mix](https://hexdocs.pm/mix/master/) - build tool -

        v1.4 (download)

        - -* [Elixir](https://hexdocs.pm/elixir/1.4.0/) - standard library -* [EEx](https://hexdocs.pm/eex/1.4.0/) - templating library -* [ExUnit](https://hexdocs.pm/ex_unit/1.4.0/) - unit test library -* [IEx](https://hexdocs.pm/iex/1.4.0/) - interactive shell -* [Logger](https://hexdocs.pm/logger/1.4.0/) - built-in Logger -* [Mix](https://hexdocs.pm/mix/1.4.0/) - build tool - -

        v1.3 (download)

        - -* [Elixir](https://hexdocs.pm/elixir/1.3.3/) - standard library -* [EEx](https://hexdocs.pm/eex/1.3.3/) - templating library -* [ExUnit](https://hexdocs.pm/ex_unit/1.3.3/) - unit test library -* [IEx](https://hexdocs.pm/iex/1.3.3/) - interactive shell -* [Logger](https://hexdocs.pm/logger/1.3.3/) - built-in Logger -* [Mix](https://hexdocs.pm/mix/1.3.3/) - build tool - -

        v1.2 (download)

        - -* [Elixir](https://hexdocs.pm/elixir/1.2.6/) - standard library -* [EEx](https://hexdocs.pm/eex/1.2.6/) - templating library -* [ExUnit](https://hexdocs.pm/ex_unit/1.2.6/) - unit test library -* [IEx](https://hexdocs.pm/iex/1.2.6/) - interactive shell -* [Logger](https://hexdocs.pm/logger/1.2.6/) - built-in Logger -* [Mix](https://hexdocs.pm/mix/1.2.6/) - build tool - -

        v1.1 (download)

        - -* [Elixir](https://hexdocs.pm/elixir/1.1.1/) - standard library -* [EEx](https://hexdocs.pm/eex/1.1.1/) - templating library -* [ExUnit](https://hexdocs.pm/ex_unit/1.1.1/) - unit test library -* [IEx](https://hexdocs.pm/iex/1.1.1/) - interactive shell -* [Logger](https://hexdocs.pm/logger/1.1.1/) - built-in Logger -* [Mix](https://hexdocs.pm/mix/1.1.1/) - build tool +{% for version in site.data.elixir-versions reversed %} + {% if version[0] == 'stable' %} + {% continue %} + {% endif %} + +

        {{ version[1].name }} + {% if version[1].docs_zip == true %}(download){% endif %} +

        + +* [Elixir](https://hexdocs.pm/elixir/{{ version[1].version }}/) - standard library +* [EEx](https://hexdocs.pm/eex/{{ version[1].version }}/) - templating library +* [ExUnit](https://hexdocs.pm/ex_unit/{{ version[1].version }}/) - unit test library +* [IEx](https://hexdocs.pm/iex/{{ version[1].version }}/) - interactive shell +* [Logger](https://hexdocs.pm/logger/{{ version[1].version }}/) - built-in Logger +* [Mix](https://hexdocs.pm/mix/{{ version[1].version }}/) - build tool +{% endfor %} From 361f219821ea7d6f7de81768e4434a9d3bad057a Mon Sep 17 00:00:00 2001 From: eksperimental Date: Sun, 22 Jan 2017 08:29:22 +0700 Subject: [PATCH 0640/1761] Link directly to latest version compressed files in Install page Direct links to: - stable Precompiled.zip - stable source code (zip and tar.gz) --- install.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.markdown b/install.markdown index b850393dc..148485aec 100644 --- a/install.markdown +++ b/install.markdown @@ -3,6 +3,7 @@ title: "Installing Elixir" section: install layout: default --- +{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} # {{ page.title }} @@ -88,7 +89,7 @@ Those distributions will likely install Erlang automatically for you too. In cas ## Precompiled package -Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/). +Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/Precompiled.zip). Once the release is unpacked, you are ready to run the `elixir` and `iex` commands from the `bin` directory, but we recommend you to [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. @@ -107,7 +108,7 @@ If you would prefer to compile from source manually, don't worry, we got your ba You can download and compile Elixir in few steps. The first one is to [install Erlang](/install.html#installing-erlang). -Next you should download the [latest release](https://github.com/elixir-lang/elixir/releases/), unpack it and then run `make` inside the unpacked directory (note: if you are running on Windows, [read this page on setting up your environment for compiling Elixir](https://github.com/elixir-lang/elixir/wiki/Windows)). +Next you should download source code ([.zip](https://github.com/elixir-lang/elixir/archive/v{{ stable.version }}.zip), [.tar.gz](https://github.com/elixir-lang/elixir/archive/v{{ stable.version }}.tar.gz)) of the [latest release](https://github.com/elixir-lang/elixir/releases/tag/v{{ stable.version }}), unpack it and then run `make` inside the unpacked directory (note: if you are running on Windows, [read this page on setting up your environment for compiling Elixir](https://github.com/elixir-lang/elixir/wiki/Windows)). After compiling, you are ready to run the elixir and `iex` commands from the bin directory. It is recommended that you [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. From 994f8cd60b0e83616a45b8a0df56988eda68617a Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Mon, 23 Jan 2017 03:56:28 -0500 Subject: [PATCH 0641/1761] Ignore .jekyll-metadata (#933) As explained in https://github.com/jekyll/jekyll/issues/3595 --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 16182c5d0..08f6fbd39 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/_site \ No newline at end of file +/_site +.jekyll-metadata From 45c5239fda19d525dde1468536064bc733a138b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 26 Jan 2017 13:23:38 +0100 Subject: [PATCH 0642/1761] Release v1.4.1 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 020228084..d65b5ff69 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -22,5 +22,5 @@ v1_3: v1_4: name: v1.4 - version: 1.4.0 + version: 1.4.1 docs_zip: true diff --git a/elixir.csv b/elixir.csv index acabf2d34..f7c6f7908 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.4.1,https://github.com/elixir-lang/elixir/releases/download/v1.4.1/Precompiled.zip,release,1,e49eaa3e221edd6b2ae50e8866518be41862db29,194e70ae5cb50eda021eb1a2e9a602dff73266fbf884e75fd38a28b1493c13ff1f225115b259a033e14808e5b578adbde17dcac90c93ed27702350f59d057a7a 1.4.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0/Precompiled.zip,release,1,5869965e1b1c4e9495615165ad0f235a683283b0,13f5b29ab21de0cedcc67046019aae54ef147769672521cb842737801be2ef5da52915ed4b992ff488724b89a329f36d6119aee93b52cb5fe50dd06f93876cd8 1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1,, 1.3.3,https://github.com/elixir-lang/elixir/releases/download/v1.3.3/Precompiled.zip,release,1,, From d058d9a6ac1f7bd1efac699f6e8335a6317377b8 Mon Sep 17 00:00:00 2001 From: Kevin Busby Date: Sun, 29 Jan 2017 12:28:32 +0000 Subject: [PATCH 0643/1761] Correct "how... like" to "what... like" (#935) To correct "Let's see how those different DSLs would look like" to "Let's see what those different DSLs would look like". --- getting-started/meta/domain-specific-languages.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index 1fbd5708f..780fbf605 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -11,7 +11,7 @@ title: Domain Specific Languages [Domain Specific Languages (DSL)](https://en.wikipedia.org/wiki/Domain-specific_language) allow developers to tailor their application to a particular domain. You don't need macros in order to have a DSL: every data structure and every function you define in your module is part of your Domain Specific Language. -For example, imagine we want to implement a Validator module which provides a data validation domain specific language. We could implement it using data structures, functions or macros. Let's see how those different DSLs would look like: +For example, imagine we want to implement a Validator module which provides a data validation domain specific language. We could implement it using data structures, functions or macros. Let's see what those different DSLs would look like: ```elixir # 1. data structures From e346affb5f895c5967e76240f7d97bf5d1ae4c91 Mon Sep 17 00:00:00 2001 From: Mohnish G J Date: Mon, 30 Jan 2017 15:25:05 +0530 Subject: [PATCH 0644/1761] Clarify default arguments related usage for named functions (#938) --- getting-started/modules.markdown | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown index a3bf7c04f..fba89a4ee 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules.markdown @@ -208,7 +208,7 @@ Any expression is allowed to serve as a default value, but it won't be evaluated ```elixir defmodule DefaultTest do - def dowork(x \\ IO.puts "hello") do + def dowork(x \\ "hello") do x end end @@ -216,13 +216,11 @@ end ```iex iex> DefaultTest.dowork -hello -:ok +"hello" iex> DefaultTest.dowork 123 123 iex> DefaultTest.dowork -hello -:ok +"hello" ``` If a function with default values has multiple clauses, it is required to create a function head (without an actual body) for declaring defaults: From 0cff7ecd41dea0483ba0869c4df059e6e0c4990a Mon Sep 17 00:00:00 2001 From: Ismail Asci Date: Tue, 31 Jan 2017 15:56:42 +0100 Subject: [PATCH 0645/1761] Providing a non-boolean will raise a BadBooleanError (#940) Since 1.4 it will raise BadBooleanError instead of ArgumentError. See the following links: - https://github.com/elixir-lang/elixir/releases/tag/v1.4.0 - https://github.com/elixir-lang/elixir/commit/6b8db410b33b3cc77a5bab07c709eed9b4bcc564 --- getting-started/basic-operators.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index a29da40b6..e8ccc0deb 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -38,7 +38,7 @@ Providing a non-boolean will raise an exception: ```iex iex> 1 and true -** (ArgumentError) argument error: 1 +** (BadBooleanError) expected a boolean on left-side of "and", got: 1 ``` `or` and `and` are short-circuit operators. They only execute the right side if the left side is not enough to determine the result: From bd87254a19b6e224ee6c973fa87adf02b7c60ca7 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Thu, 2 Feb 2017 17:53:22 -0500 Subject: [PATCH 0646/1761] Clarify keywords-and-maps.markdown (#942) Closes #941 --- getting-started/keywords-and-maps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index df389346e..8acffafd2 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -214,7 +214,7 @@ iex> users = put_in users[:john].age, 31 The `update_in/2` macro is similar but allows us to pass a function that controls how the value changes. For example, let's remove "Clojure" from Mary's list of languages: ```iex -iex> users = update_in users[:mary].languages, &List.delete(&1, "Clojure") +iex> users = update_in users[:mary].languages, fn languages -> List.delete(languages, "Clojure") end [john: %{age: 31, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, mary: %{age: 29, languages: ["Elixir", "F#"], name: "Mary"}] ``` From 04ca7dab86db6457a36472723141a695ba696baf Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Fri, 3 Feb 2017 03:36:03 -0500 Subject: [PATCH 0647/1761] Add missing line to protocols.markdown (#944) --- getting-started/protocols.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index b19f8c9f2..e9e4ab767 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -83,6 +83,7 @@ In the [previous chapter](/getting-started/structs.html), we have learned that a iex> Size.size(%{}) 0 iex> set = %MapSet{} = MapSet.new +#MapSet<[]> iex> Size.size(set) ** (Protocol.UndefinedError) protocol Size not implemented for #MapSet<[]> ``` From 1ad4cb4b21af624e4d462cd5609f3be3a0b70541 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Wed, 8 Feb 2017 05:00:36 -0500 Subject: [PATCH 0648/1761] Clarified getting-started/processes.markdown (#947) Closes #943. --- getting-started/processes.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index e14e45242..b86600129 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -62,7 +62,7 @@ iex> receive do When a message is sent to a process, the message is stored in the process mailbox. The `receive/1` block goes through the current process mailbox searching for a message that matches any of the given patterns. `receive/1` supports guards and many clauses, such as `case/2`. -The process that sends the message does not block on `send/2`, it just puts the message in the recipient's mailbox and continues. In particular, a process can send messages to itself. In the previous example, when the `receive` block gets executed the sender process may be already dead. +The process that sends the message does not block on `send/2`, it just puts the message in the recipient's mailbox and continues. In particular, a process can send messages to itself. If there is no message in the mailbox matching any of the patterns, the current process will wait until a matching message arrives. A timeout can also be specified: @@ -90,6 +90,10 @@ iex> receive do "Got hello from #PID<0.48.0>" ``` +The inspect function is used to convert any data structure into a string. + +Notice that when the `receive` block gets executed the sender process may be already dead. + While in the shell, you may find the helper `flush/0` quite useful. It flushes and prints all the messages in the mailbox. ```iex From 8cca32a5f9507b79945f7e96669caa91717b300c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 8 Feb 2017 11:21:08 +0100 Subject: [PATCH 0649/1761] Update processes.markdown --- getting-started/processes.markdown | 33 +++++++----------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index b86600129..5806a8e31 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -62,7 +62,7 @@ iex> receive do When a message is sent to a process, the message is stored in the process mailbox. The `receive/1` block goes through the current process mailbox searching for a message that matches any of the given patterns. `receive/1` supports guards and many clauses, such as `case/2`. -The process that sends the message does not block on `send/2`, it just puts the message in the recipient's mailbox and continues. In particular, a process can send messages to itself. +The process that sends the message does not block on `send/2`, it puts the message in the recipient's mailbox and continues. In particular, a process can send messages to itself. If there is no message in the mailbox matching any of the patterns, the current process will wait until a matching message arrives. A timeout can also be specified: @@ -90,9 +90,7 @@ iex> receive do "Got hello from #PID<0.48.0>" ``` -The inspect function is used to convert any data structure into a string. - -Notice that when the `receive` block gets executed the sender process may be already dead. +The inspect function is used to convert a data structure's internal representation into a string, typically for printing. Notice that when the `receive` block gets executed the sender process we have spawned may already be dead, as its only instruction was to send a message. While in the shell, you may find the helper `flush/0` quite useful. It flushes and prints all the messages in the mailbox. @@ -106,7 +104,7 @@ iex> flush() ## Links -The most common form of spawning in Elixir is actually via `spawn_link/1`. Before we show an example with `spawn_link/1`, let's try to see what happens when a process fails: +The majority of times we spawn processes in Elixir, we spawn them as linked processes. Before we show an example with `spawn_link/1`, let's see what happens when a process started with `spawn/1` fails: ```iex iex> spawn fn -> raise "oops" end @@ -117,7 +115,7 @@ iex> spawn fn -> raise "oops" end :erlang.apply/2 ``` -It merely logged an error but the spawning process is still running. That's because processes are isolated. If we want the failure in one process to propagate to another one, we should link them. This can be done with `spawn_link/1`: +It merely logged an error but the parent process is still running. That's because processes are isolated. If we want the failure in one process to propagate to another one, we should link them. This can be done with `spawn_link/1`: ```iex iex> spawn_link fn -> raise "oops" end @@ -128,28 +126,11 @@ iex> spawn_link fn -> raise "oops" end :erlang.apply/2 ``` -When a failure happens in the shell, the shell automatically traps the failure and shows it nicely formatted. In order to understand what would really happen in our code, let's use `spawn_link/1` inside a file and run it: - -```iex -# spawn.exs -spawn_link fn -> raise "oops" end - -receive do - :hello -> "let's wait until the process fails" -end -``` - -``` -$ elixir spawn.exs - -** (EXIT from #PID<0.47.0>) an exception was raised: - ** (RuntimeError) oops - spawn.exs:1: anonymous fn/0 in :elixir_compiler_0.__FILE__/1 -``` +Because processes are linked, we now see a message saying the parent process, which is the shell process, has received an EXIT signal from another process causing the shell to terminate. IEx detects this situation and starts a new shell session. -This time the process failed and brought the parent process down as they are linked. Linking can also be done manually by calling `Process.link/1`. We recommend that you take a look at [the `Process` module](https://hexdocs.pm/elixir/Process.html) for other functionality provided by processes. +Linking can also be done manually by calling `Process.link/1`. We recommend that you take a look at [the `Process` module](https://hexdocs.pm/elixir/Process.html) for other functionality provided by processes. -Processes and links play an important role when building fault-tolerant systems. In Elixir applications, we often link our processes to supervisors which will detect when a process dies and start a new process in its place. This is only possible because processes are isolated and don't share anything by default. And since processes are isolated, there is no way a failure in a process will crash or corrupt the state of another. +Processes and links play an important role when building fault-tolerant systems. Elixir processes are isolated and don't share anything by default. Therefore, a failure in a process will never crash or corrupt the state of another process. Links, however, allow processes to establish a relationship in a case of failures. We often link our processes to supervisors which will detect when a process dies and start a new process in its place. While other languages would require us to catch/handle exceptions, in Elixir we are actually fine with letting processes fail because we expect supervisors to properly restart our systems. "Failing fast" is a common philosophy when writing Elixir software! From 526044edc425936a8e0b3f552a1f94d15d195a22 Mon Sep 17 00:00:00 2001 From: Leo Thorp Date: Fri, 10 Feb 2017 02:17:27 -0500 Subject: [PATCH 0650/1761] Updated Maps section (#949) --- getting-started/keywords-and-maps.markdown | 25 +++++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 8acffafd2..58aabb04c 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -147,10 +147,26 @@ iex> %{^n => :one} = %{1 => :one, 2 => :two, 3 => :three} ```iex iex> Map.get(%{:a => 1, 2 => :b}, :a) 1 +iex> Map.put(%{:a => 1, 2 => :b}, :c, 3) +%{2 => :b, :a => 1, :c => 3} iex> Map.to_list(%{:a => 1, 2 => :b}) [{2, :b}, {:a, 1}] ``` +Maps have the following syntax for updating a key's value: + +```iex +iex> map = %{:a => 1, 2 => :b} +%{2 => :b, :a => 1} + +iex> %{map | 2 => "two"} +%{2 => "two", :a => 1} +iex> %{map | :c => 3} +** (KeyError) key :c not found in: %{2 => :b, :a => 1} +``` + +The syntax above requires the given key to exist. It cannot be used to add new keys. For example, using it with the `:c` key failed because there is no `:c` in the map. + When all the keys in a map are atoms, you can use the keyword syntax for convenience: ```iex @@ -158,7 +174,7 @@ iex> map = %{a: 1, b: 2} %{a: 1, b: 2} ``` -Another interesting property of maps is that they provide their own syntax for updating and accessing atom keys: +Another interesting property of maps is that they provide their own syntax for accessing atom keys: ```iex iex> map = %{:a => 1, 2 => :b} @@ -168,15 +184,8 @@ iex> map.a 1 iex> map.c ** (KeyError) key :c not found in: %{2 => :b, :a => 1} - -iex> %{map | :a => 2} -%{2 => :b, :a => 2} -iex> %{map | :c => 3} -** (KeyError) key :c not found in: %{2 => :b, :a => 1} ``` -Both access and update syntaxes above require the given keys to exist. For example, accessing and updating the `:c` key failed because there is no `:c` in the map. - Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post](http://blog.plataformatec.com.br/2014/09/writing-assertive-code-with-elixir/) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. > Note: Maps were recently introduced into the Erlang VM and only from Elixir v1.2 they are capable of holding millions of keys efficiently. Therefore, if you are working with previous Elixir versions (v1.0 or v1.1) and you need to support at least hundreds of keys, you may consider using [the `HashDict` module](https://hexdocs.pm/elixir/HashDict.html). From 8be68e5d60de0426874e6c44a17af42b68c379b5 Mon Sep 17 00:00:00 2001 From: Gary Rennie Date: Mon, 13 Feb 2017 14:11:11 +0000 Subject: [PATCH 0651/1761] Rename "Modules" page to "Modules and Functions" (#950) Some users were finding it difficult to know where functions page of the getting started guide was at a glance. Renaming it to "Modules and Functions" helps to clarify this. A redirect has been added from modules.html Any files previously referencing modules.html now reference modules-and-functions.html --- _data/getting-started.yml | 4 ++-- getting-started/basic-types.markdown | 2 +- getting-started/introduction.markdown | 2 +- getting-started/mix-otp/agent.markdown | 2 +- .../{modules.markdown => modules-and-functions.markdown} | 3 ++- 5 files changed, 7 insertions(+), 6 deletions(-) rename getting-started/{modules.markdown => modules-and-functions.markdown} (99%) diff --git a/_data/getting-started.yml b/_data/getting-started.yml index 875fc16b6..b5061add0 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -22,8 +22,8 @@ - title: Keywords and maps slug: keywords-and-maps - - title: Modules - slug: modules + - title: Modules and Functions + slug: modules-and-functions - title: Recursion slug: recursion diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 733710843..dde5b114b 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -213,7 +213,7 @@ false Functions are "first class citizens" in Elixir meaning they can be passed as arguments to other functions in the same way as integers and strings. In the example, we have passed the function in the variable `add` to the `is_function/1` function which correctly returned `true`. We can also check the arity of the function by calling `is_function/2`. -Note a dot (`.`) between the variable and parentheses is required to invoke an anonymous function. The dot ensures there is no ambiguity between calling an anonymous function named `add` and a named function `add/2`. In this sense, Elixir makes a clear distinction between anonymous functions and named functions. We will explore those differences in [Chapter 8](/getting-started/modules.html). +Note a dot (`.`) between the variable and parentheses is required to invoke an anonymous function. The dot ensures there is no ambiguity between calling an anonymous function named `add` and a named function `add/2`. In this sense, Elixir makes a clear distinction between anonymous functions and named functions. We will explore those differences in [Chapter 8](/getting-started/modules-and-functions.html). Anonymous functions are closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anonymous function we have previously defined: diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index ef61d1cbd..737175a31 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -64,7 +64,7 @@ $ elixir simple.exs Hello world from Elixir ``` -Later on we will learn how to compile Elixir code (in [Chapter 8](/getting-started/modules.html)) and how to use the Mix build tool (in the [Mix & OTP guide](/getting-started/mix-otp/introduction-to-mix.html)). For now, let's move on to [Chapter 2](/getting-started/basic-types.html). +Later on we will learn how to compile Elixir code (in [Chapter 8](/getting-started/modules-and-functions.html)) and how to use the Mix build tool (in the [Mix & OTP guide](/getting-started/mix-otp/introduction-to-mix.html)). For now, let's move on to [Chapter 2](/getting-started/basic-types.html). ## Asking questions diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index dd556bb55..17427eb0d 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -101,7 +101,7 @@ defmodule KV.Bucket do end ``` -We are using a map to store our keys and values. The capture operator, `&`, is introduced in [the Getting Started guide](/getting-started/modules.html#function-capturing). +We are using a map to store our keys and values. The capture operator, `&`, is introduced in [the Getting Started guide](/getting-started/modules-and-functions.html#function-capturing). Now that the `KV.Bucket` module has been defined, our test should pass! You can try it yourself by running: `mix test`. diff --git a/getting-started/modules.markdown b/getting-started/modules-and-functions.markdown similarity index 99% rename from getting-started/modules.markdown rename to getting-started/modules-and-functions.markdown index fba89a4ee..446c471d2 100644 --- a/getting-started/modules.markdown +++ b/getting-started/modules-and-functions.markdown @@ -1,6 +1,7 @@ --- layout: getting-started -title: Modules +title: Modules and Functions +redirect_from: /getting-started/modules.html --- # {{ page.title }} From 7f1e8bccb9cb4bd7e5d86c06799101e88867fa59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 16 Feb 2017 15:47:32 +0100 Subject: [PATCH 0652/1761] Release v1.4.2 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index d65b5ff69..56d4d14ce 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -22,5 +22,5 @@ v1_3: v1_4: name: v1.4 - version: 1.4.1 + version: 1.4.2 docs_zip: true diff --git a/elixir.csv b/elixir.csv index f7c6f7908..d817ad950 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.4.2,https://github.com/elixir-lang/elixir/releases/download/v1.4.2/Precompiled.zip,release,1,2367d64d02f2b4257a11f2199fd7ba5aa43b8a1c,b3022ad05e7794f1e67665173c6e9660b12ca22b913a0e14a4930329b577e6b13b336ca926da99fc1c0e44c95c62caae45b78587d68319d3fa9882a65a0ca646 1.4.1,https://github.com/elixir-lang/elixir/releases/download/v1.4.1/Precompiled.zip,release,1,e49eaa3e221edd6b2ae50e8866518be41862db29,194e70ae5cb50eda021eb1a2e9a602dff73266fbf884e75fd38a28b1493c13ff1f225115b259a033e14808e5b578adbde17dcac90c93ed27702350f59d057a7a 1.4.0,https://github.com/elixir-lang/elixir/releases/download/v1.4.0/Precompiled.zip,release,1,5869965e1b1c4e9495615165ad0f235a683283b0,13f5b29ab21de0cedcc67046019aae54ef147769672521cb842737801be2ef5da52915ed4b992ff488724b89a329f36d6119aee93b52cb5fe50dd06f93876cd8 1.3.4,https://github.com/elixir-lang/elixir/releases/download/v1.3.4/Precompiled.zip,release,1,, From ea2d5e6e2f303eef38374317002baacbf5155f09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20A=20L=C3=B3pez?= Date: Sun, 19 Feb 2017 16:20:54 -0500 Subject: [PATCH 0653/1761] Update elixir version in mix.exs for kv_server app (#952) --- getting-started/mix-otp/dependencies-and-umbrella-apps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 3545bd0bc..356ee387f 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -162,7 +162,7 @@ defmodule KVServer.Mixfile do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.3", + elixir: "~> 1.4", build_embedded: Mix.env == :prod, start_permanent: Mix.env == :prod, deps: deps] From b88405b6bdb9336e487fb46fa9c8c6e66a0fbf6e Mon Sep 17 00:00:00 2001 From: Beeno Tung Date: Mon, 20 Feb 2017 08:24:01 +0800 Subject: [PATCH 0654/1761] Improve readability of test case (#953) --- getting-started/mix-otp/supervisor-and-application.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index a71cd0bd3..344396334 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -240,10 +240,10 @@ test "removes bucket on crash", %{registry: registry} do {:ok, bucket} = KV.Registry.lookup(registry, "shopping") # Stop the bucket with non-normal reason + ref = Process.monitor(bucket) Process.exit(bucket, :shutdown) - # Wait until the bucket is dead - ref = Process.monitor(bucket) + # Wait until the bucket is dead assert_receive {:DOWN, ^ref, _, _, _} assert KV.Registry.lookup(registry, "shopping") == :error From 4ed31688a8e2c76bc4d9cd513c6a799193703835 Mon Sep 17 00:00:00 2001 From: Bijan Boustani Date: Tue, 21 Feb 2017 13:23:40 -0500 Subject: [PATCH 0655/1761] Try Elixir Code School Course (#951) --- _includes/important-links.html | 2 ++ _includes/try-elixir.html | 7 +++++++ _layouts/getting-started.html | 1 + css/style.css | 25 +++++++++++++++++++++++++ images/learning/try-elixir-logo.png | Bin 0 -> 6668 bytes images/learning/try-elixir.png | Bin 0 -> 67022 bytes learning.markdown | 12 ++++++++++-- 7 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 _includes/try-elixir.html create mode 100644 images/learning/try-elixir-logo.png create mode 100644 images/learning/try-elixir.png diff --git a/_includes/important-links.html b/_includes/important-links.html index 9b66b07d8..7ea654fce 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -10,6 +10,8 @@

        Join the Community

      +{% include try-elixir.html %} +

      Important links

        diff --git a/_includes/try-elixir.html b/_includes/try-elixir.html new file mode 100644 index 000000000..2b62d52aa --- /dev/null +++ b/_includes/try-elixir.html @@ -0,0 +1,7 @@ + diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index 3014148c0..7d7c61547 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -6,6 +6,7 @@
      @@ -55,11 +55,9 @@

      Fault-tolerance

      To cope with failures, Elixir provides supervisors which describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work:

      {% highlight elixir %} -import Supervisor.Spec - children = [ - supervisor(TCP.Pool, []), - worker(TCP.Acceptor, [4040]) + TCP.Pool, + {TCP.Acceptor, port: 4040} ] Supervisor.start_link(children, strategy: :one_for_one) @@ -152,10 +150,10 @@

      Interactive development

      {% highlight text %} $ iex Interactive Elixir - press Ctrl+C to exit (type h() ENTER for help) -iex> c "my_file.ex" # Compiles a file -iex> t Enum # Prints types defined in the module Enum -iex> h IEx.pry # Prints the documentation for IEx pry functionality -iex> i "Hello, World" # Prints information about the given data type +iex> h String.trim # Prints the documentation for function +iex> i "Hello, World" # Prints information about the given data type +iex> break! String.trim/1 # Sets a breakpoint in the String.trim/1 function +iex> recompile # Recompiles the current project on the fly {% endhighlight %} From 87f8492dcc3336735bbecb49f8c8e1d6e70257bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 19 Aug 2017 21:45:07 +0200 Subject: [PATCH 0736/1761] Improvements to Mix/OTP guide --- _data/getting-started.yml | 4 ++-- _includes/mix-otp-preface.html | 4 ++-- getting-started/mix-otp/docs-tests-and-with.markdown | 2 +- getting-started/mix-otp/supervisor-and-application.markdown | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/_data/getting-started.yml b/_data/getting-started.yml index b5061add0..6fff382bd 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -89,10 +89,10 @@ - title: Dependencies and umbrella apps slug: dependencies-and-umbrella-apps - - title: Task and gen-tcp + - title: Task and gen_tcp slug: task-and-gen-tcp - - title: Docs, tests and with + - title: Doctests, patterns and with slug: docs-tests-and-with - title: Distributed tasks and configuration diff --git a/_includes/mix-otp-preface.html b/_includes/mix-otp-preface.html index 4459d0d3a..6354bcdf2 100644 --- a/_includes/mix-otp-preface.html +++ b/_includes/mix-otp-preface.html @@ -1,2 +1,2 @@ -This chapter is part of the Mix and OTP guide and it depends on previous chapters in this guide. -For more information, read the introduction guide or check out the chapter index in the sidebar. +> This chapter is part of the Mix and OTP guide and it depends on previous chapters in this guide. +> For more information, read the introduction guide or check out the chapter index in the sidebar. diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 3522e1fda..a0461582b 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: Docs, tests and with +title: Doctests, patterns and with redirect_from: /getting-started/mix_otp/docs-tests-and-pipelines.html --- diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index d73ee42fc..4e1b9a9ac 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -222,7 +222,7 @@ iex> KV.Registry.lookup(KV.Registry, "shopping") How do we know this is working? After all, we are creating the bucket and then looking it up; of course it should work, right? Well, remember that `KV.Registry.create/2` uses `GenServer.cast/2`, and therefore will return `:ok` regardless of whether the message finds its target or not. At that point, we don't know whether the supervisor and the server are up, and if the bucket was created. However, `KV.Registry.lookup/2` uses `GenServer.call/3`, and will block and wait for a response from the server. We do get a positive response, so we know all is up and running. -For an experiment, try reimplementing `KV.Registry.create/2` to use `GenServer.call/3` instead, and momentarily disable the application callback. Run the code above on the console again, and you will see the creation step fail straightaway. +For an experiment, try reimplementing `KV.Registry.create/2` to use `GenServer.call/3` instead, and momentarily disable the application callback. Run the code above on the console again, and you will see the creation step fails straightaway. Don't forget to bring the code back to normal before resuming this tutorial! @@ -232,7 +232,7 @@ Mix makes a distinction between projects and applications. Based on the contents When we say "project" you should think about Mix. Mix is the tool that manages your project. It knows how to compile your project, test your project and more. It also knows how to compile and start the application relevant to your project. -When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications in the [docs for the Application module](https://hexdocs.pm/elixir/Application.html), as well as by running `mix help compile.app` to learn more about the supported options in `def application`. +When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications and how they relate to booting and shutting down of your system as a whole in the [docs for the Application module](https://hexdocs.pm/elixir/Application.html). ## Simple one for one supervisors From ebdec82ecd29ca30b2b9326f83bc3332ca86d3b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 19 Aug 2017 21:54:27 +0200 Subject: [PATCH 0737/1761] Split large chapter in 2 --- _data/getting-started.yml | 3 + getting-started/mix-otp/dynamic-supervisor.md | 218 ++++++++++++++++++ .../supervisor-and-application.markdown | 212 +---------------- 3 files changed, 224 insertions(+), 209 deletions(-) create mode 100644 getting-started/mix-otp/dynamic-supervisor.md diff --git a/_data/getting-started.yml b/_data/getting-started.yml index 6fff382bd..0613080b8 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -83,6 +83,9 @@ - title: Supervisor and Application slug: supervisor-and-application + - title: Simple one for one supervisors + slug: dynamic-supervisor + - title: ETS slug: ets diff --git a/getting-started/mix-otp/dynamic-supervisor.md b/getting-started/mix-otp/dynamic-supervisor.md new file mode 100644 index 000000000..847e6cc26 --- /dev/null +++ b/getting-started/mix-otp/dynamic-supervisor.md @@ -0,0 +1,218 @@ +--- +layout: getting-started +title: Simple one for one supervisors +--- + +# {{ page.title }} + +{% include toc.html %} + +{% include mix-otp-preface.html %} + +We have now successfully defined our supervisor which is automatically started (and stopped) as part of our application lifecycle. + +Remember however that our `KV.Registry` is both linking (via `start_link`) and monitoring (via `monitor`) bucket processes in the `handle_cast/2` callback: + +```elixir +{:ok, pid} = KV.Bucket.start_link([]) +ref = Process.monitor(pid) +``` + +Links are bi-directional, which implies that a crash in a bucket will crash the registry. Although we now have the supervisor, which guarantees the registry will be back up and running, crashing the registry still means we lose all data associating bucket names to their respective processes. + +In other words, we want the registry to keep on running even if a bucket crashes. Let's write a new registry test: + +```elixir +test "removes bucket on crash", %{registry: registry} do + KV.Registry.create(registry, "shopping") + {:ok, bucket} = KV.Registry.lookup(registry, "shopping") + + # Stop the bucket with non-normal reason + Agent.stop(bucket, :shutdown) + assert KV.Registry.lookup(registry, "shopping") == :error +end +``` + +The test is similar to "removes bucket on exit" except that we are being a bit more harsh by sending `:shutdown` as the exit reason instead of `:normal`. If a process terminates with a reason different than `:normal`, all linked processes receive an EXIT signal, causing the linked process to also terminate unless they are trapping exits. + +Since the bucket terminated, the registry went away with it, and our test fails when trying to `GenServer.call/3` it: + +``` + 1) test removes bucket on crash (KV.RegistryTest) + test/kv/registry_test.exs:26 + ** (exit) exited in: GenServer.call(#PID<0.148.0>, {:lookup, "shopping"}, 5000) + ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started + code: assert KV.Registry.lookup(registry, "shopping") == :error + stacktrace: + (elixir) lib/gen_server.ex:770: GenServer.call/3 + test/kv/registry_test.exs:33: (test) +``` + +We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. There is one supervisor strategy, called `:simple_one_for_one`, that is the perfect fit for such situations: it allows us to specify a worker template and supervise many children based on this template. With this strategy, no workers are started during the supervisor initialization. Instead, a worker is started manually via the `Supervisor.start_child/2` function. + +## The bucket supervisor + +Let's define our `KV.BucketSupervisor` in `lib/kv/bucket_supervisor.ex` as follows: + +```elixir +defmodule KV.BucketSupervisor do + use Supervisor + + # A simple module attribute that stores the supervisor name + @name KV.BucketSupervisor + + def start_link(_opts) do + Supervisor.start_link(__MODULE__, :ok, name: @name) + end + + def start_bucket do + Supervisor.start_child(@name, []) + end + + def init(:ok) do + Supervisor.init([KV.Bucket], strategy: :simple_one_for_one) + end +end +``` + +There are two changes in this supervisor compared to the first one. + +First of all, we have decided to give the supervisor a local name of `KV.BucketSupervisor`. While we could have passed the `opts` received on `start_link/1` to the supervisor, we chose to hard code the name for simplicity. Note this approach has downsides. For example, you wouldn't be able to start multiple instances of the `KV.BucketSupervisor` during tests, as they would conflict on the name. In this case, we will just allow all registries to use the same bucket supervisor at once, that won't be a problem since children of a simple one for one supervisor don't interfere with one another. + +We have also defined a `start_bucket/0` function that will start a bucket as a child of our supervisor named `KV.BucketSupervisor`. `start_bucket/0` is the function we are going to invoke instead of calling `KV.Bucket.start_link/1` directly in the registry. + +Run `iex -S mix` so we can give our new supervisor a try: + +```iex +iex> {:ok, _} = KV.BucketSupervisor.start_link([]) +{:ok, #PID<0.70.0>} +iex> {:ok, bucket} = KV.BucketSupervisor.start_bucket +{:ok, #PID<0.72.0>} +iex> KV.Bucket.put(bucket, "eggs", 3) +:ok +iex> KV.Bucket.get(bucket, "eggs") +3 +``` + +We are almost ready to use the simple one for one supervisor in our application. The first step is to change the registry to invoke `start_bucket`: + +```elixir + def handle_cast({:create, name}, {names, refs}) do + if Map.has_key?(names, name) do + {:noreply, {names, refs}} + else + {:ok, pid} = KV.BucketSupervisor.start_bucket() + ref = Process.monitor(pid) + refs = Map.put(refs, ref, name) + names = Map.put(names, name, pid) + {:noreply, {names, refs}} + end + end +``` + +The second step is to make sure `KV.BucketSupervisor` is started when our application boots. We can do this by opening `lib/kv/supervisor.ex` and changing `init/1` to the following: + +```elixir + def init(:ok) do + children = [ + {KV.Registry, name: KV.Registry}, + KV.BucketSupervisor + ] + + Supervisor.init(children, strategy: :one_for_one) + end +``` + +That's enough for our tests to pass but there is a resource leakage in our application. When a bucket terminates, the supervisor will start a new bucket in its place. After all, that's the role of the supervisor! + +However, when the supervisor restarts the new bucket, the registry does not know about it. So we will have an empty bucket in the supervisor that nobody can access! To solve this, we want to say that buckets are actually temporary. If they crash, regardless of the reason, they should not be restarted. + +We can do this by passing the `restart: :temporary` option to `use Agent` in `KV.Bucket`: + +```elixir +defmodule KV.Bucket do + use Agent, restart: :temporary +``` + +Let's also add a test to `test/kv/bucket_test.exs` that guarantees the bucket is temporary: + +```elixir + test "are temporary workers" do + assert Supervisor.child_spec(KV.Bucket, []).restart == :temporary + end +``` + +Our test uses the `Supervisor.child_spec/2` function to retrieve the child specification out of a module and then assert its restart value is `:temporary`. At this point, you may be wondering why use a supervisor if it never restarts its children. It happens that supervisors provide more than restarts, they are also responsible to guarantee proper startup and shutdown, especially in case of crashes in a supervision tree. + +## Supervision trees + +When we added `KV.BucketSupervisor` as a child of `KV.Supervisor`, we began to have supervisors that supervise other supervisors, forming so-called "supervision trees". + +Every time you add a new child to a supervisor, it is important to evaluate if the supervisor strategy is correct as well as the order of child processes. In this case, we are using `:one_for_one` and the `KV.Registry` is started before `KV.BucketSupervisor`. + +One flaw that shows up right away is the ordering issue. Since `KV.Registry` invokes `KV.BucketSupervisor`, then the `KV.BucketSupervisor` must be started before `KV.Registry`. Otherwise it may happen that the registry attempts to reach the bucket supervisor before it has started. + +The second flaw is related to the supervision strategy. If `KV.Registry` dies, all information linking `KV.Bucket` names to bucket processes is lost. Therefore the `KV.BucketSupervisor` and all children must terminate too - otherwise we will have orphan processes. + +In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:rest_for_one` will kill and restart child processes which were started *after* the crashed child. In this case, we would want `KV.BucketSupervisor` to terminate if `KV.Bucket` terminates. This would require the bucket supervisor to be placed after the registry. Which violates the ordering constraints we have established two paragraphs above. + +So our last option is to go all in and pick the `:one_for_all` strategy: the supervisor will kill and restart all of its children processes whenever any one of them dies. This is a complete reasonable approach for our application, since the registry can't work without the bucket supervisor, and the bucket supervisor should terminate without the registry. Let's reimplement `init/1` in `KV.Supervisor` to encode those properties: + +```elixir + def init(:ok) do + children = [ + KV.BucketSupervisor, + {KV.Registry, name: KV.Registry} + ] + + Supervisor.init(children, strategy: :one_for_all) + end +``` + +To help developers remember how to work with Supervisors and its convenience functions, [Benjamin Tan Wei Hao](http://benjamintan.io/) has created a [Supervisor cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/Supervisor_CheatSheet.pdf). + +There are two topics left before we move on to the next chapter. + +## Shared state in tests + +So far we have been starting one registry per test to ensure they are isolated: + +```elixir +setup do + {:ok, registry} = start_supervised(KV.Registry) + %{registry: registry} +end +``` + +Since we have now changed our registry to use `KV.BucketSupervisor`, which is registered globally, our tests are now relying on this shared supervisor even though each test has its own registry. The question is: should we? + +It depends. It is ok to rely on shared state as long as we depend only on a non-shared partition of this state. Although multiple registries may start buckets on the shared bucket supervisor, those buckets and registries are isolated from each other. We would only run into concurrency issues if we used a function like `Supervisor.count_children(KV.Bucket.Supervisor)` which would count all buckets from all registries, potentially giving different results when tests run concurrently. + +Since we have relied only on a non-shared partition of the bucket supervisor so far, we don't need to worry about concurrency issues in our test suite. In case it ever becomes a problem, we can start a supervisor per test and pass it as an argument to the registry `start_link` function. + +## Observer + +Now that we have defined our supervision tree, it is a great opportunity to introduce the Observer tool that ships with Erlang. Start your application with `iex -S mix` and key this in: + +```iex +iex> :observer.start +``` + +A GUI should pop-up containing all sorts of information about our system, from general statistics to load charts as well as a list of all running processes and applications. + +In the Applications tab, you will see all applications currently running in your system along side their supervision tree. You can select the `kv` application to explore it further: + +Observer GUI screenshot + +Not only that, as you create new buckets on the terminal, you should see new processes spawned in the supervision tree shown in Observer: + +```iex +iex> KV.Registry.create KV.Registry, "shopping" +:ok +``` + +We will leave it up to you to further explore what Observer provides. Note you can double click any process in the supervision tree to retrieve more information about it, as well as right-click a process to send "a kill signal", a perfect way to emulate failures and see if your supervisor reacts as expected. + +At the end of the day, tools like Observer is one of the reasons you want to always start processes inside supervision trees, even if they are temporary, to ensure they are always reachable and introspectable. + +Now that our buckets are properly linked and supervised, let's see how we can speed things up. \ No newline at end of file diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 4e1b9a9ac..6fdb6e25c 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -178,7 +178,7 @@ Nothing really exciting happens but it shows how we can control our application. > When you run `iex -S mix`, it is equivalent to running `iex -S mix run`. So whenever you need to pass more options to Mix when starting IEx, it's a matter of typing `iex -S mix run` and then passing any options the `run` command accepts. You can find more information about `run` by running `mix help run` in your shell. -### The application callback +## The application callback Since we spent all this time talking about how applications are started and stopped, there must be a way to do something useful when the application starts. And indeed, there is! @@ -226,7 +226,7 @@ For an experiment, try reimplementing `KV.Registry.create/2` to use `GenServer.c Don't forget to bring the code back to normal before resuming this tutorial! -### Projects or applications? +## Projects or applications? Mix makes a distinction between projects and applications. Based on the contents of our `mix.exs` file, we would say we have a Mix project that defines the `:kv` application. As we will see in later chapters, there are projects that don't define any application. @@ -234,210 +234,4 @@ When we say "project" you should think about Mix. Mix is the tool that manages y When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications and how they relate to booting and shutting down of your system as a whole in the [docs for the Application module](https://hexdocs.pm/elixir/Application.html). -## Simple one for one supervisors - -We have now successfully defined our supervisor which is automatically started (and stopped) as part of our application lifecycle. - -Remember however that our `KV.Registry` is both linking (via `start_link`) and monitoring (via `monitor`) bucket processes in the `handle_cast/2` callback: - -```elixir -{:ok, pid} = KV.Bucket.start_link([]) -ref = Process.monitor(pid) -``` - -Links are bi-directional, which implies that a crash in a bucket will crash the registry. Although we now have the supervisor, which guarantees the registry will be back up and running, crashing the registry still means we lose all data associating bucket names to their respective processes. - -In other words, we want the registry to keep on running even if a bucket crashes. Let's write a new registry test: - -```elixir -test "removes bucket on crash", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - - # Stop the bucket with non-normal reason - Agent.stop(bucket, :shutdown) - assert KV.Registry.lookup(registry, "shopping") == :error -end -``` - -The test is similar to "removes bucket on exit" except that we are being a bit more harsh by sending `:shutdown` as the exit reason instead of `:normal`. If a process terminates with a reason different than `:normal`, all linked processes receive an EXIT signal, causing the linked process to also terminate unless they are trapping exits. - -Since the bucket terminated, the registry went away with it, and our test fails when trying to `GenServer.call/3` it: - -``` - 1) test removes bucket on crash (KV.RegistryTest) - test/kv/registry_test.exs:26 - ** (exit) exited in: GenServer.call(#PID<0.148.0>, {:lookup, "shopping"}, 5000) - ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started - code: assert KV.Registry.lookup(registry, "shopping") == :error - stacktrace: - (elixir) lib/gen_server.ex:770: GenServer.call/3 - test/kv/registry_test.exs:33: (test) -``` - -We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. There is one supervisor strategy, called `:simple_one_for_one`, that is the perfect fit for such situations: it allows us to specify a worker template and supervise many children based on this template. With this strategy, no workers are started during the supervisor initialization. Instead, a worker is started manually via the `Supervisor.start_child/2` function. - -Let's define our `KV.BucketSupervisor` in `lib/kv/bucket_supervisor.ex` as follows: - -```elixir -defmodule KV.BucketSupervisor do - use Supervisor - - # A simple module attribute that stores the supervisor name - @name KV.BucketSupervisor - - def start_link(_opts) do - Supervisor.start_link(__MODULE__, :ok, name: @name) - end - - def start_bucket do - Supervisor.start_child(@name, []) - end - - def init(:ok) do - Supervisor.init([KV.Bucket], strategy: :simple_one_for_one) - end -end -``` - -There are two changes in this supervisor compared to the first one. - -First of all, we have decided to give the supervisor a local name of `KV.BucketSupervisor`. While we could have passed the `opts` received on `start_link/1` to the supervisor, we chose to hard code the name for simplicity. Note this approach has downsides. For example, you wouldn't be able to start multiple instances of the `KV.BucketSupervisor` during tests, as they would conflict on the name. In this case, we will just allow all registries to use the same bucket supervisor at once, that won't be a problem since children of a simple one for one supervisor don't interfere with one another. - -We have also defined a `start_bucket/0` function that will start a bucket as a child of our supervisor named `KV.BucketSupervisor`. `start_bucket/0` is the function we are going to invoke instead of calling `KV.Bucket.start_link/1` directly in the registry. - -Run `iex -S mix` so we can give our new supervisor a try: - -```iex -iex> {:ok, _} = KV.BucketSupervisor.start_link([]) -{:ok, #PID<0.70.0>} -iex> {:ok, bucket} = KV.BucketSupervisor.start_bucket -{:ok, #PID<0.72.0>} -iex> KV.Bucket.put(bucket, "eggs", 3) -:ok -iex> KV.Bucket.get(bucket, "eggs") -3 -``` - -We are almost ready to use the simple one for one supervisor in our application. The first step is to change the registry to invoke `start_bucket`: - -```elixir - def handle_cast({:create, name}, {names, refs}) do - if Map.has_key?(names, name) do - {:noreply, {names, refs}} - else - {:ok, pid} = KV.BucketSupervisor.start_bucket() - ref = Process.monitor(pid) - refs = Map.put(refs, ref, name) - names = Map.put(names, name, pid) - {:noreply, {names, refs}} - end - end -``` - -The second step is to make sure `KV.BucketSupervisor` is started when our application boots. We can do this by opening `lib/kv/supervisor.ex` and changing `init/1` to the following: - -```elixir - def init(:ok) do - children = [ - {KV.Registry, name: KV.Registry}, - KV.BucketSupervisor - ] - - Supervisor.init(children, strategy: :one_for_one) - end -``` - -That's enough for our tests to pass but there is a resource leakage in our application. When a bucket terminates, the supervisor will start a new bucket in its place. After all, that's the role of the supervisor! - -However, when the supervisor restarts the new bucket, the registry does not know about it. So we will have an empty bucket in the supervisor that nobody can access! To solve this, we want to say that buckets are actually temporary. If they crash, regardless of the reason, they should not be restarted. - -We can do this by passing the `restart: :temporary` option to `use Agent` in `KV.Bucket`: - -```elixir -defmodule KV.Bucket do - use Agent, restart: :temporary -``` - -Let's also add a test to `test/kv/bucket_test.exs` that guarantees the bucket is temporary: - -```elixir - test "are temporary workers" do - assert Supervisor.child_spec(KV.Bucket, []).restart == :temporary - end -``` - -Our test uses the `Supervisor.child_spec/2` function to retrieve the child specification out of a module and then assert its restart value is `:temporary`. At this point, you may be wondering why use a supervisor if it never restarts its children. It happens that supervisors provide more than restarts, they are also responsible to guarantee proper startup and shutdown, especially in case of crashes in a supervision tree. - -## Supervision trees - -When we added `KV.BucketSupervisor` as a child of `KV.Supervisor`, we began to have supervisors that supervise other supervisors, forming so-called "supervision trees". - -Every time you add a new child to a supervisor, it is important to evaluate if the supervisor strategy is correct as well as the order of child processes. In this case, we are using `:one_for_one` and the `KV.Registry` is started before `KV.BucketSupervisor`. - -One flaw that shows up right away is the ordering issue. Since `KV.Registry` invokes `KV.BucketSupervisor`, then the `KV.BucketSupervisor` must be started before `KV.Registry`. Otherwise it may happen that the registry attempts to reach the bucket supervisor before it has started. - -The second flaw is related to the supervision strategy. If `KV.Registry` dies, all information linking `KV.Bucket` names to bucket processes is lost. Therefore the `KV.BucketSupervisor` and all children must terminate too - otherwise we will have orphan processes. - -In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:rest_for_one` will kill and restart child processes which were started *after* the crashed child. In this case, we would want `KV.BucketSupervisor` to terminate if `KV.Bucket` terminates. This would require the bucket supervisor to be placed after the registry. Which violates the ordering constraints we have established two paragraphs above. - -So our last option is to go all in and pick the `:one_for_all` strategy: the supervisor will kill and restart all of its children processes whenever any one of them dies. This is a complete reasonable approach for our application, since the registry can't work without the bucket supervisor, and the bucket supervisor should terminate without the registry. Let's reimplement `init/1` in `KV.Supervisor` to encode those properties: - -```elixir - def init(:ok) do - children = [ - KV.BucketSupervisor, - {KV.Registry, name: KV.Registry} - ] - - Supervisor.init(children, strategy: :one_for_all) - end -``` - -To help developers remember how to work with Supervisors and its convenience functions, [Benjamin Tan Wei Hao](http://benjamintan.io/) has created a [Supervisor cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/Supervisor_CheatSheet.pdf). - -There are two topics left before we move on to the next chapter. - -## Observer - -Now that we have defined our supervision tree, it is a great opportunity to introduce the Observer tool that ships with Erlang. Start your application with `iex -S mix` and key this in: - -```iex -iex> :observer.start -``` - -A GUI should pop-up containing all sorts of information about our system, from general statistics to load charts as well as a list of all running processes and applications. - -In the Applications tab, you will see all applications currently running in your system along side their supervision tree. You can select the `kv` application to explore it further: - -Observer GUI screenshot - -Not only that, as you create new buckets on the terminal, you should see new processes spawned in the supervision tree shown in Observer: - -```iex -iex> KV.Registry.create KV.Registry, "shopping" -:ok -``` - -We will leave it up to you to further explore what Observer provides. Note you can double click any process in the supervision tree to retrieve more information about it, as well as right-click a process to send "a kill signal", a perfect way to emulate failures and see if your supervisor reacts as expected. - -At the end of the day, tools like Observer is one of the main reasons you want to always start processes inside supervision trees, even if they are temporary, to ensure they are always reachable and introspectable. - -## Shared state in tests - -So far we have been starting one registry per test to ensure they are isolated: - -```elixir -setup do - {:ok, registry} = start_supervised(KV.Registry) - %{registry: registry} -end -``` - -Since we have now changed our registry to use `KV.BucketSupervisor`, which is registered globally, our tests are now relying on this shared supervisor even though each test has its own registry. The question is: should we? - -It depends. It is ok to rely on shared state as long as we depend only on a non-shared partition of this state. Although multiple registries may start buckets on the shared bucket supervisor, those buckets and registries are isolated from each other. We would only run into concurrency issues if we used a function like `Supervisor.count_children(KV.Bucket.Supervisor)` which would count all buckets from all registries, potentially giving different results when tests run concurrently. - -Since we have relied only on a non-shared partition of the bucket supervisor so far, we don't need to worry about concurrency issues in our test suite. In case it ever becomes a problem, we can start a supervisor per test and pass it as an argument to the registry `start_link` function. - -Now that our application is properly supervised and tested, let's see how we can speed things up. +Next let's learn about one special type of supervisor that is designed to start and shut down children dynamically, called simple one for one. From c8bbf778fef865173889008b01f0c5fc000dd4f5 Mon Sep 17 00:00:00 2001 From: Tom Schlenkhoff Date: Sun, 20 Aug 2017 22:50:53 +0200 Subject: [PATCH 0738/1761] Rename dynamic-supervisor.md to dynamic-supervisor.markdown (#1021) Fixes: =ERROR REPORT==== 20-Aug-2017::21:32:55 === ** Task <0.7009.0> terminating ** Started from <0.73.0> ** When function == #Fun ** arguments == [] ** Reason for termination == ** {#{'__exception__' => true,'__struct__' => 'Elixir.File.Error', action => <<"read file">>, path => <<"/Users/tom/dev/elixir-lang.github.com/getting-started/mix-otp/dynamic-supervisor.markdown">>, reason => enoent}, [{'Elixir.File','read!',1,[{file,"lib/file.ex"},{line,272}]}, {'Elixir.ElixirLangGuide',to_xhtml,2, [{file,"lib/elixir_lang_guide.ex"},{line,91}]}, {'Elixir.Task.Supervised',do_apply,2, [{file,"lib/task/supervised.ex"},{line,85}]}, {'Elixir.Task.Supervised',reply,5, [{file,"lib/task/supervised.ex"},{line,36}]}, {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]} --- .../{dynamic-supervisor.md => dynamic-supervisor.markdown} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename getting-started/mix-otp/{dynamic-supervisor.md => dynamic-supervisor.markdown} (99%) diff --git a/getting-started/mix-otp/dynamic-supervisor.md b/getting-started/mix-otp/dynamic-supervisor.markdown similarity index 99% rename from getting-started/mix-otp/dynamic-supervisor.md rename to getting-started/mix-otp/dynamic-supervisor.markdown index 847e6cc26..201a5b774 100644 --- a/getting-started/mix-otp/dynamic-supervisor.md +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -215,4 +215,4 @@ We will leave it up to you to further explore what Observer provides. Note you c At the end of the day, tools like Observer is one of the reasons you want to always start processes inside supervision trees, even if they are temporary, to ensure they are always reachable and introspectable. -Now that our buckets are properly linked and supervised, let's see how we can speed things up. \ No newline at end of file +Now that our buckets are properly linked and supervised, let's see how we can speed things up. From 6cc741454903922973741a00ef338c517ba62a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 20 Aug 2017 22:53:02 +0200 Subject: [PATCH 0739/1761] Use :logger for better error reports --- _epub/mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_epub/mix.exs b/_epub/mix.exs index df9dec8d4..fa3b0f512 100644 --- a/_epub/mix.exs +++ b/_epub/mix.exs @@ -12,7 +12,7 @@ defmodule ElixirLangGuide.Mixfile do end def application do - [] + [extra_applications: [:logger]] end defp epub(_args) do From 690e7ac97a10572fe354cd9f9d021288e24c37a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klemen=20Ko=C5=A1ir?= Date: Tue, 22 Aug 2017 19:55:25 +0200 Subject: [PATCH 0740/1761] Fix grammar in the Guide (#1022) --- .../alias-require-and-import.markdown | 4 ++-- getting-started/basic-types.markdown | 4 ++-- getting-started/case-cond-and-if.markdown | 2 +- getting-started/comprehensions.markdown | 6 +++--- getting-started/enumerables-and-streams.markdown | 2 +- getting-started/erlang-libraries.markdown | 8 ++++---- getting-started/introduction.markdown | 2 +- getting-started/io-and-the-file-system.markdown | 10 +++++----- .../meta/domain-specific-languages.markdown | 6 +++--- getting-started/meta/macros.markdown | 4 ++-- getting-started/meta/quote-and-unquote.markdown | 4 ++-- getting-started/mix-otp/agent.markdown | 4 ++-- .../dependencies-and-umbrella-apps.markdown | 6 +++--- .../distributed-tasks-and-configuration.markdown | 16 ++++++++-------- .../mix-otp/docs-tests-and-with.markdown | 16 ++++++++-------- .../mix-otp/dynamic-supervisor.markdown | 6 +++--- getting-started/mix-otp/ets.markdown | 10 +++++----- getting-started/mix-otp/genserver.markdown | 12 ++++++------ .../mix-otp/introduction-to-mix.markdown | 2 +- .../mix-otp/supervisor-and-application.markdown | 10 +++++----- .../mix-otp/task-and-gen-tcp.markdown | 12 ++++++------ getting-started/module-attributes.markdown | 6 +++--- getting-started/protocols.markdown | 8 ++++---- getting-started/sigils.markdown | 8 ++++---- getting-started/try-catch-and-rescue.markdown | 6 +++--- 25 files changed, 87 insertions(+), 87 deletions(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index b0ddf6089..d536993db 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -40,7 +40,7 @@ end The original `List` can still be accessed within `Stats` by the fully-qualified name `Elixir.List`. -> Note: All modules defined in Elixir are defined inside a main `Elixir` namespace. However, for convenience, you can omit "Elixir." when referencing them. +> Note: All modules defined in Elixir are defined inside the main `Elixir` namespace. However, for convenience, you can omit "Elixir." when referencing them. Aliases are frequently used to define shortcuts. In fact, calling `alias` without an `:as` option sets the alias automatically to the last part of the module name, for example: @@ -222,4 +222,4 @@ From Elixir v1.2, it is possible to alias, import or require multiple modules at alias MyApp.{Foo, Bar, Baz} ``` -With this we have finished our tour of Elixir modules. The last topic to cover is module attributes. \ No newline at end of file +With this, we have finished our tour of Elixir modules. The last topic to cover is module attributes. diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 44b4e1a41..073e9457b 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -66,7 +66,7 @@ iex> 1.0e-10 1.0e-10 ``` -Floats in Elixir are 64 bit double precision. +Floats in Elixir are 64-bit double precision. You can invoke the `round` function to get the closest integer to a given float, or the `trunc` function to get the integer part of a float. @@ -385,6 +385,6 @@ iex> elem(tuple, 1) When counting the elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). As a mnemonic, both "length" and "linear" start with "l". -For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for tuple size), `length/1` (for list length) and `String.length/1` (for the number of graphemes in a string). We use `byte_size` to get the number of bytes in a string -- a cheap operation. Retrieving the number of unicode characters, on the other hand, uses `String.length`, and may be expensive as it relies on a traversal of the entire string. +For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for tuple size), `length/1` (for list length) and `String.length/1` (for the number of graphemes in a string). We use `byte_size` to get the number of bytes in a string -- a cheap operation. Retrieving the number of Unicode characters, on the other hand, uses `String.length`, and may be expensive as it relies on a traversal of the entire string. Elixir also provides `Port`, `Reference`, and `PID` as data types (usually used in process communication), and we will take a quick look at them when talking about processes. For now, let's take a look at some of the basic operators that go with our basic types. diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index b5f7353fe..09faac69c 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -179,7 +179,7 @@ iex> if true, do: 1 + 2 3 ``` -Notice how the example above has a comma between `true` and `do:`, that's because it is using Elixir's regular syntax where each argument is separated by comma. We say this syntax is using *keyword lists*. We can pass `else` using keywords too: +Notice how the example above has a comma between `true` and `do:`, that's because it is using Elixir's regular syntax where each argument is separated by a comma. We say this syntax is using *keyword lists*. We can pass `else` using keywords too: ```iex iex> if false, do: :this, else: :that diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index 1bb408f77..9e1444a4b 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -16,11 +16,11 @@ iex> for n <- [1, 2, 3, 4], do: n * n [1, 4, 9, 16] ``` -A comprehension is made of three parts: generators, filters and collectables. +A comprehension is made of three parts: generators, filters, and collectables. ## Generators and filters -In the expression above, `n <- [1, 2, 3, 4]` is the **generator**. It is literally generating values to be used in the comprehension. Any enumerable can be passed in the right-hand side of the generator expression: +In the expression above, `n <- [1, 2, 3, 4]` is the **generator**. It is literally generating values to be used in the comprehension. Any enumerable can be passed on the right-hand side of the generator expression: ```iex iex> for n <- 1..4, do: n * n @@ -135,7 +135,7 @@ iex> for <>, c != ?\s, into: "", do: <> "helloworld" ``` -Sets, maps and other dictionaries can also be given to the `:into` option. In general, `:into` accepts any structure that implements the `Collectable` protocol. +Sets, maps, and other dictionaries can also be given to the `:into` option. In general, `:into` accepts any structure that implements the `Collectable` protocol. A common use case of `:into` can be transforming values in a map, without touching the keys: diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 608e7fe32..f5ac5f791 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -121,4 +121,4 @@ The example above will fetch the first 10 lines of the file you have selected. T The amount of functionality in the [`Enum`](https://hexdocs.pm/elixir/Enum.html) and [`Stream`](https://hexdocs.pm/elixir/Stream.html) modules can be daunting at first, but you will get familiar with them case by case. In particular, focus on the `Enum` module first and only move to `Stream` for the particular scenarios where laziness is required, to either deal with slow resources or large, possibly infinite, collections. -Next we'll look at a feature central to Elixir, Processes, which allows us to write concurrent, parallel and distributed programs in an easy and understandable way. +Next, we'll look at a feature central to Elixir, Processes, which allows us to write concurrent, parallel and distributed programs in an easy and understandable way. diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index 115a98a00..f36dd0ceb 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -9,10 +9,10 @@ title: Erlang libraries Elixir provides excellent interoperability with Erlang libraries. In fact, Elixir discourages simply wrapping Erlang libraries in favor of directly -interfacing with Erlang code. In this section we will present some of the +interfacing with Erlang code. In this section, we will present some of the most common and useful Erlang functionality that is not found in Elixir. -As you grow more proficient in Elixir, you may want to explore the Erlang +As you grow more proficient in Elixir, you may want to explore the Erlang [STDLIB Reference Manual](http://erlang.org/doc/apps/stdlib/index.html) in more detail. @@ -77,8 +77,8 @@ end [The digraph module](http://erlang.org/doc/man/digraph.html) (as well as [digraph_utils](http://erlang.org/doc/man/digraph_utils.html)) contains functions for dealing with directed graphs built of vertices and edges. -After constructing the graph, the algorithms in there will help finding -for instance the shortest path between two vertices, or loops in the graph. +After constructing the graph, the algorithms in there will help finding, +for instance, the shortest path between two vertices, or loops in the graph. Given three vertices, find the shortest path from the first to the last. diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index db3c0a0f2..1b7d323fc 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -10,7 +10,7 @@ redirect_from: /getting_started/1.html Welcome! -In this tutorial we are going to teach you the Elixir foundation, the language syntax, how to define modules, how to manipulate the characteristics of common data structures, and more. This chapter will focus on ensuring Elixir is installed and that you can successfully run Elixir's Interactive Shell, called IEx. +In this tutorial, we are going to teach you the Elixir foundation, the language syntax, how to define modules, how to manipulate the characteristics of common data structures, and more. This chapter will focus on ensuring Elixir is installed and that you can successfully run Elixir's Interactive Shell, called IEx. Our requirements are: diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index a092c010a..1394f2bcf 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -98,7 +98,7 @@ iex> Path.expand("~/hello") Using functions from the `Path` module as opposed to directly manipulating strings is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slashes (`/`) into backslashes (`\`) on Windows when performing file operations. -With this we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next sections, we will discuss some advanced topics regarding IO. Those sections are not necessary in order to write Elixir code, so feel free to skip them, but they do provide a nice overview of how the IO system is implemented in the VM and other curiosities. +With this, we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next sections, we will discuss some advanced topics regarding IO. Those sections are not necessary in order to write Elixir code, so feel free to skip them, but they do provide a nice overview of how the IO system is implemented in the VM and other curiosities. ## Processes and group leaders @@ -133,7 +133,7 @@ iex> IO.read(pid, 2) "he" ``` -By modelling IO devices with processes, the Erlang VM allows different nodes in the same network to exchange file processes in order to read/write files in between nodes. Of all IO devices, there is one that is special to each process: the **group leader**. +By modeling IO devices with processes, the Erlang VM allows different nodes in the same network to exchange file processes in order to read/write files in between nodes. Of all IO devices, there is one that is special to each process: the **group leader**. When you write to `:stdio`, you are actually sending a message to the group leader, which writes to the standard-output file descriptor: @@ -150,9 +150,9 @@ The group leader can be configured per process and is used in different situatio ## `iodata` and `chardata` -In all of the examples above, we used binaries when writing to files. In the chapter ["Binaries, strings and char lists"](/getting-started/binaries-strings-and-char-lists.html), we mentioned how strings are made of bytes while char lists are lists with unicode codepoints. +In all of the examples above, we used binaries when writing to files. In the chapter ["Binaries, strings and char lists"](/getting-started/binaries-strings-and-char-lists.html), we mentioned how strings are made of bytes while char lists are lists with Unicode codepoints. -The functions in `IO` and `File` also allow lists to be given as arguments. Not only that, they also allow a mixed list of lists, integers and binaries to be given: +The functions in `IO` and `File` also allow lists to be given as arguments. Not only that, they also allow a mixed list of lists, integers, and binaries to be given: ```iex iex> IO.puts 'hello world' @@ -163,7 +163,7 @@ hello world :ok ``` -However, using list in IO operations requires some attention. A list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as argument; i.e., they expect a list of integers representing bytes and binaries to be given. +However, using lists in IO operations requires some attention. A list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as an argument; i.e., they expect a list of integers representing bytes and binaries to be given. On the other hand, `:stdio` and files opened with `:utf8` encoding work with the remaining functions in the `IO` module. Those functions expect a `char_data` as an argument, that is, a list of characters or strings. diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index 780fbf605..eee4d2c79 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -39,9 +39,9 @@ Of all the approaches above, the first is definitely the most flexible. If our d The second approach uses function calls which better suits more complex APIs (for example, if you need to pass many options) and reads nicely in Elixir thanks to the pipe operator. -The third approach, uses macros, and is by far the most complex. It will take more lines of code to implement, it is hard and expensive to test (compared to testing simple functions), and it limits how the user may use the library since all validations need to be defined inside a module. +The third approach uses macros, and is by far the most complex. It will take more lines of code to implement, it is hard and expensive to test (compared to testing simple functions), and it limits how the user may use the library since all validations need to be defined inside a module. -To drive the point home, imagine you want to validate a certain attribute only if a given condition is met. We could easily achieve it with the first solution, by manipulating the data structure accordingly, or with the second solution by using conditionals (if/else) before invoking the function. However it is impossible to do so with the macros approach unless its DSL is augmented. +To drive the point home, imagine you want to validate a certain attribute only if a given condition is met. We could easily achieve it with the first solution, by manipulating the data structure accordingly, or with the second solution by using conditionals (if/else) before invoking the function. However, it is impossible to do so with the macros approach unless its DSL is augmented. In other words: @@ -119,7 +119,7 @@ iex> defmodule MyTest do ...> end ``` -For now we don't have a mechanism to run tests, but we know that a function named "test hello" was defined behind the scenes. When we invoke it, it should fail: +For now, we don't have a mechanism to run tests, but we know that a function named "test hello" was defined behind the scenes. When we invoke it, it should fail: ```iex iex> MyTest."test hello"() diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index bd7cc8843..98b6c423a 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -11,7 +11,7 @@ title: Macros Even though Elixir attempts its best to provide a safe environment for macros, the major responsibility of writing clean code with macros falls on developers. Macros are harder to write than ordinary Elixir functions and it's considered to be bad style to use them when they're not necessary. So write macros responsibly. -Elixir already provides mechanisms to write your every day code in a simple and readable fashion by using its data structures and functions. Macros should only be used as a last resort. Remember that **explicit is better than implicit**. **Clear code is better than concise code.** +Elixir already provides mechanisms to write your everyday code in a simple and readable fashion by using its data structures and functions. Macros should only be used as a last resort. Remember that **explicit is better than implicit**. **Clear code is better than concise code.** ## Our first macro @@ -208,7 +208,7 @@ Take note of the second argument to `Macro.var/2`. This is the context being use When calling `Macro.expand_once/2` earlier in this chapter, we used the special form `__ENV__`. -`__ENV__` returns an instance of the `Macro.Env` struct which contains useful information about the compilation environment, including the current module, file and line, all variables defined in the current scope, as well as imports, requires and so on: +`__ENV__` returns an instance of the `Macro.Env` struct which contains useful information about the compilation environment, including the current module, file, and line, all variables defined in the current scope, as well as imports, requires and so on: ```iex iex> __ENV__.module diff --git a/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown index 145568802..35b65fc51 100644 --- a/getting-started/meta/quote-and-unquote.markdown +++ b/getting-started/meta/quote-and-unquote.markdown @@ -154,8 +154,8 @@ iex> Macro.escape(map) Macros receive quoted expressions and must return quoted expressions. However, sometimes during the execution of a macro, you may need to work with values and making a distinction between values and quoted expressions will be required. -In other words, it is important to make a distinction between a regular Elixir value (like a list, a map, a process, a reference, etc) and a quoted expression. Some values, such as integers, atoms and strings, have a quoted expression equal to the value itself. Other values, like maps, need to be explicitly converted. Finally, values like functions and references cannot be converted to a quoted expression at all. +In other words, it is important to make a distinction between a regular Elixir value (like a list, a map, a process, a reference, etc) and a quoted expression. Some values, such as integers, atoms, and strings, have a quoted expression equal to the value itself. Other values, like maps, need to be explicitly converted. Finally, values like functions and references cannot be converted to a quoted expression at all. You can read more about `quote` and `unquote` in the [`Kernel.SpecialForms` module](https://hexdocs.pm/elixir/Kernel.SpecialForms.html). Documentation for `Macro.escape/1` and other functions related to quoted expressions can be found in the [`Macro` module](https://hexdocs.pm/elixir/Macro.html). -In this introduction we have laid the groundwork to finally write our first macro, so let's move to the next chapter. +In this introduction, we have laid the groundwork to finally write our first macro, so let's move to the next chapter. diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 8ce9367ee..a9b39515f 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -20,7 +20,7 @@ Elixir is an immutable language where nothing is shared by default. If we want t * Processes * [ETS (Erlang Term Storage)](http://www.erlang.org/doc/man/ets.html) -We covered processes in the Getting Started guide. ETS is a new topic that will explore on later chapters. When it comes to processes though, we rarely hand-roll our own, instead we use the abstractions available in Elixir and OTP: +We covered processes in the Getting Started guide. ETS is a new topic that will explore in later chapters. When it comes to processes though, we rarely hand-roll our own, instead we use the abstractions available in Elixir and OTP: * [Agent](https://hexdocs.pm/elixir/Agent.html) - Simple wrappers around state. * [GenServer](https://hexdocs.pm/elixir/GenServer.html) - "Generic servers" (processes) that encapsulate state, provide sync and async calls, support code reloading, and more. @@ -197,4 +197,4 @@ end When a long action is performed on the server, all other requests to that particular server will wait until the action is done, which may cause some clients to timeout. -In the next chapter we will explore GenServers, where the segregation between clients and servers is made more apparent. +In the next chapter, we will explore GenServers, where the segregation between clients and servers is made more apparent. diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index ee0453132..25de6e917 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -37,7 +37,7 @@ Before creating our new application, we must discuss how Mix handles dependencie ## External dependencies -External dependencies are the ones not tied to your business domain. For example, if you need a HTTP API for your distributed KV application, you can use the [Plug](https://github.com/elixir-lang/plug) project as an external dependency. +External dependencies are the ones not tied to your business domain. For example, if you need an HTTP API for your distributed KV application, you can use the [Plug](https://github.com/elixir-lang/plug) project as an external dependency. Installing external dependencies is simple. Most commonly, we use the [Hex Package Manager](https://hex.pm), by listing the dependency inside the deps function in our `mix.exs` file: @@ -284,11 +284,11 @@ Remember that umbrella projects are a convenience to help you organize and manag ## Summing up -In this chapter we have learned more about Mix dependencies and umbrella projects. While we may run `kv` without a server, our `kv_server` depends directly on `kv`. By breaking them into separate applications, we gain more control in how they are developed and tested. +In this chapter, we have learned more about Mix dependencies and umbrella projects. While we may run `kv` without a server, our `kv_server` depends directly on `kv`. By breaking them into separate applications, we gain more control in how they are developed and tested. When using umbrella applications, it is important to have a clear boundary between them. Our upcoming `kv_server` must only access public APIs defined in `kv`. Think of your umbrella apps as any other dependency or even Elixir itself: you can only access what is public and documented. Reaching into private functionality in your dependencies is a poor practice that will eventually cause your code to break when a new version is up. -Umbrella applications can also be used as a stepping stone for eventually extracting an application from your codebase. For example, imagine a web application that has to send "push notifications" to its users. The whole "push notifications system" can be developed as an umbrella application, with its own supervision tree and APIs. If you ever run into a situation where another project needs the push notifications system, extraction should be straight-forward as long as the web application respects the push notification API boundary. Regardless if it happens in 2 weeks or in 3 years from development. Once extracted, the push notifications system can be moved to a private git repository or a public hex.pm package. +Umbrella applications can also be used as a stepping stone for eventually extracting an application from your codebase. For example, imagine a web application that has to send "push notifications" to its users. The whole "push notifications system" can be developed as an umbrella application, with its own supervision tree and APIs. If you ever run into a situation where another project needs the push notifications system, extraction should be straightforward as long as the web application respects the push notification API boundary. Regardless if it happens in 2 weeks or in 3 years from development. Once extracted, the push notifications system can be moved to a private git repository or a public hex.pm package. Developers may also use umbrella applications to break large business domains apart. The caution here is to make sure the domains don't depend on each other (also known as cyclic dependencies). If you run into such situations, it means those applications are not as isolated from each other as you originally thought, and you have architectural and design issues to solve. Overall, umbrella applications do not magically improve the design of your code. They can, however, help enforce boundaries when the code is well designed. diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index e1e1afc10..04afbeed1 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -24,7 +24,7 @@ If the matching entry points to the node evaluating the request, then we've fini You may wonder why we don't tell the node we found in our routing table to perform the requested operation directly, but instead pass the routing request on to that node to process. While a routing table as simple as the one above might reasonably be shared between all nodes, passing on the routing request in this way makes it much simpler to break the routing table into smaller pieces as our application grows. Perhaps at some point, `foo@computer-name` will only be responsible for routing bucket requests, and the buckets it handles will be dispatched to different nodes. In this way, `bar@computer-name` does not need to know anything about this change. -> Note: we will be using two nodes in the same machine throughout this chapter. You are free to use two (or more) different machines in the same network but you need to do some prep work. First of all, you need to ensure all machines have a `~/.erlang.cookie` file with exactly the same value. Second, you need to guarantee [epmd](http://www.erlang.org/doc/man/epmd.html) is running on a port that is not blocked (you can run `epmd -d` for debug info). Third, if you want to learn more about distribution in general, we recommend [this great Distribunomicon chapter from Learn You Some Erlang](http://learnyousomeerlang.com/distribunomicon). +> Note: we will be using two nodes in the same machine throughout this chapter. You are free to use two (or more) different machines on the same network but you need to do some prep work. First of all, you need to ensure all machines have a `~/.erlang.cookie` file with exactly the same value. Second, you need to guarantee [epmd](http://www.erlang.org/doc/man/epmd.html) is running on a port that is not blocked (you can run `epmd -d` for debug info). Third, if you want to learn more about distribution in general, we recommend [this great Distribunomicon chapter from Learn You Some Erlang](http://learnyousomeerlang.com/distribunomicon). ## Our first distributed code @@ -65,7 +65,7 @@ iex> Hello.world Hello.world() ``` -However we can spawn a new process on `foo@computer-name` from `bar@computer-name`! Let's give it a try (where `@computer-name` is the one you see locally): +However, we can spawn a new process on `foo@computer-name` from `bar@computer-name`! Let's give it a try (where `@computer-name` is the one you see locally): ```iex iex> Node.spawn_link :"foo@computer-name", fn -> Hello.world end @@ -75,7 +75,7 @@ hello world Elixir spawned a process on another node and returned its pid. The code then executed on the other node where the `Hello.world/0` function exists and invoked that function. Note that the result of "hello world" was printed on the current node `bar` and not on `foo`. In other words, the message to be printed was sent back from `foo` to `bar`. This happens because the process spawned on the other node (`foo`) still has the group leader of the current node (`bar`). We have briefly talked about group leaders in the [IO chapter](/getting-started/io-and-the-file-system.html#processes-and-group-leaders). -We can send and receive message from the pid returned by `Node.spawn_link/2` as usual. Let's try a quick ping-pong example: +We can send and receive messages from the pid returned by `Node.spawn_link/2` as usual. Let's try a quick ping-pong example: ```iex iex> pid = Node.spawn_link :"foo@computer-name", fn -> @@ -91,13 +91,13 @@ iex> flush() :ok ``` -From our quick exploration, we could conclude that we should use `Node.spawn_link/2` to spawn processes on a remote node every time we need to do a distributed computation. However we have learned throughout this guide that spawning processes outside of supervision trees should be avoided if possible, so we need to look for other options. +From our quick exploration, we could conclude that we should use `Node.spawn_link/2` to spawn processes on a remote node every time we need to do a distributed computation. However, we have learned throughout this guide that spawning processes outside of supervision trees should be avoided if possible, so we need to look for other options. There are three better alternatives to `Node.spawn_link/2` that we could use in our implementation: 1. We could use Erlang's [:rpc](http://www.erlang.org/doc/man/rpc.html) module to execute functions on a remote node. Inside the `bar@computer-name` shell above, you can call `:rpc.call(:"foo@computer-name", Hello, :world, [])` and it will print "hello world" -2. We could have a server running on the other node and send requests to that node via the [GenServer](https://hexdocs.pm/elixir/GenServer.html) API. For example, you can call a server on a remote node by using `GenServer.call({name, node}, arg)` or passing the remote process PID as first argument +2. We could have a server running on the other node and send requests to that node via the [GenServer](https://hexdocs.pm/elixir/GenServer.html) API. For example, you can call a server on a remote node by using `GenServer.call({name, node}, arg)` or passing the remote process PID as the first argument 3. We could use [tasks](https://hexdocs.pm/elixir/Task.html), which we have learned about in [a previous chapter](/getting-started/mix-otp/task-and-gen-tcp.html), as they can be spawned on both local and remote nodes @@ -143,7 +143,7 @@ iex> Task.await(task) {:ok, :"foo@computer-name"} ``` -Our first distributed task retrieves the name of the node the task is running on. Notice we have given an anonymous function to `Task.Supervisor.async/2` but, in distributed cases, it is preferable to give the module, function and arguments explicitly: +Our first distributed task retrieves the name of the node the task is running on. Notice we have given an anonymous function to `Task.Supervisor.async/2` but, in distributed cases, it is preferable to give the module, function, and arguments explicitly: ```iex iex> task = Task.Supervisor.async {KV.RouterTasks, :"foo@computer-name"}, Kernel, :node, [] @@ -152,7 +152,7 @@ iex> Task.await(task) :"foo@computer-name" ``` -The difference is that anonymous functions requires the target node to have exactly the same code version as the caller. Using module, function and arguments is more robust because you only need to find a function with matching arity in the given module. +The difference is that anonymous functions require the target node to have exactly the same code version as the caller. Using module, function, and arguments is more robust because you only need to find a function with matching arity in the given module. With this knowledge in hand, let's finally write the routing code. @@ -371,7 +371,7 @@ Finally, we have learned some new things in this chapter, and they could be appl ## Summing up -In this chapter we have built a simple router as a way to explore the distributed features of Elixir and the Erlang VM, and learned how to configure its routing table. This is the last chapter in our Mix and OTP guide. +In this chapter, we have built a simple router as a way to explore the distributed features of Elixir and the Erlang VM, and learned how to configure its routing table. This is the last chapter in our Mix and OTP guide. Throughout the guide, we have built a very simple distributed key-value store as an opportunity to explore many constructs like generic servers, supervisors, tasks, agents, applications and more. Not only that, we have written tests for the whole application, got familiar with ExUnit, and learned how to use the Mix build tool to accomplish a wide range of tasks. diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index a0461582b..c03d78608 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -36,7 +36,7 @@ After the parsing is done, we will update our server to dispatch the parsed comm On the language homepage, we mention that Elixir makes documentation a first-class citizen in the language. We have explored this concept many times throughout this guide, be it via `mix help` or by typing `h Enum` or another module in an IEx console. -In this section, we will implement the parse functionality using doctests, which allows us to write tests directly from our documentation. This helps us provide documentation with accurate code samples. +In this section, we will implement the parsing functionality using doctests, which allows us to write tests directly from our documentation. This helps us provide documentation with accurate code samples. Let's create our command parser at `lib/kv_server/command.ex` and start with the doctest: @@ -59,7 +59,7 @@ end Doctests are specified in by an indentation of four spaces followed by the `iex>` prompt in a documentation string. If a command spans multiple lines, you can use `...>`, as in IEx. The expected result should start at the next line after `iex>` or `...>` line(s) and is terminated either by a newline or a new `iex>` prefix. -Also note that we started the documentation string using `@doc ~S"""`. The `~S` prevents the `\r\n` characters from being converted to a carriage return and line feed until they are evaluated in the test. +Also, note that we started the documentation string using `@doc ~S"""`. The `~S` prevents the `\r\n` characters from being converted to a carriage return and line feed until they are evaluated in the test. To run our doctests, we'll create a file at `test/kv_server/command_test.exs` and call `doctest KVServer.Command` in the test case: @@ -248,7 +248,7 @@ defp write_line(socket, {:error, error}) do end ``` -If we start our server, we can now send commands to it. For now we will get two different responses: "OK" when the command is known and "UNKNOWN COMMAND" otherwise: +If we start our server, we can now send commands to it. For now, we will get two different responses: "OK" when the command is known and "UNKNOWN COMMAND" otherwise: ```bash $ telnet 127.0.0.1 4040 @@ -263,7 +263,7 @@ UNKNOWN COMMAND This means our implementation is going in the correct direction, but it doesn't look very elegant, does it? -The previous implementation used pipelines which made the logic straight-forward to follow. However, now that we need to handle different error codes along the way, our server logic is nested inside many `case` calls. +The previous implementation used pipelines which made the logic straightforward to follow. However, now that we need to handle different error codes along the way, our server logic is nested inside many `case` calls. Thankfully, Elixir v1.2 introduced the `with` construct, which allows you to simplify code like the above, replacing nested `case` calls with a chain of matching clauses. Let's rewrite the `serve/1` function to use `with`: @@ -345,7 +345,7 @@ Our server functionality is almost complete. Only tests are missing. This time, `KVServer.Command.run/1`'s implementation is sending commands directly to the server named `KV.Registry`, which is registered by the `:kv` application. This means this server is global and if we have two tests sending messages to it at the same time, our tests will conflict with each other (and likely fail). We need to decide between having unit tests that are isolated and can run asynchronously, or writing integration tests that work on top of the global state, but exercise our application's full stack as it is meant to be exercised in production. -So far we have only written unit tests, typically testing a single module directly. However, in order to make `KVServer.Command.run/1` testable as a unit we would need to change its implementation to not send commands directly to the `KV.Registry` process but instead pass a server as argument. For example, we would need to change `run`'s signature to `def run(command, pid)` and then change all clauses accordingly: +So far we have only written unit tests, typically testing a single module directly. However, in order to make `KVServer.Command.run/1` testable as a unit we would need to change its implementation to not send commands directly to the `KV.Registry` process but instead pass a server as an argument. For example, we would need to change `run`'s signature to `def run(command, pid)` and then change all clauses accordingly: ```elixir def run({:create, bucket}, pid) do @@ -356,9 +356,9 @@ end # ... other run clauses ... ``` -Feel free to go ahead and do the changes above and write some unit tests. The idea is that your tests will start an instance of the `KV.Registry` and pass it as argument to `run/2` instead of relying on the global `KV.Registry`. This has the advantage of keeping our tests asynchronous as there is no shared state. +Feel free to go ahead and do the changes above and write some unit tests. The idea is that your tests will start an instance of the `KV.Registry` and pass it as an argument to `run/2` instead of relying on the global `KV.Registry`. This has the advantage of keeping our tests asynchronous as there is no shared state. -But let's also try something different. Let's write integration tests that rely on the global server names to exercise the whole stack from the TCP server to the bucket. Our integration tests will rely on global state and must be synchronous. With integration tests we get coverage on how the components in our application work together at the cost of test performance. They are typically used to test the main flows in your application. For example, we should avoid using integration tests to test an edge case in our command parsing implementation. +But let's also try something different. Let's write integration tests that rely on the global server names to exercise the whole stack from the TCP server to the bucket. Our integration tests will rely on global state and must be synchronous. With integration tests, we get coverage on how the components in our application work together at the cost of test performance. They are typically used to test the main flows in your application. For example, we should avoid using integration tests to test an edge case in our command parsing implementation. Our integration test will use a TCP client that sends commands to our server and assert we are getting the desired responses. @@ -446,4 +446,4 @@ With this simple integration test, we start to see why integration tests may be At the end of the day, it is up to you and your team to figure out the best testing strategy for your applications. You need to balance code quality, confidence, and test suite runtime. For example, we may start with testing the server only with integration tests, but if the server continues to grow in future releases, or it becomes a part of the application with frequent bugs, it is important to consider breaking it apart and writing more intensive unit tests that don't have the weight of an integration test. -In the next chapter we will finally make our system distributed by adding a bucket routing mechanism. We'll also learn about application configuration. +In the next chapter, we will finally make our system distributed by adding a bucket routing mechanism. We'll also learn about application configuration. diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 201a5b774..c3d6c2106 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -18,7 +18,7 @@ Remember however that our `KV.Registry` is both linking (via `start_link`) and m ref = Process.monitor(pid) ``` -Links are bi-directional, which implies that a crash in a bucket will crash the registry. Although we now have the supervisor, which guarantees the registry will be back up and running, crashing the registry still means we lose all data associating bucket names to their respective processes. +Links are bidirectional, which implies that a crash in a bucket will crash the registry. Although we now have the supervisor, which guarantees the registry will be back up and running, crashing the registry still means we lose all data associating bucket names to their respective processes. In other words, we want the registry to keep on running even if a bucket crashes. Let's write a new registry test: @@ -150,13 +150,13 @@ When we added `KV.BucketSupervisor` as a child of `KV.Supervisor`, we began to h Every time you add a new child to a supervisor, it is important to evaluate if the supervisor strategy is correct as well as the order of child processes. In this case, we are using `:one_for_one` and the `KV.Registry` is started before `KV.BucketSupervisor`. -One flaw that shows up right away is the ordering issue. Since `KV.Registry` invokes `KV.BucketSupervisor`, then the `KV.BucketSupervisor` must be started before `KV.Registry`. Otherwise it may happen that the registry attempts to reach the bucket supervisor before it has started. +One flaw that shows up right away is the ordering issue. Since `KV.Registry` invokes `KV.BucketSupervisor`, then the `KV.BucketSupervisor` must be started before `KV.Registry`. Otherwise, it may happen that the registry attempts to reach the bucket supervisor before it has started. The second flaw is related to the supervision strategy. If `KV.Registry` dies, all information linking `KV.Bucket` names to bucket processes is lost. Therefore the `KV.BucketSupervisor` and all children must terminate too - otherwise we will have orphan processes. In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:rest_for_one` will kill and restart child processes which were started *after* the crashed child. In this case, we would want `KV.BucketSupervisor` to terminate if `KV.Bucket` terminates. This would require the bucket supervisor to be placed after the registry. Which violates the ordering constraints we have established two paragraphs above. -So our last option is to go all in and pick the `:one_for_all` strategy: the supervisor will kill and restart all of its children processes whenever any one of them dies. This is a complete reasonable approach for our application, since the registry can't work without the bucket supervisor, and the bucket supervisor should terminate without the registry. Let's reimplement `init/1` in `KV.Supervisor` to encode those properties: +So our last option is to go all in and pick the `:one_for_all` strategy: the supervisor will kill and restart all of its children processes whenever any one of them dies. This is a completely reasonable approach for our application, since the registry can't work without the bucket supervisor, and the bucket supervisor should terminate without the registry. Let's reimplement `init/1` in `KV.Supervisor` to encode those properties: ```elixir def init(:ok) do diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 3f5a6b4a7..f15c53527 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -11,7 +11,7 @@ title: ETS Every time we need to look up a bucket, we need to send a message to the registry. In case our registry is being accessed concurrently by multiple processes, the registry may become a bottleneck! -In this chapter we will learn about ETS (Erlang Term Storage) and how to use it as a cache mechanism. +In this chapter, we will learn about ETS (Erlang Term Storage) and how to use it as a cache mechanism. > Warning! Don't use ETS as a cache prematurely! Log and analyze your application performance and identify which parts are bottlenecks, so you know *whether* you should cache, and *what* you should cache. This chapter is merely an example of how ETS can be used, once you've determined the need. @@ -76,7 +76,7 @@ defmodule KV.Registry do end @doc """ - Ensures there is a bucket associated to the given `name` in `server`. + Ensures there is a bucket associated with the given `name` in `server`. """ def create(server, name) do GenServer.cast(server, {:create, name}) @@ -124,7 +124,7 @@ Notice that before our changes `KV.Registry.lookup/2` sent requests to the serve In order for the cache mechanism to work, the created ETS table needs to have access `:protected` (the default), so all clients can read from it, while only the `KV.Registry` process writes to it. We have also set `read_concurrency: true` when starting the table, optimizing the table for the common scenario of concurrent read operations. -The changes we have performed above have broken our tests because the registry requires the `:name` option when starting up. Furthermore, some registry operations such as `lookup/2` require the name to be given as argument, instead of a PID, so we can do the ETS table lookup. Let's change the setup function in `test/kv/registry_test.exs` to fix both issues: +The changes we have performed above have broken our tests because the registry requires the `:name` option when starting up. Furthermore, some registry operations such as `lookup/2` require the name to be given as an argument, instead of a PID, so we can do the ETS table lookup. Let's change the setup function in `test/kv/registry_test.exs` to fix both issues: ```elixir setup context do @@ -222,7 +222,7 @@ The `--trace` option is useful when your tests are deadlocking or there are race According to the failure message, we are expecting that the bucket no longer exists on the table, but it still does! This problem is the opposite of the one we have just solved: while previously there was a delay between the command to create a bucket and updating the table, now there is a delay between the bucket process dying and its entry being removed from the table. -Unfortunately this time we cannot simply change `handle_info/2`, the operation responsible for cleaning the ETS table, to a synchronous operation. Instead we need to find a way to guarantee the registry has processed the `:DOWN` notification sent when the bucket crashed. +Unfortunately this time we cannot simply change `handle_info/2`, the operation responsible for cleaning the ETS table, to a synchronous operation. Instead, we need to find a way to guarantee the registry has processed the `:DOWN` notification sent when the bucket crashed. An easy way to do so is by sending a synchronous request to the registry: because messages are processed in order, if the registry replies to a request sent after the `Agent.stop` call, it means that the `:DOWN` message has been processed. Let's do so by creating a "bogus" bucket, which is a synchronous request, after `Agent.stop` in both tests: @@ -257,4 +257,4 @@ This concludes our optimization chapter. We have used ETS as a cache mechanism w In practice, if you find yourself in a position where you need a process registry for dynamic processes, you should use [the `Registry` module](https://hexdocs.pm/elixir/Registry.html) provided as part of Elixir. It provides functionality similar to the one we have built using a GenServer + `:ets` while also being able to perform both writes and reads concurrently. [It has been benchmarked to scale across all cores even on machines with 40 cores](https://elixir-lang.org/blog/2017/01/05/elixir-v1-4-0-released/). -Next let's discuss external and internal dependencies and how Mix helps us manage large codebases. +Next, let's discuss external and internal dependencies and how Mix helps us manage large codebases. diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index a16b1527a..39e7b56cb 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -9,7 +9,7 @@ title: GenServer {% include mix-otp-preface.html %} -In the [previous chapter](/getting-started/mix-otp/agent.html) we used agents to represent our buckets. In the first chapter, we specified we would like to name each bucket so we can do the following: +In the [previous chapter](/getting-started/mix-otp/agent.html), we used agents to represent our buckets. In the first chapter, we specified we would like to name each bucket so we can do the following: ```elixir CREATE shopping @@ -38,7 +38,7 @@ iex> KV.Bucket.get(:shopping, "milk") However, naming dynamic processes with atoms is a terrible idea! If we use atoms, we would need to convert the bucket name (often received from an external client) to atoms, and **we should never convert user input to atoms**. This is because atoms are not garbage collected. Once an atom is created, it is never reclaimed. Generating atoms from user input would mean the user can inject enough different names to exhaust our system memory! -In practice it is more likely you will reach the Erlang VM limit for the maximum number of atoms before you run out of memory, which will bring your system down regardless. +In practice, it is more likely you will reach the Erlang VM limit for the maximum number of atoms before you run out of memory, which will bring your system down regardless. Instead of abusing the built-in name facility, we will create our own *process registry* that associates the bucket name to the bucket process. @@ -75,7 +75,7 @@ defmodule KV.Registry do end @doc """ - Ensures there is a bucket associated to the given `name` in `server`. + Ensures there is a bucket associated with the given `name` in `server`. """ def create(server, name) do GenServer.cast(server, {:create, name}) @@ -106,7 +106,7 @@ The first function is `start_link/1`, which starts a new GenServer passing three 1. The module where the server callbacks are implemented, in this case `__MODULE__`, meaning the current module -2. The initialization arguments, in this case the atom `:ok` +2. The initialization arguments, in this case, the atom `:ok` 3. A list of options which can be used to specify things like the name of the server. For now, we forward the list of options that we receive on `start_link/1`, which defaults to an empty list. We will customize it later on @@ -114,7 +114,7 @@ There are two types of requests you can send to a GenServer: calls and casts. Ca The next two functions, `lookup/2` and `create/2` are responsible for sending these requests to the server. In this case, we have used `{:lookup, name}` and `{:create, name}` respectively. Requests are often specified as tuples, like this, in order to provide more than one "argument" in that first argument slot. It's common to specify the action being requested as the first element of a tuple, and arguments for that action in the remaining elements. Note that the requests must match the first argument to `handle_call/3` or `handle_cast/2`. -That's it for the client API. On the server side, we can implement a variety of callbacks to guarantee the server initialization, termination and handling of requests. Those callbacks are optional and for now we have only implemented the ones we care about. +That's it for the client API. On the server side, we can implement a variety of callbacks to guarantee the server initialization, termination, and handling of requests. Those callbacks are optional and for now, we have only implemented the ones we care about. The first is the `init/1` callback, that receives the second argument given to `GenServer.start_link/3` and returns `{:ok, state}`, where state is a new map. We can already notice how the `GenServer` API makes the client/server segregation more apparent. `start_link/3` happens in the client, while `init/1` is the respective callback that runs on the server. @@ -267,4 +267,4 @@ Returning to our `handle_cast/2` implementation, you can see the registry is bot ref = Process.monitor(pid) ``` -This is a bad idea, as we don't want the registry to crash when a bucket crashes! We typically avoid creating new processes directly, instead we delegate this responsibility to supervisors. As we'll see in the next chapter, supervisors rely on links and that explains why link-based APIs (`spawn_link`, `start_link`, etc) are so prevalent in Elixir and OTP. +This is a bad idea, as we don't want the registry to crash when a bucket crashes! We typically avoid creating new processes directly, instead, we delegate this responsibility to supervisors. As we'll see in the next chapter, supervisors rely on links and that explains why link-based APIs (`spawn_link`, `start_link`, etc) are so prevalent in Elixir and OTP. diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index d6ef3c47d..7b046594a 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -55,7 +55,7 @@ In this chapter, we will create our first project using Mix and explore differen When you install Elixir, besides getting the `elixir`, `elixirc` and `iex` executables, you also get an executable Elixir script named `mix`. -Let's create our first project by invoking `mix new` from the command line. We'll pass the project name as argument (`kv`, in this case), and tell Mix that our main module should be the all-uppercase `KV`, instead of the default, which would have been `Kv`: +Let's create our first project by invoking `mix new` from the command line. We'll pass the project name as the argument (`kv`, in this case), and tell Mix that our main module should be the all-uppercase `KV`, instead of the default, which would have been `Kv`: ```bash $ mix new kv --module KV diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 6fdb6e25c..fb59e9cc9 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -9,7 +9,7 @@ title: Supervisor and Application {% include mix-otp-preface.html %} -So far our application has a registry that may monitor dozens, if not hundreds, of buckets. While we think our implementation so far is quite good, no software is bug free, and failures are definitely going to happen. +So far our application has a registry that may monitor dozens, if not hundreds, of buckets. While we think our implementation so far is quite good, no software is bug-free, and failures are definitely going to happen. When things fail, your first reaction may be: "let's rescue those errors". But in Elixir we avoid the defensive programming habit of rescuing exceptions. Instead, we say "let it crash". If there is a bug that leads our registry to crash, we have nothing to worry about because we are going to set up a supervisor that will start a fresh copy of the registry. @@ -60,13 +60,13 @@ We will learn those details as we move forward on this guide. If you would rathe After the supervisor retrieves all child specifications, it proceeds to start its children one by one, in the order they were defined, using the information in the `:start` key in the child specification. For our current specification, it will call `KV.Registry.start_link([])`. -So far `start_link/1` has always receive an empty list of options. It is time we change that. +So far `start_link/1` has always received an empty list of options. It is the time we change that. ## Naming processes While our application will have many buckets, it will only have a single registry. So instead of always passing the registry PID around, we can give the registry a name, and always reference it by its name. -Also, remember buckets were started dynamically based on user input, and that meant we should not use atom names for managing our buckets. But the registry is in the opposite situation, we want to start a single registry, preferrably under a supervisor, when our application boots. +Also, remember buckets were started dynamically based on user input, and that meant we should not use atom names for managing our buckets. But the registry is in the opposite situation, we want to start a single registry, preferably under a supervisor, when our application boots. So let's do that. Let's slightly change our children definition to be a list of tuples instead of a list of atoms: @@ -103,7 +103,7 @@ iex> KV.Registry.lookup(KV.Registry, "shopping") When we started the supervisor, the registry was automatically started with the given name, allowing us to create buckets without the need to manually start it. -In practice we rarely start the application supervisor manually. Instead it is started as part of the application callback. +In practice, we rarely start the application supervisor manually. Instead, it is started as part of the application callback. ## Understanding applications @@ -222,7 +222,7 @@ iex> KV.Registry.lookup(KV.Registry, "shopping") How do we know this is working? After all, we are creating the bucket and then looking it up; of course it should work, right? Well, remember that `KV.Registry.create/2` uses `GenServer.cast/2`, and therefore will return `:ok` regardless of whether the message finds its target or not. At that point, we don't know whether the supervisor and the server are up, and if the bucket was created. However, `KV.Registry.lookup/2` uses `GenServer.call/3`, and will block and wait for a response from the server. We do get a positive response, so we know all is up and running. -For an experiment, try reimplementing `KV.Registry.create/2` to use `GenServer.call/3` instead, and momentarily disable the application callback. Run the code above on the console again, and you will see the creation step fails straightaway. +For an experiment, try reimplementing `KV.Registry.create/2` to use `GenServer.call/3` instead, and momentarily disable the application callback. Run the code above on the console again, and you will see the creation step fails straight away. Don't forget to bring the code back to normal before resuming this tutorial! diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index d3c11fbda..f8ec8bcf8 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -9,7 +9,7 @@ title: Task and gen_tcp {% include mix-otp-preface.html %} -In this chapter, we are going to learn how to use [Erlang's `:gen_tcp` module](http://www.erlang.org/doc/man/gen_tcp.html) to serve requests. This provides a great opportunity to explore Elixir's `Task` module. In future chapters we will expand our server so it can actually serve the commands. +In this chapter, we are going to learn how to use [Erlang's `:gen_tcp` module](http://www.erlang.org/doc/man/gen_tcp.html) to serve requests. This provides a great opportunity to explore Elixir's `Task` module. In future chapters, we will expand our server so it can actually serve the commands. ## Echo server @@ -66,7 +66,7 @@ end We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is a loop accepting client connections. For each accepted connection, we call `serve/1`. -`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as first argument to the function on the right side. The example above: +`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as the first argument to the function on the right side. The example above: ```elixir socket |> read_line() |> write_line(socket) @@ -118,13 +118,13 @@ Once you exit the telnet client, you will likely see an error in the IEx session That's because we were expecting data from `:gen_tcp.recv/2` but the client closed the connection. We need to handle such cases better in future revisions of our server. -For now there is a more important bug we need to fix: what happens if our TCP acceptor crashes? Since there is no supervision, the server dies and we won't be able to serve more requests, because it won't be restarted. That's why we must move our server to a supervision tree. +For now, there is a more important bug we need to fix: what happens if our TCP acceptor crashes? Since there is no supervision, the server dies and we won't be able to serve more requests, because it won't be restarted. That's why we must move our server to a supervision tree. ## Tasks We have learned about agents, generic servers, and supervisors. They are all meant to work with multiple messages or manage state. But what do we use when we only need to execute some task and that is it? -[The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/3` function that receives a module, function and arguments, allowing us to run a given function as part of a supervision tree. +[The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/3` function that receives a module, function, and arguments, allowing us to run a given function as part of a supervision tree. Let's give it a try. Open up `lib/kv_server/application.ex`, and let's change the supervisor in the `start/2` function to the following: @@ -285,7 +285,7 @@ In this case, the answer is yes: if the acceptor crashes, there is no need to cr However, there is still one concern left, which are the restart strategies. Tasks, by default, have the `:restart` value set to `:temporary`, which means they are not restarted. This is an excellent default for the connections started via the `Task.Supervisor`, as it makes no sense to restart a failed connection, but it is a bad choice for the acceptor. If the acceptor crashes, we want to bring the acceptor up and running again. -We could fix this by defining our own module that calls `use Task, restart: :permanent` and invokes a `start_link` function responsible for restarting the task, quite similar to `Agent` and `GenServer`. However, let's take a different approach here. When integrating with someone else's library, we won't be able to change how their agents, tasks and servers are defined. Instead, we need to be able to customize their child specification dynamically. This can be done by using `Supervisor.child_spec/2`, a function that we happen to know from previous chapters. Let's rewrite `start/2` in `KVServer.Application` once more: +We could fix this by defining our own module that calls `use Task, restart: :permanent` and invokes a `start_link` function responsible for restarting the task, quite similar to `Agent` and `GenServer`. However, let's take a different approach here. When integrating with someone else's library, we won't be able to change how their agents, tasks, and servers are defined. Instead, we need to be able to customize their child specification dynamically. This can be done by using `Supervisor.child_spec/2`, a function that we happen to know from previous chapters. Let's rewrite `start/2` in `KVServer.Application` once more: ```elixir def start(_type, _args) do @@ -301,4 +301,4 @@ We could fix this by defining our own module that calls `use Task, restart: :per `Supervisor.child_spec/2` is capable of building a child specification from a given module and/or tuple, and it also accepts values that override the underlying child specification. Now we have an always running acceptor that starts temporary task processes under an always running task supervisor. -In the next chapter we will start parsing the client requests and sending responses, finishing our server. +In the next chapter, we will start parsing the client requests and sending responses, finishing our server. diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 4d4e0feae..b5e7072ff 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -57,7 +57,7 @@ defmodule Math do end ``` -Elixir promotes the use of Markdown with heredocs to write readable documentation. Heredocs are multiline strings, they start and end with triple double-quotes, keeping the formatting of the inner text. We can access the documentation of any compiled module directly from IEx: +Elixir promotes the use of Markdown with heredocs to write readable documentation. Heredocs are multi-line strings, they start and end with triple double-quotes, keeping the formatting of the inner text. We can access the documentation of any compiled module directly from IEx: ```bash $ elixirc math.ex @@ -143,7 +143,7 @@ Plug.Adapters.Cowboy.http MyPlug, [] In the example above, we have used the `plug/1` macro to connect functions that will be invoked when there is a web request. Internally, every time you call `plug/1`, the Plug library stores the given argument in a `@plugs` attribute. Just before the module is compiled, Plug runs a callback that defines a function (`call/2`) which handles HTTP requests. This function will run all plugs inside `@plugs` in order. -In order to understand the underlying code, we'd need macros, so we will revisit this pattern in the meta-programming guide. However the focus here is on how using module attributes as storage allows developers to create DSLs. +In order to understand the underlying code, we'd need macros, so we will revisit this pattern in the meta-programming guide. However, the focus here is on how using module attributes as storage allows developers to create DSLs. Another example comes from [the ExUnit framework](https://hexdocs.pm/ex_unit/) which uses module attributes as annotation and storage: @@ -162,4 +162,4 @@ Tags in ExUnit are used to annotate tests. Tags can be later used to filter test We hope this section shines some light on how Elixir supports meta-programming and how module attributes play an important role when doing so. -In the next chapters we'll explore structs and protocols before moving to exception handling and other constructs like sigils and comprehensions. +In the next chapters, we'll explore structs and protocols before moving to exception handling and other constructs like sigils and comprehensions. diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 8eef414e7..1923eca52 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -9,9 +9,9 @@ title: Protocols Protocols are a mechanism to achieve polymorphism in Elixir. Dispatching on a protocol is available to any data type as long as it implements the protocol. Let's see an example. -In Elixir, we have two idioms for checking how many items there are in a data structure: `length` and `size`. `length` means the information must be computed. For example, `length(list)` needs to traverse the whole list to calculate its length. On the other hand, `tuple_size(tuple)` and `byte_size(binary)` do not depend on the tuple and binary size as the size information is precomputed in the data structure. +In Elixir, we have two idioms for checking how many items there are in a data structure: `length` and `size`. `length` means the information must be computed. For example, `length(list)` needs to traverse the whole list to calculate its length. On the other hand, `tuple_size(tuple)` and `byte_size(binary)` do not depend on the tuple and binary size as the size information is pre-computed in the data structure. -Even if we have type-specific functions for getting the size built into Elixir (such as `tuple_size/1`), we could implement a generic `Size` protocol that all data structures for which size is precomputed would implement. +Even if we have type-specific functions for getting the size built into Elixir (such as `tuple_size/1`), we could implement a generic `Size` protocol that all data structures for which size is pre-computed would implement. The protocol definition would look like this: @@ -38,7 +38,7 @@ defimpl Size, for: Tuple do end ``` -We didn't implement the `Size` protocol for lists as there is no "size" information precomputed for lists, and the length of a list has to be computed (with `length/1`). +We didn't implement the `Size` protocol for lists as there is no "size" information pre-computed for lists, and the length of a list has to be computed (with `length/1`). Now with the protocol defined and implementations in hand, we can start using it: @@ -218,7 +218,7 @@ There are other protocols in Elixir but this covers the most common ones. ## Protocol consolidation -When working with Elixir projects, using the Mix build tool, you may see output as follows: +When working with Elixir projects, using the Mix build tool, you may see the output as follows: ``` Consolidated String.Chars diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 847aec0b5..4b81eae06 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -38,7 +38,7 @@ true Check out the [`Regex` module](https://hexdocs.pm/elixir/Regex.html) for more information on other modifiers and the supported operations with regular expressions. -So far, all examples have used `/` to delimit a regular expression. However sigils support 8 different delimiters: +So far, all examples have used `/` to delimit a regular expression. However, sigils support 8 different delimiters: ``` ~r/hello/ @@ -84,7 +84,7 @@ iex> ~w(foo bar bat) ["foo", "bar", "bat"] ``` -The `~w` sigil also accepts the `c`, `s` and `a` modifiers (for char lists, strings and atoms, respectively), which specify the data type of the elements of the resulting list: +The `~w` sigil also accepts the `c`, `s` and `a` modifiers (for char lists, strings, and atoms, respectively), which specify the data type of the elements of the resulting list: ```iex iex> ~w(foo bar bat)a @@ -130,7 +130,7 @@ iex> ~s""" ...> """ ``` -The most common use case for heredoc sigils is when writing documentation. For example, writing escape characters in documentation would soon become error prone because of the need to double-escape some characters: +The most common use case for heredoc sigils is when writing documentation. For example, writing escape characters in the documentation would soon become error prone because of the need to double-escape some characters: ```elixir @doc """ @@ -162,7 +162,7 @@ def convert(...) ## Custom sigils -As hinted at the beginning of this chapter, sigils in Elixir are extensible. In fact, using the sigil `~r/foo/i` is equivalent to calling `sigil_r` with a binary and a char list as argument: +As hinted at the beginning of this chapter, sigils in Elixir are extensible. In fact, using the sigil `~r/foo/i` is equivalent to calling `sigil_r` with a binary and a char list as the argument: ```iex iex> sigil_r(<<"foo">>, 'i') diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index a80ead58e..8c8ad98c6 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -7,7 +7,7 @@ title: try, catch, and rescue {% include toc.html %} -Elixir has three error mechanisms: errors, throws, and exits. In this chapter we will explore each of them and include remarks about when each should be used. +Elixir has three error mechanisms: errors, throws, and exits. In this chapter, we will explore each of them and include remarks about when each should be used. ## Errors @@ -138,7 +138,7 @@ iex> spawn_link fn -> exit(1) end ** (EXIT from #PID<0.56.0>) 1 ``` -In the example above, the linked process died by sending an `exit` signal with value of 1. The Elixir shell automatically handles those messages and prints them to the terminal. +In the example above, the linked process died by sending an `exit` signal with a value of 1. The Elixir shell automatically handles those messages and prints them to the terminal. `exit` can also be "caught" using `try/catch`: @@ -151,7 +151,7 @@ iex> try do "not really" ``` -Using `try/catch` is already uncommon and using it to catch exits is even more rare. +Using `try/catch` is already uncommon and using it to catch exits is even rarer. `exit` signals are an important part of the fault tolerant system provided by the Erlang VM. Processes usually run under supervision trees which are themselves processes that listen to `exit` signals from the supervised processes. Once an exit signal is received, the supervision strategy kicks in and the supervised process is restarted. From c3be903d12d8aaf9de49d7d50ea4ba9ec744a583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 23 Aug 2017 10:45:04 +0200 Subject: [PATCH 0741/1761] Improve docs around lists and sharing --- getting-started/basic-types.markdown | 18 ++++++++++++++---- .../binaries-strings-and-char-lists.markdown | 14 +++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 073e9457b..75c6b6aab 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -255,6 +255,8 @@ iex> [1, true, 2, false, 3, true] -- [true, false] [1, 2, 3, true] ``` +List operators never modify the existing list. Concatenating to or removing elements from a list return a new list. We say Elixir data structures are *immutable*. One advantage of immutability is that it leads to clearer code. You can freely pass the data around with the guarantee no one will change it - only transform it. + Throughout the tutorial, we will talk a lot about the head and tail of a list. The head is the first element of a list and the tail is the remainder of the list. They can be retrieved with the functions `hd/1` and `tl/1`. Let's assign a list to a variable and retrieve its head and tail: ```iex @@ -281,7 +283,7 @@ iex> [104, 101, 108, 108, 111] 'hello' ``` -When Elixir sees a list of printable ASCII numbers, Elixir will print that as a char list (literally a list of characters). Char lists are quite common when interfacing with existing Erlang code. Whenever you see a value in IEx and you are not quite sure what it is, you can use the `i/1` to retrieve information about it: +When Elixir sees a list of printable ASCII numbers, Elixir will print that as a charlist (literally a list of characters). Charlists are quite common when interfacing with existing Erlang code. Whenever you see a value in IEx and you are not quite sure what it is, you can use the `i/1` to retrieve information about it: ```iex iex> i 'hello' @@ -304,7 +306,7 @@ iex> 'hello' == "hello" false ``` -Single quotes are char lists, double quotes are strings. We will talk more about them in the ["Binaries, strings and char lists"](/getting-started/binaries-strings-and-char-lists.html) chapter. +Single quotes are charlists, double quotes are strings. We will talk more about them in the ["Binaries, strings and charlists"](/getting-started/binaries-strings-and-char-lists.html) chapter. ## Tuples @@ -339,7 +341,7 @@ iex> tuple {:ok, "hello"} ``` -Notice that `put_elem/3` returned a new tuple. The original tuple stored in the `tuple` variable was not modified because Elixir data types are immutable. By being immutable, Elixir code is easier to reason about as you never need to worry that any code might be mutating your data structure in place. +Notice that `put_elem/3` returned a new tuple. The original tuple stored in the `tuple` variable was not modified. Like lists, tuples are also immutable. Every operation on a tuple returns a new tuple, it never changes the given one. ## Lists or tuples? @@ -361,7 +363,15 @@ iex> list ++ [4] [1, 2, 3, 4] ``` -Tuples, on the other hand, are stored contiguously in memory. This means getting the tuple size or accessing an element by index is fast. However, updating or adding elements to tuples is expensive because it requires copying the whole tuple in memory. +Tuples, on the other hand, are stored contiguously in memory. This means getting the tuple size or accessing an element by index is fast. However, updating or adding elements to tuples is expensive because it requires creating a new tuple in memory: + +```iex +iex> tuple = {:a, :b, :c, :d} +iex> put_elem(tuple, 2, :e) +{:a, :b, :e, :d} +``` + +Note this applies only to the tuple itself. Not its contents. For instance, when you update a tuple, all entries are shared between the old and the new tuple, except for the entry that has been replaced. In other words, tuples and lists in Elixir are capable of sharing their contents. This reduces the amount of memory allocation the language needs to perform and is only possible thanks to the immutable semantics of the language. Those performance characteristics dictate the usage of those data structures. One very common use case for tuples is to use them to return extra information from a function. For example, `File.read/1` is a function that can be used to read file contents. It returns tuples: diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index b17b4ad16..87c7eb8a3 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: Binaries, strings, and char lists +title: Binaries, strings, and charlists --- # {{ page.title }} @@ -163,9 +163,9 @@ iex> rest A complete reference about the binary / bitstring constructor `<<>>` can be found [in the Elixir documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1). This concludes our tour of bitstrings, binaries and strings. A string is a UTF-8 encoded binary and a binary is a bitstring where the number of bits is divisible by 8. Although this shows the flexibility Elixir provides for working with bits and bytes, 99% of the time you will be working with binaries and using the `is_binary/1` and `byte_size/1` functions. -## Char lists +## Charlists -A char list is nothing more than a list of code points. Char lists may be created with single-quoted literals: +A charlist is nothing more than a list of code points. Char lists may be created with single-quoted literals: ```iex iex> 'hełło' @@ -178,9 +178,9 @@ iex> List.first('hello') 104 ``` -You can see that, instead of containing bytes, a char list contains the code points of the characters between single-quotes (note that by default IEx will only output code points if any of the integers is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represent a char list (i.e. a list). +You can see that, instead of containing bytes, a charlist contains the code points of the characters between single-quotes (note that by default IEx will only output code points if any of the integers is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represent a charlist (i.e. a list). -In practice, char lists are used mostly when interfacing with Erlang, in particular old libraries that do not accept binaries as arguments. You can convert a char list to a string and back by using the `to_string/1` and `to_charlist/1` functions: +In practice, charlists are used mostly when interfacing with Erlang, in particular old libraries that do not accept binaries as arguments. You can convert a charlist to a string and back by using the `to_string/1` and `to_charlist/1` functions: ```iex iex> to_charlist "hełło" @@ -193,6 +193,6 @@ iex> to_string 1 "1" ``` -Note that those functions are polymorphic. They not only convert char lists to strings, but also integers to strings, atoms to strings, and so on. +Note that those functions are polymorphic. They not only convert charlists to strings, but also integers to strings, atoms to strings, and so on. -With binaries, strings, and char lists out of the way, it is time to talk about key-value data structures. +With binaries, strings, and charlists out of the way, it is time to talk about key-value data structures. From 4afd49b2b17d6dc53734551ae0114005a0bb7b41 Mon Sep 17 00:00:00 2001 From: Martyn Osborne Date: Fri, 25 Aug 2017 15:11:19 +0100 Subject: [PATCH 0742/1761] Add Solus installation instructions (#1023) --- install.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.markdown b/install.markdown index 995ddbb69..b038b9748 100644 --- a/install.markdown +++ b/install.markdown @@ -45,6 +45,8 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * FreeBSD * From ports: `cd /usr/ports/lang/elixir && make install clean` * From pkg: `pkg install elixir` + * Solus + * Run: `eopkg install elixir` * Ubuntu 12.04/14.04/16.04 or Debian 7 * Add Erlang Solutions repo: `wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb` * Run: `sudo apt-get update` From d3d1efba5fb713108cff7464d942a38abef28485 Mon Sep 17 00:00:00 2001 From: "m. simon borg" Date: Sun, 27 Aug 2017 03:14:14 -0400 Subject: [PATCH 0743/1761] Language edit (#1024) "It is the time we change that" is an awkward phrase, subbed it out for "It is time we change that" --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index fb59e9cc9..5ea6cdb34 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -60,7 +60,7 @@ We will learn those details as we move forward on this guide. If you would rathe After the supervisor retrieves all child specifications, it proceeds to start its children one by one, in the order they were defined, using the information in the `:start` key in the child specification. For our current specification, it will call `KV.Registry.start_link([])`. -So far `start_link/1` has always received an empty list of options. It is the time we change that. +So far `start_link/1` has always received an empty list of options. It is time we change that. ## Naming processes From 5a5b9460ca3802c8bc9aa9afd487ccf3f237efb1 Mon Sep 17 00:00:00 2001 From: Cesario Uy Date: Wed, 30 Aug 2017 13:34:55 -0400 Subject: [PATCH 0744/1761] Fix minor grammatical issues in Getting Started: Introduction, Basic Types (#1025) --- getting-started/basic-types.markdown | 22 +++++++++++----------- getting-started/introduction.markdown | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 75c6b6aab..8f6d98194 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -44,7 +44,7 @@ iex> rem 10, 3 1 ``` -Notice Elixir allows you to drop the parentheses when invoking named functions. Such feature gives a cleaner syntax when writing declarations and control-flow constructs. +Notice that Elixir allows you to drop the parentheses when invoking named functions. This feature gives a cleaner syntax when writing declarations and control-flow constructs. Elixir also supports shortcut notations for entering binary, octal, and hexadecimal numbers: @@ -57,7 +57,7 @@ iex> 0x1F 31 ``` -Float numbers require a dot followed by at least one digit and also support `e` for the exponent number: +Float numbers require a dot followed by at least one digit and also support `e` for scientific notation: ```iex iex> 1.0 @@ -79,7 +79,7 @@ iex> trunc(3.58) ## Identifying functions -Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments which the function takes. From this point on we will use both the function name and its arity to describe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes 1 argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of `2`. +Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments that the function takes. From this point on we will use both the function name and its arity to describe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes 1 argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of `2`. ## Booleans @@ -107,7 +107,7 @@ You can also use `is_integer/1`, `is_float/1` or `is_number/1` to check, respect ## Atoms -Atoms are constants where their name is their own value. Some other languages call these symbols: +An atom is a constant whose name is its own value. Some other languages call these symbols: ```iex iex> :hello @@ -129,7 +129,7 @@ true ## Strings -Strings in Elixir are inserted between double quotes, and they are encoded in UTF-8: +Strings in Elixir are delimited by double quotes, and they are encoded in UTF-8: ```iex iex> "hellö" @@ -164,7 +164,7 @@ world :ok ``` -Notice the `IO.puts/1` function returns the atom `:ok` as result after printing. +Notice that the `IO.puts/1` function returns the atom `:ok` after printing. Strings in Elixir are represented internally by binaries which are sequences of bytes: @@ -180,7 +180,7 @@ iex> byte_size("hellö") 6 ``` -Notice the number of bytes in that string is 6, even though it has 5 characters. That's because the character "ö" takes 2 bytes to be represented in UTF-8. We can get the actual length of the string, based on the number of characters, by using the `String.length/1` function: +Notice that the number of bytes in that string is 6, even though it has 5 characters. That's because the character "ö" takes 2 bytes to be represented in UTF-8. We can get the actual length of the string, based on the number of characters, by using the `String.length/1` function: ```iex iex> String.length("hellö") @@ -213,7 +213,7 @@ false Functions are "first class citizens" in Elixir meaning they can be passed as arguments to other functions in the same way as integers and strings. In the example, we have passed the function in the variable `add` to the `is_function/1` function which correctly returned `true`. We can also check the arity of the function by calling `is_function/2`. -Note a dot (`.`) between the variable and parentheses is required to invoke an anonymous function. The dot ensures there is no ambiguity between calling an anonymous function named `add` and a named function `add/2`. In this sense, Elixir makes a clear distinction between anonymous functions and named functions. We will explore those differences in [Chapter 8](/getting-started/modules-and-functions.html). +Note that a dot (`.`) between the variable and parentheses is required to invoke an anonymous function. The dot ensures there is no ambiguity between calling an anonymous function named `add` and a named function `add/2`. In this sense, Elixir makes a clear distinction between anonymous functions and named functions. We will explore those differences in [Chapter 8](/getting-started/modules-and-functions.html). Anonymous functions are closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anonymous function we have previously defined: @@ -255,7 +255,7 @@ iex> [1, true, 2, false, 3, true] -- [true, false] [1, 2, 3, true] ``` -List operators never modify the existing list. Concatenating to or removing elements from a list return a new list. We say Elixir data structures are *immutable*. One advantage of immutability is that it leads to clearer code. You can freely pass the data around with the guarantee no one will change it - only transform it. +List operators never modify the existing list. Concatenating to or removing elements from a list returns a new list. We say that Elixir data structures are *immutable*. One advantage of immutability is that it leads to clearer code. You can freely pass the data around with the guarantee no one will change it - only transform it. Throughout the tutorial, we will talk a lot about the head and tail of a list. The head is the first element of a list and the tail is the remainder of the list. They can be retrieved with the functions `hd/1` and `tl/1`. Let's assign a list to a variable and retrieve its head and tail: @@ -371,9 +371,9 @@ iex> put_elem(tuple, 2, :e) {:a, :b, :e, :d} ``` -Note this applies only to the tuple itself. Not its contents. For instance, when you update a tuple, all entries are shared between the old and the new tuple, except for the entry that has been replaced. In other words, tuples and lists in Elixir are capable of sharing their contents. This reduces the amount of memory allocation the language needs to perform and is only possible thanks to the immutable semantics of the language. +Note that this applies only to the tuple itself, not its contents. For instance, when you update a tuple, all entries are shared between the old and the new tuple, except for the entry that has been replaced. In other words, tuples and lists in Elixir are capable of sharing their contents. This reduces the amount of memory allocation the language needs to perform and is only possible thanks to the immutable semantics of the language. -Those performance characteristics dictate the usage of those data structures. One very common use case for tuples is to use them to return extra information from a function. For example, `File.read/1` is a function that can be used to read file contents. It returns tuples: +Those performance characteristics dictate the usage of those data structures. One very common use case for tuples is to use them to return extra information from a function. For example, `File.read/1` is a function that can be used to read file contents. It returns a tuple: ```iex iex> File.read("path/to/existing/file") diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 1b7d323fc..ff8f5ac63 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -49,7 +49,7 @@ iex(2)> "hello" <> " world" "hello world" ``` -Please note that some details like version numbers may differ a bit in your session, that's not important. From now on `iex` sessions will be stripped down to focus on the code. To exit `iex` press `Ctrl+C` twice. +Please note that some details like version numbers may differ a bit in your session; that's not important. From now on `iex` sessions will be stripped down to focus on the code. To exit `iex` press `Ctrl+C` twice. It seems we are ready to go! We will use the interactive shell quite a lot in the next chapters to get a bit more familiar with the language constructs and basic types, starting in the next chapter. @@ -74,7 +74,7 @@ Later on we will learn how to compile Elixir code (in [Chapter 8](/getting-start ## Asking questions -When going through this getting started guide, it is common to have questions, after all, that is part of the learning process! There are many places you could ask them to learn more about Elixir: +When going through this getting started guide, it is common to have questions; after all, that is part of the learning process! There are many places you could ask them to learn more about Elixir: * [#elixir-lang on freenode IRC](irc://irc.freenode.net/elixir-lang) * [Elixir on Slack](https://elixir-slackin.herokuapp.com/) From 40e0fad53224cae9907520afacd3aa44ed3f6e54 Mon Sep 17 00:00:00 2001 From: Graham Leva Date: Thu, 31 Aug 2017 16:11:28 -0500 Subject: [PATCH 0745/1761] Remove a word for a minor grammatical fix (#1026) Remove 'in' on line 60 in the getting started doctest guide to clarify grammar for explanation of doctest format. --- getting-started/mix-otp/docs-tests-and-with.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index c03d78608..c6e37a680 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -57,7 +57,7 @@ defmodule KVServer.Command do end ``` -Doctests are specified in by an indentation of four spaces followed by the `iex>` prompt in a documentation string. If a command spans multiple lines, you can use `...>`, as in IEx. The expected result should start at the next line after `iex>` or `...>` line(s) and is terminated either by a newline or a new `iex>` prefix. +Doctests are specified by an indentation of four spaces followed by the `iex>` prompt in a documentation string. If a command spans multiple lines, you can use `...>`, as in IEx. The expected result should start at the next line after `iex>` or `...>` line(s) and is terminated either by a newline or a new `iex>` prefix. Also, note that we started the documentation string using `@doc ~S"""`. The `~S` prevents the `\r\n` characters from being converted to a carriage return and line feed until they are evaluated in the test. From 6e8d3e3fc815b81def7945f36bd692a52daefacd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Nagy?= Date: Sun, 3 Sep 2017 09:21:19 +0200 Subject: [PATCH 0746/1761] Minor language in introduction.markdown (#1028) --- getting-started/introduction.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index ff8f5ac63..027594981 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -29,7 +29,7 @@ Let's get started! ## Installation -If you still haven't installed Elixir, run to our [installation page](/install.html). Once you are done, you can run `elixir --version` to get the current Elixir version. +If you haven't yet installed Elixir, visit our [installation page](/install.html). Once you are done, you can run `elixir --version` to get the current Elixir version. ## Interactive mode From 35f0e9c4cb28155b6e0180cd4e8881f720a83fb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Nagy?= Date: Sun, 3 Sep 2017 09:21:56 +0200 Subject: [PATCH 0747/1761] Update Ubuntu and Debian versions (#1029) * Ubuntu Precise (12.04) has reached EOL, removed from list. * Added other Ubuntu and Debian versions with packages available on https://packages.erlang-solutions.com/erlang/ --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index b038b9748..a0714c580 100644 --- a/install.markdown +++ b/install.markdown @@ -47,7 +47,7 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * From pkg: `pkg install elixir` * Solus * Run: `eopkg install elixir` - * Ubuntu 12.04/14.04/16.04 or Debian 7 + * Ubuntu 14.04/16.04/16.10/17.04 or Debian 7/8/9 * Add Erlang Solutions repo: `wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb` * Run: `sudo apt-get update` * Install the Erlang/OTP platform and all of its applications: `sudo apt-get install esl-erlang` From 2e4bc52db840e74b161c57786bd3e0b166177133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Nagy?= Date: Sun, 3 Sep 2017 16:58:51 +0200 Subject: [PATCH 0748/1761] Re-word discussion of list prepend / append performance (#1030) --- getting-started/basic-types.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 8f6d98194..ad4405c5c 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -349,12 +349,12 @@ What is the difference between lists and tuples? Lists are stored in memory as linked lists, meaning that each element in a list holds its value and points to the following element until the end of the list is reached. This means accessing the length of a list is a linear operation: we need to traverse the whole list in order to figure out its size. -Updating a list is fast as long as we are prepending elements: +Similarly, the performance of list concatenation depends on the length of the left-hand list: ```iex iex> list = [1, 2, 3] -# This is fast as we don't need to traverse `list` to prepend 0 +# This is fast as we only need to traverse `[0]` to prepend to `list` iex> [0] ++ list [0, 1, 2, 3] From eb10b29969bea5d62dbde17b905b49f9a5d80c55 Mon Sep 17 00:00:00 2001 From: "John W. O'Grady" Date: Tue, 5 Sep 2017 01:10:23 -0500 Subject: [PATCH 0749/1761] It's not Keywords... it is a Keyword List! (#1031) --- getting-started/keywords-and-maps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 58aabb04c..ec6563431 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: Keywords and maps +title: Keyword Lists and Maps redirect_from: /getting-started/maps-and-dicts.html --- From 51d947a62e0f5a5c8274d5493e7e22ec0424161f Mon Sep 17 00:00:00 2001 From: Aleksei Magusev Date: Tue, 5 Sep 2017 20:30:45 +0200 Subject: [PATCH 0750/1761] Make titles consistent --- getting-started/keywords-and-maps.markdown | 2 +- getting-started/modules-and-functions.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index ec6563431..bf5a0be53 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: Keyword Lists and Maps +title: Keyword lists and maps redirect_from: /getting-started/maps-and-dicts.html --- diff --git a/getting-started/modules-and-functions.markdown b/getting-started/modules-and-functions.markdown index 446c471d2..3a610ce8d 100644 --- a/getting-started/modules-and-functions.markdown +++ b/getting-started/modules-and-functions.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: Modules and Functions +title: Modules and functions redirect_from: /getting-started/modules.html --- From b0df8622c641928f3ef43cafabcb926bcaf6b6ae Mon Sep 17 00:00:00 2001 From: Aleksei Magusev Date: Tue, 5 Sep 2017 20:32:33 +0200 Subject: [PATCH 0751/1761] Correct spelling on DSL page --- .../meta/domain-specific-languages.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index eee4d2c79..8b045ac47 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: Domain Specific Languages +title: Domain-specific languages --- # {{ page.title }} @@ -9,9 +9,9 @@ title: Domain Specific Languages ## Foreword -[Domain Specific Languages (DSL)](https://en.wikipedia.org/wiki/Domain-specific_language) allow developers to tailor their application to a particular domain. You don't need macros in order to have a DSL: every data structure and every function you define in your module is part of your Domain Specific Language. +[Domain-specific languages (DSL)](https://en.wikipedia.org/wiki/Domain-specific_language) allow developers to tailor their application to a particular domain. You don't need macros in order to have a DSL: every data structure and every function you define in your module is part of your Domain-specific language. -For example, imagine we want to implement a Validator module which provides a data validation domain specific language. We could implement it using data structures, functions or macros. Let's see what those different DSLs would look like: +For example, imagine we want to implement a Validator module which provides a data validation domain-specific language. We could implement it using data structures, functions or macros. Let's see what those different DSLs would look like: ```elixir # 1. data structures @@ -47,7 +47,7 @@ In other words: data > functions > macros -That said, there are still cases where using macros and modules to build domain specific languages is useful. Since we have explored data structures and function definitions in the Getting Started guide, this chapter will explore how to use macros and module attributes to tackle more complex DSLs. +That said, there are still cases where using macros and modules to build domain-specific languages is useful. Since we have explored data structures and function definitions in the Getting Started guide, this chapter will explore how to use macros and module attributes to tackle more complex DSLs. ## Building our own test case @@ -201,6 +201,6 @@ Running test hello ** (MatchError) no match of right hand side value: "world" ``` -Although we have overlooked some details, this is the main idea behind creating domain specific modules in Elixir. Macros enable us to return quoted expressions that are executed in the caller, which we can then use to transform code and store relevant information in the target module via module attributes. Finally, callbacks such as `@before_compile` allow us to inject code into the module when its definition is complete. +Although we have overlooked some details, this is the main idea behind creating domain-specific modules in Elixir. Macros enable us to return quoted expressions that are executed in the caller, which we can then use to transform code and store relevant information in the target module via module attributes. Finally, callbacks such as `@before_compile` allow us to inject code into the module when its definition is complete. Besides `@before_compile`, there are other useful module attributes like `@on_definition` and `@after_compile`, which you can read more about in [the docs for the `Module` module](https://hexdocs.pm/elixir/Module.html). You can also find useful information about macros and the compilation environment in the documentation for the [`Macro` module](https://hexdocs.pm/elixir/Macro.html) and [`Macro.Env`](https://hexdocs.pm/elixir/Macro.Env.html). From 53069c1f3ca72fc6c35281cb7edbb22276533ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 7 Sep 2017 21:44:49 -0700 Subject: [PATCH 0752/1761] More disclaimers on umbrellas --- .../dependencies-and-umbrella-apps.markdown | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index 25de6e917..afade1a4e 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -94,7 +94,7 @@ Using git dependencies for internal dependencies is somewhat discouraged in Elix However, if you push every application as a separate project to a git repository, your projects may become very hard to maintain as you will spend a lot of time managing those git repositories rather than writing your code. -For this reason, Mix supports "umbrella projects". Umbrella projects are used to build applications that run together and have clear boundaries between them in a single repository. That is exactly the style we are going to explore in the next sections. +For this reason, Mix supports "umbrella projects". Umbrella projects are used to build applications that run together in a single repository. That is exactly the style we are going to explore in the next sections. Let's create a new Mix project. We are going to creatively name it `kv_umbrella`, and this new project will have both the existing `kv` application and the new `kv_server` application inside. The directory structure will look like this: @@ -252,7 +252,7 @@ Since we want `kv_server` to eventually use the functionality we defined in `kv` ## In umbrella dependencies -Mix supports an easy mechanism to make one umbrella child depend on another. Open up `apps/kv_server/mix.exs` and change the `deps/0` function to the following: +Dependencies between applications in an umbrella project must still be explicitly defined and Mix makes it easy to do so. Open up `apps/kv_server/mix.exs` and change the `deps/0` function to the following: ```elixir defp deps do @@ -280,7 +280,15 @@ lockfile: "../../mix.lock", Now you can run tests for both projects from the umbrella root with `mix test`. Sweet! -Remember that umbrella projects are a convenience to help you organize and manage your applications. Applications inside the `apps` directory are still decoupled from each other. Dependencies between them must be explicitly listed. This allows them to be developed together, but compiled, tested and deployed independently if desired. +## Don't drink the kool aid + +Umbrella projects are a convenience to help you organize and manage multiple applications. While it provides a degree of separation between applications, those applications are not fully decoupled, as they are assumed to share the same configuration and the same dependencies. + +The pattern of keeping multiple applications in the same repository is known as "mono-repo". Umbrella projects maximize this pattern by providing conveniences to compile, test and run multiple applications at once. + +If you find yourself in a position where you want to use different configurations to different applications in the same umbrella or to use different dependency versions, then it is likely your codebase have grown beyond what umbrellas can provide. + +The good news is that breaking an umbrella apart is quite straightforward, as you simply need to move applications outside of the umbrella project's `apps/` directory. In the worst case scenario, you can discard the umbrella project and all related configuration (`build_path`, `config_path`, `deps_path` and `lockfile`) and still leverage the "mono-repo" pattern by keeping all applications together in the same repository. Each application will have its own dependencies and configuration. Dependencies between those applications can still be explicitly listed by using the `:path` option (in contrast to `:git`). ## Summing up @@ -288,10 +296,10 @@ In this chapter, we have learned more about Mix dependencies and umbrella projec When using umbrella applications, it is important to have a clear boundary between them. Our upcoming `kv_server` must only access public APIs defined in `kv`. Think of your umbrella apps as any other dependency or even Elixir itself: you can only access what is public and documented. Reaching into private functionality in your dependencies is a poor practice that will eventually cause your code to break when a new version is up. -Umbrella applications can also be used as a stepping stone for eventually extracting an application from your codebase. For example, imagine a web application that has to send "push notifications" to its users. The whole "push notifications system" can be developed as an umbrella application, with its own supervision tree and APIs. If you ever run into a situation where another project needs the push notifications system, extraction should be straightforward as long as the web application respects the push notification API boundary. Regardless if it happens in 2 weeks or in 3 years from development. Once extracted, the push notifications system can be moved to a private git repository or a public hex.pm package. +Umbrella applications can also be used as a stepping stone for eventually extracting an application from your codebase. For example, imagine a web application that has to send "push notifications" to its users. The whole "push notifications system" can be developed as a separate application in the umbrella, with its own supervision tree and APIs. If you ever run into a situation where another project needs the push notifications system, the system can be moved to a private repository or a hex.pm package. -Developers may also use umbrella applications to break large business domains apart. The caution here is to make sure the domains don't depend on each other (also known as cyclic dependencies). If you run into such situations, it means those applications are not as isolated from each other as you originally thought, and you have architectural and design issues to solve. Overall, umbrella applications do not magically improve the design of your code. They can, however, help enforce boundaries when the code is well designed. +Developers may also use umbrella projects to break large business domains apart. The caution here is to make sure the domains don't depend on each other (also known as cyclic dependencies). If you run into such situations, it means those applications are not as isolated from each other as you originally thought, and you have architectural and design issues to solve. -Finally, keep in mind that applications in an umbrella project all share the same configurations and dependencies. If two applications in your umbrella need to configure the same dependency in drastically different ways or even use different versions, such is impossible in umbrellas, and those apps likely need to be moved to separate projects. +Finally, keep in mind that applications in an umbrella project all share the same configurations and dependencies. If two applications in your umbrella need to configure the same dependency in drastically different ways or even use different versions, you have probably outgrown the benefits brought by umbrellas. Remember you can break the umbrella and still leverage the benefits behind "mono-repos". With our umbrella project up and running, it is time to start writing our server. From 6726bf0949ccdbe288549f4c0181aa12de177a59 Mon Sep 17 00:00:00 2001 From: chx Date: Wed, 13 Sep 2017 12:45:34 +0200 Subject: [PATCH 0753/1761] A few notes on module attributes (#1032) --- getting-started/module-attributes.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index b5e7072ff..ddc53c9dd 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -77,7 +77,7 @@ You can take a look at the docs for [Module](https://hexdocs.pm/elixir/Module.ht This section covers built-in attributes. However, attributes can also be used by developers or extended by libraries to support custom behaviour. -## As constants +## As "constants" Elixir developers will often use module attributes as constants: @@ -115,6 +115,10 @@ MyServer.second_data #=> 13 Every time an attribute is read inside a function, a snapshot of its current value is taken. In other words, the value is read at compilation time and not at runtime. As we are going to see, this also makes attributes useful to be used as storage during module compilation. +Any functions may be called when defining a module attribute. + +When defining an attribute, do not leave a line break between the attribute name and its value. + ## As temporary storage One of the projects in the Elixir organization is [the `Plug` project](https://github.com/elixir-lang/plug), which is meant to be a common foundation for building web libraries and frameworks in Elixir. From b84e250158f852ebbfa097b32862e758cb294bb5 Mon Sep 17 00:00:00 2001 From: Daniel Cadenas Date: Thu, 14 Sep 2017 16:54:26 -0300 Subject: [PATCH 0754/1761] Remove unused "env" warning (#1033) --- getting-started/meta/domain-specific-languages.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index 8b045ac47..314b00d39 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -173,7 +173,7 @@ defmodule TestCase do # This will be invoked right before the target module is compiled # giving us the perfect opportunity to inject the `run/0` function @doc false - defmacro __before_compile__(env) do + defmacro __before_compile__(_env) do quote do def run do Enum.each @tests, fn name -> From 12ccc2275a3bc9a32e998085ec768da96c2f293b Mon Sep 17 00:00:00 2001 From: ilansh Date: Fri, 15 Sep 2017 00:43:16 +0300 Subject: [PATCH 0755/1761] Update mix.exs deps call (#1034) --- getting-started/mix-otp/dependencies-and-umbrella-apps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown index afade1a4e..c33d3b7f1 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -131,7 +131,7 @@ defmodule KvUmbrella.Mixfile do [ apps_path: "apps", start_permanent: Mix.env == :prod, - deps: deps + deps: deps() ] end From a637e5c94af5ee99098ff53bac5d157398af0dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 17 Sep 2017 21:44:28 +0200 Subject: [PATCH 0756/1761] Update macros.markdown --- getting-started/meta/macros.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 98b6c423a..991a089a6 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -275,7 +275,7 @@ defmodule MyModule do quote do # Keep what you need to do here to a minimum # and move everything else to a function - do_this_that_and_that(unquote(a), unquote(b), unquote(c)) + MyModule.do_this_that_and_that(unquote(a), unquote(b), unquote(c)) end end From ed4fb996e4dd62f41d5f041d77c33bc25445b4bc Mon Sep 17 00:00:00 2001 From: uDude Date: Tue, 19 Sep 2017 15:58:27 -0600 Subject: [PATCH 0757/1761] Update Pathogrean Triples example (missing triples) (#1037) The last Pythagorean triples is missing numerous Pythagorean triples. The filter "a + b + c <= n" looks like an accident in the application the triangle inequality. The theorem actually states "a + b >= c." Adjusting this will result in the inclusion of the missing triples without duplication. --- getting-started/comprehensions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index 9e1444a4b..416b2ad6c 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -103,7 +103,7 @@ defmodule Triple do for a <- 1..n-2, b <- a+1..n-1, c <- b+1..n, - a + b + c <= n, + a + b + >= c, a*a + b*b == c*c, do: {a, b, c} end From 256a2a425d6b24f94a1ce12e4da857c94a23c5ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 24 Sep 2017 12:15:23 +0200 Subject: [PATCH 0758/1761] Remove warnings when running jekyll, closes #1035 --- Gemfile | 1 + Gemfile.lock | 2 ++ _config.yml | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 97355ea72..7d7467ebe 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,4 @@ source 'https://rubygems.org' gem 'github-pages' +gem 'json', '>= 2.0.0' diff --git a/Gemfile.lock b/Gemfile.lock index 5395331ea..687fbfd83 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -153,6 +153,7 @@ GEM gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (>= 3.0) + json (2.1.0) kramdown (1.13.2) liquid (4.0.0) listen (3.0.6) @@ -199,6 +200,7 @@ PLATFORMS DEPENDENCIES github-pages + json (>= 2.0.0) BUNDLED WITH 1.15.3 diff --git a/_config.yml b/_config.yml index a9ee05912..dd0a7a266 100644 --- a/_config.yml +++ b/_config.yml @@ -4,7 +4,7 @@ kramdown: input: GFM hard_wrap: false repository: elixir-lang/elixir-lang.github.com -gems: +plugins: - jemoji - jekyll-sitemap - jekyll-redirect-from From 45b3ad982163186652afdb6cbd2dfd649a8bbd4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 29 Sep 2017 14:18:14 +0200 Subject: [PATCH 0759/1761] Release v1.5.2 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index e689fcca3..c00dffa00 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -27,5 +27,5 @@ v1_4: v1_5: name: v1.5 - version: 1.5.1 + version: 1.5.2 docs_zip: true diff --git a/elixir.csv b/elixir.csv index eb74b794f..09cb8e9b1 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.5.2,https://github.com/elixir-lang/elixir/releases/download/v1.5.2/Precompiled.zip,release,1,54e7aae275fbe6f2af9355d271544adfe9301360,df2c8a4d7c2cab533cc21a42dc7ca2bd6d3956179038791d69cf6d950f643ccd0e0ca58d5de9fb4c480cdae96451c7a0cc8baeb35cc0fe690cf76422908abf71 1.5.1,https://github.com/elixir-lang/elixir/releases/download/v1.5.1/Precompiled.zip,release,1,29cfd5a8752e37ea50497d69ed5d16327738b470,291cf747344a274fb76b3f7676a1496cdad99ab6aeebe7ba38fac067b01f1b4b807c3644d8caa43ae55fda19923447605b30eb851d2ad6e8b08b9464a7303b87 1.5.0,https://github.com/elixir-lang/elixir/releases/download/v1.5.0/Precompiled.zip,release,1,4503565a66977f61f9de255a2158b3d589433445,51b39b3214cf0fc78fb867086885df3ad79e9b204480e5c8f5b5a1105632df29a5a5a2cecc610f3093ce4eed6cce8d30f43e480978edb5f7ffafa2b6307a1da8 1.4.5,https://github.com/elixir-lang/elixir/releases/download/v1.4.5/Precompiled.zip,release,1,254f4b6731a618c5f56a1c51ae759f6e2fd7677e,29b2035a2128fa273ddf13d19555b72b12d05cd0016524a03d1f2fc0d29d3cccb8fdfbf968529098ed1f8d9a41e2a6ca9638192009df2eb7cefe14d4effc78b4 From c4eb5fceb249f85fe35941f27cb2b1071be677cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Travostino?= Date: Fri, 29 Sep 2017 15:38:04 +0100 Subject: [PATCH 0760/1761] Fix code typo introduced on ed4fb99 (#1041) --- getting-started/comprehensions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index 416b2ad6c..1eacd217b 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -103,7 +103,7 @@ defmodule Triple do for a <- 1..n-2, b <- a+1..n-1, c <- b+1..n, - a + b + >= c, + a + b >= c, a*a + b*b == c*c, do: {a, b, c} end From fee7a6490d20810758fc491dfd14b9479598deba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 30 Sep 2017 19:09:15 +0200 Subject: [PATCH 0761/1761] Downgrade precompiled to Erlang 18 --- elixir.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index 09cb8e9b1..af6ab741d 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.5.2,https://github.com/elixir-lang/elixir/releases/download/v1.5.2/Precompiled.zip,release,1,54e7aae275fbe6f2af9355d271544adfe9301360,df2c8a4d7c2cab533cc21a42dc7ca2bd6d3956179038791d69cf6d950f643ccd0e0ca58d5de9fb4c480cdae96451c7a0cc8baeb35cc0fe690cf76422908abf71 +1.5.2,https://github.com/elixir-lang/elixir/releases/download/v1.5.2/Precompiled.zip,release,1,d5e900d3a06d773a070404f51e6c7eb7882f2af8,44bf503bd369e24bb1f07f918c84ea53b0084bf126cba7492a339a6d1390a316f66394f91fc784e57d7e88f84f2e51656f00116921f6ba106bfbe135f5d8ae42 1.5.1,https://github.com/elixir-lang/elixir/releases/download/v1.5.1/Precompiled.zip,release,1,29cfd5a8752e37ea50497d69ed5d16327738b470,291cf747344a274fb76b3f7676a1496cdad99ab6aeebe7ba38fac067b01f1b4b807c3644d8caa43ae55fda19923447605b30eb851d2ad6e8b08b9464a7303b87 1.5.0,https://github.com/elixir-lang/elixir/releases/download/v1.5.0/Precompiled.zip,release,1,4503565a66977f61f9de255a2158b3d589433445,51b39b3214cf0fc78fb867086885df3ad79e9b204480e5c8f5b5a1105632df29a5a5a2cecc610f3093ce4eed6cce8d30f43e480978edb5f7ffafa2b6307a1da8 1.4.5,https://github.com/elixir-lang/elixir/releases/download/v1.4.5/Precompiled.zip,release,1,254f4b6731a618c5f56a1c51ae759f6e2fd7677e,29b2035a2128fa273ddf13d19555b72b12d05cd0016524a03d1f2fc0d29d3cccb8fdfbf968529098ed1f8d9a41e2a6ca9638192009df2eb7cefe14d4effc78b4 From a0943c0b6f4e7224094d4bd84ba7f0c9313f8755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 30 Sep 2017 21:27:57 +0200 Subject: [PATCH 0762/1761] Talk about aliases on basic types, closes #1038 --- getting-started/basic-types.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index ad4405c5c..361a31769 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -127,6 +127,13 @@ iex> is_boolean(:false) true ``` +Finally, Elixir has a construct called aliases which we will explore later. Aliases start in upper case are also atoms: + +```iex +iex> is_atom(Hello) +true +``` + ## Strings Strings in Elixir are delimited by double quotes, and they are encoded in UTF-8: From dc28a5af888d47374b352c6613b7c17ec8dc8cc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 30 Sep 2017 21:28:14 +0200 Subject: [PATCH 0763/1761] Talk about dynamic dispatch on behaviours, closes #1042 --- .../typespecs-and-behaviours.markdown | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index e362367f8..03c2daf89 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -14,12 +14,11 @@ Elixir is a dynamically typed language, so all types in Elixir are inferred by t 1. declaring typed function signatures (specifications); 2. declaring custom data types. - ### Function specifications By default, Elixir provides some basic types, such as `integer` or `pid`, as well as more complex types: for example, the `round/1` function, which rounds a float to its nearest integer, takes a `number` as an argument (an `integer` or a `float`) and returns an `integer`. As you can see [in its documentation](https://hexdocs.pm/elixir/Kernel.html#round/1), `round/1`'s typed signature is written as: -``` +```elixir round(number) :: integer ``` @@ -100,13 +99,13 @@ If you have to, you can think of behaviours like interfaces in object oriented l ### Defining behaviours -Say we want to implement a bunch of parsers, each parsing structured data: for example, a JSON parser and a YAML parser. Each of these two parsers will *behave* the same way: both will provide a `parse/1` function and an `extensions/0` function. The `parse/1` function will return an Elixir representation of the structured data, while the `extensions/0` function will return a list of file extensions that can be used for each type of data (e.g., `.json` for JSON files). +Say we want to implement a bunch of parsers, each parsing structured data: for example, a JSON parser and a MessagePack parser. Each of these two parsers will *behave* the same way: both will provide a `parse/1` function and an `extensions/0` function. The `parse/1` function will return an Elixir representation of the structured data, while the `extensions/0` function will return a list of file extensions that can be used for each type of data (e.g., `.json` for JSON files). We can create a `Parser` behaviour: ```elixir defmodule Parser do - @callback parse(String.t) :: any + @callback parse(String.t) :: {:ok, value} | {:error, reason} @callback extensions() :: [String.t] end ``` @@ -136,3 +135,23 @@ end ``` If a module adopting a given behaviour doesn't implement one of the callbacks required by that behaviour, a compile-time warning will be generated. + +### Dynamic dispatch + +Behaviours are frequently used with dynamic dispatching. For example, we could add a `parse!` function to the `Parser` module that dispatches to the given implementation and returns the `:ok` result or raises in cases of `:error`: + +```elixir +defmodule Parser do + @callback parse(String.t) :: {:ok, term} | {:error, String.t} + @callback extensions() :: [String.t] + + def parse!(implementation, contents) do + case implementation.parse(contents) do + {:ok, data} -> data + {:error, error} -> raise ArgumentError, "parsing error: #{error}" + end + end +end +``` + +Note you don't need to define a behaviour in order to dynamically dispatch on a module, but those features often go hand in hand. From 0689d42ff7559a9dcd27101f0365a39ba17cfb23 Mon Sep 17 00:00:00 2001 From: rheng Date: Sun, 1 Oct 2017 23:11:01 -0700 Subject: [PATCH 0764/1761] Update typespecs-and-behaviours.markdown (#1043) The original documentation was throwing an error because reason and value are not defined. Assuming reason is a string and the value is a term, the proposed changes at least compiles. This also matches the definition in line 145. I also added a note explaining what `term` represents. ** (CompileError) iex:2: type reason() undefined (stdlib) lists.erl:1338: :lists.foreach/2 (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6 (iex) lib/iex/evaluator.ex:219: IEx.Evaluator.handle_eval/5 --- getting-started/typespecs-and-behaviours.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 03c2daf89..f09fe33f9 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -105,12 +105,12 @@ We can create a `Parser` behaviour: ```elixir defmodule Parser do - @callback parse(String.t) :: {:ok, value} | {:error, reason} + @callback parse(String.t) :: {:ok, term} | {:error, String.t} @callback extensions() :: [String.t] end ``` -Modules adopting the `Parser` behaviour will have to implement all the functions defined with the `@callback` directive. As you can see, `@callback` expects a function name but also a function specification like the ones used with the `@spec` directive we saw above. +Modules adopting the `Parser` behaviour will have to implement all the functions defined with the `@callback` directive. As you can see, `@callback` expects a function name but also a function specification like the ones used with the `@spec` directive we saw above. Also note that the `term` type is used to represent the parsed value. In Elixir, the `term` type is a shortcut to represent any type. ### Adopting behaviours From dc678fa55f20fec569a0551553f78ede3b002bd1 Mon Sep 17 00:00:00 2001 From: Daniel Cadenas Date: Tue, 3 Oct 2017 14:37:24 -0300 Subject: [PATCH 0765/1761] Change KV.Bucket to KV.Registry (#1044) --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index c3d6c2106..f351b18a5 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -154,7 +154,7 @@ One flaw that shows up right away is the ordering issue. Since `KV.Registry` inv The second flaw is related to the supervision strategy. If `KV.Registry` dies, all information linking `KV.Bucket` names to bucket processes is lost. Therefore the `KV.BucketSupervisor` and all children must terminate too - otherwise we will have orphan processes. -In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:rest_for_one` will kill and restart child processes which were started *after* the crashed child. In this case, we would want `KV.BucketSupervisor` to terminate if `KV.Bucket` terminates. This would require the bucket supervisor to be placed after the registry. Which violates the ordering constraints we have established two paragraphs above. +In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:rest_for_one` will kill and restart child processes which were started *after* the crashed child. In this case, we would want `KV.BucketSupervisor` to terminate if `KV.Registry` terminates. This would require the bucket supervisor to be placed after the registry. Which violates the ordering constraints we have established two paragraphs above. So our last option is to go all in and pick the `:one_for_all` strategy: the supervisor will kill and restart all of its children processes whenever any one of them dies. This is a completely reasonable approach for our application, since the registry can't work without the bucket supervisor, and the bucket supervisor should terminate without the registry. Let's reimplement `init/1` in `KV.Supervisor` to encode those properties: From e42133efc6a9d700d4a1a2455859dd4bf6c1b6b6 Mon Sep 17 00:00:00 2001 From: Marcin Szczepaniak Date: Thu, 5 Oct 2017 21:08:23 +0200 Subject: [PATCH 0766/1761] Process exiting messages (#1045) --- getting-started/processes.markdown | 20 ++++++++++++------- getting-started/try-catch-and-rescue.markdown | 5 ++--- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 511f5e6d0..8f60a080e 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -112,18 +112,23 @@ iex> spawn fn -> raise "oops" end [error] Process #PID<0.58.00> raised an exception ** (RuntimeError) oops - :erlang.apply/2 + (stdlib) erl_eval.erl:668: :erl_eval.do_apply/6 ``` It merely logged an error but the parent process is still running. That's because processes are isolated. If we want the failure in one process to propagate to another one, we should link them. This can be done with `spawn_link/1`: ```iex -iex> spawn_link fn -> raise "oops" end +iex> self() #PID<0.41.0> +iex> spawn_link fn -> raise "oops" end -** (EXIT from #PID<0.41.0>) an exception was raised: +** (EXIT from #PID<0.41.0>) evaluator process exited with reason: an exception was raised: ** (RuntimeError) oops - :erlang.apply/2 + (stdlib) erl_eval.erl:668: :erl_eval.do_apply/6 + +[error] Process #PID<0.289.0> raised an exception +** (RuntimeError) oops + (stdlib) erl_eval.erl:668: :erl_eval.do_apply/6 ``` Because processes are linked, we now see a message saying the parent process, which is the shell process, has received an EXIT signal from another process causing the shell to terminate. IEx detects this situation and starts a new shell session. @@ -146,9 +151,10 @@ iex(1)> Task.start fn -> raise "oops" end 15:22:33.046 [error] Task #PID<0.55.0> started from #PID<0.53.0> terminating ** (RuntimeError) oops - (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2 - (stdlib) proc_lib.erl:239: :proc_lib.init_p_do_apply/3 -Function: #Function<20.90072148/0 in :erl_eval.expr/5> + (stdlib) erl_eval.erl:668: :erl_eval.do_apply/6 + (elixir) lib/task/supervised.ex:85: Task.Supervised.do_apply/2 + (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3 +Function: #Function<20.99386804/0 in :erl_eval.expr/5> Args: [] ``` diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 8c8ad98c6..05cab8e90 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -96,7 +96,7 @@ For the cases where you do expect a file to exist (and the lack of that file is ```iex iex> File.read! "unknown" ** (File.Error) could not read file unknown: no such file or directory - (elixir) lib/file.ex:305: File.read!/1 + (elixir) lib/file.ex:272: File.read!/1 ``` Many functions in the standard library follow the pattern of having a counterpart that raises an exception instead of returning tuples to match against. The convention is to create a function (`foo`) which returns `{:ok, result}` or `{:error, reason}` tuples and another function (`foo!`, same name but with a trailing `!`) that takes the same arguments as `foo` but which raises an exception if there's an error. `foo!` should return the result (not wrapped in a tuple) if everything goes fine. The [`File` module](https://hexdocs.pm/elixir/File.html) is a good example of this convention. @@ -134,8 +134,7 @@ All Elixir code runs inside processes that communicate with each other. When a p ```iex iex> spawn_link fn -> exit(1) end -#PID<0.56.0> -** (EXIT from #PID<0.56.0>) 1 +** (EXIT from #PID<0.56.0>) evaluator process exited with reason: 1 ``` In the example above, the linked process died by sending an `exit` signal with a value of 1. The Elixir shell automatically handles those messages and prints them to the terminal. From 86af606e728f79f8fa928f7dea464462820e564d Mon Sep 17 00:00:00 2001 From: rheng Date: Mon, 9 Oct 2017 02:49:17 -0700 Subject: [PATCH 0767/1761] Update task-and-gen-tcp.markdown (#1046) Added a KVServer module definition to the file. Received this error without it: `** (ArgumentError) cannot invoke def/2 outside module` --- .../mix-otp/task-and-gen-tcp.markdown | 62 ++++++++++--------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index f8ec8bcf8..6cad84272 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -26,41 +26,43 @@ Let's implement those steps. Move to the `apps/kv_server` application, open up ` ```elixir require Logger -def accept(port) do - # The options below mean: - # - # 1. `:binary` - receives data as binaries (instead of lists) - # 2. `packet: :line` - receives data line by line - # 3. `active: false` - blocks on `:gen_tcp.recv/2` until data is available - # 4. `reuseaddr: true` - allows us to reuse the address if the listener crashes - # - {:ok, socket} = :gen_tcp.listen(port, - [:binary, packet: :line, active: false, reuseaddr: true]) - Logger.info "Accepting connections on port #{port}" - loop_acceptor(socket) -end +defmodule KVServer do + def accept(port) do + # The options below mean: + # + # 1. `:binary` - receives data as binaries (instead of lists) + # 2. `packet: :line` - receives data line by line + # 3. `active: false` - blocks on `:gen_tcp.recv/2` until data is available + # 4. `reuseaddr: true` - allows us to reuse the address if the listener crashes + # + {:ok, socket} = :gen_tcp.listen(port, + [:binary, packet: :line, active: false, reuseaddr: true]) + Logger.info "Accepting connections on port #{port}" + loop_acceptor(socket) + end -defp loop_acceptor(socket) do - {:ok, client} = :gen_tcp.accept(socket) - serve(client) - loop_acceptor(socket) -end + defp loop_acceptor(socket) do + {:ok, client} = :gen_tcp.accept(socket) + serve(client) + loop_acceptor(socket) + end -defp serve(socket) do - socket - |> read_line() - |> write_line(socket) + defp serve(socket) do + socket + |> read_line() + |> write_line(socket) - serve(socket) -end + serve(socket) + end -defp read_line(socket) do - {:ok, data} = :gen_tcp.recv(socket, 0) - data -end + defp read_line(socket) do + {:ok, data} = :gen_tcp.recv(socket, 0) + data + end -defp write_line(line, socket) do - :gen_tcp.send(socket, line) + defp write_line(line, socket) do + :gen_tcp.send(socket, line) + end end ``` From 6f4de013d65f0a94fa16d2fa255a644967692518 Mon Sep 17 00:00:00 2001 From: Nathan Shane Date: Sun, 15 Oct 2017 17:54:01 -0400 Subject: [PATCH 0768/1761] Fixed a typo (#1048) --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index a9b39515f..95d9b2cc2 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -20,7 +20,7 @@ Elixir is an immutable language where nothing is shared by default. If we want t * Processes * [ETS (Erlang Term Storage)](http://www.erlang.org/doc/man/ets.html) -We covered processes in the Getting Started guide. ETS is a new topic that will explore in later chapters. When it comes to processes though, we rarely hand-roll our own, instead we use the abstractions available in Elixir and OTP: +We covered processes in the Getting Started guide. ETS is a new topic that we will explore in later chapters. When it comes to processes though, we rarely hand-roll our own, instead we use the abstractions available in Elixir and OTP: * [Agent](https://hexdocs.pm/elixir/Agent.html) - Simple wrappers around state. * [GenServer](https://hexdocs.pm/elixir/GenServer.html) - "Generic servers" (processes) that encapsulate state, provide sync and async calls, support code reloading, and more. From ec4be0e6247caafdc705635d4cd1e3361610db13 Mon Sep 17 00:00:00 2001 From: A&ana6ios Date: Sun, 22 Oct 2017 13:49:35 +0300 Subject: [PATCH 0769/1761] Update binaries-strings-and-char-lists.markdown (#1051) --- getting-started/binaries-strings-and-char-lists.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 87c7eb8a3..22d5d3c04 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -22,7 +22,7 @@ In this chapter, we will understand what binaries are, how they associate with s A string is a UTF-8 encoded binary. In order to understand exactly what we mean by that, we need to understand the difference between bytes and code points. -The Unicode standard assigns code points to many of the characters we know. For example, the letter `a` has code point `97` while the letter `ł` has code point `322`. When writing the string `"hełło"` to disk, we need to convert this code point to bytes. If we adopted a rule that said one byte represents one code point, we wouldn't be able to write `"hełło"`, because it uses the code point `322` for `ł`, and one byte can only represent a number from `0` to `255`. But of course, given you can actually read `"hełło"` on your screen, it must be represented *somehow*. That's where encodings come in. +The Unicode standard assigns code points to many of the characters we know. For example, the letter `a` has code point `97` while the letter `ł` has code point `322`. When writing the string `"hełło"` to disk, we need to convert this sequence of characters to bytes. If we adopted a rule that said one byte represents one code point, we wouldn't be able to write `"hełło"`, because it uses the code point `322` for `ł`, and one byte can only represent a number from `0` to `255`. But of course, given you can actually read `"hełło"` on your screen, it must be represented *somehow*. That's where encodings come in. When representing code points in bytes, we need to encode them somehow. Elixir chose the UTF-8 encoding as its main and default encoding. When we say a string is a UTF-8 encoded binary, we mean a string is a bunch of bytes organized in a way to represent certain code points, as specified by the UTF-8 encoding. From 68ab2fa9ff5b6d80c97f2c30347914075b72cfe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 22 Oct 2017 20:23:03 +0200 Subject: [PATCH 0770/1761] Add a section about language development (#1052) --- _includes/top.html | 1 + development.markdown | 32 ++++++++++++++++++++++++++++++++ index.html | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 development.markdown diff --git a/_includes/top.html b/_includes/top.html index 85d59b6fa..4a5ad0d64 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -44,6 +44,7 @@
    • + diff --git a/development.markdown b/development.markdown new file mode 100644 index 000000000..e8d4e83b8 --- /dev/null +++ b/development.markdown @@ -0,0 +1,32 @@ +--- +title: "Development" +section: development +layout: default +--- + +# {{ page.title }} + +In this section we outline the language's past and future development. + +Elixir was created by José Valim as a Research and Development effort at [Plataformatec](http://plataformatec.com.br/), a consultancy based in Brazil, back in 2012. Elixir's goal is to be a productive language for writing maintainable and reliable software. + +Elixir runs on top of the Erlang Virtual Machine, which provides a scalable and fault-tolerant foundation. Elixir was designed to leverage this foundation without performance costs and aims to contribute to the wider ecosystem whenever possible. + +Elixir's source code is under the [Apache 2 License](https://github.com/elixir-lang/elixir/blob/master/LICENSE) and is maintained by the Elixir Core team, composed of five members: Aleksei Magusev, Andrea Leopardi, Eric Meadows-Jönsson, James Fish, and José Valim. The source code can be found on [GitHub](https://github.com/elixir-lang/elixir). The Elixir team works towards an even understanding of the Elixir codebase across all members so it never depends on a single person. + +The language development is open, both in terms of source code and of collaborations. All features and bug fixes planned for the next releases can be found [in the issues tracker](https://github.com/elixir-lang/elixir/issues). Features that may cause a larger impact on the language are first proposed to the community in [the Elixir mailing list](https://groups.google.com/group/elixir-lang-core) as well as in [the "Elixir News" section in the Elixir Forum](https://elixirforum.com/c/elixir-news). + +Elixir v1.0 was released in September 2014 and a new minor version is released every 6 months, around January and July of every year. New Elixir versions are always announced on this website with a summary of the main changes and a link to the complete CHANGELOG. + +Since v1.0, the language development has become more focused. We believe there is a limited amount of features a language can provide without hindering its learning and without causing fragmentation in the community. Therefore the Elixir team focuses on language features that: + + 1. are necessary for developing the language itself + 2. bring important concepts/features to the community in a way its effect can only be maximized or leveraged by making it part of the language + +To remain focused, Elixir trusts its ecosystem to bring diversity and broaden its use cases to a wider audience. Therefore the language was designed to be extensible: the constructs available to build the language are also available for developers to extend the language and bring it to different domains. Projects such as [the Phoenix web framework](http://phoenixframework.org) and [the Nerves embedded framework](http://nerves-project.org) are two of such examples. + +Elixir also relies on a vibrant community to support its growth. The community is behind the meetups, events, learning resources, open source projects, and more. See the sidebar, the [Learning Resources](/learning.html) and [the Hex Package Manager website](https://hex.pm/) for some examples and more information. + +The best way to support the language is by getting involved in its community and contributing to the ecosystem. + +Welcome! diff --git a/index.html b/index.html index 211461a22..32118f810 100644 --- a/index.html +++ b/index.html @@ -162,7 +162,7 @@

      Interactive development

      Erlang compatible

      -

      Elixir runs on the Erlang VM giving developers complete access to Erlang’s ecosystem, used by companies like Heroku, WhatsApp, Klarna, Basho and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

      +

      Elixir runs on the Erlang VM giving developers complete access to Erlang’s ecosystem, used by companies like Heroku, WhatsApp, Klarna and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

      {% highlight iex %} iex> :crypto.hash(:md5, "Using crypto from Erlang OTP") From 92fd332df5f54a58a1f1d01ea8078b8f20da6575 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 22 Oct 2017 21:34:53 +0200 Subject: [PATCH 0771/1761] Keep development after docs (docs should be close to learning) --- _includes/top.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/top.html b/_includes/top.html index 4a5ad0d64..5cc1ca83c 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -44,8 +44,8 @@ - +
    From 013e7c012101726916ce0759c2ebf55e3db83fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 23 Oct 2017 16:16:00 +0200 Subject: [PATCH 0772/1761] Avoid passive voice --- development.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/development.markdown b/development.markdown index e8d4e83b8..c4b84e45f 100644 --- a/development.markdown +++ b/development.markdown @@ -8,7 +8,7 @@ layout: default In this section we outline the language's past and future development. -Elixir was created by José Valim as a Research and Development effort at [Plataformatec](http://plataformatec.com.br/), a consultancy based in Brazil, back in 2012. Elixir's goal is to be a productive language for writing maintainable and reliable software. +[Plataformatec](http://plataformatec.com.br/), a software consultancy, created Elixir in 2012 as a Research and Development project led by José Valim. Elixir's goal is to be a productive language for writing maintainable and reliable software. Elixir runs on top of the Erlang Virtual Machine, which provides a scalable and fault-tolerant foundation. Elixir was designed to leverage this foundation without performance costs and aims to contribute to the wider ecosystem whenever possible. From 0f92bd81267c9fc7eb411ad193f3a9082e21176d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 23 Oct 2017 16:20:12 +0200 Subject: [PATCH 0773/1761] Group lists for better styling --- install.markdown | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/install.markdown b/install.markdown index a0714c580..9eb13ed45 100644 --- a/install.markdown +++ b/install.markdown @@ -63,20 +63,16 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel ### Raspberry Pi -If necessary replace "jessie" with the name of your Raspian release. - - * The Erlang Solutions repository has a prebuilt package for armhf. - This saves significant time instead of recompiling natively. - - * Get Erlang key - - * `echo "deb http://packages.erlang-solutions.com/debian jessie contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` - * Run: `wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc` - * Add to keychain: `sudo apt-key add erlang_solutions.asc` +If necessary replace "jessie" with the name of your Raspian release. + * The Erlang Solutions repository has a prebuilt package for armhf. This saves significant time instead of recompiling natively + * Get Erlang key + * `echo "deb http://packages.erlang-solutions.com/debian jessie contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` + * Run: `wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc` + * Add to keychain: `sudo apt-key add erlang_solutions.asc` * Install Elixir - * Update apt to latest: `sudo apt update` - * Run: `sudo apt install elixir` + * Update apt to latest: `sudo apt update` + * Run: `sudo apt install elixir` ### Docker From 9309d9744dfb378f3b68d2f461a817600c1b363f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Meadows-J=C3=B6nsson?= Date: Tue, 24 Oct 2017 20:00:06 +0200 Subject: [PATCH 0774/1761] Delete CNAME --- CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 CNAME diff --git a/CNAME b/CNAME deleted file mode 100644 index e9fe306fb..000000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -elixir-lang.org \ No newline at end of file From 27e0ab77c056d346d577e8a164c4a51c1f6f10d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Meadows-J=C3=B6nsson?= Date: Tue, 24 Oct 2017 20:17:25 +0200 Subject: [PATCH 0775/1761] Create CNAME --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 000000000..e9fe306fb --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +elixir-lang.org \ No newline at end of file From 875f833649489a593b26863993d501f9cb6263d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Meadows-J=C3=B6nsson?= Date: Tue, 24 Oct 2017 20:38:53 +0200 Subject: [PATCH 0776/1761] Delete CNAME --- CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 CNAME diff --git a/CNAME b/CNAME deleted file mode 100644 index e9fe306fb..000000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -elixir-lang.org \ No newline at end of file From 14e069c43b598dca728ae8dce05029fbfb4de28b Mon Sep 17 00:00:00 2001 From: Mohnish G J Date: Sun, 29 Oct 2017 01:50:55 +0800 Subject: [PATCH 0777/1761] Update some wording around list operators (#1054) --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 361a31769..ae6881dad 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -253,7 +253,7 @@ iex> length [1, 2, 3] 3 ``` -Two lists can be concatenated or subtracted using the `++/2` and `--/2` operators: +Two lists can be concatenated or subtracted using the `++/2` and `--/2` operators respectively: ```iex iex> [1, 2, 3] ++ [4, 5, 6] From a1c5e02a4730f37e028717077b326e01c2b73724 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Tue, 31 Oct 2017 20:03:33 +0100 Subject: [PATCH 0778/1761] StreamData blog post (#1053) --- ...-property-testing-comes-to-elixir.markdown | 184 ++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 _posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown diff --git a/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown b/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown new file mode 100644 index 000000000..9e258fbcc --- /dev/null +++ b/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown @@ -0,0 +1,184 @@ +--- +layout: post +title: StreamData: Property-based testing comes to Elixir +author: Andrea Leopardi +category: Releases +excerpt: We are working on data generation and property-based testing for the next versions of Elixir. +--- + +In this blog post, we'll talk about property-based testing and sample data generation. We'll cover what these are, why we want them in Elixir, and what are are plans for the future. If you want to use the features discussed here or you want to read more formal documentation, head over to [stream_data][], which is a library that currently provides both features (albeit in beta form) and which is where we are focusing our efforts. + +## Sample data generation + +The core of the [stream_data][] library is `StreamData`: this module provides all the functionalities related to generating sample data of many kinds. It includes both data generators for data types (like integers or booleans) as well as tools to combine other generators (such as `one_of(list_of_generators)`). + +Developers are not supposed to create generators from scratch, but use the provided generators and the provided combinator functions to compose them. An example of a generator is the one returned by `StreamData.integer()`: this function returns a generator that generates integers. Generators are infinite streams of terms that implement the `Enumerable` protocol. This means we can do operations such as taking terms out of a generator through functions from `Enum` and `Stream`: + +```elixir +Enum.take(StreamData.integer(), 5) +#=> [1, -1, 3, 4, 3] +``` + +`StreamData` contains some functions to modify generators. For example, you can build a generator of positive integers on top of `StreamData.integer()` and `StreamData.map/2`: + +```elixir +generator = StreamData.map(StreamData.integer(), &abs/1) +Enum.take(generator, 5) +#=> [0, 1, 3, 3, 2] +``` + +`StreamData.map/2` is encouraged over `Stream.map/2` because generators return values that can shrink, which is something property-based testing takes advantage of as we'll see later on. When treated as enumerables, generators return normal values that cannot be shrinked. + +We decided to separate data-generation from property-based testing because it's something that developers can take advantage of in situations outside of property-based testing. For example, data streams can be used to seed a database or to have randomly generated data available during regular tests. + +## Property-based testing + +We often write tests like this: + +```elixir +test "length/1 calculates the length of a list" do + assert length([]) == 0 + assert length([:one]) == 1 + assert length([1, 2, 3]) == 3 +end +``` + +This test is written using an *example-based approach*. We are writing both the input to the piece of software we are testing as well as the expected output, and the testing tool is verifying that running the software on the given input results in the expected output. This style of testing is common and useful because it lets you get up and running easily and also lets you test known corner cases in an explicit way. However, it's hard to test many cases this way and even harder to uncover *unknown* corner cases that may reveal bugs in your code. + +Property-based testing is an intuitive way to fix some of the problems mentioned above. + +```elixir +property "length/1 is always >= 0" do + check all list <- list_of(term()) do + assert length(list) >= 0 + end +end +``` + +With property-based testing, you specify a set of valid inputs (lists in the example above) for your code and verify that your code holds some property for values taken at random from the valid inputs. In the example above, the test takes many (usually around 100) values at random from the `list_of(term())` *generator* and verifies a property of `length/1`, that is, that `length/1` always returns a non-negative integer. A generator is just a `StreamData` generator, as we discussed in the previous section. + +### Shrinking + +Since we're generating lots of random inputs to test, inputs that cause failures are often complex and convoluted. Take this trivial example of a property: + +```elixir +property "list does not contain multiples of 4" do + check all list <- list_of(positive_integer()) do + refute Enum.any?(list, &(rem(&1, 4) == 0)) + end +end +``` + +When running this property, the failure might trigger for a list like this: + +```elixir +[19, 12, 6, 11, 2, 20, 10] +``` + +From this list, it's not easy to see why the test is failing (well, we know why because we wrote a doctored test that's supposed to fail). When running the property though, the failure that will be reported will look like this: + +``` +1) property list does not contain multiples of 7 (MyPropertyTest) + my_property_test.exs:6 + Failed with generated values (after 4 attempt(s)): + + list <- list_of(positive_integer()) + #=> [4] + + Expected false or nil, got true + code: refute Enum.any?(list, &(rem(&1, 4) == 0)) +``` + +This error shows the minimal generated value that triggers the failure, that is, `[4]`. The process of finding the minimal generated value that triggers a failure is called *shrinking*. All generators that come with `StreamData` generate values that "bundle" a way to shrink them so that property-based testing can use this to provide the shrinking functionality. Shrinking is a fundamental part of property-based testing as it takes out the *noise* of random-generated data to reduce the failing data to focused and easier-to-understand terms. + +### Using property-based testing in stream_data + +The core of property-based testing in stream_data is the `check all` macro. In this macro, you list a bunch of generators and filters (very similarly to how you would in `for` comprehensions) and then pass a body where you can verify that a property holds for the generated data. + +To make the `check all` macro available in your test, alongside importing all functions from `StreamData`, you can `use ExUnitProperties`: + +```elixir +defmodule MyPropertyTest do + use ExUnit.Case, async: true + use ExUnitProperties + + test "sum of positive integer is greater than both integers" do + check all a <- integer(), + b <- integer(), + a > 0 and b > 0, + sum = a + b do + assert sum > a + assert sum > b + end + end +end +``` + +As you can see, we can filter generated data (`a > 0 and b > 0`) directly in the `check all` macro. We can also do simple assignments (`sum = a + b`). The example above uses the `check all` macro inside a regular `test`. If you want that your properties are reported as "property" at the end of an ExUnit test run, you can use the `property` macro instead: + +```elixir +defmodule MyPropertyTest do + use ExUnit.Case, async: true + use ExUnitProperties + + property "sum of positive integer is greater than both integers" do + check all a <- integer(), + b <- integer(), + a > 0 and b > 0, + sum = a + b do + assert sum > a + assert sum > b + end + end +end +``` + +By doing this your properties will also be tagged with the `:property` tag, which means you will be able to do things like: + +```bash +mix test --only property +``` + +to run only properties. + +There's not much more to the mechanics of stream_data. Most of the work you will have to do revolves around finding good properties to test for your code and writing good generators for the data over which you want to test. Head over to [stream_data][]'s documentation for detailed documentation. + +### Advantages of property-based testing + +Using property-based testing has some advantages. First of all, it lets you test properties of your code over many more values than you otherwise would with example-based testing. While it's true that random data generation can't cover all the possible values that a piece of code can deal with, the confidence in your codebase can still increase over time because the property-based tests will likely generate different values on each run. Example-based testing means your test data will not change over time. + +Property-based testing however can also have a more powerful impact on the way you design software. When you start writing property-based tests, you will start thinking about what guarantees your code provides and what properties it satisfies. If you write properties before writing code, this can easily influence the way you write that code. + +### Learning resources + +Property-based testing is not something specific to Elixir. While having its roots in Haskell (check out the [original QuickCheck paper] if you're interested), nowadays many languages have stable and usable implementations of it: Clojure has [test.check][], Python has [Hypothesis][], and many more. One of the most famous and complete tools for property-based testing exists for Erlang itself: [QuickCheck][] by Quviq is a complete commercial solution for property-based testing in Erlang of both stateless as well as stateful systems, and Quviq even provides a custom Erlang scheduler to test race conditions in your concurrent programs. + +A young but awesome book about property-based testing written by Fred Hebert is also available at [propertesting.com][]. This book is a *proper* (pun intended) guide to property-based testing and uses an Erlang library called [PropEr][]. However, the concepts and techniques perfectly apply to Elixir and stream_data as well. + +## Why include property-based testing in Elixir (and rewriting from scratch) + +The community has expressed some concern regarding two main things: why do we want to include a property-based testing tool in Elixir's standard library? And why write such a tool from scratch instead of using one of the existing Erlang or Elixir solutions? + +The answer to the first question is that we believe providing such a tool in the standard library will encourage developers to use property-based testing and ultimately improve their software and the way they write it. At the same time, we want to be able to use property-based testing to test the Elixir codebase itself (which already turned out great [in the past][quickcheck-pr]). + +The reasons for writing a new property-based testing library from scratch are best explained by José in [this ElixirForum post][elixirforum-post]: + +> * Since we want to bundle it as part of Elixir, the code should be open source with an appropriate license. +> * We wanted to add both data generation and property testing to Elixir. That's why the library is called stream_data instead of something named after property tests. The goal is to reduce the learning curve behind property testing by exposing the data generation aspect as streams, which is a known construct to most Elixir developers. We had this approach in mind for a while and the first library we saw leveraging this in practice was [@pragdave's pollution][pollution]. +> * Finally, since the core team are taking the responsibility of maintaining property testing as part of Elixir for potentially the rest of our lives, we want to have full understanding of every single line of code. This is non-negotiable as it guarantees we can continue to consistently improve the code as we move forward. +> +> We understand rolling our own implementation has its downsides, especially since it lacks maturity compared to alternatives, but we balance it by actively seeking input from knowledgeable folks and by listening to the feedback that comes from the community, which we are very thankful for. + +## Roadmap + +stream_data and the functionalities it includes are scheduled to be included in one of the next two Elixir releases, likely 1.6 but possibly 1.7. We have used the names `StreamData` and `ExUnitProperties` to avoid conflicts when those modules are eventually merged into Elixir. When merged, they will be renamed to the proper `Stream.Data` and `ExUnit.Properties` modules. Right now, all development is happening in the [stream_data][] repository, where we are discussing features and giving users a chance to try out the functionalities early on. We'd love for anyone to get involved in trying stream_data and we'd love feedback! + +[stream_data]: https://github.com/whatyouhide/stream_data +[test.check]: https://github.com/clojure/test.check +[Hypothesis]: https://github.com/HypothesisWorks/hypothesis-python +[QuickCheck]: http://quviq.com +[propertesting.com]: http://propertesting.com +[PropEr]: https://github.com/manopapad/proper +[quickcheck-pr]: https://github.com/elixir-lang/elixir/pull/5022#issuecomment-233195478 +[pollution]: https://github.com/pragdave/pollution +[elixirforum-post]: https://elixirforum.com/t/questions-about-property-testing-stream-data/9445/47 From 585e3d1441667cd30baa18a7d2deeb55e58c64bf Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Tue, 31 Oct 2017 20:22:46 +0100 Subject: [PATCH 0779/1761] Fix the title of the stream_data blog post --- ...-10-31-stream-data-property-testing-comes-to-elixir.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown b/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown index 9e258fbcc..a14c8b508 100644 --- a/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown +++ b/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown @@ -1,6 +1,6 @@ --- layout: post -title: StreamData: Property-based testing comes to Elixir +title: "StreamData: Property-based testing comes to Elixir" author: Andrea Leopardi category: Releases excerpt: We are working on data generation and property-based testing for the next versions of Elixir. From 8d1209adf44c27de0bf5bc2de06eac93608d00c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 31 Oct 2017 20:50:04 +0100 Subject: [PATCH 0780/1761] Update post title --- ...perty-based-testing-and-data-generation-for-elixir.markdown} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename _posts/{2017-10-31-stream-data-property-testing-comes-to-elixir.markdown => 2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown} (99%) diff --git a/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown similarity index 99% rename from _posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown rename to _posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown index a14c8b508..8f943f3d7 100644 --- a/_posts/2017-10-31-stream-data-property-testing-comes-to-elixir.markdown +++ b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown @@ -1,6 +1,6 @@ --- layout: post -title: "StreamData: Property-based testing comes to Elixir" +title: "StreamData: Property-based testing and data generation for Elixir" author: Andrea Leopardi category: Releases excerpt: We are working on data generation and property-based testing for the next versions of Elixir. From 00178e674727b73d767ec5e0d06dbc2588cbd7ee Mon Sep 17 00:00:00 2001 From: Matthew Boehlig Date: Wed, 1 Nov 2017 03:44:58 -0500 Subject: [PATCH 0781/1761] Fix link to QuickCheck paper in the stream_data post (#1055) --- ...perty-based-testing-and-data-generation-for-elixir.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown index 8f943f3d7..75aa951a2 100644 --- a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown +++ b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown @@ -151,7 +151,7 @@ Property-based testing however can also have a more powerful impact on the way y ### Learning resources -Property-based testing is not something specific to Elixir. While having its roots in Haskell (check out the [original QuickCheck paper] if you're interested), nowadays many languages have stable and usable implementations of it: Clojure has [test.check][], Python has [Hypothesis][], and many more. One of the most famous and complete tools for property-based testing exists for Erlang itself: [QuickCheck][] by Quviq is a complete commercial solution for property-based testing in Erlang of both stateless as well as stateful systems, and Quviq even provides a custom Erlang scheduler to test race conditions in your concurrent programs. +Property-based testing is not something specific to Elixir. While having its roots in Haskell (check out the [original QuickCheck paper][quickcheck-paper] if you're interested), nowadays many languages have stable and usable implementations of it: Clojure has [test.check][], Python has [Hypothesis][], and many more. One of the most famous and complete tools for property-based testing exists for Erlang itself: [QuickCheck][] by Quviq is a complete commercial solution for property-based testing in Erlang of both stateless as well as stateful systems, and Quviq even provides a custom Erlang scheduler to test race conditions in your concurrent programs. A young but awesome book about property-based testing written by Fred Hebert is also available at [propertesting.com][]. This book is a *proper* (pun intended) guide to property-based testing and uses an Erlang library called [PropEr][]. However, the concepts and techniques perfectly apply to Elixir and stream_data as well. @@ -174,6 +174,7 @@ The reasons for writing a new property-based testing library from scratch are be stream_data and the functionalities it includes are scheduled to be included in one of the next two Elixir releases, likely 1.6 but possibly 1.7. We have used the names `StreamData` and `ExUnitProperties` to avoid conflicts when those modules are eventually merged into Elixir. When merged, they will be renamed to the proper `Stream.Data` and `ExUnit.Properties` modules. Right now, all development is happening in the [stream_data][] repository, where we are discussing features and giving users a chance to try out the functionalities early on. We'd love for anyone to get involved in trying stream_data and we'd love feedback! [stream_data]: https://github.com/whatyouhide/stream_data +[quickcheck-paper]: http://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf [test.check]: https://github.com/clojure/test.check [Hypothesis]: https://github.com/HypothesisWorks/hypothesis-python [QuickCheck]: http://quviq.com From 9dbd23fdd906e1a53c05016bdc3c26b0b73b0b0d Mon Sep 17 00:00:00 2001 From: Ryan Bigg Date: Fri, 3 Nov 2017 09:09:10 +1100 Subject: [PATCH 0782/1761] Add Joy of Elixir to Learning -> Books resources (#1056) --- images/learning/joy-of-elixir.jpg | Bin 0 -> 229467 bytes learning.markdown | 10 ++++++++++ 2 files changed, 10 insertions(+) create mode 100644 images/learning/joy-of-elixir.jpg diff --git a/images/learning/joy-of-elixir.jpg b/images/learning/joy-of-elixir.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6e2c144d0bec37b6711a14b2900032e94eb131b9 GIT binary patch literal 229467 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

    U*%zxNF=(#?h1fx8WV(h?~a(tuQ)CG$!?;bbBus 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

      {@X85X!~&Taa`NZtSh|lQ;EiGQh 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 z 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 literal 0 HcmV?d00001 diff --git a/learning.markdown b/learning.markdown index 107bb95ad..745cf666e 100644 --- a/learning.markdown +++ b/learning.markdown @@ -73,6 +73,16 @@ Elixir-School is an open and community driven effort inspired by Twitter’s Sca

      +

      Joy of Elixir

      + +Joy of Elixir + +Joy of Elixir is a gentle introduction to programming, aimed at people who already know some things about computers, but who have little-to-no programming experience. + +This book will teach you the core concepts of the Elixir programming language in a fun and enjoyable way. If you're completely new to programming and you want to learn how to make a computer do things using the power of programming and you want to experience some joy while doing it, then read this book! + +
      + ## Video/Interactive Resources

      Try Elixir with Code School

      From ad83d92f79560961f4d4207b6b3d316632aac086 Mon Sep 17 00:00:00 2001 From: The Pragmatic Studio Date: Fri, 10 Nov 2017 10:27:39 -0700 Subject: [PATCH 0783/1761] Add Pragmatic Studio's Elixir course to the Learning page (#1057) --- images/learning/pragmaticstudio-elixir.png | Bin 0 -> 62788 bytes learning.markdown | 12 ++++++++++++ 2 files changed, 12 insertions(+) create mode 100644 images/learning/pragmaticstudio-elixir.png diff --git a/images/learning/pragmaticstudio-elixir.png b/images/learning/pragmaticstudio-elixir.png new file mode 100644 index 0000000000000000000000000000000000000000..f28c69704d9e4668ba56d1f188c8e784d4e58666 GIT binary patch literal 62788 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 u|26+V+5 +

      Pragmatic Studio's Elixir/OTP Course

      + +
      Pragmatic Studio's Elixir/OTP Course + +Put Elixir and OTP into action as you build a concurrent, fault-tolerant application from scratch in this 6-hour video course from The Pragmatic Studio. By developing a real app with real code, you'll gain practical experience putting all the pieces together to craft applications the Elixir/OTP way. + +The first half of the course focuses on core Elixir facets, principles, and techniques. In the second half, we go beyond the basics and focus on what sets Elixir/OTP apart: concurrent processes, the actor model, OTP behaviors, and fault recovery. + +If you're new to Elixir, you'll get step-by-step guidance in an engaging format you won't find anywhere else. If you have experience with Elixir, you'll gain a deeper understanding of things you've been taking for granted and fill in any knowledge gaps. + +
      + ## Other Resources

      Elixir Flashcards

      From 7062d414a0cda4d20f3343d350aa8a30d972c067 Mon Sep 17 00:00:00 2001 From: Michael Noronha Date: Wed, 15 Nov 2017 14:22:49 -0600 Subject: [PATCH 0784/1761] Minor wording change (#1058) they are -> are they, previous version didn't sound correct --- getting-started/keywords-and-maps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index bf5a0be53..3cdc67f6a 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -188,7 +188,7 @@ iex> map.c Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post](http://blog.plataformatec.com.br/2014/09/writing-assertive-code-with-elixir/) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. -> Note: Maps were recently introduced into the Erlang VM and only from Elixir v1.2 they are capable of holding millions of keys efficiently. Therefore, if you are working with previous Elixir versions (v1.0 or v1.1) and you need to support at least hundreds of keys, you may consider using [the `HashDict` module](https://hexdocs.pm/elixir/HashDict.html). +> Note: Maps were recently introduced into the Erlang VM and only from Elixir v1.2 are they capable of holding millions of keys efficiently. Therefore, if you are working with previous Elixir versions (v1.0 or v1.1) and you need to support at least hundreds of keys, you may consider using [the `HashDict` module](https://hexdocs.pm/elixir/HashDict.html). ## Nested data structures From c4990a2d4aa150ba132d1fcc5231599ed3a0e6ea Mon Sep 17 00:00:00 2001 From: Sean Callan Date: Tue, 5 Dec 2017 11:55:46 -0500 Subject: [PATCH 0785/1761] What's new in Elixir - Dec/17 (#1060) --- _posts/2017-11-24-whats-in-master.markdown | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 _posts/2017-11-24-whats-in-master.markdown diff --git a/_posts/2017-11-24-whats-in-master.markdown b/_posts/2017-11-24-whats-in-master.markdown new file mode 100644 index 000000000..e6c5c29ab --- /dev/null +++ b/_posts/2017-11-24-whats-in-master.markdown @@ -0,0 +1,32 @@ +--- +layout: post +author: Sean Callan +title: What's new in Elixir - Dec/17 +category: Announcements +--- + +Today's post marks the first in a new series bringing you the latest changes to the Elixir language. +We'd love to hear from you about what you'd like to see in future posts so get join the conversation on [the Elixir Forum thread](https://elixirforum.com/t/whats-new-in-elixir-discussion-dec-17/10605). + +So what's in master? Let's have a look: + +1. Disagreements about formatting are a thing of the past! +As part of 1.6 we've added [a code formatter to Elixir](https://hexdocs.pm/elixir/master/Code.html#format_string!/2). +The formatter is available in projects via [the mix task `format`](https://hexdocs.pm/mix/master/Mix.Tasks.Format.html#content). [The community already helped format all files in the Elixir codebase](https://github.com/elixir-lang/elixir/issues/6643) and you can [give the formatter a try now](https://hashrocket.com/blog/posts/format-your-elixir-code-now). + +1. The all new `DynamicSupervisor` behaviour is now available on master. +Unlike the traditional `Supervisor` strategies, the `DynamicSupervisor` allows children to be added dynamically via `start_child/2`. +For more on the `DynamicSupervisor` check out the [documentation](https://hexdocs.pm/elixir/master/DynamicSupervisor.html). + +1. Look for changes in compiler diagnostics as part of this new release that make integration with editors easier. +An all new `Mix.Task.Compiler` behaviour will ensure existing and future compilers meet a common specification and return adequate diagnostics. +These changes will enable editors to provide better support for Elixir code compilation. +Jake Becker, one of the features contributors, outlined these benefits in his blog post [ElixirLS 0.2: Better builds, code formatter, and incremental Dialyzer](https://medium.com/@JakeBeckerCode/elixirls-0-2-better-builds-code-formatter-and-incremental-dialyzer-be70999ea3e7). + +1. Improvements to the `mix xref` task should make it easier for developers to make sense of the output. +These improvements include the new `graph --format stats` command and a new option for all xref commands `--include-siblings`, for umbrella projects. +For more information on xref changes checkout the CHANGELOG [entry](https://github.com/elixir-lang/elixir/blob/0e72d4839cda97edce75ca0c537555ce4ead7a6a/CHANGELOG.md#mix-xref). + +1. Steam data and property testing will be joining Elixir core in a future release. Not only will these be useful to users of Elixir but they'll be used to make Elixir itself better! [See our previous announcement for more information](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/) and give the [stream_data library](github.com/whatyouhide/stream_data) a try. + +Think we missed something? Let us know [at the Elixir Forum](https://elixirforum.com/t/whats-new-in-elixir-discussion-dec-17/10605). From 16c2464294615bccaf382cc1ec7782eb8ed09b16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 Dec 2017 17:59:45 +0100 Subject: [PATCH 0786/1761] Update permalink --- _includes/search.html | 2 +- ...-master.markdown => 2017-12-05-whats-new-in-elixir.markdown} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename _posts/{2017-11-24-whats-in-master.markdown => 2017-12-05-whats-new-in-elixir.markdown} (100%) diff --git a/_includes/search.html b/_includes/search.html index 3d6b79d8e..b9528d8cd 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ diff --git a/_posts/2017-11-24-whats-in-master.markdown b/_posts/2017-12-05-whats-new-in-elixir.markdown similarity index 100% rename from _posts/2017-11-24-whats-in-master.markdown rename to _posts/2017-12-05-whats-new-in-elixir.markdown From 155d161ed43f988d88a2b17ccd02e3d71d5c1a4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 Dec 2017 18:01:09 +0100 Subject: [PATCH 0787/1761] Keep link on a single line --- _includes/search.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/search.html b/_includes/search.html index b9528d8cd..0698ea205 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ From 23ad5823b78b2f7e48c22669ed6ee06a49cd6e42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 Dec 2017 18:38:31 +0100 Subject: [PATCH 0788/1761] Update 2017-12-05-whats-new-in-elixir.markdown --- _posts/2017-12-05-whats-new-in-elixir.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-12-05-whats-new-in-elixir.markdown b/_posts/2017-12-05-whats-new-in-elixir.markdown index e6c5c29ab..b7081be66 100644 --- a/_posts/2017-12-05-whats-new-in-elixir.markdown +++ b/_posts/2017-12-05-whats-new-in-elixir.markdown @@ -27,6 +27,6 @@ Jake Becker, one of the features contributors, outlined these benefits in his bl These improvements include the new `graph --format stats` command and a new option for all xref commands `--include-siblings`, for umbrella projects. For more information on xref changes checkout the CHANGELOG [entry](https://github.com/elixir-lang/elixir/blob/0e72d4839cda97edce75ca0c537555ce4ead7a6a/CHANGELOG.md#mix-xref). -1. Steam data and property testing will be joining Elixir core in a future release. Not only will these be useful to users of Elixir but they'll be used to make Elixir itself better! [See our previous announcement for more information](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/) and give the [stream_data library](github.com/whatyouhide/stream_data) a try. +1. Stream data and property testing will be joining Elixir core in a future release. Not only will these be useful to users of Elixir but they'll be used to make Elixir itself better! [See our previous announcement for more information](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/) and give the [stream_data library](github.com/whatyouhide/stream_data) a try. Think we missed something? Let us know [at the Elixir Forum](https://elixirforum.com/t/whats-new-in-elixir-discussion-dec-17/10605). From ffc24f41f19b3fef9542b3f51c28a3d6383bf990 Mon Sep 17 00:00:00 2001 From: Jim Freeze Date: Tue, 5 Dec 2017 15:10:17 -0600 Subject: [PATCH 0789/1761] Update ElixirConf link text (#1062) --- _includes/important-links.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index d7431f9df..2c3415f8b 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -3,9 +3,10 @@
      - ElixirConf™ US is being held in Bellevue, WA, September 5-8. + ElixirConf™ US is being held in Bellevue, WA, September 4-7, 2018.
      - The CFP is now open and discount registration is available. + ElixirConf EU is being held in Warsaw, Poland, April 16-18, 2018. + Registration is now open.
      From 1905be742479723553ab0039edec02ef311e68b8 Mon Sep 17 00:00:00 2001 From: gui Date: Tue, 5 Dec 2017 22:30:18 +0000 Subject: [PATCH 0790/1761] Fix typo in 2017-12-05 blog post (#1063) --- _posts/2017-12-05-whats-new-in-elixir.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-12-05-whats-new-in-elixir.markdown b/_posts/2017-12-05-whats-new-in-elixir.markdown index b7081be66..64fa4f0c9 100644 --- a/_posts/2017-12-05-whats-new-in-elixir.markdown +++ b/_posts/2017-12-05-whats-new-in-elixir.markdown @@ -6,7 +6,7 @@ category: Announcements --- Today's post marks the first in a new series bringing you the latest changes to the Elixir language. -We'd love to hear from you about what you'd like to see in future posts so get join the conversation on [the Elixir Forum thread](https://elixirforum.com/t/whats-new-in-elixir-discussion-dec-17/10605). +We'd love to hear from you about what you'd like to see in future posts so join the conversation on [the Elixir Forum thread](https://elixirforum.com/t/whats-new-in-elixir-discussion-dec-17/10605). So what's in master? Let's have a look: From e5aa8ba6fe09d3913604f52c56bca250ee0e5fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 6 Dec 2017 09:48:59 +0100 Subject: [PATCH 0791/1761] Update 2017-12-05-whats-new-in-elixir.markdown --- _posts/2017-12-05-whats-new-in-elixir.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-12-05-whats-new-in-elixir.markdown b/_posts/2017-12-05-whats-new-in-elixir.markdown index 64fa4f0c9..4a8eccfc3 100644 --- a/_posts/2017-12-05-whats-new-in-elixir.markdown +++ b/_posts/2017-12-05-whats-new-in-elixir.markdown @@ -27,6 +27,6 @@ Jake Becker, one of the features contributors, outlined these benefits in his bl These improvements include the new `graph --format stats` command and a new option for all xref commands `--include-siblings`, for umbrella projects. For more information on xref changes checkout the CHANGELOG [entry](https://github.com/elixir-lang/elixir/blob/0e72d4839cda97edce75ca0c537555ce4ead7a6a/CHANGELOG.md#mix-xref). -1. Stream data and property testing will be joining Elixir core in a future release. Not only will these be useful to users of Elixir but they'll be used to make Elixir itself better! [See our previous announcement for more information](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/) and give the [stream_data library](github.com/whatyouhide/stream_data) a try. +1. Stream data and property testing will be joining Elixir core in a future release. Not only will these be useful to users of Elixir but they'll be used to make Elixir itself better! [See our previous announcement for more information](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/) and give the [stream_data library](https://github.com/whatyouhide/stream_data) a try. Think we missed something? Let us know [at the Elixir Forum](https://elixirforum.com/t/whats-new-in-elixir-discussion-dec-17/10605). From 4c4a48d3fe18492593cb45944a3cc9d9a9dd2c0a Mon Sep 17 00:00:00 2001 From: Anthony Som Date: Tue, 19 Dec 2017 08:31:54 +0000 Subject: [PATCH 0792/1761] Add missing 'and' (#1064) "Aliases start in upper case *and* are also atoms" --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index ae6881dad..6a0ec91ac 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -127,7 +127,7 @@ iex> is_boolean(:false) true ``` -Finally, Elixir has a construct called aliases which we will explore later. Aliases start in upper case are also atoms: +Finally, Elixir has a construct called aliases which we will explore later. Aliases start in upper case and are also atoms: ```iex iex> is_atom(Hello) From ec2918406a53177f2f31ef20866f0b5925f2dca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 19 Dec 2017 18:23:03 +0100 Subject: [PATCH 0793/1761] Update Erlang and Elixir versions --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + erlang.csv | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index c00dffa00..07fb66a20 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -27,5 +27,5 @@ v1_4: v1_5: name: v1.5 - version: 1.5.2 + version: 1.5.3 docs_zip: true diff --git a/elixir.csv b/elixir.csv index af6ab741d..227c8e1c7 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.5.3,https://github.com/elixir-lang/elixir/releases/download/v1.5.3/Precompiled.zip,release,1,db8ad5da88751d55830a541527ef767038077625,be33c8f29e04d5367b59fc5329a8d04dfc1e9fdff0aaffe7c015a4098dbcb4eaad8395aafc5bfc1b75147c0b79a0c9a4bc28a72d9d1d4187891f4b9f025054e7 1.5.2,https://github.com/elixir-lang/elixir/releases/download/v1.5.2/Precompiled.zip,release,1,d5e900d3a06d773a070404f51e6c7eb7882f2af8,44bf503bd369e24bb1f07f918c84ea53b0084bf126cba7492a339a6d1390a316f66394f91fc784e57d7e88f84f2e51656f00116921f6ba106bfbe135f5d8ae42 1.5.1,https://github.com/elixir-lang/elixir/releases/download/v1.5.1/Precompiled.zip,release,1,29cfd5a8752e37ea50497d69ed5d16327738b470,291cf747344a274fb76b3f7676a1496cdad99ab6aeebe7ba38fac067b01f1b4b807c3644d8caa43ae55fda19923447605b30eb851d2ad6e8b08b9464a7303b87 1.5.0,https://github.com/elixir-lang/elixir/releases/download/v1.5.0/Precompiled.zip,release,1,4503565a66977f61f9de255a2158b3d589433445,51b39b3214cf0fc78fb867086885df3ad79e9b204480e5c8f5b5a1105632df29a5a5a2cecc610f3093ce4eed6cce8d30f43e480978edb5f7ffafa2b6307a1da8 diff --git a/erlang.csv b/erlang.csv index 66b60d7a1..cc15152bb 100644 --- a/erlang.csv +++ b/erlang.csv @@ -1,8 +1,7 @@ version_otp,version_erts,url_win32,url_win64 +20.2,9.2,http://erlang.org/download/otp_win32_20.2.exe,http://erlang.org/download/otp_win64_20.2.exe 20.0,9.0,http://erlang.org/download/otp_win32_20.0.exe,http://erlang.org/download/otp_win64_20.0.exe 19.3,8.3,http://erlang.org/download/otp_win32_19.3.exe,http://erlang.org/download/otp_win64_19.3.exe -19.2,8.2,http://erlang.org/download/otp_win32_19.2.exe,http://erlang.org/download/otp_win64_19.2.exe -19.1,8.1,http://erlang.org/download/otp_win32_19.1.exe,http://erlang.org/download/otp_win64_19.1.exe 19.0,8.0,http://erlang.org/download/otp_win32_19.0.exe,http://erlang.org/download/otp_win64_19.0.exe 18.3,7.3,http://erlang.org/download/otp_win32_18.3.exe,http://erlang.org/download/otp_win64_18.3.exe 18.1,7.1,http://erlang.org/download/otp_win32_18.1.exe,http://erlang.org/download/otp_win64_18.1.exe From 58dead915dccefdbe7320045ead3eeec65ff6bbc Mon Sep 17 00:00:00 2001 From: sharils Date: Sat, 6 Jan 2018 19:27:27 +0800 Subject: [PATCH 0794/1761] Make content match Elixir 1.5.3 (#1069) --- .../mix-otp/supervisor-and-application.markdown | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 5ea6cdb34..3ef408ae8 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -113,12 +113,13 @@ We can find the generated `.app` file at `_build/dev/lib/kv/ebin/kv.app`. Let's ```erlang {application,kv, - [{registered,[]}, + [{applications,[kernel,stdlib,elixir,logger]}, {description,"kv"}, - {applications,[kernel,stdlib,elixir,logger]}, - {vsn,"0.0.1"}, - {modules,['Elixir.KV','Elixir.KV.Bucket', - 'Elixir.KV.Registry','Elixir.KV.Supervisor']}]}. + {modules,['Elixir.KV','Elixir.KV.Bucket','Elixir.KV.Registry', + 'Elixir.KV.Supervisor']}, + {registered,[]}, + {vsn,"0.1.0"}, + {extra_applications,[logger]}]}. ``` This file contains Erlang terms (written using Erlang syntax). Even though we are not familiar with Erlang, it is easy to guess this file holds our application definition. It contains our application `version`, all the modules defined by it, as well as a list of applications we depend on, like Erlang's `kernel`, `elixir` itself, and `logger` which is specified in the `:extra_applications` list in `mix.exs`. From f6d3f65fa3b58c0177c886e23847727095f53b47 Mon Sep 17 00:00:00 2001 From: Tomek Paczkowski Date: Wed, 10 Jan 2018 17:39:53 +0000 Subject: [PATCH 0795/1761] Specify canonical URL for the website (#1072) --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index dd0a7a266..aa0e70958 100644 --- a/_config.yml +++ b/_config.yml @@ -4,6 +4,7 @@ kramdown: input: GFM hard_wrap: false repository: elixir-lang/elixir-lang.github.com +url: https://elixir-lang.org plugins: - jemoji - jekyll-sitemap From 7e7c7c23402b11725c498089d7ad2eca6c1aae56 Mon Sep 17 00:00:00 2001 From: Max Cahill <1bardesign@gmail.com> Date: Thu, 11 Jan 2018 19:29:28 +1100 Subject: [PATCH 0796/1761] Clarified introduction phrasing (#1073) --- getting-started/introduction.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 027594981..805e0e78a 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -10,7 +10,7 @@ redirect_from: /getting_started/1.html Welcome! -In this tutorial, we are going to teach you the Elixir foundation, the language syntax, how to define modules, how to manipulate the characteristics of common data structures, and more. This chapter will focus on ensuring Elixir is installed and that you can successfully run Elixir's Interactive Shell, called IEx. +In this tutorial, we are going to teach you about Elixir fundamentals - the language syntax, how to define modules, how to manipulate the characteristics of common data structures, and more. This chapter will focus on ensuring that Elixir is installed and that you can successfully run Elixir's Interactive Shell, called IEx. Our requirements are: From 5b59d980e3d62d96b022138753a1f3c80354ad99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 17 Jan 2018 19:45:24 +0100 Subject: [PATCH 0797/1761] Release v1.6 (#1074) --- ...2018-01-17-elixir-v1-6-0-released.markdown | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 _posts/2018-01-17-elixir-v1-6-0-released.markdown diff --git a/_posts/2018-01-17-elixir-v1-6-0-released.markdown b/_posts/2018-01-17-elixir-v1-6-0-released.markdown new file mode 100644 index 000000000..6da07f520 --- /dev/null +++ b/_posts/2018-01-17-elixir-v1-6-0-released.markdown @@ -0,0 +1,156 @@ +--- +layout: post +title: Elixir v1.6 released +author: José Valim +category: Releases +excerpt: Elixir v1.6 includes a code formatter, defguard, dynamic supervision and new module attributes that improves code quality and the developer experience +--- + +Elixir v1.6 includes new features, enhancements, and bug fixes. The main feature in this release is a code formatter. Important improvements can also be found in the standard library and in the Mix build tool. + +## Code formatter + +The big feature in Elixir v1.6 is the addition of [a code formatter](https://hexdocs.pm/elixir/Code.html#format_string!/2) and an accompanying `mix format` task that adds automatic formatting to your projects. + +The goal of the formatter is to automate the styling of codebases into a unique and consistent layout used across teams and the whole community. Code is now easier to write, as you no longer need to concern yourself with formatting rules. Code is also easier to read, as you no longer need to convert the styles of other developers in your mind. + +The formatter also helps new developers to learn the language by giving immediate feedback on code structure, and eases code reviews by allowing teams to focus on business rules and code quality rather than code style. + +To automatically format your codebase, you can run the [new `mix format` task](https://hexdocs.pm/mix/Mix.Tasks.Format.html). A `.formatter.exs` file may be added to your project root for rudimentary formatter configuration. The mix task also supports flags for CI integration. For instance, you can make your build or a Pull Request fail if the code is not formatted accordingly by using the `--check-formatted` flag. We also recommend developers to check their favorite editor and see if it already provides key bindings for `mix format`, allowing a file or a code snippet to be formatted without hassle. + +The Elixir codebase itself [has already been fully formatted](https://github.com/elixir-lang/elixir/issues/6643) and all further contributions are expected to contain formatted code. We recommend existing codebases to be formatted in steps. While the formatter will correctly handle long lines and complex expressions, refactoring the code by breaking those into variables or smaller functions as you format them will lead to overall cleaner and more readable codebases. + +## Dynamic Supervisor + +Supervisors in Elixir are responsible for starting, shutting down, and restarting child processes when things go wrong. Most of the interaction with supervisors happens through [the `Supervisor` module](https://hexdocs.pm/elixir/Supervisor.html) and it provides three main strategies: `:one_for_one`, `:rest_for_one` and `:one_for_all`. + +However, sometimes the children of a supervisor are not known upfront and are rather started dynamically. For example, if you are building a web server, you have each request being handled by a separate supervised process. Those cases were handled in the Supervisor module under a special strategy called `:simple_one_for_one`. + +Unfortunately, this special strategy changed the semantics of the supervisor in regards to initialization and shutdown. Plus some APIs expected different inputs or would be completely unavailable depending on the supervision strategy. + +Elixir v1.6 addresses this issue by introducing [a new `DynamicSupervisor` module](https://hexdocs.pm/elixir/DynamicSupervisor.html), which encapsulates the old `:simple_one_for_one` strategy and APIs in a proper module while allowing the documentation and API of the `Supervisor` module to focus on its main use cases. Having a separate `DynamicSupervisor` module also makes it simpler to add new features to the dynamic supervisor, such as the new `:max_children` option that limits the maximum number of children supervised dynamically. + +## `@deprecated` and `@since` attributes + +This release also introduces two new attributes associated with function definitions: `@deprecated` and `@since`. The former marks if a function or macro is deprecated, the latter annotates the version the API was introduced: + +```elixir +@doc "Breaks a collection into chunks" +@since "1.0.0" +@deprecated "Use chunk_every/2 instead" +def chunk_every(collection, chunk_size) do + ... +end +``` + +The `mix xref` task was also updated to warn if your project calls deprecated code. So if a definition is marked as `@deprecated` and a module invokes it, a warning will be emitted during compilation. This effectively provides libraries and frameworks a mechanism to deprecate code without causing multiple warnings to be printed in runtime and without impacting performance. + +Note those attributes are not yet available to tools that generate documentation. Such functionality will be added in Elixir v1.7 once [Elixir adopts EEP-48](https://github.com/elixir-lang/elixir/issues/7198). We still recommend developers to start annotating their APIs so the information is already available when the tooling is updated. + +## `defguard` and `defguardp` + +Elixir provides the concepts of guards: expressions used alongside pattern matching to select a matching clause. Let's see an example straight from [Elixir's home page](https://elixir-lang.org): + +```elixir +def serve_drinks(%User{age: age}) when age >= 21 do + # Code that serves drinks! +end +``` + +`%User{age: age}` is matching on a `User` struct with an age field and `when age >= 21` is the guard. + +Since only a handful of constructs are [allowed in guards](https://hexdocs.pm/elixir/guards.html#content), if you were in a situation where you had to check the age to be more than or equal to 21 in multiple places, extracting the guard to a separate function would be [less than obvious and error prone](https://github.com/elixir-lang/elixir/issues/2469). To address those issues, [this release introduces `defguard/1` and `defguardp/1`](https://hexdocs.pm/elixir/Kernel.html#defguard/1): + +```elixir +defguard is_drinking_age(age) when age >= 21 + +def serve_drinks(%User{age: age}) when is_drinking_age(age) do + # Code that serves drinks! +end +``` + +## IEx improvements + +IEx also got its share of improvements. The new code formatter allows us to pretty print code snippets, types and specifications, improving the overall experience when exploring code through the terminal. + +The autocomplete mechanism also got smarter, being able to provide context autocompletion. For example, typing `t Enum.` and hitting TAB will autocomplete only the types in Enum (in contrast to all functions). Typing `b GenServer.` and hitting TAB will autocomplete only the behaviour callbacks. + +Finally, the breakpoint functionality added [in Elixir v1.5](https://elixir-lang.org/blog/2017/07/25/elixir-v1-5-0-released/) has been improved to support pattern matching and guards. For example, to pattern match on a function call when the first argument is the atom `:foo`, you may do: + +``` +iex> break! SomeFunction.call(:foo, _, _) +``` + +For more information, see [`IEx.break!/4`](https://hexdocs.pm/iex/IEx.html#break!/4). + +## mix xref + +[`mix xref`](https://hexdocs.pm/mix/Mix.Tasks.Xref.html) is a task added in Elixir v1.3 which provides general information about how modules and files in an application depend on each other. This release brings many improvements to `xref`, extending the reach of the analysis and helping developers digest the vast amount of data it produces. + +One of such additions is the `--include-siblings` option that can be given to all `xref` commands inside umbrella projects. For example, to find all of the callers of a given module or function of an application in an umbrella: + +``` +$ mix xref callers SomeModule --include-siblings +``` + +The `graph` command in `mix xref` now can also output general statistics about the graph. In [the hexpm project](https://github.com/hexpm/hexpm), you would get: + +``` +$ mix xref graph --format stats +Tracked files: 129 (nodes) +Compile dependencies: 256 (edges) +Structs dependencies: 46 (edges) +Runtime dependencies: 266 (edges) + +Top 10 files with most outgoing dependencies: + * test/support/factory.ex (18) + * lib/hexpm/accounts/user.ex (13) + * lib/hexpm/accounts/audit_log.ex (12) + * lib/hexpm/web/controllers/dashboard_controller.ex (12) + * lib/hexpm/repository/package.ex (12) + * lib/hexpm/repository/releases.ex (11) + * lib/hexpm/repository/release.ex (10) + * lib/hexpm/web/controllers/package_controller.ex (10) + * lib/mix/tasks/hexpm.stats.ex (9) + * lib/hexpm/repository/registry_builder.ex (9) + +Top 10 files with most incoming dependencies: + * lib/hexpm/web/web.ex (84) + * lib/hexpm/web/router.ex (29) + * lib/hexpm/web/controllers/controller_helpers.ex (29) + * lib/hexpm/web/controllers/auth_helpers.ex (28) + * lib/hexpm/web/views/view_helpers.ex (27) + * lib/hexpm/web/views/icons.ex (27) + * lib/hexpm/web/endpoint.ex (23) + * lib/hexpm/ecto/changeset.ex (22) + * lib/hexpm/accounts/user.ex (19) + * lib/hexpm/repo.ex (19) +``` + +`mix xref graph` also got the `--only-nodes` and `--label` options. The former asks Mix to only output file names (nodes) without the edges. The latter allows you to focus on certain relationships: + +``` +# To get all files that depend on lib/foo.ex +mix xref graph --sink lib/foo.ex --only-nodes + +# To get all files that depend on lib/foo.ex at compile time +mix xref graph --label compile --sink lib/foo.ex --only-nodes + +# To get all files lib/foo.ex depends on +mix xref graph --source lib/foo.ex --only-nodes + +# To limit statistics only to compile time dependencies +mix xref graph --format stats --label compile +``` + +Those improvements will help developers better understand the relationship between files and reveal potentially complex parts of their systems. + +Other improvements in Mix include [better compiler diagnostics](https://hexdocs.pm/mix/Mix.Task.Compiler.html) for editor integration, support for [the `--slowest N` flag in `mix test`](https://hexdocs.pm/mix/Mix.Tasks.Test.html) that shows the slowest tests in your suite, and a new [`mix profile.eprof` task](https://hexdocs.pm/mix/Mix.Tasks.Eprof.html) that provides time based profiling, complementing the existing [`mix profile.cprof` (count based)](https://hexdocs.pm/mix/Mix.Tasks.Cprof.html) and [`mix profile.fprof` (flame based)](https://hexdocs.pm/mix/Mix.Tasks.Fprof.html). + +## Summing up + +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.6.0). There are many other exciting changes, such as compiler enhancements to better track dependencies, leading to less files being recompiled whenever there are changes in project, and overall faster compilation. + +Work on Elixir v1.7 has already started. We still welcome developers to try out the [previously announced StreamData library](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/), that aims to bring data generation and property-based testing to Elixir. The other [features scheduled for v1.7 can be found in the issues tracker](https://github.com/elixir-lang/elixir/issues). + +Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. From f026a8df6793085cca44430aae8399d651c36772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 17 Jan 2018 19:50:35 +0100 Subject: [PATCH 0798/1761] Update home and data files --- _data/elixir-versions.yml | 7 ++++++- _includes/search.html | 2 +- elixir.csv | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 07fb66a20..4e9b97632 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,4 +1,4 @@ -stable: v1_5 +stable: v1_6 v1_0: name: v1.0 @@ -29,3 +29,8 @@ v1_5: name: v1.5 version: 1.5.3 docs_zip: true + +v1_6: + name: v1.6 + version: 1.6.0 + docs_zip: true \ No newline at end of file diff --git a/_includes/search.html b/_includes/search.html index 0698ea205..da114c710 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ diff --git a/elixir.csv b/elixir.csv index 227c8e1c7..ef697bbc0 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.6.0,https://github.com/elixir-lang/elixir/releases/download/v1.6.0/Precompiled.zip,release,1,ecb2db40e830c59e77f710f000c18cc002615d4b,6de9a310d8bea54bacc8682f6dd49cd7440aa4c1be3439f9af8a1edf0c3d5bdf36b4757c278e60ffaabcaea8942fe72dd6bcd36efe2fea7606f69fed6d4d8ecc 1.5.3,https://github.com/elixir-lang/elixir/releases/download/v1.5.3/Precompiled.zip,release,1,db8ad5da88751d55830a541527ef767038077625,be33c8f29e04d5367b59fc5329a8d04dfc1e9fdff0aaffe7c015a4098dbcb4eaad8395aafc5bfc1b75147c0b79a0c9a4bc28a72d9d1d4187891f4b9f025054e7 1.5.2,https://github.com/elixir-lang/elixir/releases/download/v1.5.2/Precompiled.zip,release,1,d5e900d3a06d773a070404f51e6c7eb7882f2af8,44bf503bd369e24bb1f07f918c84ea53b0084bf126cba7492a339a6d1390a316f66394f91fc784e57d7e88f84f2e51656f00116921f6ba106bfbe135f5d8ae42 1.5.1,https://github.com/elixir-lang/elixir/releases/download/v1.5.1/Precompiled.zip,release,1,29cfd5a8752e37ea50497d69ed5d16327738b470,291cf747344a274fb76b3f7676a1496cdad99ab6aeebe7ba38fac067b01f1b4b807c3644d8caa43ae55fda19923447605b30eb851d2ad6e8b08b9464a7303b87 From ea5833eda0b2d7c76225bae484f0c45632482c6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 17 Jan 2018 20:57:57 +0100 Subject: [PATCH 0799/1761] Improve @deprecated example --- _posts/2018-01-17-elixir-v1-6-0-released.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2018-01-17-elixir-v1-6-0-released.markdown b/_posts/2018-01-17-elixir-v1-6-0-released.markdown index 6da07f520..6c489e41c 100644 --- a/_posts/2018-01-17-elixir-v1-6-0-released.markdown +++ b/_posts/2018-01-17-elixir-v1-6-0-released.markdown @@ -38,8 +38,8 @@ This release also introduces two new attributes associated with function definit @doc "Breaks a collection into chunks" @since "1.0.0" @deprecated "Use chunk_every/2 instead" -def chunk_every(collection, chunk_size) do - ... +def chunk(collection, chunk_size) do + chunk_every(collection, chunk_size) end ``` From f482b172877092bbc4e8c4ce880d55a3e2b3492a Mon Sep 17 00:00:00 2001 From: Wojtek Mach Date: Thu, 18 Jan 2018 09:21:30 +0100 Subject: [PATCH 0800/1761] Fix `mix profile.*` links (#1075) --- _posts/2018-01-17-elixir-v1-6-0-released.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2018-01-17-elixir-v1-6-0-released.markdown b/_posts/2018-01-17-elixir-v1-6-0-released.markdown index 6c489e41c..2ba1ec08c 100644 --- a/_posts/2018-01-17-elixir-v1-6-0-released.markdown +++ b/_posts/2018-01-17-elixir-v1-6-0-released.markdown @@ -145,7 +145,7 @@ mix xref graph --format stats --label compile Those improvements will help developers better understand the relationship between files and reveal potentially complex parts of their systems. -Other improvements in Mix include [better compiler diagnostics](https://hexdocs.pm/mix/Mix.Task.Compiler.html) for editor integration, support for [the `--slowest N` flag in `mix test`](https://hexdocs.pm/mix/Mix.Tasks.Test.html) that shows the slowest tests in your suite, and a new [`mix profile.eprof` task](https://hexdocs.pm/mix/Mix.Tasks.Eprof.html) that provides time based profiling, complementing the existing [`mix profile.cprof` (count based)](https://hexdocs.pm/mix/Mix.Tasks.Cprof.html) and [`mix profile.fprof` (flame based)](https://hexdocs.pm/mix/Mix.Tasks.Fprof.html). +Other improvements in Mix include [better compiler diagnostics](https://hexdocs.pm/mix/Mix.Task.Compiler.html) for editor integration, support for [the `--slowest N` flag in `mix test`](https://hexdocs.pm/mix/Mix.Tasks.Test.html) that shows the slowest tests in your suite, and a new [`mix profile.eprof` task](https://hexdocs.pm/mix/Mix.Tasks.Eprof.html) that provides time based profiling, complementing the existing [`mix profile.cprof` (count based)](https://hexdocs.pm/mix/Mix.Tasks.Profile.Cprof.html) and [`mix profile.fprof` (flame based)](https://hexdocs.pm/mix/Mix.Tasks.Profile.Fprof.html). ## Summing up From 43fb94386392e72f697e1cb0921d0362556c3806 Mon Sep 17 00:00:00 2001 From: Juha Date: Fri, 19 Jan 2018 17:51:09 +0200 Subject: [PATCH 0801/1761] Fix a typo and perform minimal touch-ups on text (#1076) --- install.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.markdown b/install.markdown index 9eb13ed45..8d11a29c1 100644 --- a/install.markdown +++ b/install.markdown @@ -11,7 +11,7 @@ layout: default The quickest way to install Elixir is through a distribution or using one of the available installers. If not available, then we recommend the precompiled packages or compiling it. -Note Elixir requires Erlang 18.0 or later. Many of the instructions below will automatically install Erlang for you. In case they do not, read the "Installing Erlang" section below. +Note that Elixir requires Erlang 18.0 or later. Many of the instructions below will automatically install Erlang for you. In case they do not, read the "Installing Erlang" section below. ## Distributions @@ -63,9 +63,9 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel ### Raspberry Pi -If necessary replace "jessie" with the name of your Raspian release. +If necessary, replace "jessie" with the name of your Raspbian release. - * The Erlang Solutions repository has a prebuilt package for armhf. This saves significant time instead of recompiling natively + * The Erlang Solutions repository has a prebuilt package for armhf. This saves a significant amount of time in comparison to recompiling natively * Get Erlang key * `echo "deb http://packages.erlang-solutions.com/debian jessie contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` * Run: `wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc` From 62265b44007f85c10cd54ab3c8c571663856da14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 23 Jan 2018 11:14:46 +0100 Subject: [PATCH 0802/1761] Use light solarized for epub, add lock file --- _epub/.gitignore | 9 +- _epub/assets/README.md | 4 +- _epub/assets/less/code.less | 8 +- _epub/lib/elixir_lang_guide.ex | 2 +- _epub/package.json | 4 +- ...{app-1bac334b99.css => app-769d25bae3.css} | 2 +- _epub/priv/app-943c27f4b0.js | 1 - _epub/priv/app-990b83b456.js | 1 + _epub/yarn.lock | 4899 +++++++++++++++++ 9 files changed, 4914 insertions(+), 16 deletions(-) rename _epub/priv/{app-1bac334b99.css => app-769d25bae3.css} (75%) delete mode 100644 _epub/priv/app-943c27f4b0.js create mode 100644 _epub/priv/app-990b83b456.js create mode 100644 _epub/yarn.lock diff --git a/_epub/.gitignore b/_epub/.gitignore index d884ba8e6..392973856 100644 --- a/_epub/.gitignore +++ b/_epub/.gitignore @@ -1,15 +1,9 @@ # The directory Mix will write compiled artifacts to. /_build/ -# If you run "mix test --cover", coverage assets end up here. -/cover/ - # The directory Mix downloads your dependencies sources to. /deps/ -# Where 3rd-party dependencies like ExDoc output generated docs. -/doc/ - # Ignore .fetch files in case you like to edit your project deps locally. /.fetch @@ -21,3 +15,6 @@ erl_crash.dump # Ignore epub artifacts *.epub + +# Ignore node deps +/node_modules/ \ No newline at end of file diff --git a/_epub/assets/README.md b/_epub/assets/README.md index c4141deae..58d36937c 100644 --- a/_epub/assets/README.md +++ b/_epub/assets/README.md @@ -10,8 +10,8 @@ To work on these assets you need to install [Node.js] and [npm] first (probably as superuser or administrator). After that execute the following commands: ```bash -$ npm install -g gulp -$ npm install +$ yarn global add gulp +$ yarn install ``` Now many gulp tasks are available via the `gulp` command line. diff --git a/_epub/assets/less/code.less b/_epub/assets/less/code.less index b4c0da1f7..fdcfcc72c 100644 --- a/_epub/assets/less/code.less +++ b/_epub/assets/less/code.less @@ -8,13 +8,13 @@ Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull /g,">")}function a(e){return e.nodeName.toLowerCase()}function t(e,n){var a=e&&e.exec(n);return a&&0===a.index}function i(e){return w.test(e)}function r(e){var n,a,t,r,s=e.className+" ";if(s+=e.parentNode?e.parentNode.className:"",a=x.exec(s))return f(a[1])?a[1]:"no-highlight";for(n=0,t=(s=s.split(/\s+/)).length;n"}function o(e){d+=""}function l(e){("start"===e.event?s:o)(e.node)}for(var c=0,d="",u=[];e.length||t.length;){var g=r();if(d+=n(i.substring(c,g[0].offset)),c=g[0].offset,g===e){u.reverse().forEach(o);do{l(g.splice(0,1)[0]),g=r()}while(g===e&&g.length&&g[0].offset===c);u.reverse().forEach(s)}else"start"===g[0].event?u.push(g[0].node):u.pop(),l(g.splice(0,1)[0])}return d+n(i.substr(c))}function c(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map(function(n){return s(e,{variants:null},n)})),e.cached_variants||e.endsWithParent&&[s(e)]||[e]}function d(e){function n(e){return e&&e.source||e}function a(a,t){return new RegExp(n(a),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}function t(i,r){if(!i.compiled){if(i.compiled=!0,i.keywords=i.keywords||i.beginKeywords,i.keywords){var s={},o=function(n,a){e.case_insensitive&&(a=a.toLowerCase()),a.split(" ").forEach(function(e){var a=e.split("|");s[a[0]]=[n,a[1]?Number(a[1]):1]})};"string"==typeof i.keywords?o("keyword",i.keywords):v(i.keywords).forEach(function(e){o(e,i.keywords[e])}),i.keywords=s}i.lexemesRe=a(i.lexemes||/\w+/,!0),r&&(i.beginKeywords&&(i.begin="\\b("+i.beginKeywords.split(" ").join("|")+")\\b"),i.begin||(i.begin=/\B|\b/),i.beginRe=a(i.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(i.endRe=a(i.end)),i.terminator_end=n(i.end)||"",i.endsWithParent&&r.terminator_end&&(i.terminator_end+=(i.end?"|":"")+r.terminator_end)),i.illegal&&(i.illegalRe=a(i.illegal)),null==i.relevance&&(i.relevance=1),i.contains||(i.contains=[]),i.contains=Array.prototype.concat.apply([],i.contains.map(function(e){return c("self"===e?i:e)})),i.contains.forEach(function(e){t(e,i)}),i.starts&&t(i.starts,r);var l=i.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([i.terminator_end,i.illegal]).map(n).filter(Boolean);i.terminators=l.length?a(l.join("|"),!0):{exec:function(){return null}}}}t(e)}function u(e,a,i,r){function s(e,n){var a,i;for(a=0,i=n.contains.length;a')+n+(a?"":k)}function b(){var e,a,t,i;if(!x.keywords)return n(R);for(i="",a=0,x.lexemesRe.lastIndex=0,t=x.lexemesRe.exec(R);t;)i+=n(R.substring(a,t.index)),(e=c(x,t))?(A+=e[1],i+=m(e[0],n(t[0]))):i+=n(t[0]),a=x.lexemesRe.lastIndex,t=x.lexemesRe.exec(R);return i+n(R.substr(a))}function _(){var e="string"==typeof x.subLanguage;if(e&&!E[x.subLanguage])return n(R);var a=e?u(x.subLanguage,R,!0,N[x.subLanguage]):g(R,x.subLanguage.length?x.subLanguage:void 0);return x.relevance>0&&(A+=a.relevance),e&&(N[x.subLanguage]=a.top),m(a.language,a.value,!1,!0)}function p(){M+=null!=x.subLanguage?_():b(),R=""}function h(e){M+=e.className?m(e.className,"",!0):"",x=Object.create(e,{parent:{value:x}})}function v(e,n){if(R+=e,null==n)return p(),0;var a=s(n,x);if(a)return a.skip?R+=n:(a.excludeBegin&&(R+=n),p(),a.returnBegin||a.excludeBegin||(R=n)),h(a,n),a.returnBegin?0:n.length;var t=o(x,n);if(t){var i=x;i.skip?R+=n:(i.returnEnd||i.excludeEnd||(R+=n),p(),i.excludeEnd&&(R=n));do{x.className&&(M+=k),x.skip||(A+=x.relevance),x=x.parent}while(x!==t.parent);return t.starts&&h(t.starts,""),i.returnEnd?0:n.length}if(l(n,x))throw new Error('Illegal lexeme "'+n+'" for mode "'+(x.className||"")+'"');return R+=n,n.length||1}var y=f(e);if(!y)throw new Error('Unknown language: "'+e+'"');d(y);var w,x=r||y,N={},M="";for(w=x;w!==y;w=w.parent)w.className&&(M=m(w.className,"",!0)+M);var R="",A=0;try{for(var S,C,T=0;;){if(x.terminators.lastIndex=T,!(S=x.terminators.exec(a)))break;C=v(a.substring(T,S.index),S[0]),T=S.index+C}for(v(a.substr(T)),w=x;w.parent;w=w.parent)w.className&&(M+=k);return{relevance:A,value:M,language:e,top:x}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:n(a)};throw e}}function g(e,a){a=a||O.languages||v(E);var t={relevance:0,value:n(e)},i=t;return a.filter(f).forEach(function(n){var a=u(n,e,!1);a.language=n,a.relevance>i.relevance&&(i=a),a.relevance>t.relevance&&(i=t,t=a)}),i.language&&(t.second_best=i),t}function m(e){return O.tabReplace||O.useBR?e.replace(N,function(e,n){return O.useBR&&"\n"===e?"
      ":O.tabReplace?n.replace(/\t/g,O.tabReplace):""}):e}function b(e,n,a){var t=n?y[n]:a,i=[e.trim()];return e.match(/\bhljs\b/)||i.push("hljs"),-1===e.indexOf(t)&&i.push(t),i.join(" ").trim()}function _(e){var n,a,t,s,c,d=r(e);i(d)||(O.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"):n=e,c=n.textContent,t=d?u(d,c,!0):g(c),(a=o(n)).length&&((s=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=t.value,t.value=l(a,o(s),c)),t.value=m(t.value),e.innerHTML=t.value,e.className=b(e.className,d,t.language),e.result={language:t.language,re:t.relevance},t.second_best&&(e.second_best={language:t.second_best.language,re:t.second_best.relevance}))}function p(){if(!p.called){p.called=!0;var e=document.querySelectorAll("pre code");h.forEach.call(e,_)}}function f(e){return e=(e||"").toLowerCase(),E[e]||E[y[e]]}var h=[],v=Object.keys,E={},y={},w=/^(no-?highlight|plain|text)$/i,x=/\blang(?:uage)?-([\w-]+)\b/i,N=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,k="",O={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=u,e.highlightAuto=g,e.fixMarkup=m,e.highlightBlock=_,e.configure=function(e){O=s(O,e)},e.initHighlighting=p,e.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",p,!1),addEventListener("load",p,!1)},e.registerLanguage=function(n,a){var t=E[n]=a(e);t.aliases&&t.aliases.forEach(function(e){y[e]=n})},e.listLanguages=function(){return v(E)},e.getLanguage=f,e.inherit=s,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(n,a,t){var i=e.inherit({className:"comment",begin:n,end:a,contains:[]},t||{});return i.contains.push(e.PHRASAL_WORDS_MODE),i.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),i},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e.registerLanguage("bash",function(e){var n={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},t={className:"string",begin:/'/,end:/'/};return{aliases:["sh","zsh"],lexemes:/\b-?[a-z\._]+\b/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,a,t,n]}}),e.registerLanguage("css",function(e){var n={begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}),e.registerLanguage("diff",function(e){return{aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}),e.registerLanguage("elixir",function(e){var n="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",a="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",t={className:"subst",begin:"#\\{",end:"}",lexemes:n,keywords:a},i={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},r={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},s=e.inherit(r,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),o=[i,e.HASH_COMMENT_MODE,s,r,{className:"symbol",begin:":(?!\\s)",contains:[i,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:n+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return t.contains=o,{lexemes:n,keywords:a,contains:o}}),e.registerLanguage("erlang-repl",function(e){return{keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),e.registerLanguage("erlang",function(e){var n="[a-z'][a-zA-Z0-9_']*",a="("+n+":"+n+"|"+n+")",t={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.COMMENT("%","$"),r={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+n+"/\\d+"},o={begin:a+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:a,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:"{",end:"}",relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},d={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},u={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},g={beginKeywords:"fun receive if try case",end:"end",keywords:t};g.contains=[i,s,e.inherit(e.APOS_STRING_MODE,{className:""}),g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];var m=[i,s,g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];o.contains[1].contains=m,l.contains=m,u.contains[1].contains=m;var b={className:"params",begin:"\\(",end:"\\)",contains:m};return{aliases:["erl"],keywords:t,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[b,e.inherit(e.TITLE_MODE,{begin:n})],starts:{end:";|\\.",keywords:t,contains:m}},i,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[b]},r,e.QUOTE_STRING_MODE,u,c,d,l,{begin:/\.$/}]}}),e.registerLanguage("http",function(e){var n="HTTP/[0-9\\.]+";return{aliases:["https"],illegal:"\\S",contains:[{begin:"^"+n,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+n+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:n},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),e.registerLanguage("javascript",function(e){var n="[A-Za-z$_][0-9A-Za-z$_]*",a={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},t={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},r={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,t,e.REGEXP_MODE];var s=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:a,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:s}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:s}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}),e.registerLanguage("json",function(e){var n={literal:"true false null"},a=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],t={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:n},i={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(t,{begin:/:/})],illegal:"\\S"},r={begin:"\\[",end:"\\]",contains:[e.inherit(t)],illegal:"\\S"};return a.splice(a.length,0,i,r),{contains:a,keywords:n,illegal:"\\S"}}),e.registerLanguage("xml",function(e){var n={endsWithParent:!0,illegal:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"|$)",end:">",keywords:{name:"style"},contains:[n],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[n],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},n]}]}}),e.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}),e.registerLanguage("sql",function(e){var n=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n]},e.C_BLOCK_COMMENT_MODE,n]}}),e})}]); \ No newline at end of file diff --git a/_epub/priv/app-990b83b456.js b/_epub/priv/app-990b83b456.js new file mode 100644 index 000000000..ec2f90e13 --- /dev/null +++ b/_epub/priv/app-990b83b456.js @@ -0,0 +1 @@ +!function(e){var n={};function a(t){if(n[t])return n[t].exports;var i=n[t]={i:t,l:!1,exports:{}};return e[t].call(i.exports,i,i.exports,a),i.l=!0,i.exports}a.m=e,a.c=n,a.d=function(e,n,t){a.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,"a",n),n},a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.p="",a(a.s=0)}([function(e,n,a){"use strict";var t,i=a(1),r=(t=i)&&t.__esModule?t:{default:t};r.default.configure({tabReplace:" "}),r.default.initHighlightingOnLoad()},function(e,n,a){!function(e){"object"==typeof window&&window||"object"==typeof self&&self;e(n)}(function(e){var n=[],a=Object.keys,t={},i={},r=/^(no-?highlight|plain|text)$/i,s=/\blang(?:uage)?-([\w-]+)\b/i,o=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,l="",c={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function d(e){return e.replace(/&/g,"&").replace(//g,">")}function u(e){return e.nodeName.toLowerCase()}function g(e,n){var a=e&&e.exec(n);return a&&0===a.index}function m(e){return r.test(e)}function b(e){var n,a={},t=Array.prototype.slice.call(arguments,1);for(n in e)a[n]=e[n];return t.forEach(function(e){for(n in e)a[n]=e[n]}),a}function _(e){var n=[];return function e(a,t){for(var i=a.firstChild;i;i=i.nextSibling)3===i.nodeType?t+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:t,node:i}),t=e(i,t),u(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:t,node:i}));return t}(e,0),n}function p(e){function n(e){return e&&e.source||e}function t(a,t){return new RegExp(n(a),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}!function i(r,s){if(!r.compiled){if(r.compiled=!0,r.keywords=r.keywords||r.beginKeywords,r.keywords){var o={},l=function(n,a){e.case_insensitive&&(a=a.toLowerCase()),a.split(" ").forEach(function(e){var a=e.split("|");o[a[0]]=[n,a[1]?Number(a[1]):1]})};"string"==typeof r.keywords?l("keyword",r.keywords):a(r.keywords).forEach(function(e){l(e,r.keywords[e])}),r.keywords=o}r.lexemesRe=t(r.lexemes||/\w+/,!0),s&&(r.beginKeywords&&(r.begin="\\b("+r.beginKeywords.split(" ").join("|")+")\\b"),r.begin||(r.begin=/\B|\b/),r.beginRe=t(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=t(r.end)),r.terminator_end=n(r.end)||"",r.endsWithParent&&s.terminator_end&&(r.terminator_end+=(r.end?"|":"")+s.terminator_end)),r.illegal&&(r.illegalRe=t(r.illegal)),null==r.relevance&&(r.relevance=1),r.contains||(r.contains=[]),r.contains=Array.prototype.concat.apply([],r.contains.map(function(e){return(n="self"===e?r:e).variants&&!n.cached_variants&&(n.cached_variants=n.variants.map(function(e){return b(n,{variants:null},e)})),n.cached_variants||n.endsWithParent&&[b(n)]||[n];var n})),r.contains.forEach(function(e){i(e,r)}),r.starts&&i(r.starts,s);var c=r.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([r.terminator_end,r.illegal]).map(n).filter(Boolean);r.terminators=c.length?t(c.join("|"),!0):{exec:function(){return null}}}}(e)}function f(e,n,a,i){function r(e,n,a,t){var i='')+n+(a?"":l)}function s(){E+=null!=_.subLanguage?function(){var e="string"==typeof _.subLanguage;if(e&&!t[_.subLanguage])return d(y);var n=e?f(_.subLanguage,y,!0,v[_.subLanguage]):h(y,_.subLanguage.length?_.subLanguage:void 0);return _.relevance>0&&(x+=n.relevance),e&&(v[_.subLanguage]=n.top),r(n.language,n.value,!1,!0)}():function(){var e,n,a,t,i,s,o;if(!_.keywords)return d(y);for(t="",n=0,_.lexemesRe.lastIndex=0,a=_.lexemesRe.exec(y);a;)t+=d(y.substring(n,a.index)),i=_,s=a,o=m.case_insensitive?s[0].toLowerCase():s[0],(e=i.keywords.hasOwnProperty(o)&&i.keywords[o])?(x+=e[1],t+=r(e[0],d(a[0]))):t+=d(a[0]),n=_.lexemesRe.lastIndex,a=_.lexemesRe.exec(y);return t+d(y.substr(n))}(),y=""}function o(e){E+=e.className?r(e.className,"",!0):"",_=Object.create(e,{parent:{value:_}})}function u(e,n){if(y+=e,null==n)return s(),0;var t=function(e,n){var a,t;for(a=0,t=n.contains.length;a")+'"');return y+=n,n.length||1}var m=w(e);if(!m)throw new Error('Unknown language: "'+e+'"');p(m);var b,_=i||m,v={},E="";for(b=_;b!==m;b=b.parent)b.className&&(E=r(b.className,"",!0)+E);var y="",x=0;try{for(var N,k,O=0;_.terminators.lastIndex=O,N=_.terminators.exec(n);)k=u(n.substring(O,N.index),N[0]),O=N.index+k;for(u(n.substr(O)),b=_;b.parent;b=b.parent)b.className&&(E+=l);return{relevance:x,value:E,language:e,top:_}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:d(n)};throw e}}function h(e,n){n=n||c.languages||a(t);var i={relevance:0,value:d(e)},r=i;return n.filter(w).forEach(function(n){var a=f(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>i.relevance&&(r=i,i=a)}),r.language&&(i.second_best=r),i}function v(e){return c.tabReplace||c.useBR?e.replace(o,function(e,n){return c.useBR&&"\n"===e?"
      ":c.tabReplace?n.replace(/\t/g,c.tabReplace):""}):e}function E(e){var a,t,r,o,l,g,b,p,E,y,x=function(e){var n,a,t,i,r=e.className+" ";if(r+=e.parentNode?e.parentNode.className:"",a=s.exec(r))return w(a[1])?a[1]:"no-highlight";for(n=0,t=(r=r.split(/\s+/)).length;n/g,"\n"):a=e,l=a.textContent,r=x?f(x,l,!0):h(l),(t=_(a)).length&&((o=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,a,t){var i=0,r="",s=[];function o(){return e.length&&a.length?e[0].offset!==a[0].offset?e[0].offset"}function c(e){r+=""}function g(e){("start"===e.event?l:c)(e.node)}for(;e.length||a.length;){var m=o();if(r+=d(t.substring(i,m[0].offset)),i=m[0].offset,m===e){s.reverse().forEach(c);do{g(m.splice(0,1)[0]),m=o()}while(m===e&&m.length&&m[0].offset===i);s.reverse().forEach(l)}else"start"===m[0].event?s.push(m[0].node):s.pop(),g(m.splice(0,1)[0])}return r+d(t.substr(i))}(t,_(o),l)),r.value=v(r.value),e.innerHTML=r.value,e.className=(g=e.className,b=x,p=r.language,E=b?i[b]:p,y=[g.trim()],g.match(/\bhljs\b/)||y.push("hljs"),-1===g.indexOf(E)&&y.push(E),y.join(" ").trim()),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function y(){if(!y.called){y.called=!0;var e=document.querySelectorAll("pre code");n.forEach.call(e,E)}}function w(e){return e=(e||"").toLowerCase(),t[e]||t[i[e]]}return e.highlight=f,e.highlightAuto=h,e.fixMarkup=v,e.highlightBlock=E,e.configure=function(e){c=b(c,e)},e.initHighlighting=y,e.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",y,!1),addEventListener("load",y,!1)},e.registerLanguage=function(n,a){var r=t[n]=a(e);r.aliases&&r.aliases.forEach(function(e){i[e]=n})},e.listLanguages=function(){return a(t)},e.getLanguage=w,e.inherit=b,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(n,a,t){var i=e.inherit({className:"comment",begin:n,end:a,contains:[]},t||{});return i.contains.push(e.PHRASAL_WORDS_MODE),i.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),i},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e.registerLanguage("bash",function(e){var n={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]};return{aliases:["sh","zsh"],lexemes:/\b-?[a-z\._]+\b/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,a,{className:"string",begin:/'/,end:/'/},n]}}),e.registerLanguage("css",function(e){var n={begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}),e.registerLanguage("diff",function(e){return{aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}),e.registerLanguage("elixir",function(e){var n="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",a="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",t={className:"subst",begin:"#\\{",end:"}",lexemes:n,keywords:a},i={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},r={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},s=e.inherit(r,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),o=[i,e.HASH_COMMENT_MODE,s,r,{className:"symbol",begin:":(?!\\s)",contains:[i,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:n+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return t.contains=o,{lexemes:n,keywords:a,contains:o}}),e.registerLanguage("erlang-repl",function(e){return{keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),e.registerLanguage("erlang",function(e){var n="[a-z'][a-zA-Z0-9_']*",a="("+n+":"+n+"|"+n+")",t={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.COMMENT("%","$"),r={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+n+"/\\d+"},o={begin:a+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:a,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:"{",end:"}",relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},d={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},u={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},g={beginKeywords:"fun receive if try case",end:"end",keywords:t};g.contains=[i,s,e.inherit(e.APOS_STRING_MODE,{className:""}),g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];var m=[i,s,g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];o.contains[1].contains=m,l.contains=m,u.contains[1].contains=m;var b={className:"params",begin:"\\(",end:"\\)",contains:m};return{aliases:["erl"],keywords:t,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[b,e.inherit(e.TITLE_MODE,{begin:n})],starts:{end:";|\\.",keywords:t,contains:m}},i,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[b]},r,e.QUOTE_STRING_MODE,u,c,d,l,{begin:/\.$/}]}}),e.registerLanguage("http",function(e){var n="HTTP/[0-9\\.]+";return{aliases:["https"],illegal:"\\S",contains:[{begin:"^"+n,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+n+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:n},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),e.registerLanguage("javascript",function(e){var n="[A-Za-z$_][0-9A-Za-z$_]*",a={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},t={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},r={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,t,e.REGEXP_MODE];var s=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:a,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:s}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:s}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}),e.registerLanguage("json",function(e){var n={literal:"true false null"},a=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],t={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:n},i={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(t,{begin:/:/})],illegal:"\\S"},r={begin:"\\[",end:"\\]",contains:[e.inherit(t)],illegal:"\\S"};return a.splice(a.length,0,i,r),{contains:a,keywords:n,illegal:"\\S"}}),e.registerLanguage("xml",function(e){var n={endsWithParent:!0,illegal:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"|$)",end:">",keywords:{name:"style"},contains:[n],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[n],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},n]}]}}),e.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}),e.registerLanguage("sql",function(e){var n=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n]},e.C_BLOCK_COMMENT_MODE,n]}}),e})}]); \ No newline at end of file diff --git a/_epub/yarn.lock b/_epub/yarn.lock new file mode 100644 index 000000000..3281cad82 --- /dev/null +++ b/_epub/yarn.lock @@ -0,0 +1,4899 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accord@^0.27.3: + version "0.27.3" + resolved "https://registry.yarnpkg.com/accord/-/accord-0.27.3.tgz#7fb9129709285caea84eb372c4e882031b7138e8" + dependencies: + convert-source-map "^1.5.0" + glob "^7.0.5" + indx "^0.2.3" + lodash.clone "^4.3.2" + lodash.defaults "^4.0.1" + lodash.flatten "^4.2.0" + lodash.merge "^4.4.0" + lodash.partialright "^4.1.4" + lodash.pick "^4.2.1" + lodash.uniq "^4.3.0" + resolve "^1.3.3" + semver "^5.3.0" + uglify-js "^2.8.22" + when "^3.7.8" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0, acorn@^5.2.1: + version "5.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" + +ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.5, ajv@^5.2.3, ajv@^5.3.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +ansi-cyan@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" + dependencies: + ansi-wrap "0.1.0" + +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + dependencies: + ansi-wrap "0.1.0" + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + +ansi-wrap@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" + dependencies: + arr-flatten "^1.0.1" + array-slice "^0.2.3" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1.js@^4.0.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^2.1.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" + +autoprefixer@^6.0.0: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.17.0, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-generator@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-es2015@^6.16.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-js@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.0.tgz#a46941cb5fb492156b3d6a656e06c35364e3e66e" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000794" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000794.tgz#bbe71104fa277ce4b362387d54905e8b88e52f35" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@4.1.9: + version "4.1.9" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301" + dependencies: + source-map "0.5.x" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" + +clone@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + +cloneable-readable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117" + dependencies: + inherits "^2.0.1" + process-nextick-args "^1.0.6" + through2 "^2.0.1" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + dependencies: + color-name "^1.1.1" + +color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + +convert-source-map@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + +debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-file@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + dependencies: + fs-exists-sync "^0.1.0" + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +duplexify@^3.5.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +electron-to-chromium@^1.2.7: + version "1.3.31" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz#00d832cba9fe2358652b0c48a8816c8e3a037e9f" + +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +end-of-stream@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +errno@^0.1.1, errno@^0.1.3: + version "0.1.6" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.38" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-standard@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz#c061e4d066f379dc17cd562c64e819b4dd454591" + +eslint-import-resolver-node@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-module-utils@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" + dependencies: + debug "^2.6.8" + pkg-dir "^1.0.0" + +eslint-plugin-import@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-node@^5.1.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-5.2.1.tgz#80df3253c4d7901045ec87fa660a284e32bdca29" + dependencies: + ignore "^3.3.6" + minimatch "^3.0.4" + resolve "^1.3.3" + semver "5.3.0" + +eslint-plugin-promise@^3.0.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz#54b7658c8f454813dc2a870aff8152ec4969ba75" + +eslint-plugin-standard@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" + +eslint-scope@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@^4.0.0, eslint@^4.4.1: + version "4.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.16.0.tgz#934ada9e98715e1d7bbfd6f6f0519ed2fab35cc1" + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "^4.0.1" + text-table "~0.2.0" + +espree@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca" + dependencies: + acorn "^5.2.1" + acorn-jsx "^3.0.0" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + dependencies: + os-homedir "^1.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + dependencies: + homedir-polyfill "^1.0.1" + +extend-shallow@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" + dependencies: + kind-of "^1.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +external-editor@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fancy-log@^1.1.0, fancy-log@^1.2.0, fancy-log@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +findup-sync@^0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +first-chunk-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + dependencies: + readable-stream "^2.0.2" + +flagged-respawn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" + +flat-cache@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +fork-stream@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/fork-stream/-/fork-stream-0.0.4.tgz#db849fce77f6708a5f8f386ae533a0907b54ae70" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + dependencies: + globule "~0.1.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + dependencies: + gaze "^0.5.1" + +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + dependencies: + find-index "^0.1.1" + +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +globals@^11.0.1: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz#632644457f5f0e3ae711807183700ebf2e4633e4" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + dependencies: + sparkles "^1.0.0" + +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + +gulp-clean-css@^3.7.0: + version "3.9.2" + resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-3.9.2.tgz#b280e6f56bf8bee39e697e77aaa72d3e7e7d3bd5" + dependencies: + clean-css "4.1.9" + plugin-error "0.1.2" + through2 "2.0.3" + vinyl-sourcemaps-apply "0.2.1" + +gulp-eslint@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/gulp-eslint/-/gulp-eslint-4.0.1.tgz#9df256a802e8e6b32ee75b54f315dd2d8efd9edc" + dependencies: + eslint "^4.0.0" + fancy-log "^1.3.2" + plugin-error "^0.1.2" + +gulp-if@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/gulp-if/-/gulp-if-2.0.2.tgz#a497b7e7573005041caa2bc8b7dda3c80444d629" + dependencies: + gulp-match "^1.0.3" + ternary-stream "^2.0.1" + through2 "^2.0.1" + +gulp-less@^3.1.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/gulp-less/-/gulp-less-3.4.0.tgz#167e368139719fb3ba3c39369dd8293d24719b0b" + dependencies: + accord "^0.27.3" + less "2.6.x || ^2.7.1" + object-assign "^4.0.1" + plugin-error "^0.1.2" + replace-ext "^1.0.0" + through2 "^2.0.0" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-load-plugins@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/gulp-load-plugins/-/gulp-load-plugins-1.5.0.tgz#4c419f7e5764d9a0e33061bab9618f81b73d4171" + dependencies: + array-unique "^0.2.1" + fancy-log "^1.2.0" + findup-sync "^0.4.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + micromatch "^2.3.8" + resolve "^1.1.7" + +gulp-match@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/gulp-match/-/gulp-match-1.0.3.tgz#91c7c0d7f29becd6606d57d80a7f8776a87aba8e" + dependencies: + minimatch "^3.0.3" + +gulp-plumber@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gulp-plumber/-/gulp-plumber-1.2.0.tgz#18ea03912c9ee483f8a5499973b5954cd90f6ad8" + dependencies: + chalk "^1.1.3" + fancy-log "^1.3.2" + plugin-error "^0.1.2" + through2 "^2.0.3" + +gulp-rev@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/gulp-rev/-/gulp-rev-8.1.1.tgz#b1106bfaa5653106a11d1612eb0cffde540cb196" + dependencies: + modify-filename "^1.1.0" + plugin-error "^0.1.2" + rev-hash "^2.0.0" + rev-path "^2.0.0" + sort-keys "^2.0.0" + through2 "^2.0.0" + vinyl "^2.1.0" + vinyl-file "^3.0.0" + +gulp-size@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/gulp-size/-/gulp-size-2.1.0.tgz#1c2b64f17f9071d5abd99d154b7b3481f8fba128" + dependencies: + chalk "^1.0.0" + gulp-util "^3.0.0" + gzip-size "^3.0.0" + object-assign "^4.0.1" + pretty-bytes "^3.0.1" + stream-counter "^1.0.0" + through2 "^2.0.0" + +gulp-uglify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gulp-uglify/-/gulp-uglify-3.0.0.tgz#0df0331d72a0d302e3e37e109485dddf33c6d1ca" + dependencies: + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash "^4.13.1" + make-error-cause "^1.1.1" + through2 "^2.0.0" + uglify-js "^3.0.5" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-util@^3.0.0, gulp-util@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +gzip-size@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" + dependencies: + duplexer "^0.1.1" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +highlight.js@isagalaev/highlight.js#9.12.0: + version "9.12.0" + resolved "https://codeload.github.com/isagalaev/highlight.js/tar.gz/16ab6f3b5f9a432e6e8825807103b6bb5cefef15" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +iconv-lite@^0.4.17: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +ignore@^3.3.3, ignore@^3.3.6: + version "3.3.7" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +indx@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/indx/-/indx-0.2.3.tgz#15dcf56ee9cf65c0234c513c27fbd580e70fbc50" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +interpret@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + +invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-odd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-1.0.0.tgz#3b8a932eb028b3775c39bb09e91767accdb69088" + dependencies: + is-number "^3.0.0" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + dependencies: + unc-path-regex "^0.1.2" + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + +is-windows@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +js-base64@^2.1.9: + version "2.4.2" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.2.tgz#1896da010ef8862f385d8887648e9b6dc4a7a2e9" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.9.1: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kind-of@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0, kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" + dependencies: + set-getter "^0.1.0" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +less-plugin-autoprefix@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/less-plugin-autoprefix/-/less-plugin-autoprefix-1.5.1.tgz#bca4e5b2e48cac6965a1783142e3b32c3c00ce07" + dependencies: + autoprefixer "^6.0.0" + postcss "^5.0.0" + +less-plugin-npm-import@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz#823e6986c93318a98171ca858848b6bead55bf3e" + dependencies: + promise "~7.0.1" + resolve "~1.1.6" + +"less@2.6.x || ^2.7.1": + version "2.7.3" + resolved "https://registry.yarnpkg.com/less/-/less-2.7.3.tgz#cc1260f51c900a9ec0d91fb6998139e02507b63b" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.2.11" + mkdirp "^0.5.0" + promise "^7.1.1" + request "2.81.0" + source-map "^0.5.3" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +liftoff@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" + dependencies: + extend "^3.0.0" + findup-sync "^2.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.clone@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash.defaults@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.merge@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" + +lodash.partialright@^4.1.4: + version "4.2.1" + resolved "https://registry.yarnpkg.com/lodash.partialright/-/lodash.partialright-4.2.1.tgz#0130d80e83363264d40074f329b8a3e7a8a1cc4b" + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.some@^4.2.2: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.uniq@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" + dependencies: + pify "^3.0.0" + +make-error-cause@^1.1.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" + dependencies: + make-error "^1.2.0" + +make-error@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.2.tgz#8762ffad2444dd8ff1f7c819629fa28e24fea1c4" + +make-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b" + dependencies: + kind-of "^3.1.0" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +micromatch@^2.1.5, micromatch@^2.3.7, micromatch@^2.3.8: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.0.4: + version "3.1.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.5.tgz#d05e168c206472dfbca985bfef4f57797b4cd4ba" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.0" + define-property "^1.0.0" + extend-shallow "^2.0.1" + extglob "^2.0.2" + fragment-cache "^0.2.1" + kind-of "^6.0.0" + nanomatch "^1.2.5" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + dependencies: + mime-db "~1.30.0" + +mime@^1.2.11: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mixin-deep@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.0.tgz#47a8732ba97799457c8c1eca28f95132d7e8150a" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +modify-filename@^1.0.0, modify-filename@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/modify-filename/-/modify-filename-1.1.0.tgz#9a2dec83806fbb2d975f22beec859ca26b393aa1" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +nan@^2.3.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" + +nanomatch@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.7.tgz#53cd4aa109ff68b7f869591fdc9d10daeeea3e79" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + is-odd "^1.0.0" + kind-of "^5.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natives@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.1.tgz#011acce1f7cbd87f7ba6b3093d6cd9392be1c574" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +node-libs-browser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +once@^1.3.0, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-map@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-filepath@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +pbkdf2@^3.0.3: + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +plugin-error@0.1.2, plugin-error@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" + dependencies: + ansi-cyan "^0.1.1" + ansi-red "^0.1.1" + arr-diff "^1.0.1" + arr-union "^2.0.1" + extend-shallow "^1.1.2" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +postcss-value-parser@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + +postcss@^5.0.0, postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +pretty-bytes@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf" + dependencies: + number-is-nan "^1.0.0" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + +private@^0.1.6, private@^0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@^1.0.6, process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +progress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +promise@~7.0.1: + version "7.0.4" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.0.4.tgz#363e84a4c36c8356b890fed62c91ce85d02ed539" + dependencies: + asap "~2.0.3" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +rc@^1.1.7: + version "1.2.4" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.4.tgz#a0f606caae2a3b862bbd0ef85482c0125b315fa3" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +regenerate@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.0.tgz#42f83e39771622df826b02af176525d6a5f157f9" + dependencies: + extend-shallow "^2.0.1" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.3, resolve@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + dependencies: + path-parse "^1.0.5" + +resolve@~1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rev-hash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/rev-hash/-/rev-hash-2.0.0.tgz#7720a236ed0c258df3e64bec03ec048b05b924c4" + +rev-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/rev-path/-/rev-path-2.0.0.tgz#10c978e824d76ce7dd1f7e66e88f50f5e71a0a6a" + dependencies: + modify-filename "^1.0.0" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +run-sequence@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-2.2.1.tgz#1ce643da36fd8c7ea7e1a9329da33fc2b8898495" + dependencies: + chalk "^1.1.3" + fancy-log "^1.3.2" + plugin-error "^0.1.2" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +semver@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +semver@^4.1.0: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-getter@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" + dependencies: + to-object-path "^0.3.0" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.10" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^2.0.0" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-resolve@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + dependencies: + atob "^2.0.0" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@0.5.x, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-consume@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" + +stream-counter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-1.0.0.tgz#91cf2569ce4dc5061febcd7acb26394a5a114751" + +stream-http@^2.7.2: + version "2.8.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.3" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom-buf@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" + dependencies: + is-utf8 "^0.2.1" + +strip-bom-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + dependencies: + first-chunk-stream "^2.0.0" + strip-bom "^2.0.0" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0, supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + dependencies: + has-flag "^2.0.0" + +table@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +ternary-stream@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ternary-stream/-/ternary-stream-2.0.1.tgz#064e489b4b5bf60ba6a6b7bc7f2f5c274ecf8269" + dependencies: + duplexify "^3.5.0" + fork-stream "^0.0.4" + merge-stream "^1.0.0" + through2 "^2.0.1" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2@2.0.3, through2@^2.0.0, through2@^2.0.1, through2@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + +timers-browserify@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" + dependencies: + setimmediate "^1.0.4" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.1.tgz#15358bee4a2c83bd76377ba1dc049d0f18837aae" + dependencies: + define-property "^0.2.5" + extend-shallow "^2.0.1" + regex-not "^1.0.0" + +tough-cookie@~2.3.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + dependencies: + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uglify-js@^2.8.22, uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@^3.0.5: + version "3.3.8" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.8.tgz#51e9a5db73afb53ac98603d08224edcd0be45fd8" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8" + dependencies: + define-property "^0.2.5" + isobject "^3.0.0" + lazy-cache "^2.0.2" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +uuid@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-file@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-3.0.0.tgz#b104d9e4409ffa325faadd520642d0a3b488b365" + dependencies: + graceful-fs "^4.1.2" + pify "^2.3.0" + strip-bom-buf "^1.0.0" + strip-bom-stream "^2.0.0" + vinyl "^2.0.1" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl-sourcemaps-apply@0.2.1, vinyl-sourcemaps-apply@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + dependencies: + source-map "^0.5.1" + +vinyl@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^2.0.1, vinyl@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + +webpack-sources@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-stream@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/webpack-stream/-/webpack-stream-4.0.0.tgz#f3673dd907d6d9b1ea7bf51fcd1db85b5fd9e0f2" + dependencies: + gulp-util "^3.0.7" + lodash.clone "^4.3.2" + lodash.some "^4.2.2" + memory-fs "^0.4.1" + through "^2.3.8" + vinyl "^2.1.0" + webpack "^3.4.1" + +webpack@^3.4.1, webpack@^3.5.2: + version "3.10.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +when@^3.7.8: + version "3.7.8" + resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.12, which@^1.2.14, which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" From 8ee45b237e799a8f3f70aea1817b8886f1159334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 23 Jan 2018 13:22:52 +0100 Subject: [PATCH 0803/1761] Use start_supervised!, require Elixir v1.6.0 --- getting-started/mix-otp/agent.markdown | 14 ++++++-------- .../mix-otp/dynamic-supervisor.markdown | 2 +- getting-started/mix-otp/ets.markdown | 4 +++- getting-started/mix-otp/genserver.markdown | 10 ++++++++-- .../mix-otp/introduction-to-mix.markdown | 2 +- .../mix-otp/supervisor-and-application.markdown | 4 +++- 6 files changed, 22 insertions(+), 14 deletions(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 95d9b2cc2..8bfd70003 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -58,7 +58,7 @@ defmodule KV.BucketTest do use ExUnit.Case, async: true test "stores values by key" do - {:ok, bucket} = start_supervised KV.Bucket + {:ok, bucket} = KV.Bucket.start_link([]) assert KV.Bucket.get(bucket, "milk") == nil KV.Bucket.put(bucket, "milk", 3) @@ -67,18 +67,16 @@ defmodule KV.BucketTest do end ``` -Our first test starts a new `KV.Bucket` using the `start_supervised` function and performs some `get/2` and `put/3` operations on it, asserting the result. We don't need to explicitly stop the agent because we used `start_supervised/2` and that takes care of automatically terminating the processes under test when the test finishes. +Our first test starts a new `KV.Bucket` by calling the `start_link/1` and passing an empty list of options. Then we performs some `get/2` and `put/3` operations on it, asserting the result. Also note the `async: true` option passed to `ExUnit.Case`. This option makes the test case run in parallel with other `:async` test cases by using multiple cores in our machine. This is extremely useful to speed up our test suite. However, `:async` must *only* be set if the test case does not rely on or change any global values. For example, if the test requires writing to the filesystem or access a database, keep it synchronous (omit the `:async` option) to avoid race conditions between tests. Async or not, our new test should obviously fail, as none of the functionality is implemented in the module being tested: ``` -** (ArgumentError) The module KV.Bucket was given as a child to a supervisor but it does not implement child_spec/1 +** (UndefinedFunctionError) function Foo.start_link/0 is undefined (module Foo is not available) ``` -Since the module has not yet been defined, the `child_spec/1` does not yet exist. - In order to fix the failing test, let's create a file at `lib/kv/bucket.ex` with the contents below. Feel free to give a try at implementing the `KV.Bucket` module yourself using agents before peeking at the implementation below. ```elixir @@ -108,9 +106,9 @@ defmodule KV.Bucket do end ``` -The first step in our implementation is to call `use Agent`. By doing so, it will define a `child_spec/1` function containing the exact steps to start our process. +The first step in our implementation is to call `use Agent`. -Then we define a `start_link/1` function, which will effectively start the agent. The `start_link/1` function always receives a list of options, but we don't plan on using it right now. We then proceed to call `Agent.start_link/1`, which receives an anonymous function that returns the Agent initial state. +Then we define a `start_link/1` function, which will effectively start the agent. It is a convention to define a `start_link/1` function that always accepts a list of options. We don't plan on using any option right now, but we might later on. We then proceed to call `Agent.start_link/1`, which receives an anonymous function that returns the Agent initial state. We are keeping a map inside the agent to store our keys and values. Getting and putting values on the map is done with the Agent API and the capture operator `&`, introduced in [the Getting Started guide](/getting-started/modules-and-functions.html#function-capturing). @@ -127,7 +125,7 @@ defmodule KV.BucketTest do use ExUnit.Case, async: true setup do - {:ok, bucket} = start_supervised(KV.Bucket) + {:ok, bucket} = KV.Bucket.start_link([]) %{bucket: bucket} end diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index f351b18a5..7c7c0ad71 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -179,7 +179,7 @@ So far we have been starting one registry per test to ensure they are isolated: ```elixir setup do - {:ok, registry} = start_supervised(KV.Registry) + registry = start_supervised!(KV.Registry) %{registry: registry} end ``` diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index f15c53527..eef854553 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -128,11 +128,13 @@ The changes we have performed above have broken our tests because the registry r ```elixir setup context do - {:ok, _} = start_supervised({KV.Registry, name: context.test}) + _ = start_supervised!({KV.Registry, name: context.test}) %{registry: context.test} end ``` +Since each test has a unique name, we use the test name to name our registries. This way, we no longer need to pass the registry PID around, instead we identify it by the test name. Also note we assigned the result of `start_supervised!` to underscore (`_`). This idiom is often used to signal that we are not interested in the result of `start_supervised!`. + Once we change `setup`, some tests will continue to fail. You may even notice tests pass and fail inconsistently between runs. For example, the "spawns buckets" test: ```elixir diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 39e7b56cb..b15ac1f9f 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -135,7 +135,7 @@ defmodule KV.RegistryTest do use ExUnit.Case, async: true setup do - {:ok, registry} = start_supervised KV.Registry + registry = start_supervised!(KV.Registry) %{registry: registry} end @@ -153,7 +153,13 @@ end Our test should pass right out of the box! -Once again, ExUnit will take care of shutting down the registry after every test since we used `start_supervised` to start it. If there is a need to stop a `GenServer` as part of the application logic, one can use the `GenServer.stop/1` function: +There is one important difference between the `setup` block we wrote for `KV.Registry` and the one we wrote for `KV.Bucket`. Instead of starting the registry by hand by calling `KV.Registry.start_link/1`, we instead called [the `start_supervised!/1` function](https://hexdocs.pm/ex_unit/ExUnit.Callbacks.html#start_supervised/2), passing the `KV.Registry` module. + +The `start_supervised!` function will do the job of starting the `KV.Registry` process by calling `start_link/1`. The advantage of using `start_supervised!` is that ExUnit will guarantee that the registry process will be shutdown before the next test starts. In other words, it helps guarantee the state of one test is not going to interfere with the next one in case they depend on shared resources. + +When starting processes during your tests, we should always prefer to use `start_supervised!`. We recommend you to change the previous setup block in `bucket_test.exs` to use `start_supervised!` too. + +If there is a need to stop a `GenServer` as part of the application logic, one can use the `GenServer.stop/1` function: ```elixir ## Client API diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 7b046594a..710e87274 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -39,7 +39,7 @@ In order to build our key-value application, we are going to use three main tool In this chapter, we will create our first project using Mix and explore different features in OTP, Mix and ExUnit as we go. -> This guide requires Elixir v1.5.0 or later. You can check your Elixir version with `elixir --version` and install a more recent version if required by following the steps described in [the first chapter of the Getting Started guide](/install.html). +> This guide requires Elixir v1.6.0 or later. You can check your Elixir version with `elixir --version` and install a more recent version if required by following the steps described in [the first chapter of the Getting Started guide](/install.html). > > If you have any questions or improvements to the guide, please reach discussion channels such as the [Elixir Forum](https://elixirforum.com) or the [issues tracker](https://github.com/elixir-lang/elixir-lang.github.com/issues). Your input is really important to help us guarantee the guides are accessible and up to date! > diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 3ef408ae8..da4a9401e 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -41,7 +41,7 @@ Our supervisor has a single child so far: `KV.Registry`. After we define a list The supervision strategy dictates what happens when one of the children crashes. `:one_for_one` means that if a child dies, it will be the only one restarted. Since we have only one child now, that's all we need. The `Supervisor` behaviour supports many different strategies and we will discuss them in this chapter. -Once the supervisor starts, it will traverse the list of children and it will invoke the `child_spec/1` function on each module. We heard about the `child_spec/1` function in the Agent chapter, when we called `start_supervised(KV.Bucket)` without defining the module. +Once the supervisor starts, it will traverse the list of children and it will invoke the `child_spec/1` function on each module. The `child_spec/1` function returns the child specification which describes how to start the process, if the process is a worker or a supervisor, if the process is temporary, transient or permanent and so on. The `child_spec/1` function is automatically defined when we `use Agent`, `use GenServer`, `use Supervisor`, etc. Let's give it a try in the terminal with `iex -S mix`: @@ -60,6 +60,8 @@ We will learn those details as we move forward on this guide. If you would rathe After the supervisor retrieves all child specifications, it proceeds to start its children one by one, in the order they were defined, using the information in the `:start` key in the child specification. For our current specification, it will call `KV.Registry.start_link([])`. +In the previous chapter, we have used `start_supervised!` to start the registry during our tests. Internally, the `start_supervised!` function starts the registry under a supervisor defined by the ExUnit framework. By defining our own supervisor, we provide more structure on how we initialize, shutdown and supervise registries in your applications, aligning our production code and tests best practices. + So far `start_link/1` has always received an empty list of options. It is time we change that. ## Naming processes From 8ee55ba2bb6f8c42f9d45aa693b1e4942ad7e97e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 23 Jan 2018 15:25:37 +0100 Subject: [PATCH 0804/1761] Migrate to DynamicSupervisor --- _data/getting-started.yml | 2 +- .../mix-otp/dynamic-supervisor.markdown | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/_data/getting-started.yml b/_data/getting-started.yml index 0613080b8..f4b9d0d15 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -83,7 +83,7 @@ - title: Supervisor and Application slug: supervisor-and-application - - title: Simple one for one supervisors + - title: DynamicSupervisor slug: dynamic-supervisor - title: ETS diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 7c7c0ad71..68cbf1c4d 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -1,6 +1,6 @@ --- layout: getting-started -title: Simple one for one supervisors +title: Dynamic supervisors --- # {{ page.title }} @@ -48,7 +48,7 @@ Since the bucket terminated, the registry went away with it, and our test fails test/kv/registry_test.exs:33: (test) ``` -We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. There is one supervisor strategy, called `:simple_one_for_one`, that is the perfect fit for such situations: it allows us to specify a worker template and supervise many children based on this template. With this strategy, no workers are started during the supervisor initialization. Instead, a worker is started manually via the `Supervisor.start_child/2` function. +We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. Opposite to the previous Supervisor we defined, the children are not known upfront, but they are rather started dynamically. For those situations, we use a `DynamicSupervisor`. The `DynamicSupervisor` does not expect a list of children during initialization, instead each works is started manually via `DynamicSupervisor.start_child/2`. ## The bucket supervisor @@ -56,28 +56,27 @@ Let's define our `KV.BucketSupervisor` in `lib/kv/bucket_supervisor.ex` as follo ```elixir defmodule KV.BucketSupervisor do - use Supervisor + use DynamicSupervisor # A simple module attribute that stores the supervisor name @name KV.BucketSupervisor def start_link(_opts) do - Supervisor.start_link(__MODULE__, :ok, name: @name) + DynamicSupervisor.start_link(__MODULE__, :ok, name: @name) end def start_bucket do - Supervisor.start_child(@name, []) + Supervisor.start_child(@name, KV.Bucket) end def init(:ok) do - Supervisor.init([KV.Bucket], strategy: :simple_one_for_one) + # We just init the supervisor without specifying the children + DynamicSupervisor.init(strategy: :one_for_one) end end ``` -There are two changes in this supervisor compared to the first one. - -First of all, we have decided to give the supervisor a local name of `KV.BucketSupervisor`. While we could have passed the `opts` received on `start_link/1` to the supervisor, we chose to hard code the name for simplicity. Note this approach has downsides. For example, you wouldn't be able to start multiple instances of the `KV.BucketSupervisor` during tests, as they would conflict on the name. In this case, we will just allow all registries to use the same bucket supervisor at once, that won't be a problem since children of a simple one for one supervisor don't interfere with one another. +Note we have decided to give the supervisor a local name of `KV.BucketSupervisor`. While we could have passed the `opts` received on `start_link/1` to the supervisor, we chose to hard code the name for simplicity. Note this approach has downsides. For example, you wouldn't be able to start multiple instances of the `KV.BucketSupervisor` during tests, as they would conflict on the name. In this case, we will just allow all registries to use the same bucket supervisor at once, that won't be a problem since children of a dynamic supervisor don't interfere with one another. We have also defined a `start_bucket/0` function that will start a bucket as a child of our supervisor named `KV.BucketSupervisor`. `start_bucket/0` is the function we are going to invoke instead of calling `KV.Bucket.start_link/1` directly in the registry. From 16b2f9a6b06fab71f74df441b5a0c9352c29002e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 23 Jan 2018 15:52:01 +0100 Subject: [PATCH 0805/1761] Add a section on automatic code formatting --- .../mix-otp/introduction-to-mix.markdown | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 710e87274..c0225de4b 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -64,6 +64,7 @@ $ mix new kv --module KV Mix will create a directory named `kv` with a few files in it: * creating README.md + * creating .formatter.exs * creating .gitignore * creating mix.exs * creating config @@ -239,6 +240,18 @@ This shortcut will be extremely useful as we build our project, allowing us to q Finally, the stacktrace relates to the failure itself, giving information about the test and often the place the failure was generated from within the source files. +## Automatic code formatting + +One of the files generated by `mix new` is the `.formatter.exs`. Elixir ships with a code formatter that is capable of automatically formatting our codebase according to consistent style. The formatter is triggered with the `mix format` task. The generated `.formatter.exs` file configures which files should be formatted when `mix format` runs. + +To give the formatter a try, change a file in the `lib` or `test` directories to include extra spaces or extra newlines, such as `def hello do`, and then run `mix format`. + +Most editors provide built-in integration with the formatter, allowing a file to be formatted on save or via a chosen keybinding. If you are learning Elixir, editor integration gives you useful and quick feedback when learning the Elixir syntax. + +For companies and teams, we recommend developers to run `mix format --check-formatted` on their continuous integration servers, ensuring all current and future code follows the standard. + +You can learn more about the code formatter by checking [the format task documentation](https://hexdocs.pm/mix/Mix.Tasks.Format.html) or by reading [the release announcement for Elixir v1.6](https://elixir-lang.org/blog/2018/01/17/elixir-v1-6-0-released/), the first version to include the formatter. + ## Environments Mix supports the concept of "environments". They allow a developer to customize compilation and other options for specific scenarios. By default, Mix understands three environments: From 510b59e696818ec6fca4b3a1eb02e1bee84e2003 Mon Sep 17 00:00:00 2001 From: Hari Yerramsetty Date: Wed, 24 Jan 2018 10:49:53 -0500 Subject: [PATCH 0806/1761] Update module name from Mixfile to MixProject in Mix and OTP section (#1078) --- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index c0225de4b..08a4b63d8 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -84,7 +84,7 @@ Let's take a brief look at those generated files. A file named `mix.exs` was generated inside our new project folder (`kv`) and its main responsibility is to configure our project. Let's take a look at it: ```elixir -defmodule KV.Mixfile do +defmodule KV.MixProject do use Mix.Project def project do From 6a535b74cef1c9f01082611253499a36afd6625a Mon Sep 17 00:00:00 2001 From: Nathan Long Date: Thu, 25 Jan 2018 05:14:35 -0500 Subject: [PATCH 0807/1761] Fix old reference to `simple_one_for_one` (#1079) The next page actually covers dynamic supervisors. --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index da4a9401e..f9c6b9031 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -237,4 +237,4 @@ When we say "project" you should think about Mix. Mix is the tool that manages y When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications and how they relate to booting and shutting down of your system as a whole in the [docs for the Application module](https://hexdocs.pm/elixir/Application.html). -Next let's learn about one special type of supervisor that is designed to start and shut down children dynamically, called simple one for one. +Next let's learn about one special type of supervisor that is designed to start and shut down children dynamically, called dynamic supervisors. From af466ae6863f5ad475345f813b0be663b654988f Mon Sep 17 00:00:00 2001 From: Alex Muscar Date: Thu, 25 Jan 2018 21:18:20 +0000 Subject: [PATCH 0808/1761] Fix typo in the code sample for DynamicSupervisors (#1080) --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 68cbf1c4d..64d2edf0a 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -66,7 +66,7 @@ defmodule KV.BucketSupervisor do end def start_bucket do - Supervisor.start_child(@name, KV.Bucket) + DynamicSupervisor.start_child(@name, KV.Bucket) end def init(:ok) do From c9cda58e3ba4ea78683076f79f812717734c8282 Mon Sep 17 00:00:00 2001 From: Pick a Tag <31210931+pickatag@users.noreply.github.com> Date: Fri, 26 Jan 2018 01:46:07 +0100 Subject: [PATCH 0809/1761] Minor change in output (#1081) Minor change in how test results are shown --- getting-started/mix-otp/introduction-to-mix.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 08a4b63d8..2a68e4150 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -196,7 +196,7 @@ This file will be required by Mix every time before we run our tests. We can run .. Finished in 0.04 seconds - 2 tests, 0 failures + 1 doctest, 1 test, 0 failures Randomized with seed 540224 @@ -225,7 +225,7 @@ Now run `mix test` again (notice this time there will be no compilation): . Finished in 0.05 seconds -2 tests, 1 failure +1 doctest, 1 test, 1 failure ``` For each failure, ExUnit prints a detailed report, containing the test name with the test case, the code that failed and the values for the left side and right side (rhs) of the `==` operator. From 2165f6b065edfcd176a494c2a02e52e0da626a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Gim=C3=A9nez?= Date: Fri, 26 Jan 2018 05:54:37 -0300 Subject: [PATCH 0810/1761] Last Raspbian release and https protocol (#1082) --- install.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.markdown b/install.markdown index 8d11a29c1..5e8fcf338 100644 --- a/install.markdown +++ b/install.markdown @@ -63,12 +63,12 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel ### Raspberry Pi -If necessary, replace "jessie" with the name of your Raspbian release. +If necessary, replace "stretch" with the name of your Raspbian release. * The Erlang Solutions repository has a prebuilt package for armhf. This saves a significant amount of time in comparison to recompiling natively * Get Erlang key - * `echo "deb http://packages.erlang-solutions.com/debian jessie contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` - * Run: `wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc` + * `echo "deb https://packages.erlang-solutions.com/debian stretch contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` + * Run: `wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc` * Add to keychain: `sudo apt-key add erlang_solutions.asc` * Install Elixir * Update apt to latest: `sudo apt update` From 7fc9d038d91b307b7b993027aabafb8f4e357b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 29 Jan 2018 18:09:24 -0200 Subject: [PATCH 0811/1761] Release v1.6.1 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 4e9b97632..e6abb95f4 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -32,5 +32,5 @@ v1_5: v1_6: name: v1.6 - version: 1.6.0 + version: 1.6.1 docs_zip: true \ No newline at end of file diff --git a/elixir.csv b/elixir.csv index ef697bbc0..45d449d5f 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.6.1,https://github.com/elixir-lang/elixir/releases/download/v1.6.1/Precompiled.zip,release,1,93ac5a729e69cb47ee672d66f7cffcb9f3e669a2,2c200f82093b841966c2b59bdc1118b3eaa1aa774087ed9c93c4debcf286785eca3a20733689e5c3b04feed9581964273d6d306aec84b4056206effbd124d7c4 1.6.0,https://github.com/elixir-lang/elixir/releases/download/v1.6.0/Precompiled.zip,release,1,ecb2db40e830c59e77f710f000c18cc002615d4b,6de9a310d8bea54bacc8682f6dd49cd7440aa4c1be3439f9af8a1edf0c3d5bdf36b4757c278e60ffaabcaea8942fe72dd6bcd36efe2fea7606f69fed6d4d8ecc 1.5.3,https://github.com/elixir-lang/elixir/releases/download/v1.5.3/Precompiled.zip,release,1,db8ad5da88751d55830a541527ef767038077625,be33c8f29e04d5367b59fc5329a8d04dfc1e9fdff0aaffe7c015a4098dbcb4eaad8395aafc5bfc1b75147c0b79a0c9a4bc28a72d9d1d4187891f4b9f025054e7 1.5.2,https://github.com/elixir-lang/elixir/releases/download/v1.5.2/Precompiled.zip,release,1,d5e900d3a06d773a070404f51e6c7eb7882f2af8,44bf503bd369e24bb1f07f918c84ea53b0084bf126cba7492a339a6d1390a316f66394f91fc784e57d7e88f84f2e51656f00116921f6ba106bfbe135f5d8ae42 From 5243912a30a685d31543d079c85f31cc26b0e6ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 29 Jan 2018 18:18:23 -0200 Subject: [PATCH 0812/1761] Simplify use of the DynamicSupervisor --- .../mix-otp/dynamic-supervisor.markdown | 61 +++++-------------- .../mix-otp/introduction-to-mix.markdown | 2 +- 2 files changed, 17 insertions(+), 46 deletions(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 64d2edf0a..654344066 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -52,40 +52,24 @@ We are going to solve this issue by defining a new supervisor that will spawn an ## The bucket supervisor -Let's define our `KV.BucketSupervisor` in `lib/kv/bucket_supervisor.ex` as follows: +Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor` in `lib/kv/application.ex` as follows: -```elixir -defmodule KV.BucketSupervisor do - use DynamicSupervisor - - # A simple module attribute that stores the supervisor name - @name KV.BucketSupervisor - - def start_link(_opts) do - DynamicSupervisor.start_link(__MODULE__, :ok, name: @name) - end - - def start_bucket do - DynamicSupervisor.start_child(@name, KV.Bucket) - end +```elixir def init(:ok) do - # We just init the supervisor without specifying the children - DynamicSupervisor.init(strategy: :one_for_one) + children = [ + {KV.Registry, name: KV.Registry}, + {DynamicSupervisor, name: KV.BucketSupervisor, strategy: :one_for_one} + ] + + Supervisor.init(children, strategy: :one_for_one) end -end ``` -Note we have decided to give the supervisor a local name of `KV.BucketSupervisor`. While we could have passed the `opts` received on `start_link/1` to the supervisor, we chose to hard code the name for simplicity. Note this approach has downsides. For example, you wouldn't be able to start multiple instances of the `KV.BucketSupervisor` during tests, as they would conflict on the name. In this case, we will just allow all registries to use the same bucket supervisor at once, that won't be a problem since children of a dynamic supervisor don't interfere with one another. - -We have also defined a `start_bucket/0` function that will start a bucket as a child of our supervisor named `KV.BucketSupervisor`. `start_bucket/0` is the function we are going to invoke instead of calling `KV.Bucket.start_link/1` directly in the registry. - -Run `iex -S mix` so we can give our new supervisor a try: +Run `iex -S mix` so we can give our dynamic supervisor a try: ```iex -iex> {:ok, _} = KV.BucketSupervisor.start_link([]) -{:ok, #PID<0.70.0>} -iex> {:ok, bucket} = KV.BucketSupervisor.start_bucket +iex> {:ok, bucket} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) {:ok, #PID<0.72.0>} iex> KV.Bucket.put(bucket, "eggs", 3) :ok @@ -93,14 +77,16 @@ iex> KV.Bucket.get(bucket, "eggs") 3 ``` -We are almost ready to use the simple one for one supervisor in our application. The first step is to change the registry to invoke `start_bucket`: +`DynamicSupervisor.start_child/2` expects the name of the supervisor and the child specification of the child to be started. + +The last step is to change the registry to use the dynamic supervisor: ```elixir def handle_cast({:create, name}, {names, refs}) do if Map.has_key?(names, name) do {:noreply, {names, refs}} else - {:ok, pid} = KV.BucketSupervisor.start_bucket() + {:ok, pid} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) ref = Process.monitor(pid) refs = Map.put(refs, ref, name) names = Map.put(names, name, pid) @@ -109,19 +95,6 @@ We are almost ready to use the simple one for one supervisor in our application. end ``` -The second step is to make sure `KV.BucketSupervisor` is started when our application boots. We can do this by opening `lib/kv/supervisor.ex` and changing `init/1` to the following: - -```elixir - def init(:ok) do - children = [ - {KV.Registry, name: KV.Registry}, - KV.BucketSupervisor - ] - - Supervisor.init(children, strategy: :one_for_one) - end -``` - That's enough for our tests to pass but there is a resource leakage in our application. When a bucket terminates, the supervisor will start a new bucket in its place. After all, that's the role of the supervisor! However, when the supervisor restarts the new bucket, the registry does not know about it. So we will have an empty bucket in the supervisor that nobody can access! To solve this, we want to say that buckets are actually temporary. If they crash, regardless of the reason, they should not be restarted. @@ -160,7 +133,7 @@ So our last option is to go all in and pick the `:one_for_all` strategy: the sup ```elixir def init(:ok) do children = [ - KV.BucketSupervisor, + {DynamicSupervisor, name: KV.BucketSupervisor, strategy: :one_for_one}, {KV.Registry, name: KV.Registry} ] @@ -168,8 +141,6 @@ So our last option is to go all in and pick the `:one_for_all` strategy: the sup end ``` -To help developers remember how to work with Supervisors and its convenience functions, [Benjamin Tan Wei Hao](http://benjamintan.io/) has created a [Supervisor cheat sheet](https://raw.githubusercontent.com/benjamintanweihao/elixir-cheatsheets/master/Supervisor_CheatSheet.pdf). - There are two topics left before we move on to the next chapter. ## Shared state in tests @@ -185,7 +156,7 @@ end Since we have now changed our registry to use `KV.BucketSupervisor`, which is registered globally, our tests are now relying on this shared supervisor even though each test has its own registry. The question is: should we? -It depends. It is ok to rely on shared state as long as we depend only on a non-shared partition of this state. Although multiple registries may start buckets on the shared bucket supervisor, those buckets and registries are isolated from each other. We would only run into concurrency issues if we used a function like `Supervisor.count_children(KV.Bucket.Supervisor)` which would count all buckets from all registries, potentially giving different results when tests run concurrently. +It depends. It is ok to rely on shared state as long as we depend only on a non-shared partition of this state. Although multiple registries may start buckets on the shared bucket supervisor, those buckets and registries are isolated from each other. We would only run into concurrency issues if we used a function like `Supervisor.count_children(KV.BucketSupervisor)` which would count all buckets from all registries, potentially giving different results when tests run concurrently. Since we have relied only on a non-shared partition of the bucket supervisor so far, we don't need to worry about concurrency issues in our test suite. In case it ever becomes a problem, we can start a supervisor per test and pass it as an argument to the registry `start_link` function. diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 2a68e4150..956e20bed 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -39,7 +39,7 @@ In order to build our key-value application, we are going to use three main tool In this chapter, we will create our first project using Mix and explore different features in OTP, Mix and ExUnit as we go. -> This guide requires Elixir v1.6.0 or later. You can check your Elixir version with `elixir --version` and install a more recent version if required by following the steps described in [the first chapter of the Getting Started guide](/install.html). +> This guide requires Elixir v1.6.1 or later. You can check your Elixir version with `elixir --version` and install a more recent version if required by following the steps described in [the first chapter of the Getting Started guide](/install.html). > > If you have any questions or improvements to the guide, please reach discussion channels such as the [Elixir Forum](https://elixirforum.com) or the [issues tracker](https://github.com/elixir-lang/elixir-lang.github.com/issues). Your input is really important to help us guarantee the guides are accessible and up to date! > From 6825402e9a9260ae7843161e2d0bab358367fd7b Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 30 Jan 2018 13:37:31 +0300 Subject: [PATCH 0813/1761] Minor fix in the Agent chapter (#1083) --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 8bfd70003..56c192f7f 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -74,7 +74,7 @@ Also note the `async: true` option passed to `ExUnit.Case`. This option makes th Async or not, our new test should obviously fail, as none of the functionality is implemented in the module being tested: ``` -** (UndefinedFunctionError) function Foo.start_link/0 is undefined (module Foo is not available) +** (UndefinedFunctionError) function KV.Bucket.start_link/1 is undefined (module KV.Bucket is not available) ``` In order to fix the failing test, let's create a file at `lib/kv/bucket.ex` with the contents below. Feel free to give a try at implementing the `KV.Bucket` module yourself using agents before peeking at the implementation below. From 49e2de5f6dae05c56b0784133899e42dff71649d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 30 Jan 2018 21:54:53 -0200 Subject: [PATCH 0814/1761] Use proper filename in dynamic supervisor guide, closes #1084 --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 654344066..e6d85db93 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -52,7 +52,7 @@ We are going to solve this issue by defining a new supervisor that will spawn an ## The bucket supervisor -Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor` in `lib/kv/application.ex` as follows: +Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor` in `lib/kv/supervisor.ex` as follows: ```elixir From 62aa9c3f801d2f7b30f98917ea8e25a5111d16df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 1 Feb 2018 14:05:47 -0200 Subject: [PATCH 0815/1761] Clarify why we can start the dynamic supervisor directly --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index e6d85db93..9dbc09920 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -66,6 +66,8 @@ Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor` in end ``` +Note this time we didn't have to define a separate module that invokes `use DynamicSupervisor`. Instead we directly started it in our supervision tree. This is straight-forward to do with the `DynamicSupervisor` because it doesn't require any child to be given during initialization. + Run `iex -S mix` so we can give our dynamic supervisor a try: ```iex From bb1f02f67813ad8b6838a16323d2a75e6e4139df Mon Sep 17 00:00:00 2001 From: Vadim Sentyaev Date: Fri, 2 Feb 2018 01:11:37 +0100 Subject: [PATCH 0816/1761] Change KV.BucketSupervisor.start_bucket with DynamicSupervisor.start_child (#1087) --- getting-started/mix-otp/ets.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index eef854553..b5b48a1fb 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -99,7 +99,7 @@ defmodule KV.Registry do {:ok, _pid} -> {:noreply, {names, refs}} :error -> - {:ok, pid} = KV.BucketSupervisor.start_bucket() + {:ok, pid} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) ref = Process.monitor(pid) refs = Map.put(refs, ref, name) :ets.insert(names, {name, pid}) @@ -192,7 +192,7 @@ def handle_call({:create, name}, _from, {names, refs}) do {:ok, pid} -> {:reply, pid, {names, refs}} :error -> - {:ok, pid} = KV.BucketSupervisor.start_bucket() + {:ok, pid} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) ref = Process.monitor(pid) refs = Map.put(refs, ref, name) :ets.insert(names, {name, pid}) From e9370c32a9d76ea935e186a979f98c757e5769c4 Mon Sep 17 00:00:00 2001 From: Mohnish G J Date: Mon, 25 Dec 2017 18:19:28 +0800 Subject: [PATCH 0817/1761] Add section on how to debug using IO.inspect/2 --- _data/getting-started.yml | 3 ++ getting-started/debugging.markdown | 55 ++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 getting-started/debugging.markdown diff --git a/_data/getting-started.yml b/_data/getting-started.yml index f4b9d0d15..5d14f75e9 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -61,6 +61,9 @@ - title: Typespecs and behaviours slug: typespecs-and-behaviours + - title: Debugging + slug: debugging + - title: Erlang libraries slug: erlang-libraries diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown new file mode 100644 index 000000000..4a3df69d1 --- /dev/null +++ b/getting-started/debugging.markdown @@ -0,0 +1,55 @@ +--- +layout: getting-started +title: Debugging +--- + +# {{ page.title }} + +{% include toc.html %} + +There are a number of ways one can debug their code in Elixir. In this chapter we will cover some of the more common ways of doing so. + +## IO.inspect/2 + +What makes `IO.inspect(item, opts \\ [])` really useful in debugging is that it returns the `item` argument passed to it without affecting the behavior of the original code. Let's see how that is so with an example. + +```elixir +(1..10) +|> IO.inspect +|> Enum.map(fn x -> x * 2 end) +|> IO.inspect +|> Enum.sum +|> IO.inspect +``` + +Prints: +```elixir +1..10 +[2, 4, 6, 8, 10, 12, 14, 16, 18, 20] +110 +``` + +As you can see here `IO.inspect/2` makes it possible to "spy" on values almost anywhere in your code like in the above case without altering the result. One of the places where IO.inspect is very helpful is when we have to debug code one or more times inside of a pipeline like in the above case. + +Another handy thing that the `IO.inspect/2` function provides is the ability to decorate the output with a `label` option. The label will be printed before the inspected `item`. A sample usecase where this could be handy is shown below. + +```elixir +[1, 2, 3] +|> IO.inspect(label: "before") +|> Enum.map(&(&1 * 2)) +|> IO.inspect(label: "after") +|> Enum.sum +``` + +Prints: + +```elixir +before: [1, 2, 3] +after: [2, 4, 6] +``` + + +Please see [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2) to read more about other ways in which one could use this function. Also, in order to find a full list of other formatting options that one can use alongside `IO.inspect/2` please see [Inspect.Opts](https://hexdocs.pm/elixir/Inspect.Opts.html) . + + +## IEx.pry \ No newline at end of file From 121134c1d3084ba14ed058dc997aef1b57da5b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 9 Feb 2018 13:03:14 +0100 Subject: [PATCH 0818/1761] More info to debugging chapter --- getting-started/debugging.markdown | 118 ++++++++++++++++++++++++-- getting-started/introduction.markdown | 4 +- images/contents/debugger-elixir.gif | Bin 0 -> 1289654 bytes 3 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 images/contents/debugger-elixir.gif diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index 4a3df69d1..f1b1f1b29 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -11,7 +11,7 @@ There are a number of ways one can debug their code in Elixir. In this chapter w ## IO.inspect/2 -What makes `IO.inspect(item, opts \\ [])` really useful in debugging is that it returns the `item` argument passed to it without affecting the behavior of the original code. Let's see how that is so with an example. +What makes `IO.inspect(item, opts \\ [])` really useful in debugging is that it returns the `item` argument passed to it without affecting the behavior of the original code. Let's see an example. ```elixir (1..10) @@ -23,15 +23,16 @@ What makes `IO.inspect(item, opts \\ [])` really useful in debugging is that it ``` Prints: + ```elixir 1..10 [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] 110 ``` -As you can see here `IO.inspect/2` makes it possible to "spy" on values almost anywhere in your code like in the above case without altering the result. One of the places where IO.inspect is very helpful is when we have to debug code one or more times inside of a pipeline like in the above case. +As you can see `IO.inspect/2` makes it possible to "spy" on values almost anywhere in your code without altering the result, making it very helpful inside of a pipeline like in the above case. -Another handy thing that the `IO.inspect/2` function provides is the ability to decorate the output with a `label` option. The label will be printed before the inspected `item`. A sample usecase where this could be handy is shown below. +`IO.inspect/2` also provides the ability to decorate the output with a `label` option. The label will be printed before the inspected `item`: ```elixir [1, 2, 3] @@ -48,8 +49,115 @@ before: [1, 2, 3] after: [2, 4, 6] ``` +It is also very common to use `IO.inspect/2` with [`binding()`](https://hexdocs.pm/elixir/Kernel.html#binding/0), which returns all variable names and their values: + +```elixir +def some_fun(a, b, c) do + IO.inspect binding() + ... +end +``` + +When `some_fun/3` is invoked with `:foo`, `"bar"`, `:baz` it prints: + +```elixir +[a: :foo, b: "bar", c: :baz] +``` + +Please see [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2) to read more about other ways in which one could use this function. Also, in order to find a full list of other formatting options that one can use alongside `IO.inspect/2`, see [Inspect.Opts](https://hexdocs.pm/elixir/Inspect.Opts.html). + +## `IEx.pry/0` and `IEx.break!/2` + +While `IO.inspect/2` is static, Elixir's interactive shell provides more dynamic ways to interact with debugged code. + +The first one is with [`IEx.pry/0`](https://hexdocs.pm/iex/IEx.html#pry/0) which we can use instead of `IO.inspect binding()`: + +```elixir +def some_fun(a, b, c) do + require IEx; IEx.pry + ... +end +``` + +Once the code above is executed inside an `iex` session, IEx will ask if we want to pry into the current code. If accepted, we will be able to access all variables, as well as imports and aliases from the code, directly From IEx. While pry is running, the code execution stops, until `continue` is called. Remember you can always run `iex` in the context of a project with `iex -S mix TASK`. + +Unfortunately, similar to `IO.inspect/2`, `IEx.pry/0` also requires us to change the code we intend to debug. Luckily IEx also provides a [`break!/2`](https://hexdocs.pm/iex/IEx.html#break!/2) function which allows you set and manage breakpoints on any Elixir code without modifying its source: + + + +Similar to `IEx.pry/0`, once a breakpoint is reached code execution stops until `continue` is invoked. However, note `break!/2` does not have access to aliases and imports from the debugged code as it works on the compiled artifact rather than on source. + +## Debugger + +For those who enjoy breakpoints but are rather interested on a visual debugger, Erlang/OTP ships with a graphical debugger conveniently named `:debugger`. Let's define some code: + +```elixir +defmodule Example do + def double_sum(x, y) do + hard_work(x, y) + end + + defp hard_work(x, y) do + x = 2 * x + y = 2 * y + + x + y + end +end +``` + +Now we can start our debugger: + +```iex +$ iex -S mix +iex(1)> :debugger.start() +{:ok, #PID<0.87.0>} +iex(2)> :int.ni(Example) +{:module, Example} +iex(3)> :int.break(Example, 3) +:ok +iex(4)> Example.double_sum(1,2) +``` + +When you started the debugger, a Graphical User Interface will open in your machine. We called `:int.ni(Example)` to prepare our module for debugging and then added a breakpoint to line 3 with `:int.break(Example, 3)`. After we call our function, we can see our process with break status in the debugger: + +Debugger GUI video + +Note: the Debugger snippet above was retrieved from ["Debugging techniques in Elixir" by Plataformatec](http://blog.plataformatec.com.br/2016/04/debugging-techniques-in-elixir-lang/). + +## Observer + +For debugging complex systems, jumping at the code is not enough. It is necessary to have an understanding of the whole virtual machine, processes, applications, as well as set up tracing mechanisms. Luckily this can be achieved in Erlang with `:observer`. In your application: + +```iex +$ iex -S mix +iex(1)> :observer.start() +``` + +The above will open another Graphical User Interface that provides many panes to fully understand and navigate the runtime and your project: + +Observer GUI screenshot + +We explore the Observer in the context of an actual project [in the Dynamic Supervisor chapter of the Mix & OTP guide](/getting-started/mix-otp/supervisor-and-application.html). + +You can also [use Observer to introspect a remote node](http://blog.plataformatec.com.br/2016/05/tracing-and-observing-your-remote-node/). This is one of the debugging techniques [the Phoenix framework used to achieve 2 million connections on a single machine](https://phoenixframework.org/blog/the-road-to-2-million-websocket-connections). + +Finally remember you can also get a mini-overview of the runtime info by calling `runtime_info/0` directly in IEx. + +## Other tools and community + +We have just scratched the surface of what the Erlang VM has to offer, for example: + + * Alongside the observer application, Erlang also includes a `:crashdump_viewer` to view crash dumps + * Integration with OS level tracers, such as [Linux Trace Toolkit,](http://erlang.org/doc/apps/runtime_tools/LTTng.html) [DTRACE,](http://erlang.org/doc/apps/runtime_tools/DTRACE.html) and [SystemTap](http://erlang.org/doc/apps/runtime_tools/SYSTEMTAP.html) + * [Microstate accounting](http://erlang.org/doc/man/msacc.html) measures how much time the runtime spends in several low-level tasks in a short time interval + * Mix ships with many tasks under the `profile` namespace, such as `cprof` and `fprof` + * And more -Please see [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2) to read more about other ways in which one could use this function. Also, in order to find a full list of other formatting options that one can use alongside `IO.inspect/2` please see [Inspect.Opts](https://hexdocs.pm/elixir/Inspect.Opts.html) . +The community has also created their own tools, often to aid in production, other times in development: + * [wObserver](https://github.com/shinyscorpion/wObserver) observes production nodes through a web interface. + * [visualixir](https://github.com/koudelka/visualixir) is a development-time process message visualizer. + * [erlyberly](https://github.com/andytill/erlyberly) is a GUI for tracing during development. -## IEx.pry \ No newline at end of file +There are probably many more to come too! diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 805e0e78a..4841d5c2e 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -14,8 +14,8 @@ In this tutorial, we are going to teach you about Elixir fundamentals - the lang Our requirements are: - * Elixir - Version 1.4.0 onwards - * Erlang - Version 18.0 onwards + * Elixir - Version 1.5.0 onwards + * Erlang - Version 19.0 onwards Let's get started! diff --git a/images/contents/debugger-elixir.gif b/images/contents/debugger-elixir.gif new file mode 100644 index 0000000000000000000000000000000000000000..ef3aacf4e98a1f67ef3bb9fee28545a2eae29b94 GIT binary patch literal 1289654 zcmWhzgh*8-L-Uzl!$!pSK%xJC zBme;ca1ek7fdCK)0s_H7AT$UJfWQzC7!CrXK~Mk$g@B-N5EKo90U#Iz1cQTMXb=Jb zAs`?G9E3oFkN^k?0U_ZaBpQSQKqv?Z1qY$f|4$QufB`rdK!ZU57z6=>;9w9M3VhQR05E=mn5MT%b3`c;`2q=JnLJ&|m z0*Xe!00azzfWZ+kGy(x25D)|cjzFLhNC1I^Adqkb5{*Cs2owZ?f+JAq|F<20AOScM zKqEl_5(Ghl;7AY}2?mg02oelOg3(AQfP_MjP&g8bM#2Cj41$EgkuWq80U!|&Bm#~^ zppi%biG(1La3m6qL;*+?1c`zpQRx3aB>;i~;3xo%0s$xx1O*(wg#oJiJ&K|Dl2LA2#+AfF9ubKQ#Ui695klJUq~{!*+UuaY$cXw@eku zMm{4~Hg0`mDIY_{reHkkUOJNSQaWgny%98)#;BE~I_6QXlE!V(t^4{L>s0Pr_vy(o z&q|Hl_o0uAuMzBXrP3)+)yBQP=#;7zOF%f9IF_ol8q}x88;Vzg%?83=ayE0VezRRD zF{y6mUT<;P@6YFK;o0o)x!T*TZh5oa6NH8JimR1(cOZ(K*|eth?fys-vupuZ8{hYd z%$Jf&hr^WMP;zNc3TGHXW}&>z#l#un?X+xYHj$*Z?(K|h_T1lkZ}ic1t0kE5nfk^@ z_nqN1=3ovV^Q$JMR6L)cmJ;I=vxelQE!chEkDVDmG<{EI!0p-hg~IJR(*XbL(~cfH zdUVJA-Qlm(=$^u$;D5JMPj-TDe%loVKY5yE9*QSeRTNGn!EO;jaoAE6Nn$Bn9QB+4 zX%WIeHo6=0DwS$4lBL4eGKwP($rQ(_?wi4_1eRHsCksr=kraJenU_3)@%q4B_7QxL zqQFWGN>$-7uujvIc+HZgBdYX0gA1o3(Js5VJQ>vN^_tbzI?2H{+rHq7Z4R{V*f!U# z`?X!3*R+FOzAsI4nq(?sR{_*4x2Hgs@BTfR3k*uJ_gV{J&XHUO6=NrBSsHxF$TEdH zWaJu-A6FJc<-D#cjazg0QdQ7?9Azi3CqwqN9X(!Uc0ZbmS);VkK4EZguOmb2lYL~F zK>yTd49rYh6QshWu?+9uH z#RoP91s_N6;ACiU*l@LYCBs<0=8xCji@F-l-b?yswcg9du0Oq3%*~op93ERkf2}%4 z+^pKgoWx%U#x^&^ORO*i5EcNHUN zN&K50gRwBTWTKy&Rg&Hs%0UD{H*~(GDTiC%O8qBD|DiLn%nz}vL@;T1L-6R#F$r6H zv6w1(nq#uDOUWzx7SC*nFjVH|XJMvut{-3HrG54In>auBl(;uJ4+1i%}$L7u{erII;W0XR^(|#Lkmv zuD5)7m@T7HJfijS=BN@XTCl>K%(n@4pi~nSOSRxDTYCQfrD`9o{?+1XyZc#1FKrV1 zd{Q+##J5eM9b}Z?^_Pzu@us)!Pr4OcTvOt_K+N>7$H3Z`scDmCECR9bRb4LA@(&LF zC}fXnhNY&XMB-LAD&AZ}ILzOYrrXtIMI@B}&a|Cmq45?`Fx~U`+s6g`Sp$&in0hOK!PKNYZ- zCFIbIW8yD)9(W`t5H}ZZNKrz+StTb%pq&(zUdA+a1lAbWPHXone*^iV`kqE7r~kU* z9rtT>=N$FW#gSZc%oCwV<;7x}rYi7zxOUpO?w2{-Of2hdnX;1!_|pY=|0KuTmN-bA zAr4%RxcbBA`Nc+_KQ*>$oQ5m#<>tmewK7dZ+)(M2_O(BCzEjnvf5%t4@BVxZA+9lh zqJr$Fxv7s)tFe4BfgBdSX@DixShK0DjvL-IW_>?3K5jQ?TWIBl! zzEmI7RAZ%fYOvnE+}hn#=Q(w1a^Jqv``A<;u6AZYo4c4%$5~z}W{y=!HM73siTEq- zY_D>^wm96}^lj>=v;X?g5^hWL(5ACT@cq!P!r#^<6BnOCBU-;YcX86suun4`Ta3jm zUB4el0=NCQ0d!06{+MgRZSD?+;%)D<>5Bld&h2MHzJrA7zaxa`_NYGl4s&*2#2Rhv zzudkZk$>fpn47mxfY$goq#@yv`I+uJXSB#DMB*x|#rP0Z`Dxnu@iKSaD3;F!F-xy@ zT}<0`1eR={Pn-5Crp@Z}x=b>ve7XYHc{uqn({5HK@i~;}cJ)=zTiL<)J|*(&XUf)K z#6+DBA~*1-rKH&U_g5cVEA!7kw%o68Zr!w$&-2{wzB^{HaTRe`fba z)+efK&26S@RRH{P>ptjjuU*$g7awZ-h2-s^M)&WGWYl-Do`18F-PhTY4?pxI?-pme zf18{sXGMIw%6@`IAHLUky!af9I;@Pt(+a-3`G$TtPnJZH5?k@~$@c~H1)Jc}Ij`ND z-2k`2m{cLl>Bh;5zFkiOv06h+`U79@J`au}vuUwo!w3z?3_AK8Y6|jsZ9%vNBNa}i zIC~eyEFDHI{fWjmXs;y<(ioI1`0?Y5@G!P;Ug2;-{cvI55D{>=C^B69HeBc^TpBMz zOgKV8Kf*>Y*bU=j=Sr|cv9C=_L~o^>`e?`pypUR*NVA4#%TghFw~?ktFL1$;$iM#9 zeSUWOl=hK^l~ErwLd zo+~Ew`LVFDwtOKKsTWRCLGd%IR==8WghZsQ7gnh+$JE;yAY;0zatkR&Ofs)-pG{<# zzjH|8Kxd^1$Fh(j!~0`MFv!!f8Plai(iIHS!P(MEO6kh0>8k(I6_3-k@H13IGCmk& z=)cY|P|7e|%`m1;x3^2Q?o&Of@Ue6VRf}=4!>6=Xin4WpxjB5$WTP~$5_<%aS7tLU z8~nOFM7#E=KY=nm@hMGWL?c%@5d*4$)SnZ^U?!F!BP&^{4pe?oG4WNTvBEUjpHlL^ zq*YncOk&4v?XcHarTHwezspP=`_7I(oYO3ogWX`@(2~>qgZuW#KtaMZ4u%{m4o3AS7Rlee*B$?4Wp9K8=(k^@(9g z_oot-UCaJ|v8LHYJmXTXPx8$}{a05h4;5bUj~Cvyl`0IG2WUqc3+pwK6b8uX0S;xx zCB*Fu1%mjLzyBFT9Y2r$QdUErwl!9&e^Th_PN>@I{rJ}PGE~^Yk>1?V)k^uLO-{vc zuZlCq3fsF1$CC!$ zcwXFH)lE9h1A>iOI!DCguIVRMXM2p)y;m@t)kU~Y^8VqD7zdf=~B!49d&!wyge;m+7&Zf7BlO?%Lndi>>B+1 zQYx`zYP}3=&2nmy?X@dwwaa(4YbUk41a%wAb$f<&`#E(R1VyZOB|qbe%y8%!sYqGb zN!gF;*a^P=iX-D#i&x72dhe(5_M`@zuol;-9?wYEq6GG@t+MT|o`kl6Oss*zsNt(< z=p8{lP5jq%xK>)6COvIEU2X%j3I)Z{*C#d&9372Z>y11ejU74leE#(d4KGH~j+CQ0 z-`;h68{nu7wy5)6tMD4HloLZJ?Y|7beF4k;o)NFs>YAY~6jza*i!7V{-i3iSFxhb`Uli!} zhIH@cb{}3 z^{Uwt<8So(R1m5U_Y&n~*`z#uqpP}#UbaLi2o z%uEwCs7*JdD?aqWcu3P&TBxJTs&UBwQxBMC_>X_LHP^7Y_^_?ED)$~OfkH!S_MWbs*V>|m2P@_q7W7@W@ zT98H&_f{^9wj9;Al=ZP(W>m+?~@(4JM}DS|4>FyraNfN6wduOg)b->?C!bM#!?n%vm@uYOX;ftfL{T&@~o(^G0KZhvdElQ)ifI^A2vWsu};KdSK(5X%_bF^2J4)#jR6Z#jeGF^2~>{ zOFx(JaMFw;53t)|#tyT%Y5@C&&7>6utHqqC+dQW-i5k|?GXTI;*DPiLfbgsTW;o`5 z987d6rEe$l;|9|24Ec#}HQ@o7&bX3Kg$C=2$FvSbd{1s<15T7AR!yG4qRP zN%nB&Y{Qt)WVZf+jlh#I>Uz=ZI~y*!U8u)e+2&e(V&6lj0qN#!PuHmAGH#w0ex^CE zt~0NOGrsO}`jdtv*40?FJxfvvv2zh~5@zmm^xPb)8p-y1%9m{;cM;X1wqQ%7Cq%qEwK}81xU)HWvY&8IQz4P38c4dv~2VgGeorWFc zOc))AZ#Rb<%8l<<#tvL8GH3$fi+D+Bb7c7D&{_zRfdRj#1beKPhJ+_C#ycE8xKtM`Qi&EBDpcck?} z*I>kyJrx&1}DA5juW9WY-#%s+t|jR zou)q>wS?x|XJe3?5oIkQTYZl=~J zXYk-B!fxXNSDU}CwiK?mC$DxE-ghP6_x9XBtkolxo0Ni4qi@#KZQpj8Y(#D>&TK7? znG(8a;?tUfz5bk^Ry_=(>v{wC)OTEeX>a#-O`$H%ds8pYcb;x8@;n){=B4yZ#>G1S z<+2fF4Bq{vE`j6T+-V?U8w#QAB-AtYBa01d00(-7V?~?Yqz(XFOg0bOr-vE zvQSITx@^mN16^%GvjkF5IhZ@Ib$vqLyrjEz+jc%UN?jaYo<=$ov^zYC`)~=h$C$k+ zczORv0Vl&=r=YXB7PQtx$VGK82)tVPv_F%4?U5WhQclYRDl{YRO}O>B9DYg~*qeQ@gS6KtcK zhT(D}Da{%@CmEuh!oJ>nJ9;u`>`<)h4Ws4f;DZ>eLInb#a z5y7BX8(Olbn7s_a{ppv?+sJ!jwY5b$S7AXb|EubEn`NHrVhc6oGh!=~X*2KFQRLGS z7)#$~`$^JB&|0sl?`yOa=_C2ImDtJ=+A42`_;u7IIcs?9UFL>4HC;tC7dI4saxCh~ zL!LwQj3P52272X7oI-285Hcs|7)N!TpSRTtSSrIBX=wG{XIU>pei>ro(!eV6=<*D`fUB9b{{KnB76T-|^zC7M+H;Uu@evY^v)lqC65x!-Tgx@~WB0GO|vo6dS;t9cCo~0ESf89L!$Jeq|{xKSXmMVBjnK=S}?<%T;Z+h4&;elhIlvcV*#>B@6r z8+POK&vlf?7vAeS{+TyIv;7Iamfo+Nb*0}NSh7fV`@4ZJ|IT+O`US#QB>BbG?Li7# z!Kd%JW)gl!mBHP9KfZq6x;y)xC-xW5%qd1oVV|`p;A%#ZeqOz0?Bhn@_KHx@-|wzH zLAO6fwuA0|tw;txqPNX}2e#hF=NCaSdj^;vn|osfX6=Xq7~~yo3Cr1MLn#x?ak=rR zy6~dV;q=$$cv$cHpQe&Tuu@pyLwseLU_W_n@3V1L256QL6;VPcqNhTovNLDA(UR8| zB>uvK)N3R$a;n7g=KHlf<~+J;5ln7*!b9vgQE}QeOs;kILtM&r@v4KCRBh}E+(Ex% zt*@DA`h*n(Gqn=!pjI^dtqMZZq)Fa%34gC+#3at=k^`~l=yC8zr5(ZU!<@!U_~l?Z zp81r-h=bo$ug4U%`BL5c4~lrcD5?1HsoRi)Zs&!RwKM0_os70C@$h;vnj3>_4VSu% z$CR<^8V%ri<=mca6NZaAEsAiaQl}@It{dbBS%_yG5;!dRvS(Y`;IQ7Mnq<3IO{5GvbpLDNRIIk6- z%f3HL@$zRAa8PcloKLM=Ea#4Vt!$Rl`Qk(?on~$FmY`jy;6^tv>exmz^jO7&ps7k$ zfI}-IN4J7$=}UVA18zAD1a1n0m*>JEP4GT=<81Y76bHdjyG(ticZ~(hslnKuOfZjg zwKg}?vwgq8HiCvaa2caXn*B=G-cn3J;v^XkA2N(0vp!k?YDwCmKO~shkn9abTQiCo zjD5&#{M-b!ecNF$<&*iX@DJ2pTFh`PXb4d$@9YTaFkEh4Zu%No>%dKFw6?t5Y)0zr zqSRrud6U`F^T*kZo-=n4MDS5U-o+z>_KPmhO504Ni&wdr$;pS6_LU)*a<4V^o8Jpi z-Wm&^Au&_sDQ>|7dDpw<@XUHv7J|(&3XeK(AgOh2ObL;@>*RFkK(3 zlVC~q^>*-$L=2>(qr3TJvQ|RJJ>FZ~@|BhEh{SnAOsMz)Ba?OPgSReD3cAypRcLig zBZ|+XCt8PtTuYR3mrKug*5U#FHMG3}da68-T+^;St-Nc)8I$K+2*3l ziD70O-G>Jpg@Jjpb#bamLwH#}snDumj>xfk!#Q(K+i#zc_7-@xuWX)wlr;Nt?7uBh zcUR%->hYQW(xW7BV4h5AAdLbuB7p%L@BrhHNX_z9-@>v}7y~{%MJIoDl3o66AE)hD zaT^6LxV(7!w{tV!Z@F~q&!x-zGc(s;$c3Pr>Yj%d$k+R|eYELK&$Bbkg$EhL!&QIt zlkQ(BJptc^dO~lv80Yo7pUL4J&r1PP%3S&>reOeV!`P#Lk$>c5>+}0=AQsDVJf$AR9Mt( zv%<~o38_`><1n1ml*k18xIC)&#`n>9M7^Y-J~CZlk%ffackNWntXA*({;qwyi%TFu zMgy=2#bSw3EK(-TP=fxZYELZ8kj^Q4e(D+`T4=iDH?pt}+`kJ#qdI&H0pcG@`}5#3 z4;}rz<1);PGMv{kT&R8??18rw1AGVl?@(g=lY9ckU(tda{rnLF0tvE0M6!YbvLb`B zq99qZngNkc+4uail4k?|eadC%*Pc z!qM*gWtiZM8202J@!II}^OV4PS9dkuqR)VlgNRfQ8FM==1t z?od`$F4G;aupX~O3|1K{fALa=M~r_N9EVSiS1*p&9gKfPjMr}{H(V<>Vox;4O*E=b zeAAt1ww`F=pJ+8!X{(Xzj&FVNRB4ZxXgiqb9F$|@95XoRV%TRieb>BpKg_JG%4DS4 zm(J)Y&g+F3BXOFv#j5IdoSaOb%#T$aADo;L@9vma^-j-n3&?U87o}xZn>C(V_L}sL znA-C14k8nbJmt?!pwNI)sAG+T+om{G`Oz8_>iMAQ;&h5)U4ErG*-X?_>uDf#!Q7;<$j?#-E2USP8AqZsDQ4OkJs7?o*PKnh}93{*)h33m| zsPrt(YL`xTPtHDDnjmr3B>AIBx-|QAQXa(k22qz~7>!+_dnONortf!cqT0n{Q%n()9Ku)%Dnyi^D`Us zJWKPKR|-5h3v)yZxJE4tT%x}kzoDr(76e%qgiN%3=u|)X6R#~&v@4DMQ&tM*O_gST z_mq45I}A$+77mtr`HFagDM4<)USu;SLOP%C#Q3QYgRbnu*sGu8-`Od_<$Ow;vC1~- z)2}BM-hPwCA%(?^&(AF?W<-FSzG`sm>TGHms7*k=FCGU#loOX!@*(8JDM?;)5e#+p zx*8`$qy~$mid{=3*o8_sOWNO;0;QH3bRjm*OX^b)r6S#S=|u?hl10o%wkCx-ztz%nqTC}QVX^4Z35tuPGl+`xlr61Ep z5Q+n2*sNA2t|?@%6?EY@brF@b@Kxd%efhqcuoTU7B#$vf5r6~4+0YKzY>Y9?RtwD1 zFl*Y9Y2$d;<<%sFGIQB3^)xdVzLn035QxcK#WjGnMVWaln5uqP zzFs0>YUnr^_^rFc-o8E3<^X5U^Wqh9kfqPSBHo|8a$gMqElzZ)WnRO-D8l3=Yto|Yb@fA2xZwXEAK%zY(%y02^3iI zspE+$%t|j<3Lg^5`rr*bbPMAi#DrMisl=ugS+QsCMbB9ZKJIaJ6UeI*aN+`7>W0HZ zd(@eXB$I9QK~@~g)F4y&%&h#OrkLmqsjLt~MFs14s|_V}t60Fs!ZxO2^q}PEJL5TZ zxxN)W#h%5D4k9oWC+x5=-Bt#7BzS&*EHbhDx9yuq9kau{ zy7-xH%}O0205B%1mtZw!8@_;RmP=sq4TpqXKKN`QxL2Qqx`TjBm{lp}%Ml`QHahvZ zU8On_4fv+yC-&UkeIvu=kH9DO*`iX>OxW(iA^kuU`@VNpi|lh1*=Dv~>SHu3e=47J z7*UEoi9IH5;Lq2%u#kDr2Vtdak5?%wB>_e_X(}H*r3@n3Kdf%sHIkeL2p}j9dpo?({dDHIq_>M<4U;P^pe^ zAItWqK*wYBmpaFCR;P*rhiALb{cetfVfdd{$;#bN_*)|dM^6H_NJ<19Ut>6tvZn59 zo)tbu|EF1}D4(P_Vhv2QJCVdDwk;1%cT1=^pgipRkJ{(6M_uiE4B}zsna5l1WVIEJ zX#C?7+6Y){=6@tI_3RwUhTv%*Prko(YJn}ZjOYB-9BvV%)4PUj;M^lsV``0d4OEaSA&vB})9BdaVT zg>wK{`$$J@d~A4xO)SPr;_C=Jo@PrD^8@`}{378oMg=^wqdlv2+*Wxa5G<~Z#d;iu z9W>BXsugMo7PFwcXufd`7SPYU5D+23E6yfjjEYGWUc-&UF|f}r^u@CpKD6ajIc*m@fG4560rB&^R^V+rV{>$$L|`ao0l)M zLM?}u5SyW*i`z@Lzm8vx&0hB`b{AFhjh%aX9T9oOIpd)e!b%k^$|i9EjK)d35;T@x z#seV~X72hUmzQZCDrWKpqh5@**B0$josZGdtRWQk5hT0@j88lxNIYeFvLMl(JW56g z=Nln(p8gLHi|b49Um_beYU2UdTs#c@jZ1?<545_sG4-|kughG9_x7S69rZ5PhHtta zEGZEmX$hOBi{JiIp7Kwwfc96&;oiP`bsP5LHr$mpEE&$^$cOu&6x=(4zRgGAc=eFj zhkwlMoo6JAJQq@82U|4ueXTA6sAR~-NQW*I6;iO-^6ZTl%yD?cAl(QY@tue)M}Q$T zwBk)U(u8>T9Gj#I<{J0rRH*!SbWuf7O7}?DImv1$tfGGLng^2!>G;f{r}3Nwui&Ku z@^r~TQiv)wP8IX~mDzJrKY+mxvJ%~%1S@>zpW5@Ymxr9_L&6#^;Nx(bSot&f`aHVK z?`!p_;H)qI?ar#Z{)>N6DM|h{g=Dp6ch36xV7HW1%@=_F7V>ET31iG73nr^W&+nyx zo%59GZU5Pij%`Ax3G33VZ~aAlQO$N(pEXmO56>0Z{x#Y8c@UqVQ=Xo#&9J9dnhk0C zGXZxY>DcGC4{_4=NJ6cY5hGJOg`l@mBzcngAFKR1Qp9!9Sw65ibJZPw1>8dpzZ} z8&`S~wrx7?fZLf}X`r1F*WQXaf;JL6%{)Q)H`93NbG-_boyt15Ge^r8=-6e&RG#q1 zle4j_%9$dm=ts_zS$nN?@Ml(=wd>c5Roa!>wFHm~RU@T`hpW%5Lp(JmEf`3MuB}!u z!$H74oH(Ss84a{*t;_M41iJlhe+?JnS@H-ccaOIWbH*@TF?Z*5Stv2+=U&N+ynfyCLeI-V|7G-}ad@6>N1l&f z_^0e>Q$6S33PlF!QPz!={(r&;-1T27X`IwM|CpGf#n1Pdy_W?tt@M`v6BV4pR-??B z$=C4clh`f6Mj7vKmLN1lL7p_>Xtx#?fAuqPu_xkKzt{@r?uyM(iQ*(V#~{g$A=Ro~ z+WvD;Ez3rTCLB^y#A5wPS_c3m- zzK@KPt8uU-o4xw^_zx~bY}8E+LQ`aAv1vh@64E?lDVCwUX1}y3kwC#~pzT+jyC_Ze z{7(vt65~f0oe~bim}2H#xUp7h2`4_D)?*qjY1$H5ul0AP!`XHXk=ta`b_#Dz0s;da z5{*;_tvN+CB-7XkZI`#UJdoQ&7L0RVI-`PqYjX@U{|uv}Q1sCCQt6delEGG4E1S$3 zW6zKx!~gx1|JUeqEpg8g`se`9Y3i$lRBi_L&{Qr4icp%+ga#sV)n^!_pJg9J%AV1X zWzc!62p4WFOut8?5<&7u{s%y zKYU`qW@hh$PdXYK{TpvL9-wjxJmI2oP{}(e%9NV>uEKyFg13Z-tvHe=b6$OdL9~=H z#E%>PVT{Ot3x~apL<)ZiK5PGKC_`MNirbN9RA!hd>z1o5hK6ic$~235C!?1ZYmDUN z0F(JY@`&4G?KxEo>0m#&fx9^ctJ4%5LXn5dJMv|M)Vm4B&#RyXlOY@MVkvoJ`ZmFe zjtP%rnPDu&j&^BBi=NttX3XCHX}dC3nD!DY$>0;+{axm#k?h0gum))vaVruVEzHZV z$dqPx5LtG(Y#{1M3bFQgef>{hbg$fR1&hI5`krD|g;$CZ>f+4K@X#EZGsA@^sU2wsqi?9hVv@(8?7qV-iUhXZy2^5(oHZ%6DG*t|J3RHoiPfb(HA0{>lI4VXap_J*_HKBuxqj!-^$y=7y5d!Y{ zgj-ds@a33FEQh)Lw!5l2TMBYuIj#&KdadmF2X0iiSjZLlMa3#-EOVNoLLlE>O*W0% z+1n{h;^DPssSLTH0q@(xM!8dh(q|FUI85fBsPPHRY8dwr|@&zrNPuvU=%HQs-DoY`pY@l%R+Z zUZPna5sCEQDItb^!HYzA$eNmH_e@_t7kPJCdtx0$z9=gF0uWnSorPhVbe_>i{lT>q z5_^{k?*B%C;cT^A($JA#?YPDu?aqvWdGJc(Blo`;H+mV&D-R;<#I+k{aaE^Y>(-; z5p^UD;gL?piyB=hK1DazJ>89IFC8T7Bio3QAAOyP0W zO6~Go4aeK8{%MJ(K|UD~4knVmbPhh#HKF2W6PBoxNq`bM(LL$YSsquOy-cHi_!W#O zjs;#++2Yoh}vN za?K}k;3E|^2AmLyQ)cY0T}P(RvZs*@Z)4ix{#dOQk%6u&$gm8E0I*v;iohYe4!&lk zIhs*e8!PxB0G(W0AbaMlN2(p54%L(9Nmp5ED*>#qY1+u>b*riG&Z)$!92hd6k zY-KcfN1hodGU4CBJKFT8A>X=`ID_{u7=brJ1v2#>YazX)4hDB!FHB`J+;Y{dv=)ZnGL0M^z=>aL z;yY#yIIHLy{j8W1oo-QMXqQcJ@?R=rBVNpndeb44jALE2^s;Vf+wpfZm4lMX+U;1l z*HRzcPX%4>`ELqMaAmO=@WUcw-q62bdHCeHhR!c;=fDZW4Zp5as~+yzh>0+5X}y7> zFrKIeP6))}ufTPRe-B>GYhv0Uoj^0W_*o9t$dom;i0icsy!zj-=c4{1I~y59s%%6U zUtK!|lD@5!qhG1V=M3!s{Z0o>xnSqD=TXv-i_(~SN>lW2zH{bpIK4|hIm5r7X)g8| zgbjl?YM(QXv7)Io(IztziQ9rl!;eE$w6K*2gX}-@+t_^DnE%4>Yq2?%cI3;K87IxgtaPk;PQ~&wI zykxRedSGNGi|J9@`zl>RAJ%L2-Ga%|l0ln^{?UTjvP8g*x`U+z8K5Yx}{?dt2 zwAK50W@K-v#38ffFt&IjvrAX$`@0zxu#8yqzVSaR$?<&&j)V7n2QuA*Dga1E*;<^V zOuF4lW_n*Xu-XNo4{f6= z&O$3}Gb`-k4jpn>9V%Fz>MEQ{4xQkv(CG^3vaQqnq4Sz8^pMr{yux+w(Dj7X?P;YO zrJXC8og*f!k&2D3zrd<_%d>GyXK_o%&C0^`2UZ62lfA(!@8XYs#UH14J|?mGX0m;n zPsqrx{8U%z*UaYMUFkpkgEEdSfD9*aoGobCF6g|H@|A^r2%`_~QMq+w2qn9wfSsXu zVHsp!{q0dR|B-{tk^0bXMQB9?pR%<&d(@+CGk7A>k=@#~s>NRGB#^x__UOM&q!h#+ zqfikZb>v)96$!Vu_dAN3uZs1skCv2t6-SNse)fp zZrIab*`?!Frhjm-$TEf}p$XbVF_3Eznsw?O$KwETr(0B_DDGt(N zd*cG>00uuv`vE83=q&cn$=Q0`TnU_BA~k{yqhJ4s4VX^I;q+QK3`2L%FgC|kVmL;^ z;3GazCkxgtImG&fX*r>IsAPspY!xku;kb) zOsZdSXj)1hYg0uFnACvLi#D3=8$j=O3Dl4-%CmJ!O*OyjxGo;+F1lAo5QDMaaEz#_ zgjs_N!Cw~=U#}G2T>Jf)IE?sG_vQN|#gt3rRK<`xMWM63{7gY4Eli4xUs}X_sPb%a z2GM7Y#B@pz@d+6=y5;Dii3;n@pw%=qIl~I(eNqRDIGB|eu(ZTr+rwbqYvXZi=euYZ z|< zs%fPG*mKp3s6V?jsPCKu$LE?2g{lX2*O|YsbKcVUbDhY&s2#-&o5C9n$yTAG%8H$E z2_Q1e%L>wxGpcByFMP{@ZeVD!`?ELr$M%h;v#X)oqL*@%(bW7pT;9zMXO5fCs0`<2 zSB4?pyd+6)y&p-|uuLGA$IAz-xjEcm&E(pu*q)RS8WaiZnmw1(1XrOOerY}a4?dn> zm)wd@s#ICj`Ba_^rQkW-w=L@`Fy7-U9{f62{8yI(%xrZbT3t*Y zR32XhUnNsiW&DmjmON0=F8bUBibhh6TW=_m>7pqeA<<<;nmX+6keWLAykSsTcqUux z!>{x)a-Siq=mWp}SA=p4;$kfdkAGpW^NzHvduAgk+ecL z$|7FCO|k8deB-q>#^RuuipM<@7MGK!isZ+CVB)Q$zWCrIAZYYXKe$O>?@Hgy$rD;r zV~%S`{ydjIs9?s~t_)bJ&Txk0pm!4Gf2Ujn9A0&iyGe(bUmZojeUxG-0l=n^F& z4dA=ktM)IyvO>$|)xUEzX&f+4V6le~sG@NsbcRsUKApF3+!Ci{JD-e&G`z6dC5QW{ z7V1(-7O9K~s?0QB#UW%VKxzy~#W!!Hbcmhxv9h{;)BeI$nrL=k5cHt`Sl+GbG?J}W z=}7HCh_|DlagRlEW~g&5VRH#3Z(U;*4&n6Oe{~xo*&43so67pF zHB0-$M%eTB1#c&C_+Bgw^L=v=_WVpE98TC8@kTgK$Tv34H!k-!j@dW5b=;=ZAuj7*Z*WdX<i+X4pjv78V3oD;gC2SrE zwYTE$rBe&B;rOlSONE-$liCNCekQ47dS9>lUAMYkv-+z`aD{FZxuG{;$A}zk}d%gGjz56@8 z|9fNVAveSDxK{-@k7?;bkU9FEnJ#=#Jv_J!=A|AGn#0+fZ@b24JICMYqMA>5cD%@M zJjwfRq8E^AjebsNh*LOYGWBu2Qeb{q7*`K}H zr~TNgec7+Q+qXU3qy5{-QT_4=l$I4eckW9-^aZcEBZM~eN^By;g2J;q!d;} zT;;X9<2OF!KfdHgKIKooYu*qr#|bi zzU#L>?7zP3$3E@PzU`wv!B5oEAHGmwML6?5!hFTe7$=gF7q zqSN%@<8;f*e5F^v(=+FAAT;BdJ zQ>IUyMuj@nsI8|~m1140wg2i>uUWrt_3Cq|wp&Hd5>0CsZCkZ&*}jzB|@7cS9|Gs^Ec=F=WpI2|5eR=ok+rxjqetvxV^6}r-Z$G?2rw3JwaH5@Fn$W_CTFUT3i7?zy!wx~@P{a>M^w7i*Nlfv?5>Z@H z#TGIA=cNc&tC7YVZU4*>#~pR-k;fl>3=+s8g)EZDBaKWF$t9I+lF28Xj1tNzrL2<5 zE3Ir2wIm(vvZn=w18}whM-u5IGgmsZ%r%`uGo}1CYOo*x&6;RNIx)mk&pi3u)6YHu z{Zr6D2_4kXLJ>XGP#GP9v%ZS<+2|Wd`I}FoNuR?sH%&Q>F4Fft-Lz6iN!`yop}v#z zx==MWwbV*cMNiI9JEAqZR!0Tt(pyK>lvV3=>-5oAhjrE1T+O3Mn~M0n(4t4(MCr{m zsh!qZj9MBK%x!7g(ISHo+-ccx$py4rhz``}Kn&C6^W1gSeOF#~=|$Jvde^mA-+cL< zcVB<|#TVdkW&d35z%0F$WHq6%{OMpE_d$*;lMicr-K&z*_8Y7PM0Re!oCGqDL094h*iRH8w5bdo0iFF$i1_H?+0BrfD&TRnj z4WxZS@W*`*Z8|r}n!!=O7Hh2Ch8t~b08qia)@!w-bKo0nvvD*l z4?TC)pZ|9r`st;wetGJzw_a;y{cAS4?t&&RPi@0rF!}Qzbg<;JD6D7~h`d?XoA8N>V$0ub!tANoMUCB6|e z9tqKgGrJkg=4Ok1XhU!iG#(N65ep}LK1!5@&klsu8hv3xQ4neNy`Cgtr>k9|}VvX~X8I8CTG1i4fFY!L}b*g_JL z*#Cw#N}vr%kbr&w(uXWaz&<@mLXovtWF@6GD18*c5}=IQDMOh`K~e2{#fnZ&Lg00jH*~R$MtDsQ{^+JOWAQZ==p&YPOG4%Vm$&>}iX+0*1~HAfi--nK zASB4AZ)}l<0Kg3iNdSQxl&Mi$g3TXZ6Wlk_@XW8p;T!r$LL5#SP@$Srpyy-`_x}j# zy(JJpe@aTLrZ>{qYMx1B-|?h+sT-)h}TG64+n;8rZ%L)~@?1n8O}OgbU{N8#Kh^E$~)LBl08w zG6F%^l+cEKq=APc%t;ddagCf}F`*~y$t{FQmTNfk9|6$CW_QupHLCGSLQz}@^br6{ z>;ny!@CIn#W;}1sbRT1L2>@_Hf=kTSibyKKOB3ovB1qyJ)^H|i^|8eu5`l-eNL(yZ z@Q+)t_DCzMtSv602^G`CR;0K|rFZ%e^9CXqN>^zs%2sNZ~Z;{RBW20#)J zoZ=*D%iIJ{>4>QLmdR*T)!^Jw!c~P_hUjE8u?3}mX(*+bBB{!4*rEgpMWv!hX-W~F zc*QGbWkH52pst|+a3v5(5>mL&O7t>&ro!Ad2F#KDdX9Fy4X^V@7fObumWu1u%Yb}=(RUG;ch!_&p3jZ?*LFC)DanNVg z^)akM=|c5^^cU7!=pqRpz3wE5azb0Qp$#OEL~N8@)_a~M36Z!4iHT4EOAON%B(Qe5 zNkCSGj<5vQek2kcsf~z|pxGD--~tb*Kz*}_-zhq*14ZUUZSZi0{}6MeBoPNRUg^Oe zyoG6Pp>WRrLk=1=c*M>PVAJNryF7VGxfclnZEUvS3s$g_9)?9PMuG%Lu!Jt?CX2kb zb|2ZDA_TS32q)-57Su?Q3BJJP)7|fF2ofs z#cy0AwGgyLEpC2IFCP6GaErt};j41R(NN4eu>=bCK}no!9RKKbH@SpV<3=J`m1n7ITg*29M(q~BC+gc?*fu8DZwL2V2S=pVy%~lWD_g_AV}Kc z7S>>2EFw9{_mviGcR6GBWe};Hn$6;fUI&`0TX^YrR<<{1z_?Il10)4ztND z(8eNhZ{zW-IfA)w1lewpPD7E?@Io|fBNAztU*1M(wGtpS?ET_z2odn8;>Okh1t9{-Jr2*02(JkT?<2Cs?}h_YYQkF- zk6(fUC+?~dx@x6Tz$Hk)7IdKiBBB-wAl;}4l17ZXzF`-7jR@Mx+Ppyn60D&S?rRY7D)dSq-XtM{;-|0(3$P+lupkj&{%t3Yh)Uw_=M;yU z_Mw;nzzrmeX3R^xE>FB9j)%&v1lmtsNWho^06B7MjQk-52mk;VXD!5i|)+>9rSv<`xD!U?{Hy#IhvNra9^x+xUB2zcb+ZD3J}t|Pf{2N}=C!~s9t&XXfan&A03GcKZvLSS%=G!X7TQ-Q6UkFEF26;`i=_i2t#~LB5MMwY(i~_Cc}Qi@jMKaNX+suB=&USeMoG? ziU3a_$;2>3AFLtWVng@Z?VffalMsh}+Q1DSPY&oOCr8N^b|Ln@>Z^pWD2K05UW|jZ z$8@46dsL+lz zCdOwbKIJiEBG|scmaK^xe>k?O}J#p)zo0tAS_4I)At%upZMXAfN>g7D`o zv>_7G(6?kR8LuI)qKqhZa~pmu610I4+6xikZ8s|k4)d+w@NGHw&44a(jT}Ub7&1!G zs5&uoA+eK6sBSvBb7!uTC$^KhqBA?mvpdxYH8>Ls#$nOAeCZf>rp6UtVZwU!P zEc-;m4(ahCkMxkE@<_7;D#5#CK@4{xBqJilM(-9#uOvfK_u^{|ccBp^bPN#(HJU&t zxk?TsNx4R;lp0~%LewZp^eE{hDgWuroNVPgK(IayP*k2{MPIa5c%=x5Pzc|nMQij$ zb<{?E^qgc=MqN}ndNenFWmtrCM~C!Am-I)aYBBKy#(WeC=@aoPbE+s)LC~jUv@jx8 zM;i*UtK6ypUb8bVkJ{kS4T!)RqHG%;E+WDzcEail-zv%qG|Jqd5Lc=VT&_3$wA<`3 z37P-|NFa8s!R5T65ZekUACX=JqFf$T5-U+sDU}jq#DdCVGc*-6Hgz;QwKO<2R6SKx zL3LD3wNz2{Q&p8zSM^j|HC0(PR$WzAVO29uBRzEnN3xVA-V-Btbt7bxy|r7x^;^X?T**~Y=13rJ zjYD$HSAR7n@?}gg1r%{na4upp=cppJbT+I|b1G|&(&syEgdo$geFDfe4~Tvm)gP`Q zN>PM=Jj7lsT?1c-hjl{uBOIW;yp{S8wiLX$+cH%K;QOI8~e)?_0hW!a*B zMpk88HfCQ|W>0ozSyq!OX=ZgcHg2|NeHLbS7HEH#W`(wBiS}rN7HNkzX_Hf*OhYO}U%$@Xl=Hf^nzJ!QmRywft<(;_L% zBW|GKk+*o0w^En)c$N2Eo^!7Z1+w~tWf5h7P!>U+ zm98QJIq^h$dA6*&7eO=$K?bfUp7k2QcV)$QU+U^!=)`)xwtdyNGo{y*(6e4xR(;`D zdj0o(zqfw@_S`rH5nil7M~u!ri&n5wvlU#N4a&BHJy5=aPB9&cGl zOo{1IAs#OUa<(ILxQ&0c_%>2$^kKDrO2ur!3EE)M=x1>o34fa)2|jFDBkz*@iI0IYlYl1@R4kUaHx?ebkd%lvw_MMabQyN3_{fbT zGbQ$+7XKAsq>9n=cEV{~;E1 z&k1^hc9-iS(moGnt4e&>*7&V8qN!8&Uu$Nmd)G;e>z|r2_{9 z)a_{H*JbwyYh^PQRKTA#i74pCp)YIed=^Y$T7oy4rvIZgLE3E9)~U6&sioR!JF~vF z7N?>1k%*uhu^Osl_9amhy{HQyGy2--#v0N9G{4%za=D>nqX@j_7U>45Z90UtmUfd- zlm8a>CDj_e0H6)>i752cO`m$Iqq?vyn1&rBe<7?!*3(}f^F4tT1}nmAs#qJjPjET} z2=0p`0HC4p2GsuHt!jz@Y9|!^Vb6GIj^K$Ue>iqF0t7mH9{^wyF0Hfw;j;&6bskTb z0>@~)!PokBK3R9TS64odJ9UxU35&Z*`v{H~Pf!Xpvynr-0(q3w_>#cS{PrXXLTsT* z(i(_jdk;mQJ`^MchrAI5cuMlbcENt0^}Q*1dqIGd^MnS~+ph8Cb=o_W{o8WQn}Z8w zdrkSh1^krsFCy^!?C>PO{p6+rWV$Trz}34X;rmbc8&C=yBK8a-$nnEor;&>pTK|tZ zU2*MniAA|pJdd6mWMdd*tpTnfiJ{M?_JXwjmq z4LUQUwuy;DRJL^i1VEqw5=zyaxCy{iiVoy;Kp+;Y+7`t7+Fp{Y=>#M%Pu0j8IA3R{ zMr>ZkZN&e(TfNEBG5wK>pqPlliNi1=$a||Sn8FMU{F8l( zn2~)dZ>j+V;$Rm_T9J^x+?wrm3V@LSKne7r5i0q0T5r#Q@{+wKBL5aCQC=t3sTiJ0 z$?xm-uk{Q7PI=#JUHHy^$B!!oYGLphmne1qrLjH#NDlzes>Q6qwcf{;-A2Q1PdBGh%lkTg$xtg z`nL@tL~XaUZKG&WnO;el=t)~ewE?hY%_@liB)MAi2@)gKs537@o%!vW zzFXU@wQ=&TNE?`Ll3a9CLS=xD+S~vr`LYd>iq=T{%*poJ(Zxx%>D^|F1lz(tsj_W@ zgsnCC~)IyI%eJv||8~U|It~bMHmkFgF?{Tx)OPBm~@i zYYn@p;{YIbd8_E$5eTwIuNIbMmL>MvlB{|Zon$%z04W^HVL8|0T5U<%SVIHXTB8)- zN*4Gg3&i9|T=Ul~0FzZXX#-PZMNF53b6EjEgi*<<2LB;)5ymEAg%%YQk%J&f6j6s9 zN+eK3Ar2&BLnfZsP)3jq{2kv94djYwYFRHimz zry>$W;yGV|+S~|}Ei9$e04&9^i>DUF(f@=+k>q7+fu?HIM7CrFkY29p;>xPB zw&aB;ue&&#?Wg)|bnCkMvb%4;{Qm22zyJ>{u)3#S1VSb67C2p00kBE}S+~5(5{(28 zd<#doev9i&uf`fJc^NT#u!=+wn<>Qw+7y)=`Xo`VK8?iOND1=-kWs7SCP5YeP5@jD z2<2KtLI@TYd@<5WC;ji95FvTAikO}$;-6MC$|crLL&~+Jd)9c7o&)WZ22oMzvX4&# z1#qQ6EZ-#1d1wElO#otsxRS<6#34{&QCTw3+klVB2umdp#0Xae`4tt7AJ(W(;bdVq z5sH>yj(O&qZ_fGU4|$krSQlv%T**lwVgDNuFTs?bC2#5@(lvBu6#M9GhYf2+j#PZ> zHKMEdJ4t9r@=a6zdFL1i({T5*NV4B#_b1MPk7fs?-EtOWB4lwBbElu*DvY08sL*0TWq` z5Q0qEBJdXYMG|&VT^OpAMUeEkH2->NM4fA6ikKp{&0VS>7h=eg1a(I?U9L||@y9p( z_%yKTBUiV$)GgeI$V4h~k&GOOrND-yfmJJ5wEzINY$8PhOkz|?sK`dT;}>FWL=O7! z(k>WLlv@sRWLm$SA}Nm<&YHf2mxj-K>a$&`aXX%QqiV*i+gA%Gkz87mMFX(QP*r8bdu&6_1*Mgb_-uXORr5?(?* zvcT3rJz}bKA=9DzEGkhiLJ+V;EmN4vno}DI)uxE8M0X>|-S%;is}AIDR2|z^vwDy` zg6JPuW#d>ur^ctvvO{r%s$1U**G7JhLle@*TH0Wgk^o>l-HD(|qM}lu@Qf%B`0`FaPZ4V@NXF02sw8ETPpdI@=Z^^zXWnY!I==H6gyz+SMk7knWp*>zUvz^I|=R4~;&wL)0Bc>B3^8b{rjOm1cja3b)Y8!LpX*Y(NtfY2vi;=Vsq*QLktZucdPc+vK!H<1V z6kS-<$1Yl{4}OYqjJ^gqFfA4=EWXPXu8n>~$zICMa0{x^>qx;s=Et#p-dD`_NwE zw8wq!RhN6+=f3u`(_Qa*FAdr4p7p@Xd+S{nylB?kcd>stG>N~vn(j{&}X^zm!3WBUr(uyN0Q~d zce(F-5B%Q?KlsESzVVBn=ZG)$j5Hr|=w%Om+Qw2>!1Gow}1ch|9|`Ee**}B1So(7 zi2r~GD0d!ma7pK4X61gF2SsK5tcZ)K$cwR9i@WG!A+m!q=X{f9jGU*7tSF3OQxN+wXKm0n|BxfL0EH;< z5Vin~T#^J2;ST`N23MsIAO--suyanRQvX1NC-Oo|q75}O9h5_j2=);BKmwLvD(AQj zX0U!ryb003kHu^vWR8o~bR9_%gHzN^-MH!H0$d`W!n1Lyn zgLxthxgm0Rd2`r)5y>TKP?20R9Vw6mC2)viG98z2CK@z|EMgTJC@3q@f$>-_IVKQf z0)j2FBNUSYNI;op0s=n~WUPr%g9HF-5M=(addZlJyV;Agc#FEpi$Cd`z&M=1>5IR~ zo5x9Rrk_B-aTY^>3<^K}yXO28xqdZp+_sgp{nm&1_E z_n~ztRw4RujOij}gJ5FvHYOw!MJf9olw?^$_lN_x~$|Wt)f3Z2=? zt=sCY-1)7|3a;ZSuHssyNGYDksIG4C5y5ttFl3Pt}{0^HAjO@S&l)tpY*DuAczqAFoXd+YIhT$0Bd;xi44`K775$5 zt=6!K%eal}xKB5+nF^vb=&1+kxBI|lghaBBD_1Vdxt|NVq3c#Hi>~X+lsV&7Gi!63 zYJ{5Vx`_FOj^lKqn@EdGySIzGx%+btf~j&Cv@wQxo_Z$QkPY$4dS~*8d%GuRvb@d9 zyw5vnnCl{r;cL5>GheH>bep!?JGavJtlXQo+l#k=>$cgBT0grm!aBeGPYw+ouhcfd6gcCzb>(3D_27HNn4=>mmCa3AGSw zk<@hktGk+GyBDm%8~nME>yQ>}gThNXKkFy|t2wy2eYKzsxT(U~U<)dYBraSFPxME% zPz&22!;tbvFT4%;U<;MtYmm649E>?9OTV>x%@ z4>$Y|lHd>i;KE%jB)PyP+7KjESqG0$9XKN zPb;~uONUWMwJd^862~PkyqVcx!~5tW-q#`$EPFDX$P$d3V&ljzVhy#hytd$#|6s#e zGrWjw5!tZ6wNPZ&YpmUyz3!{ZseFoO+yB0-EWWUe%CSt#vuw-Zd&~A)%ec(Tx}3|i z$G0rj#OcbeyS$5ni@$s#2|3Cl*v8CsQwznbz+U_iq*Dt{d=QQi&DOlaE<6y?JjPti zC6&y{)zBsr5y3Vb5$UYOU^6-$V!?Wh5O*xk^=!`<>cM^d#}OEj!>h$frLg^=!fYbR zFPz1xXE}|$!UN61{vgo*EXB1jh%-D8i0scafy1$Yo0X8!Vz#;W9Dbe)(j!gMff>Kd zccn1ff?8Tu1V+v^n+@jt&DG$==?qA!ix5@A#o8d#HEqMy(7$AiMp;aRwP4OJoq7>b z4L~i)>dYar%T^^Fen~6URc+M>dH<;&oL0YEMu3d5Lu$xOX3^iAdN2IK{fm2uY{P3^ z))38^n0zLhJbDtGC$w*ToMV{FuesF5u_6dml6rNK(Q53!B<@=RBhbJt=wqn!4>N-SI3a0}at8?4A8^*4vlGEiA!R#VQ4T-L=5c>JbZYOc5Vl(nh@8 z_l@6K8q7?rlxHZj1|if0q5lu=ZQJK0*4$R+)D=(YU_50+6GPrya z!QJ6TQY_AKUEx*P5gQ!chiqx}=l$eb!xlp~ASH0$fPU)4tkSo@^52=_yYlqP-+2Xt7tUYmb z)3rZ-tXuBnsa~DmOaJAnKIO0e=|djtNbXuL!Hm+x9O|Y!>+ed(YIt;J zE@Eje)st@N%g*e(+q=&FfY3c?0O`aaJ8|o>f?s&zf8Olf?(Lek-!9wVWcc3%!Jota za}p^c+pu&5A>N#GRo>_54k*V_E$PVp?fIVXEuN__&d*=XA}sNt3PibPpD&O!8r|08eYwNO(@wEO_My~6(?&==j@fm;d8c*^gZ}PYf>zrrh#Hf_M z4)QkMX?DG($80wnAxn<<4iHhRXwe0;9$lFsc*kM@;L=$VbBF38ek^^8~I zbMc4*hlGu7;}6@&BndxOVp2(){14ZFj{%$LIlGQ+688iPjrYhS5g{G7@C`$6eqcDe zNRL)&kNIkk=~^A_Qd@^l$CwlOnidHFDqsy7*(DqqF*O2`hw>|Yzq}QB z@C*?D1pf{sSkT}>gb5WcWZ2N*Lx>S24z%@en?;NhHE!hC(c?#uAw`ZPS<>W5lqprN zWJ&U(Ep6NUU6e@^qfMJFL&l6*(V)LHa=r=l2LeD6Bqabi5vb4TC8B9k3?1n2pSA!^ zs1o#N4ZtpSI)3 zt3YpLZ~xmTuv&oIvPi&Hcv0Y1(oVh&-A6?E<^Yl|N&*2E=V!k$EsE~keR4&d-o=k6 zU;p0xdGzT~zKr?#=KJshjc24EIj?BWn}bpx{wMiyVRF-96^ zys<_cchs>*APd7xMi~+G(MTY9RPx6qk!*6a9GzrxN-3*^^2jTbq%zAVi{x@kFT;%T zODo01(o8MO923nh*L3sDH`63@PBy`evrRbjl(SAXiQ2|8yb zMI;4Dd2{ZY-T;u!RS?|R=G2R{84D)u@KSHtmB4$CS!kn`c3NtywU#0FYJzXuoa*!L zz6sL+000I5fpFYgKD4E+eMktwn|~SsVO_PxwO0-Vkq7|ZS|ov}C;sf}zM)Bt>RA8wzZi?5=5>Tas0E>uag@mU-x-mwtNc7s}Rn z9*NOp81AyN3V zG)A$Ee5Lzb>Oj~+)47m^uF4FNVt7Ls=5TZ}L>&%y=)>9lP=`Sz;{OYUc*G*kFo``J zq7j2Q6F^;NeuXL_5}imwMk(+y{_98qwO2eaf`%r`n_zbuSVlCaQH^Wd$n`D=Hu;pN zdo1dQHnbBGtH5hP+VBS-@dzdG#co6<8=uA4C>iw8?~sdRWFy%Jzt*8FcIjc+f@;w( zG73a!{2R?dQZ+Vh)FKkKm=yjFG9RHCM;oIY<-*>$4~s$VPmXNN8EJV-T;_6XUDMVZ z1?WHrCT5ORu|_TC#1JuAr52w8l0RyZ$q&K~e71OIUi@Sgys1zoTI69jfp|qFg7b8V zWTF+rdCqb!(VI;~=Q_=qPI0gkTcHZ-zkc^+UCjTkTD$Wy2wY%R>^sz9I z>?RV~K!}BEQND-d&mYx5kr&@MlRqg>mx!_DMm_pbkV?yq7RlZP(KAdxJ(DZcq)Ill zk&Rlol$2J1=_Lc%4{Bag7yhsXyp-ujXEGB?`M9J?|HYaseIpw%X-g<=K_Zw&A`+Ew zrC&m-6LMZvt6SwNWcVpR#6in`xBE#YR-}(wSb{U!s75SmQHi(K!XMdKXebftk5Rrf z5`3)2d_D;(QgWrP+3;6!!Zufb*+d`JNR?ehw92B!p%Mw~YDzjDNB`!BLA2`X_-V(=`@Y0OrciMw{WGV zOuj)2R>q_sv6yU3B2iTp*;AhJlx}tPlvV2HbGrC^=XUk!UGQ4ByW$n-c(qI3?3!1- zBK#8}Ye*=7o>zxf$)Z6*8CZo_qZ)m*#8oI-i}}Pfl*_9G9|1g&N-%UY)wmd1E0GIo zCK!Mds)k(osI5>gv{?p^$S(029#3LqgiLKY!UVagS!ITVXH^WkeEVYjnfh|lC zL`vBD^dHM~rfPSrDxL}zwkERXLwMRjnz|K5+n_6vS6Nkvnph*)m2#D>yjgxq(Qf}d zPbDX$)&SbX8rhifRi0T3vv{Z)p)|`X`Krpj^8dD!&J+#I=#$C?7ZxM?z-v(}0@J32 zQnHl2@|3q#XhbLas=O?z_C&iq77wO-6ml(BE~yzATZ6`OrKUD;3Sgc-bE(e^HCuJc z+g#XjGojq6H}LCBQj@UME;W%eC(F~lYC{s0pr%wKvA6Z6x4gp^w&C6zUik)_yTo30 zv77zu@1hsl$X0f=lg(^vrzy*><8m~)jBWbW_aM6FjD@NJ=6~q7%&vvCTX(vdqB@hz z+JLKE3rv)1j8Zh0WF=>u`B#b3Rg{>d=1%#TSIF+w!xqV;q8TD$heurEY#eEdO?n=b zuDTZ9u%SZ|_b(jnwjmVKO!x>{F{@7e;s5VddCOf6!LQb^G)@{^~0$0|Pc43a0~AOl|kO`bQDN7?CauYBoEFH$JF*K1oIA$h#4 zKiGRj=LMOtM5zADsl(DQvP8VnC4YM02jBH5_8R6N4NS6eFrZu?-GT})+^Q5xGubpd zu z9g+(T5wV?K6r`Zk)3Rfuxq_M*P4bH}wncnj` zoZ%fAyuFKXgzA6~-9x&lDZxWaK_`4dz^I_l$~-Exx>+I|mD!y*;F&Ke5C=gJA_#%y z&=W%mB-j~44*>wX_`DMVHu6Ki^@Bqsal1EEKfjAZJM_Nz!$Us2LqF8R@(V=uTEUYM zJg^hQL@~S<)TA~@f;P}If&Z|DohgBeu!S_xvm}5U0Pv6gX@nglh-*-df4ByT@I>R- zhemuv-f06{&;^f(eT=zU>(;2doN7po_HF46jgu zYDfYHsX)Fk3YjnvSy3ig@WI>ghqajt0BD4Z*uc#&3W4#5Vg!L>bP50nfHvrqOE?#M zu>=wUJrblm6XZpDtjCDhw$-B|D_I${6QF%a1E$a!oO$tys6Y)O|K8(%Cw zUpl^1O1`W6iTwZ{qyI>Oq*#ikc#5bf7Zza<0GI>>>56~}i=Al#vw**-Adqj=3ajW4 zy08oCYr}0q#6AQ>Ih+&j+rvMs!>ts{umnr4%tNv~%ds@e?P@=Na>_&ON`fLQg3t#< zcn*sQ7F&=7Td;)J0D-Jvjz+Kzg)m5hsD(`-2w5BnSnZ!jl?CuE3C}yvBVX02L4rgz>^)atl$ZifnWX2$2It+Khdet${hl zq9BlMAb_~ohN?^<5+SnCBS4n>OyzvZm;2#qig9_H8A*ZwkPuX9 zy%+(<3xUwK2!Tjo4iaz#qUe-yvCVBT$B8++=+erv#8IxKL$>Tu9ZgFh_0g^j(jOI4 zv^3JbAw(7gAAS6`wL}||T12iG3Om~hnVF5Tuo`thT%FZiJ1zWJs|wj{lUFB zvZyag!cCplswr1}b-Dx@NX&B%uSYK#RXx@Q&8b!|D86k4k_u~4O1 zQf1Imz0I@>=Kb12 z=``2^HKYo)!}X3pI^7WzRB;8`|E=JyBHFh!TCVBGpGYfzgSA?yhEJKR{#x9H8;qwl z8pe}aPVHX{eqoQwS^?hLmlX_C9XzZ?lFb+uR$1g})8Xw@81CX*(p(iA%>w4u=!0Nztv}yeT`ykaMS9)& zaltBfSB0=r$4KF+3*IHH+N_J#Rp5*lM*nDKt^)+9To!Vs)8hRz3#@hyK(Bh{f-ac++_X*%IuHnbH z*_4RglXzgBjo@%qT?%$(UzQ*YHr9Rgj@P@5oP}2ylw)yhIErZ6h;Y>3jodHVJ>gwt zF8*a~ek9`iMFt#Iu3d~9-i&dP6A?m1wt z&Sy=IM7h=HO#Wvi2Ixli=YTHgf$l>nHdra%O2Rz|8Po_`>6xZ@#s2CIov9g#*oWFc z6;w%xG6m!_RprsU=4>u$>H*`6)7CqspN^X(0dZ!cD1vcOXMz9$5dT0!kCTdPoDw48 zGeS`s5)qMi^w|mK7?VC~^Ks*_O4r%toknm(f7uF21OOEH3tLdd&B#P?=EQ-J7fFzq zf(S*XC{xXW7)EJjWgbTOu2D2sTgRWIb-e-fBWP!Hr+OFi>#^l}pyD0kDk^|h^Mi6lujk~0Z z<{(Ic@D*_efg(^y-iU;T6iC~E4T#!@iR_(m!ApeDXaFF94*%s1e|W{`u1_Mcjf)6L z>R^qUxdjl&!5Y+tP2ArtcHzIi@2i33iyL5Y_FDZY$DQm+H~2}gPLSK63!6bqEhVM{ ziNvueiv^L2T@aLkpizO4Zw&lROep~`+y$>ljX0R_ZAgmL9bPrYZxjcaU>5E!<6zh$ z4b%9^)o6{sB#VnMYr>qFG~m!zjAw$FNX3i|Dvgn|el*yy@pJ=$NhnB3kOU;46x(=} z9Mqi|Me;$e@4ilPE%z81j%9C_Wxxn$wAfIt#!Ye&5CVbhxxsM$*o+2wkQgP{7}4qf zIP(Gd2Kio>cXk6w;BZ+e0aR8)5b#TVFp#mvXWEYKg8wFB*v4%|e{@HWblryZN#~q| zMr7ET;^Ouhe}EL~*iEpK*fL1{YTFIAv@eoKf8yK~hbm798&_SLW7ZTWoCcu;w5JwaU^wbUj08oN^M&p;8 zM`!PMvGQ23nmMMHQe^fbI^H?>TyWUyQpyg(f;SuDcp zX7_iHSC7E<@_%hmar%!uotr&{n~oJO=~L4g9dr>_SXuw2bl!f$*&gnjm-L;lbf52e zpl@_CMBgQaueiMAP)><$Sc_=lMKj^u_;qp%41UmwcU%e9Lc~OE>)G8(b<@AOJ9k&lf9c#)(soR%UKG zR>phPzhA8fqimIW^Iw1U zZ~tsdd)Q_1Mo#+K2mNWm-{WCfX|4Lcr+$F=CvYIaf(8#FOsH@n!-ftYLX0SJBE^ap zFJe5n?Vl}e+x%?|`A;OtkpnkoOu5jbM_UB}7=)>ErbU1MY=X?Wjpfdrw{qU1DRd~& zq7!X>Ols38)22?JLX9eQD%Gl1uVN*d6e&-hIt4DhnRQ}MZ7vDQL_4-2N|OTH!Zlfv zq`zB8N1k1)ckfZTZutTZEO;>C!iEnc#<;O#Pmq4+o{Vg;?OL9B1;PybPp0O9oxvXb zEY_gt(w&+r4%F=4~7JaN($fBPWPdCr;wW zizk0Bz4r9c(Wzs%4t;xd-`ul%@9rG@cg(gDumAr3 z_WAjvw^dnzw7^FqZDJ7(lM#-x}c`X#2BXQG*=nm4vc3@h;ifN~tX6mV? zihfG!sEnSal313Nz!ny# zz1GrYS4d&5OX0FI_8YLk0~3r`n=axjr(_k<*;8INWv14yuWkxxf~@7};-DXe+3Kpf zvTEwYy4F{2a}g+%m~2!|XE4FUt(F%^%~u^36Kutg_Fhw)>=G@ZwrD&qq60 zCB2vhyJf;jX?SeG{$4w^)mQ&xowZTaz9{UR**g3Z0ArJ#=ZOdAC@7CU)}=LJCc7QC z+;h`i;jFbn*_xDzQR%CZ_iD*yhFgZMfo#GahZ589uErwgB&??awu*YB7$( z_9`!-M_*2}=rfa^E8L~`9P{WqhmJbvs=MAg>#)y``RlgJo;vQdvv+q_dEZL(?W^P3 zE5As3P3%rmH+~i3%|jo(^hEV-KzWIg)jrY)gPRY{o z@h*IC^7`U+zEjWJpTGY5PjzsC!cH!6iMxvSYDYXhY3@%Lvx&w$$Fbc(@PN4+UZ~(U z!3*+^f(DFT1~C{x4u1b|gCf+O1UqQL5aKL-E?QrLT4*#7wkK(Rqn^{a1d^zQ1X=tO z3jTKJ!yf{%BGvm}!a!6&CZP={o$CtQfE2`xjPHq3oZ=MI_bt7lsBiB(5#X#hxD6GK zibJZJ7|UqJ{5{TVl3OESEO){Z@+N_3K@##2kR$vfA@LZ< zLcZ~kh8*M~1?k9<`A&UlV~q>-m@AtY?@Y<-+VXOE#=eZ`lcF4D^M+`>g&F3EV&b0K zmnHpGvxoFy%-ra}U-FgxgTADiOm%lX{}OtoA{4~J>YW2(!4)rwI7HPWz_B$APp z1k?guv&1UR#uoo}v4u9d*-dV4^PA!fCpo=YPH>tto#{P=G4(paezXE#D=_X(}`!nPifMo_0epo>Gk(%_v7V z>d}sZ^rIq0CP_=`IF2BUh|K(uDwUK(9f9k6d7J4KX=>A&;`F9E%_&cJ>eHSA^`}C` zsY#1!R82;5h5XE7v9@TUE_&^YUkWKzM+%vsShcEJ%_>)q>ea6vDUGLW=H%KKHiQ22 zp_}WT1A__@eH6hG-|)sqz9A^t?Bj|$+D9AQ;E!+U15E9r<2RIA1e)4)sET##VjIiY z&MY*b2$lb4S|eK7%Stw~3B~MYGi%w^&`M~NG@51&g~Uvif*mNv^AKTym z?hUyD9cXP8O|EUUX+0O<6`i+R=)ZbfPQW z$c7e3cvCJdK_*JWz^N98r{rr1nvet%bi@RJt%Vc5aSI#&1IHk?ut^+2ge0_~0Fuy$ zHdJjaRqq1{PN;Jd_R$DQ$aYx3H5PA)JmhC<70J?`cK?)2EGDxQ%4T|LE6Xz7p1Sun zl4wGAKhg#{Y@@{i(YaHNM+{jr2Zn|rA z+;75n^ev@U{oq>9I@fUtaY}RA(w_zU*duNBNuOQpPe(i36&PBtE0MHi?;Yo6NKw^t zu9HI-I^Xy1cW56y@PdDcaHvqDo%(4D$;yYBd{L;mrS|LNc>Z~4hQT(k%_n1WTr zV2eALesk%ObV(0J)05sOs8{`lPT%^}qu%wakA3N1&wALuUiP-9{q1#+``Q2JzV^T0 zeeioy#LFYU^2$_toI3qXVXl36Q3p%LqAMG=dM~Eh&p!9J@BQwB|NG((Kl#UR{@)Qb z?CPJp+9BQc^+zB6?r%TY*N*92Y8s-^m!VS^+~5mc)Kqm1=MdokT$=$7AOaTP0Wx3$ zHsAs}U<5+o1S((!KA;6kAY>%p1_s^`Et9nvk+!XpXG{{~g$wqbUkaAr3aVfWvfvB4 zp!pFM2ht$JSrJV|9N$db-&C9z{fGd{#SJ0g;Be9q8lmzWVG$zX5-MR6=3Np#ArnTS z6G9CXR-q7rU=3=av?ZP4^&sLwAN@g{{@n@+n#I+{APlNu8nWRUx?%qteqGwhU;WMB z9Lgd4+2Q-);U31H>SP{2QPSp#Vez1rnQT(tv6gRT-~}?`B03@kHXGWH@dLSr&Uqw#4VELx*iEuR-M*EV8> zD&-*pk>UDOALCtLx3S_XqT@NLV>&|IH@YJq)*(F7;XK}9AKGI)-s4I9p+kjZB~cpx ziAgRxScYI!Zy}&INJ5<{WI`q+Qe0vrK4b(U<0L|4MN;HNT4MhuUgJh0lLso@jEEo- zk)RTppiG(LfM}DqjH2qXBMb)CI>Ka2N|LQ`WKAB^4eC{Z9flTB94WyQWtt+ z7lGl!$m1o2qtx+8IYt*sUdQQ$7s|1hjmcQ}!IdTK0#5`M5tKk1oLUlO-+9HsE<}PG z#N=Y4qburRKGq{XN+vx%=43`DWe#FyR*YbwUz7x*@L(o_c-r0B&}spp1@<42{DVHQ zfn0sWE==S;AmBtIfopP3B*>a1sN6&%qc+4stI2_dS)~6Z4rfFXX9j8{St_R)b>i_I z-t+a}kt|+JeVg~CreCH3U-E>E=|dw#!l`xHcO?N*044z_fnOGZB=m$nq=AKrmv_ZM zc-a|ZDyB>_W-2=7a_T1)$s#}MQoVFu)A%Il0pKo%#8=uKLU_dB>_c|S)@vj|By?v0 zB&2)Ef;L1#0c=Bu$$@^|&}-eoL9fV5uB>YG+yCSob}t zEF7lD-KTxBVfy{3W`^lILS|)#=9r>snTlzE>|_6?ZJIx(9YEe4fd(Z(o+bmPW`XDf zBdBLbz-EMYXRCdLZk9j^*w-}>fo*aOswG>2Sl4$EKqRE-Hw33~T554(Dn^RsjdH3F zc_g-hWa6C(x5cGNmTE{E1Y>vvd%j(Dv8NpLWm)LvEx?s6#OkUR!C|hd8$?2PNy56x zfj-Pe<#$bMSYO>l7PA(M}?Vyk_nBe>%05)U)eThHl0~#o5Qc7qeY}kl(ge?@n zE}WPX5aB-PLp2mYhiXF`B&s(Us##E|KKv$-S>=q%Xp6$=zUFIG)~K=qtofLwbABOo zUgj7EX&IU$T$ZE=euk2c=YX)AKD0r6dIbM&dY60ZW(xcc#@1J0)xviv!MO?Rme!}S zqO1(!;F+o^nOdfq9xTkt?3%tT&B9Qd>dj}ePt3y0Xwpz=BI2DoAVv{oO6db^BH)O= z$Ti5OPBbcvq~6maZB8KVL>}kWUaF=RXL1H?*FsNouGDirnW%2hN}i;tHmr1YlU|{}h&7R;k+ve-qVC&vDVTz8>(;Exvh3@o zsqDIL>;}^P>1;pFtek#YMg`zpWa|HMTJ3CRE!GBa@gncmh7#s7FWr2qCx&VmZre!0 zl=oDp>ZWe?VsH1!ZS#7sEj=9TKGm}ZNwne%Py#Pl?gT>~WkY%d<2EYdg2Y6+NTUYY z6zYWJIwR!n@8kM!knY}gj;*oGnOnpRuV(Oa6X_6g}~z}|Yc;7e+s1s7&d z6pQw9aQ5Y=0?#Z6+bqwDa0$<@?UHbR;OuDSpX;8MEe0gsK}{kWWS}^eU=fQgJf(UP zZ=lG+LK5NdKA<*Cr4VcF5gRWOt5lf`a1$2{*k)npRtBnyBuSR)^=jXBQZNz(W*g*} z_@M!NeX&c<=k|8+Ocsd~t8xFp*e(9)q+rNPFAb>g8Ytlop|x&9(_$zISc9P10ulUJ zNH8uDYC{tAF-PoXQcNU*e#E3M;~?|zR{n4QGGpaR@fu^YnrN;8bFRVG?gA&QI1*{; znxbIhJOlf$HR|&*t$?gKhYL^*f zulS;H2%m5Yf3h++^9VaL?FJO?hB6ucW8FokfcmbTrtbpgsbl!6jwOLE=;oM}C^w;Ky(WQ&8F3Q(bMk5`*JkoSC(H95U-V}4jgV?d zVsZ9qu}7%efV`WR;cEY@it(ClLle}eHK1B}wE?;D1j(Y8&E4u5AM?r*bV@f1v)alV z*9-Z|@zVX|wAN`az7I-V>mS>~gYHBCaFdOFgR!~hTNyHyG=j-RXdeG@0HhodteAB% zbpc3fETr7G;_Kv2vLs_Q0B4~}dv%%=a1J~M{_bmb7GtDGcUGTGc#zpi)SWm?7pzx zCdnbru+VxlL#U=UsH+^bGZBp0EgY6VH0ZXn^S~j&k0rG~TmupirY#`BIUA}qi0iM` zt8NbUF#_~IA20tz3iMYCH^ni=2kI!;knO0N?G-<;WgH&i@I=Tm>8^nZVb-NZGiiP1 zwNC&h2{?gA#DaK|tj19+cn$X3cJFYjH=F$7fq`a%!LT-)uP*+r9V^fENt8zjaY4%F zNYK^M(yumPp`axN;{rHu`vcPcH*YH~Bxm(iQ*wk)qb09*g(HuWrPStP&m}*_=Q?&Z zZ_emi8P%PtW#E&l4hRObql%xmNk?{08n$A`cw-|rjX!pc&v-#ma|`o$*zvBC^leQS zWDqLxZx^{l_I8pRc}6a;g*$oE6n6q1bYg^}bW-oxHnfYk_?E+AdO!J>8%+4(pi2`5 zPx7EoN-O{2)O6w|A>$U{NVvHmS7C<~IN%Zs<2rcP#5sg(wS@EeRflD8gZZGBxsnC? zakG&p%lLwz^};qcfut;pYx$(FVPP|Nj$eAFfB2$rx{V(;)N$raQW=~^b7d!V(*SK| zck@BAZ>ww5R|>C^AGvSOdXft|q2oGVKyfv4csEko_ql^e-IQ|GWtFG8SrEw3_Mzp`NW1d91(h=tc($AKiY zSjIX$mp41lbA3~=bd)eve8;r>oG(qMZ&c!O(}uHb6&5-FaTCxpqrOOLcZ9JNfGxZh zvPCEn-#u3Oxx4?p{;IpXA376v{ozYRSo8W=PqCaPI;=s^WkkpFyTx@} zmGn_F>3MELEffI>Xtx{4Su1C~!&`dBU%bRuyz4)H>|;9XBgYEI9gkBsHm6pq-w^)| z6ZvKnQ-Q2~uk^i*dBbTx?aL$hHlRVx|3gyKe1`Nh&Qt%*AE3@7e)g-xu2)U36VR`V zq7@5!zbE%WC}|P2L97ZZT;mw44hYnvMMOI-0>nRo0|^#1 zco1Pig#@>0YiMg>M2QnAD%>{kqQH#*HeU3|5#+~h{%+Y4$#L6AkN#3ZT<9<*OIrox z+|m|_h@5Y?itPHPkBy~oD)ptQWlI~Ap^i%S0;rj>hA zBgTUp6GwFD&}Bh?2R9q+teJCY&!RyK{Cs-g>5MElH*WYkDQlINVZVm>nP6v|wQH3i z;ad{sBo2$3q}|4Ma&2vzG?YYQTN^hHk;kb`8~b(b*|~4`-W~jR@w8=^|A#v@>D=nm zk9J=g{`&XwLz#2PwRe zKnxA6kV6d_%n-y4J&bU~2}8V3CF5$7EkM*-w68=9Pc&$@%qqK4vdB)_@v7Y(TWh6T zQcCDGAoba8C?mJ=CMy=T@yDkpw@LD%Cw)3AtFW}ha!Vk)%#zD6y%hfw%rPIs5zRE! zT$9Z<-Fy?yIOR-pG1s;{^P@Q>qRmD<1ygM^*|@ug(;%b3ZOdCZ#2yqRX4 zXWrT7oPFk*WtD{3*7_IioI_VT=zZne^4hb`86Bvj+R?)>(hubxXyjI&_OO zHo5kWLErsi+eP;sc-?y!{`TB)=e>C3exQ zq@IEPS^V;KHlO_S)lZ-OFuS!J{`lpepZ=AV{+nrNTmAq1Y(T5t4r^A69qb4=Km)#R zcJ))>0vXsq?n$pmr(#X2M71ipVQX{UW7(`8_aj?j1%$f_AzMcHK@pyigeWv&3R$>9 z7nTr)DvY7v^yfeu-Vld5?3A{Kbhiw`N>86-UhtrouIia)U8$R$1ev%*CpHm^Pn2R5 zsW?R|RuPL=OyKjdr#vEdk&9j&;uwqgMKP9Z+H#Sd=aNHdP$%8799r27^ zL>Wt1bv7Tmtb;!Eo*)T1NJAD9k%v@dA{jXs9X=A0k(6X%w3WZRed|;FLmSoHbu}$! z5tN@4WhhBGN>i3Hij!33Dp}b|i_j5Yt5MLW;wJyJAJ*-VBr(Y%dD%!`_7a%C6lO4M z=t^TA6PY%|oL9VuOB#93HfWTl$F4Ur)3s(caXaNUQOQkjb`zYVbWOg}m`8KAQI6;| zqdLpU&S{?Wjq8kOJLmaMcg9hk4q{s@jaW^R-BUo?>m%7TsJR{ml9zyK5WqjCrH90Ok#;X znzWBX=>r6oXwpCQAqz`LA`+6Yg(P(G(#QX4bst=X>i@L5q;;9JqJ zAE&0~n*TsuEz`RVA~1J1ENMd$+FA<$ZzBmM@P{=3-~??*0syxF>!PasIPbcFBVYx< zB}@W<>0o&mU?ssVoE(R5Gy=f4_$*1P?B4d?IjRYCERXk$SU)$G&w>84WeZDa#R?kG zgD$l8A{#-<_7l>Ho(vx^STz3P=_*Rml0ISq+tZphD;);GO*lM~;H0(<$sNj>qH+;^ z5aANQ(uO_&Yz+|HVkp`W3UeW=C13OYi!^>`V!|*;^shDX?v>gc)p$3BT42 zBF8cSK%kS<3gsR|NWuTAKa%lR3*|{kcx`BH5!V2W-Y5Ei^J}fqb+Mux_9~}L%V}Tx zRw`SO!0nW?%f`voNt=ldsVhtBDsM-la`?w*l1sgecIT%ZRkoM@^dVVa$^IRtoXRf- zVfDj5<}LQ&m%aGO?=nlCT$@T^JmJ**>^82&eerPY)17ms+%kmqkFoG#8ra! zL93{X|FUW%#%sHhuTbg=uDA;N9uS<2Z?f`E?kKSCDp1ibPy^qN1Lbc6J+K2UFa!<6 z`c5U%=r8bSgwnW2GXAI~5DKR(iT%ot2FDNP(hmo7u%hnAeQqqHc5I`7EKs7&qacvp z6!7_yaNcx~37h{AZT78+vX7Qzs?z$c`&v+Q1kMI)kPEl4k(>|=!_d-r@Z@~3rjiN> zM^Mt}4@mIuA@uD3w2G__u)1Ue39HKin@9lZu&Y*WymZb8m9V|&P7PBK0|^lX6Hx>e zF#`+n5DoDI-wBrFt^V%I5#?y`s&EXOhO;z>;G_cvF>S?M3=K+PCqTeCx=DM%{`PRk2d zk)f*59`FD0a(FOv%uwcLkxk-n5l@5-gKWt1&paG34Mywi06-E{FAhZS$;M(I-0dfd zz!pxA>wdy1PEQi1i%G^U#fsv!n!_I&!8)h{GdzwD0Z|a6v6J|%5g8E?12QIQawcmM zCvQ?GA@LIPsRXIVpMo+cRWP#(Pe%-I8^Gry^Z^YJZY5Gc4uApxEWsAiAOL_x5{O_* zQVZlr0O3MzI^2LE{gBEcA=X5!Bp8w@zw+0>GF9^;aj@R2U-5>1qC2F*`YYVl~G z%?&T(xQL?i2#_Vdt0$~u!&NhSXx z7L985c2B8-a0ojJFqcRhiU78(EWFa7#8`qD#SJo@&L1QJ1xyXL`14eDaT_`f06j491ZkHjZ_x-R8#eI{W2A)`ms#_@C?ho~ zLs1=d# z&|=T-tJWnC-&LTm5Y8IbtqE35EPW0lg!CUIq2%OZAH;D; zsxq`J;UB^`1#W>OsBFY`$-@9lE{HU|#Fhw<0=AG~>^g4563iOFF>&jWaT8bv$rVZW za&mi52>)kL3Iz>h;pifvK(`?cLLey!pfllY608AB=gPB7wu6q$)lleIb$n z9_;g0&DZ4D4YZQ+I&x?GwZ)iNkf)De9~Z|CwmV%`cNUgP^-m=>*D~jmO(9QA$BW7U z;3~=XbQd#D9rGuw0R>L)wRU0Za`!(m8MeTS`LZtE{NWnLtT6rdM>RQ#OY?Z6SCMmB zc$1fTae0@0xp-?fX8kVGZuxDdmjxrWR}iWQw3pLd6aZr3BH}T%(ot!Y1_Tyt^LB)c zFX9%UgRIzKo7310kia9*I2KItA^`Uyw00!`Y#%mm8z}#5)f&N^!=hUOnH2|_pIgpo zF)DJy<$=w{_o&oqDVVKFA_S6P7eK%fbj{2}(k4VNPLpmI%&faM`57zvBa;9L1a!o9 zq0NA{c%l1HJDEjMhKD!kM3h% zGQIFKg1QH)pTnj~yy6se8I}>beUYsQ#HBo9(x4akHBiv8ibI(5ns& zu(;EkxD6b`Q>v$(m1YAqisyzM8X!5pbg}Azy+KOGhD_cs;>bW za=BZ+1=4a2`!Bmf^tJgrwrgd!cjU;Bpwwz1tf@k*Xbr3Up#&E0#p4`cXPnNBiMPSkft8k^ zBiNuH++C8OtO{UD5wkFrYZ!NdNjmL!nViv$yUrh7m6Uq|=LTOxbc&mXUr$0CXjC^Z zq79H>(vrZTygNJig~>$16Kk^F<#TGrY>c&A3WF^+7&i1BofS z(SzO5O}omm+}Mj9*@<1*U;WsZ-9zkq2)o?b(__C2PnmTVTgi&kne!st0MKdFoA27x zOP$zK-Q0Bu!SyGg{p4Kx@)r9%Fw6f#77E}Q+h8)0OSw7@(Vc7Tnq1gh^4tSnnfw$R z+1A6G8x})6%zuQ$my*+|OsouyI0As{#1X5=ecVr7;5S}@YCOS_7UchNprPDmW4&sG z47_K@t0W;Lw}GxbclknK^p4NpYo4T@oXV&D%9EYhd7k8(z2|jad7Kx&x%{)g+$b06 zpduA^fxW9oF5@wN&N-gy zqg(2ue!9zE?j>i{KmM=dM2K>JV!pe_;V`Nk`?6Oz7{MOG|6S})%IEd|=M#VDg&yb^ z-|-n=T{5&@i$3U&c?C7=+Wr4K+grwG;r{J~cJ4=Cvz8{202`4dr=Sn}pdFUy#KtNN zU-p%l^lM*gHk`HbE2!UA;g!DOV`UyQ zA)o!<-~IWD=#3ta zcoOMvU&IY6C1evIw*3=GaNxgdM0O3-wk=W!B9gQvX;VO(n|<5bxFJzMmq15EN=TCQ z&l-{fNpAhK#n52Emo8(%oGG&=&6_rJ;@qjTC(M69g9;r=w5ZXeNRujE%CxD|r%Izvp&OmWysK$+P6;q1vM*|?l!h}@7}V@x2#{Y z`jU{4WNVwZZAfJKvqoYP!#3OW6^XM=RtbHUcS)AB4UJ++k+wB))3@~B)236SUah({ z>({Ph!~P4mw(Z-vbL-yCySMM(z_t16yTJjXQ z&!4SGB~pG%!nTCLH2StB{B{j}q)FfQS#$EO4Mgo}x98ulzd!%~`aLJ$fCLt3;DHDx zsNhv&F|^!%)kR3%fOt7~Tv5mkm7!1@&V}KJM0E(1h!>9Np@}FSca~pxHD_F3=^ZAS zCEKKNjXu_t;1~a7l41UyR>S?H=i3)n?qhXpwTwVUH?=nv5TiUZC82& z*>#v%S4SBVx=vr+-N9fNEOyvrBYbqxoD!P$qMf#_HrjBz&Gy@JH%j;2bLVZh-bB~k zH{N>({x{!e`&~HTg9jclxfHjVbj6SxzV^=|WBhQ(KAE*mb}uKp57jS`+&Rpnmri=j zIH#`q>a4e}V78=+o>R0!1 zKmF$C-~ayh9*NWu}Cu!JZ);q?%PI138Sg^7zH3}=Wz8pf@KHO%1+FSx@O>QHh$l;IC?7(^Qa zu}jut9Bt6DK_3>8Q*!wf&PH`UZJa89SiD~r>9@rdb@7W@3?moC=tVMuag1mzV;av` z#w!-2fpCnY9Oqaq*d>cw2dZ7_!Ue*o?Img|OranHNytGOvXHQ$qaqi{$VTpFak~F& zoCdYWmhM4}W0(YAey{_wmk>~Y1@zwlM=8Kk9uR<{G-WDJ8A?>TvX!s|r7YbzK}Xv1 zmblENQ?li>v}lqjK=X|rd3Z!3Hu0EDWSY}jWQ#r?@|lQ)rZl6e!WRvZn8wT|Hn-`- zVscZ6PYkCwyQxibe$$BM1m`%_nND;{Cy6Uu8q($&xpw;Lo!qk-=60gF@r6!}0A-^< z%}CHS7Brv-9jHMUics0TQI`;ns6=sT$1EZcTEnc_?drlJKRT0|(+nv{M=DaOp=P2e zO{q#32uYJ#ibUFDjwLge$(~uKEdG>9EI-LpQnFH(Jyqo^f$Gy$8g-~a{i*-?AXt-? zI`yegz1ai(^UGQWr-IisXE!y-)eb(bnScb|#|R^dS`fw-wIEALjhCLax>aI_5vlXe znN@buRh;(3>s{CBPOaM2uYLWiU;|6ox)xTinA*mqcE+@1(vz=0jAG@cm^u5o5shTA z33hs!(DikephN}!C|jE`ZZ)E~zsJdhn_ zvw6XcM;L;c#gg>6c+rO=NWi&irl(zzxCIGz0nNF>_PW^3Zg5%}&w4KCVhWR>csKd6 znS633MzKW_fKnLqp}|$#*vCH5kTMUNl6|Dz27Zg`m;AaUzquNS`S$-I3nIwDX&4!Z ze+lxxh4hz2B!~n{3b35~COE$Q_2BHZ%i#`t_$|Ct*+nJzGYaOVdxwQ=(%VI9GnzhPZldkx&lU#H5^4A=FVv>qP)~Oo1 zmxOq+S6ljE1AP6Vk4CuR8@6Zz3DlJ_nU1*~b1>lHBvWSFRq%YCuDnMw=axVW8bQ&$G3P1@COkqo- z3uLxH14<;31YE85Cm)Wsw5Kg9orUqDp=y!pHk!NM?Y5)7vz#Pq9Tc_Z*b>yuv5(t8 z9$S#$5|U}cE!riCbTcF*w#ZHi;&6*tlt34|z_+{QppSuDW4V%0?z^o~gm~cvJo!#T z3AC|`I5fey#HCkWa+HF3mjE&lzeN%z9^7+XVpmn(cfbF=4PV>hTqF;kb*WABn%f+o z#?5kU7c$d2)^wjX5g#o9s92zAWFSd!19cdZK6|7AzW*rnp(k>S^dOoDm-xo3lMvvt zl%SI_vIY?>;f=4C#SKl+MkG>@z9d8h4NBTou|;O~Tp|C#Rif5!saTRKOVl}4w$?^1 zC|q~NZf_yQ)<&_zK6YKqT@od5_9~eQ?VDTv@*bWlglvk(Th6&iB!S0rNOvUMAQ_J6 z-rnlr+>CY+i33Zl4e82$ymCZb#@vDk(wA7lt89zN>tiF?&v%t^A9LZ&{L6BN|CvEg z|1{6v{#&lUne&f-`SXAOMg&icg*%SrUH4~9l9f+VRav5RS$h@~ZZL8fQy6HW4~S4- zopET9VMPT%7~q#a&PI12Q(%F2ci&I~vGNbhrVanGz;*(W1fhWjl8`IkAbGMvfntYu zyXIB5QiI>{eW)gQghzpSffgKSDilV7T6cGj*Aky*YtM!{m^Xz~=vuP1dBId59@KLV z!$-Medb)*r5@R9$;087}6tH(L$AWzxK?K2a4TGT#MR00zNQZgBTy61nyU++`2Yw7; ze9fUQwy+Tdr)b%+5zxnng@Jv47%acjemQb#~2F#HzA#iG4 z=MQFQ7LBlI_Q4XzC<$p$7Ks*NZg61dhc5p}kagOkb^#!Y#u6HwB`MB^Xi0}I#Hfwj zSQbZk7Zi34jX(e-U>~l+js?&JkmqclG<2t!kNTKPA?8r5MPfAt9Jb|u0SIRt)M6Y3 zhT8CL3K>aC^HwF49-)yQNe7X**J&apVd-HB?bkfmLy(~te<68*BB_5R*?%MXegN4%kJ_VGBSRlt8(V3bi8pEZ@R zKmfCLKdIGFYIF-l@L5#p4{6|r*f%6oX;GE8k77BNa3ov)7?uiRdfUc93Hdt=iCl0= zLZERh7P*ja^&NzvJfujLeA$<-!(IP6cS$(qFyn-rg@sHqj?boi?!8JHK~$~GJ1)HkYCl7 zbs3kqd7E;DJuLZ>u=$%ViITn z0a{pDl-#+U-l?77NtNBnTBuo`=1G{=c9t7fodeR43z={5`7s{@l=CT+_IaQ9nV-6D5_37AVyK(BnV<+7LVJ0h4*HtmSgrU^Y|&iV!4etT92~l# ze8-_58loUNq9R(NBzmGITB83$8I(T>l>a#r=9OVYB~&{lqe*pCHAAqxcA+ zKpLdqWo?u85ikr&$$~_Vt{y37u~`G}Qr6ifN@CI;a{- zsCHSXh=~x?SmcN6;ds zWeSm5YL{BtrSR#Zrje>Ib30i-FD9s18l_h%tj1cb$jYk9 zny4uXqMdX)rW38uI<5cGYO1+YA?X zx~^1`oOa5l`)3q&+NW`9ukiX?aGI~0La$9xuP%wFs#t)0%CA-uMTpr&L`GzI!LU@S zTizD2ek8GiYDKLYsTli{)k>`#yRjbIvEG`kB0I7ySkgZ zyt});+q=MPFHa%MH4)LWp|TfNwOz1o|-+`GNr z+r8lXz2Y0b}Aj2>0!Yr)9KK#Q#9K`zhr9|wx z1b88F7A;!qP)uB@diKO*WSI~PrLQ}wd^eOS?4l^V#ai6O0P4kA{KaA%#$?RJV{FD{ z48~}@#%kQgXY9sl{Kj$|$8^lbb8N?T499r9$9mkycMOzLK))&A!EFGbvhc@eWx zJkPIM&-HoF@@&ufjL-DU&-&cY`y9{!J<$JL(EfbT0&UOZt#Q zYRy(mqATjGDmvJJP1qqC*jH@Wf?e2*eb|bf*p0o|jvd*MJ=vBm*_d6~ncbq4&Doc& z*`V#&o88NyP1>Se$rLQeg=`DfP@=7k&9Lp)u|3(?R~@T|MMl-PNI-0!iQm zaX=V3j^iTks`827RPNwWnio)Q2~t4ZM^5DH?d4t0-eJDpU#P1|^W=X##!e7@&?-sgb+=Yk&Sg#PE2&;-n#0)$cMj6Ud&-ss_N zafnX8%H76pIhnx5QFUalL# zu-@JWYzfJ_)@ZHPyq@btd$O}NUdBs$db%{mF3x7dtIGaT%f3XsbI$+CD@aYts^&`V z4qokEir?7o&KJAwQ{L^@9`4#M?%+P|=3egTZtdr;?&+TG?auA&9`Eih@9;kF_FnJ! z{_XUx@AuB{^{xw&K)*!Z1b0Bz{qF4uPwxAk@aul?3h(gTZtzg83p>8$EuGUvzSS6S z(@3uIH=P11;M4KBkOrUB=Wg%}|L*?2@>H(tX>D&$eF;(E<5*qhHed5NuhBQJ^Eof( zJpc1pP4H!{yl`2xYa6-+OQ%N>=ev8lw%8*1&EHZV^;Cb~Re$POKlN6>^;v)QTHp0t z|Mg<;^<*FRWe@gfuk~9#>$C0#y3D-=SJi#Hwu_{IAcBGdDlzF)y1QZ0A>GnlA|M^o z-AH$LcXxMpch}q#^uC|Fp0%F!?su=TzX1cr;5z=td0y9#?OgZ$h5om5vmfV_)63rM zO`y}6`7+9#?Y{GG3-c}q7bOXh!+G$QR2S9_msUR($`_%(n69@VEffH+LKYw+)aIi( zu3`$VHXX0R4xp8VPgj#CeBOAl4t*KtUNqVFfM@E5d3RIDanq$rJp|0JN!Y1NxT!rj zt~t1=et%mBx@o1lZREIZSG(1%+g!{FEA)IfG!Hc%fb8<(^M&}Cd<~Z8Cc#k9pPZ-44A(C)hTw$S+ zkjcFz7P&lO-cmY51trCaO_zUawUgB155QuxfxeQ|?hLr6jp40ATI2WzQZBc8BMn*? zjiEE1Z;d`#FOOn%Jion=){{u)@ki&gm(iC>7m24wGO&p44#hInsI@=ZmNQnavw^vh zHBuWkp}Drc-%Za7!&aU*APnKnNI4b=bFsrO+pQtB`lIq=$z6NXSvGJW71oO*=`0`}{MnXx zBEpUfR}5boe{8 zN_40gjIN=wr0U^PyKuT?3V9?Lb#@Uag%Kw;$p|+22vTbJ2~f%2e&l6Qwkr}Q!8bU@ zB^}VV6!SnZ;QEf)0xiu0U!!!`czeET$`NxM3O~sH8Ff^g+i>}Wjc-iLs*eA?HSKWv zFxq!1k-ieW>;T#_1Tt}t8(K!m5==T7DRDYFSqXWHa9J4@*)rKrYVmY(il$|B@(Q+j z;quCkV`URq#^wZjew#u|#09c7zLBWwAPjbAP|$8?5eJNBoLlAciV4G?7s6JAM$s_9k{3*&kWu*aIV zU!`-O)eLamJIp`dO!#shEuQ3iAHA6bXBCtkmVh1z%-V^oHpnh0XEw~O7{3-#3Ns5$ zf>sW4~OqTHI!GiUH|d?-It9N@%dO>s1XLWfpO~= zR3Yz%0P6#QavkfqxpH*vZh6TNx=KViJ~9TSTLshVdfFrncmsaHi7+k5)zGHM*EG@8 zVgAz(JJd{e=ywth&uP`5yW|s&qqVi~E1_$a*Esx|wp3uZ7A@E}n|yo<-El|Npkfjc z!^==~KhkvfDl23S3mHfz)o5&33I5>K>GxuTUQTq?%f!8x@V*<8c8;;hc#7KZ6ZTc} zWfCJFiQEydiQPz8a#$*{U=y-#Y}_jzsgx%M&4L!*-0I5C6`-nUAAftplrTkS0wO_I z5j`~gR~fINT3_V^A|Gi%K{5$)q8|rB;{x!INILmohhfOIH34sln}mcd2)+mpzVONH z;<Sn;o8p$X_G>d!8%eIT7qm=|ip7{y=*jZv(kTX=~-qS=cI zNmwR~xa+abT{ZbzlP90o60^-6_PLQ-c~Z-yA=xrYh3tdOJ`=%!AH&7W41;~4A8Dm1 z8vPXfr<4h#Z`%^Hj*&K2SpFCQwY>rxl8W95;S5pQf?dCfDKhJl6=_E*eGoL73Q6rR z)U7E|hQO3>a)z5NX~FoZOOC!c^3_|N4>_NP(uPZLVfH@r zVJQv=jF+bI?di+LPAfUJ7~@;%8A;j|TEz2}&-0m#FN- zq_lWG0)bK3?su1)^z2iO;`VSa{M*|-BetiUVzU}(px8+mI|j+reMLy;`Zg1LFA?rV z^mgguqoF**Hz~P`frtlMml_B2w!=;gMmC zn+2HHt~@(=-85gxhp2h0$=h9q6zaT6pRZM%4g*7G-kF1-&Z_f<3Bd}J}6{+_2P1W3a|a4|#SgrL(jk~;9c&X|#Cn^Oi#To?{bnS^4G zJo}SK1G$3fu}mjxi}`5DPh^cSeRVAm4PBDrw#>sn=&cI4?hMtmst0+eJP7!`=g+u% zVPbI9N#PmcNT{=t`_T8{xuPINHks-rKFP%Gv6xsy#-&rs^jru^-JKkE`_B_- z@~&$z91luNzwS@W-&8H!UwjbCBJPY@B{pfMq~>tyffB?5O57hkiM~Ip_;GhOfwp$G zpnHE})CUqMf!J*baiwXaX*6SL>_!DKNNF}kKaH<-Yi#jtgb!;(NNq&a{{93qQBxzN zQkt^(YYmEM{_-{FDk|4=QmzV1WX|s{>%~wiEsd{B8;7o79iB8{$sl1ALaWA7s-UnG z^KhZQY+ez3f*#W}z}*N?t|icJCMXnWVItw6&RRw3&Rhnc}pW61s)z zWeYW+$TkmL+ zfpN7@teRz&IpK2QGu_&uuejWme;P71fJKwc1r(E3g zRH(*#ErBPe9Ci)@wzPc2qHSMGI~;O59Q|sYS_PbL1-^|6xIlNhJnMAp6}Whf&ZOsB zYe0ru)9Q`g<`dQ#L-rxr!lhvgmEeXiVzZOsv@`OuGx%j!$g{3c+RiZY&Tv4d*fs2B ziXca^2ftC**IQVo%+9FNs(9(HnB6YBQ~|osjxYm(#8X^r-tKF4W<70TeXH(t_wEed z?`pSvkTIkw*G;wv+!&QyhNqzJ`C;J|3y3#nE~(e~PWJp+e%)oz?WVL`*tAJX)bYl= z2-U0z2G~v5wOsiQBK3Yfdb|PzqTNk^-e&UdFSNp~GNQ@Y!b#7B=|x1_9eP{BdONK| zd)#~5YDN2cd%IUfyJveNzWd}CLNgn=)(n%yzvNpAA;Ub0y_`zVJro$+?Hw%bn{E}G z9_?%I?Ynu(6hB%Ocq-Zs9fJea8pjKS8-!V^?VF1eZE^31HEP=uZG@EJ-jQkCcHsNO zDxkF6f3Vtrn9FyFEq-(gJOK=xfFD|s88{amxOg^DdJ8)-?IE(6k6#3d5#*8!EmDu! zvmOFTc9_gUjjv+KpDYLxId>O_;TwR}8H8gKXSr-IknuOS8n}G+-BhiZ z5T*~<iR{F(WC6nE_(|u4rv3g1q5*hkh!$Zq!%O@?k(Y z@LBO!L$q|#bVx&V)+6*D(zK4!Ok%88Vf8F&!mMK>tbNkG!h_$ud8!?rbES=N>qzs& zOTP$**R$_w5`jRh>)#_Exwvf8*c}wH_I~a^D)e>;*w&whH6rn9Op;(sif&ArZ%lG7 zT1IC~uI&v8W4~k=2+}k&5Dn@3Yl*(qI3fA9F;x}rUDi=`u~7|wX$=ZFO}PG8k8%CJB&0s!`mSpY>WV zg@-)R-mqP~{Fk-iuW9lQWfKl-6OLyS_Am+#4(ZBcOpar5I6Y&MG7!eplV7bTmW=vs z_$1ZRCcl?W`nFB_jZOL!j0y8mHtv#_4d^q9^{lgr9e z%yyj48Jo^s11aW=ks}e*7s5;w8AAviPM6ar8NQkk1t^utLXc5+24Bq$5zKwRgEhV6s_Sife=353!eT`JDaKhj?npri4R=CTMM-OJW^QhE z(0v$Ye(}}(62bg3ovQpCthY=bdeGE0-n4t4&^62a7J+E`n#>Nt$Znd_?%aI(-u%v) z>K^pM(U|HH#ex`{nmCf$>D~P4n(B%1!llQ;m5$oAtlDw-!u8m~jrGFW+QRLf+D&-i z)$Vw?3TWo#rOFeNX|=GyGYh41k3~4AxhbT@JI4jfwokQdvvq6gNaIS+=Vzby&!7-$ z`0UNTpkG4fUqYK#M*(VJ=xV$$S$ZY6^rl?nP5Tn6jld7FN%SaJ+ckis^n5oGFYe43 zX8#gKy2fk%WjZCdp{r#WUtwEcVLxBt$Pb+MUo4YVDoG0rWt(EmZM}$< zfG1oPAXLJ*gyGb!B`9CT8ebxm(-fUw1q3XK>Ml#vYm1MsitlSnywj0c*Ot~@ld{o~ zR0ZjPuoUnDpw>@^O`V5X_<=B&5(zeesF>RV3%I7{3dJ`rt##XsA z66cT0u8;4j%#HQXu&*1hubZ5&o36_$5NI}ZM?(&~MdNFd8@q@=Y}nXr*m`c*Q8MUZ zt`_OkuU&E>%C25b!n%d7f35#qj-)3*uWlCZ8sMO72fHqD$@m+c}iF<>2~t zaEY5*)Ib3;RfOkO9x&vhdAo#vr&Mld>#W^1e}l_ubUX-(=@1LYO39gUvx0DwO;9iA zelsRwvmt$}seG#uS-+Xys4-u!Rdu)7WVcm!*WbpdD`GNocAGVIwn$YK&Knv5eYfl0 z$VYW&h;VQCe%91^Y_?C+P;SrA#@SGH&mh8BSJ!xs!aJ0HZ+3idZrxb!4wj+Ps1JER zL?q?Dsyvno%PkW}t%(A&Jbi zgI$H@4`4nY!rC65+ihJ$9QqhR+Bh8|b{syVGQN8HY&*c@`H%hQYBOUvi7V*`o$N;^ z{6|;1N7p7tuWXNAdmX)zKf+`pL>WB;0oDRdh zSOuA+aG%9raT zm5sLTnbE{KDZ2&1g$?01i^+(Z(E5F2h6_spTbVmCZX$5(UWE_5u#3F-64*agCqx@~ zR%`Qwt#IGM*2fXJuLZKyVK{dcuyMIKb7Q!45wJ5Pvh&zbzOb>8vT~uXgeKLw^bo&% zlVM|jaT#bkcBQ=?{Qhvt##IUKDop+=+>~2N%N8!vEF$tMI^(M2c+26(nQIVa^qDP^ z>80U-o%i$Wq=n05+shx{?2lQyJ_N4^Cn_K-akpqP4dNI+Ef z;JOjcp>9Dv5@+kO{<4nfww>cB>)TCdq(iLUj%dfJFwxV=_}jjXTf2^~%ZROhjJu)F z*1_-fs^pPoO{`lkzIJ?e7=Q0DiE%qcbvsevm^7d*F>A2pe>Y=#=Sz48ei=`UnB%$d zae+JpT&LF3=lgYx6Oq>&gSPiu8TZcuztYM>ux(zEMcz$!I8NK%9bDWmT-?oLfDVbi z8U29IL$8Ul(mfFeUCNtx7TjNZ-E_(BVZEG!9hA9&^Zo`2he{68JH%;rN5J@Kw0Vfz z>WxYym8*Az*Y1bOV6nS-gx?v2ClEr;WTy1;6%ux?QP=TWH#%i$bguphVSgO6?eXr` z3DIC8w-+jf!Kq%0DI9~4 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
    1. #elixir-lang on freenode IRC
    2. Elixir Forum
    3. Elixir on Slack
    4. -
    5. Elixir on Discord
    6. +
    7. Elixir on Discord
    8. @elixirlang on Twitter
    9. Meetups around the world
    10. Wiki with events, resources and talks organized by the community
    11. From 190c9247e58c19db23fd245f17607ba63e01a65c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Muska=C5=82a?= Date: Mon, 26 Mar 2018 12:59:36 +0200 Subject: [PATCH 0838/1761] Update core team information (#1107) --- development.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/development.markdown b/development.markdown index c4b84e45f..fafce92a4 100644 --- a/development.markdown +++ b/development.markdown @@ -12,7 +12,7 @@ In this section we outline the language's past and future development. Elixir runs on top of the Erlang Virtual Machine, which provides a scalable and fault-tolerant foundation. Elixir was designed to leverage this foundation without performance costs and aims to contribute to the wider ecosystem whenever possible. -Elixir's source code is under the [Apache 2 License](https://github.com/elixir-lang/elixir/blob/master/LICENSE) and is maintained by the Elixir Core team, composed of five members: Aleksei Magusev, Andrea Leopardi, Eric Meadows-Jönsson, James Fish, and José Valim. The source code can be found on [GitHub](https://github.com/elixir-lang/elixir). The Elixir team works towards an even understanding of the Elixir codebase across all members so it never depends on a single person. +Elixir's source code is under the [Apache 2 License](https://github.com/elixir-lang/elixir/blob/master/LICENSE) and is maintained by the Elixir Core team, composed of six members: Aleksei Magusev, Andrea Leopardi, Eric Meadows-Jönsson, James Fish, José Valim, and Michał Muskała. The source code can be found on [GitHub](https://github.com/elixir-lang/elixir). The Elixir team works towards an even understanding of the Elixir codebase across all members so it never depends on a single person. The language development is open, both in terms of source code and of collaborations. All features and bug fixes planned for the next releases can be found [in the issues tracker](https://github.com/elixir-lang/elixir/issues). Features that may cause a larger impact on the language are first proposed to the community in [the Elixir mailing list](https://groups.google.com/group/elixir-lang-core) as well as in [the "Elixir News" section in the Elixir Forum](https://elixirforum.com/c/elixir-news). From 069ee06a83bd42b7de9553507b65a18b528ec6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 26 Mar 2018 13:33:50 +0200 Subject: [PATCH 0839/1761] Link to the compatibility and deprecation document --- development.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/development.markdown b/development.markdown index fafce92a4..90a646d76 100644 --- a/development.markdown +++ b/development.markdown @@ -16,7 +16,7 @@ Elixir's source code is under the [Apache 2 License](https://github.com/elixir-l The language development is open, both in terms of source code and of collaborations. All features and bug fixes planned for the next releases can be found [in the issues tracker](https://github.com/elixir-lang/elixir/issues). Features that may cause a larger impact on the language are first proposed to the community in [the Elixir mailing list](https://groups.google.com/group/elixir-lang-core) as well as in [the "Elixir News" section in the Elixir Forum](https://elixirforum.com/c/elixir-news). -Elixir v1.0 was released in September 2014 and a new minor version is released every 6 months, around January and July of every year. New Elixir versions are always announced on this website with a summary of the main changes and a link to the complete CHANGELOG. +Elixir v1.0 was released in September 2014 and a new minor version is released every 6 months, around January and July of every year. New Elixir versions are always announced on this website with a summary of the main changes and a link to the complete CHANGELOG. Our [compatibility and deprecation policies](https://hexdocs.pm/elixir/compatibility-and-deprecations.html#content) are documented. Since v1.0, the language development has become more focused. We believe there is a limited amount of features a language can provide without hindering its learning and without causing fragmentation in the community. Therefore the Elixir team focuses on language features that: From ce84d7618367b29eeefa69130f195632ff0ebe04 Mon Sep 17 00:00:00 2001 From: Jon Friskics Date: Sat, 31 Mar 2018 04:10:55 -0400 Subject: [PATCH 0840/1761] Remove Try Elixir learning resource links (#1110) --- _includes/important-links.html | 2 -- _includes/try-elixir.html | 7 ------- _layouts/getting-started.html | 1 - css/style.css | 27 --------------------------- learning.markdown | 8 -------- 5 files changed, 45 deletions(-) delete mode 100644 _includes/try-elixir.html diff --git a/_includes/important-links.html b/_includes/important-links.html index 9821e3863..3ca824995 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -22,8 +22,6 @@

      Join the Community

    12. Kicy4PU$z^KoDBV;B#I5rtV>zIc=ZYsf>Htqkt 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 IKgEYPrdmKCoo8hbY7lp%rc#`x+bMD=>N?M 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�^F7Ibw)V$UH^}5>N5^CR(&g>7fui&DsrNw!`$HM zc|Mk_0Il{k>LHiLTnYlz*KStRwz;@AGWq4DF_B=lA!Y0RN^|dy-C!7FR%HNy%SKsw7X9S!Czt=gYWJaYvudvb82VuYVU5_-$TsW++ z)tDJQ+|)VfAZg#u2&>(CWz%w;`nM}a4hmHO-?ha(A)2wB;h2K`Ne$V`+U1a}RJRXYg1l zF{e@^>~WyHY_4o&W2$pz(ykeXS!{(wLqNC03$4_?00J#fGDZNX9A+V+@a3@0e7kn3 zeVha%pyHfCE3F0gs`G9MPu-W^OPD`p6J+$Hoj$FZ*#S|(1+^<-0CA-!R!Y``kY|{yl;l_wa=N2TpJN?Y3sTO7I}I$2MzV>Et~+j zg?IlF0BiOBU(bUFURbAfd-yH&0}c98rQ088)3@rd<7#xR}%e#IXFuom9~ zU~ea|Lm%tFJYiDA$siQrOIn`(r(2`EWNO49-Y12aAwGmRRbOeD{~7?>Ecr&C)|dN< zkgKEkq#n2UYkC>d_i5TbBJ!$wz7m?`iheTTk!iv3Ej&_D+2})*szLULuO)P`chRM$ zzqy5T9bnG<^({P0+xp1&nVn|;!C@}rhZj~O{8^t{4p9I?g})N%R1AM%h2I}1o6^I@ z*p7XlI5Y5mnvd`;+|2b9ptvJ^pJlPu$Ne-v6vQt#vn^Gx{VTWdyJV6)ZNI0&|JS{+ z0t1&1eVSUh5rw}un>Dxfcyq=czPM``^;0JoP_&6i|!g#KRI)sx8?fIN|*r`f20hA4=$W zyVAbg!r@!^{B-$%#v=dsTljY+beo7|(~J!8!UD;ruJ2#i>Xt>K|NDaYf7ti=Tfi5! zf3}3~Y+)?65P=!xgpt#g)c(!L7lL$F1j>}(@zoBWTa-U6w5^3HM+>dhzejp@`ZMX- z)XZr^XFDC zT53ANAR`;7gF|$_HuKSgt^Znj1|!>b2t|k=2Z;}?eq3l-qsbQO>!qL8!Yb#1qj!8b ze;NGfO3K(k9?UJj$#&nKexYpZe_mk)>S&xI2Kc%6&`_BWqz{I z?y}q<+Jv@-+_DZV1)f_K+Gf{$_|f~eP8J|N=i8MZ9lg77ks2x0^~1}{rx!^_k&(Z~ z`2J_sxrhTG#;1NMPpCxi6>D|&*SgVs4SzPQX$`1~)>xItlY`UM$JQp(Wlr6vJ~86T zSGJ4vYsux5%VPPa3<4k1`}y(i6n}FtE!6Eul0%rP;i4*VFdeJ+#-Ro}#YNRIApVM) zU_P-KloV{ zc{MMX95K*QA+D(9NpRXQ-b?*_7V!-dAxVhO$(zg&UqWrw+uHjNW+(h<{FvVdFhm<3 zA54#8e7XEPC; z+^1=A-^KVU5T@$GgXzC~of{=pzcBd!={oo4)~5fN_XS0=NOFXdNc0r58^1_^voX4RTSl36(aO*Yp831GJN|a0lPD zKbq+jDIn)DfGt$tbFE%KF9aqCxA;iRkWU2iA+v#)**3k9#=UV`$@gBpOOuqG@O<#~ z)wI%HQ$}88DY?GX5EDaP%GXZTktr@XEGnnk<(rG6%4PLA6t+85&`V+(Wv9<4RCE}U zmPEg*4!W4T4eQdEw@IA%IL$Xw(d`gzlQfq%!~c1^$9}^m8L4JQh_bTxF88-9uqjK8Vy>RDsVd%5G`*I6vD#IS!(WMyz z@85=f+@Y>8Un?+UpVzuLJQQ)TUP$)VL$9Y36=X)U_yK;@me@ zTUOq(IBN-O9GzvdFMC~MX6HTf_B{trblJT76jkg^1;OMWR1_eA zK&7-;?1Rlbdqw!-pk&kz@$HO#S{x8B5-v@lX!is8wN%Re*>aBYf&?=h0?Wj~5X^d> z4IxwzO$w^y*d@OY%VDmUQbBj{tA<+gKO>tzA(evK(Z65DC6a8QCNugh5D(s9SiXiP zl38B2u4!4zHoAm6QzbA=W1VzXYudBievAZW-+Z?A9eAv2@-&`9yF%@1Y+dyXT5@?Ge~PEm^X^{t0`6A+NOqEgXhr+z=4*a4&l2ru87HYh#&X z_>5!NS&I-5i0-~4fuSdUtmmUl&&MsEgiueKAy3*ZPdZgE1_v*E330j=d@~R-i=`P- zA+9C{2ttDe@~|I7ci$kx0?~lX>~OZoe1s+KvbmjvHwmACKxOrYxXd`bt*!?kWOg3k zbsis}Zj?U8xL6RmdBYvG7aem8_xZF&{DA43LDTpQXH_7^Cu#Cp85Oi_yHbW*rey`0 z_Mi{&bYylw9W*?->vfloj9&3oy&h@Qd3p3?K4?7gfv} zvBm_#iz>)X(AP|!EBneq4bz~`GMj-wQAI2h{d@h(V*tNw9E6h$!VwHAiw!DQ4XQE> zf(`}MX9d+U2Ukl5SI!2#Xbo!23T_JsZXplu+zRfP4Q}HN>6Hv=Rt@QL2pKgDc?S&{ zV-6YT4SlZ~I&2vFCN{LsA@pNb=nypY(@@CNQ0TI1*wR)gdK!p>D`;;PRN@e{zZG`C z3r3O(Lcs!~vw*SVz$XI1c#dF#3NStkgzycRgbzY0h2VV!Le4lsXeuDoEa9|oAdGzB zOj6;japC6z!#NzoxhldrS-{)Skd>`qUYJqDmAHs&6%qVzA_TW1gil3^@r&@tLLF50vr z+Wbwl<#x37sTfc3k9kTD8w1F#FFk!XlhGnj!S5*NNBs0*x{JizMa^K^$6%1r8W{| zNd|fG#j+M6130#-WMmeaSaR45I)H$y-@y0hi<&Qrd%Rci7ze~CV!&-flfbczJjR8=QHVRnf)T@oVKa_8QiuzX=%fpAc6-t7<5C_- zMcWkOIPhTkSENu}Nu^UuWpGMmice*(Ol38W+BQt6D96R)LYrl=ty{(c5N>h^65WTu zBxk;`y4ZM8?D)}G_V|=BQ0h5~yqYU{4QhE!PI=7_ zQ+Li1?A}NkOGbT{jm)`>Z;qX4w37s_0AX2T30{fsmrf9JN>>|BlQhO+psbS#MU=Tk{=-EyyG8zL5xkBVx(}@^JRW1y5LD7&?FPiA zQ3E)x#EBPeREENyEql^-d+v0HkJ z@|mtw@lJevu_OWeZt=$}>7S$vG))S&vCG~|m))x>&<`rRf3?h*tt^pG(BLMRydw8* zTP{xAGZfEKX_Iogjw08EA~#B?$5kjT8`M_@T4nTTyaGD$1{%Bz4W+CA??Tc0io=~N zB7!R76Dks`Dw0Mjl6NaoDJ#>iR%WPIW;s{pBvj^ARpyUW7VcJ}uf;D(RV_JIl_gX` ztE!$=RqmnJoDf@=CZ zYKBK@Mqre+<5z3P)N9{4*SC!?y6mj}cuiZ4 zFxk_Zjv2slHY5( zLG|L+wHJzaUnsl0P)&THR{i4c=nKug7g|)!I@g-@?lv2^G#e&18&@}*jy9X`HCs}( zSYKUFKv=WeT?OKSj7H_B1n8axWG8wFFfgv^QG=nI1v4O73LhWbH_!j$Bkwv#! z9@0NXl_k0$)=tkZ(|@hPT&g?#+a{nRV#$vu1fOT8iRHr`geIvW_=+5m3eb%IBauwj zN7+xk2c--+q5HanYyw(QLiw#5zKq%qV{l*gpPUfRaBB%)oc4Vqak)E6SC@zG!z)pN z2I3)kkqyNu2_f-Fz3}tgN51SoD8j|fdWXakL&S;tpiK8$V#!xu_P6P%tmty8{@GNZ z>k{tEmVS~R`-NDN><9N{V=MRZ+ea~iass0OUv~OD3c7lo|2HYZ?$IHmU(!)jZ+VcvPe=V{ zPY7FBxj|Z;G)@h0Wcbb7x_}}KGyw^_0w)9pEeeDpd|vMGMBTy$oT$sB!M>nV1=j%2 z70`7Va3Z@^9Kez-ZPPQHHM%a2z>?`1A7ROU)^+)Z6M}u)-&nHW!IFJ6VPJXF{!7o* z5tdBr6wP5S8-7C2cRwSIM8oekEVWNIk zOqqZha&%^Cb8Q@TuFOU}jsOjY^N*fN^U@AuB7x!o7%xbR{y-8HBrQmQ{e%|;vTRg) zs(tc}F$$=d+=4<9Oi197jLL#(CA^2^!4N5kXSj$-1iCTFeQAR70Q@3opU_LvMTGLq zJ3oP!mLC{Q8%ZzK_Hqv|hcL`;!Sc*_i@BSt@LfUmjWkdnP(G5E#cXODh{lt9jSv)v zDM%#ACF#%Dr>%a?SP7Y2i-=BpfI3sK2O}FD6Eu$MshEnT8`{XTMu=?T;tiq{x_DC82O*@Tz(p9Tm}P2hS#DLO(i%Rr@j zvx4lQh0WaZDXIL{=8hhP{;T-}($sIU)U$-S4$H&lnV zjka*EGx-FihSu5qx1AUg9#5`5dXmVX*>hFGwu5nhPPNA=IV1mVj>-Ol7W{-Dzfqj9 z|IrYh%kJJNtJ+_*467QQk>9Kw+5hCwQ}u4Md$V?Tf5`*CdK^PxtAX-hIY6QMJz39I z^VNeDa9H)!S%vL(^@G*ep6Y3yp6zbugU`wMHM0^5J1-Ls*0L08=2d!j2C9Jj3qUNn zudq8jabU|QPxmrYAqb-=X5 zv2P5Ymhj9{zd~Fo$ry#Ia8|JUWy+V7YCSIRoCc<)iN*(n<+#;{)6(ryRiafrZx>p% zXy`VBe)uCscr*A>Z{nX!OZAQ;S9lZkR=ipSn5dz5b!?D&NCd*I7kgNSHLD$nnbK${4J`u!GaUFeHz^ zK|CRWE3QcE25$!clW7T4-4OrzEI1gqPc=5=#zfXjUmm&Eb<)7PlV{qJJQyKGJZz5dKPu)-wHwa;^_eg;| z)F+DIEjFaEH03WTwrQ2QxnqYq^M>>>#Py*aguDC_BE`mLXfOcuCLX5P5Lxnn;j|Rq zg}vI!5OdfJehhK_M$rHNWm*!@2<<%TP5gO^?LX&G=RJ9fw0x`H&R7&-IbaN$Jjh`7S%dL+| zOqG!IPvSLf6eC{c6|=8192T73^+Zb-Rgq&lu1ou@Jxpg@K+C@TvEyD!^Ja0@e1V76 zPKXz=L#-c6p&-E?bT3B$s0vFWgy&4-E!NbCK{!o6S__>C%J z=Y^6+2uN&Rs|G7^3G1CBz^aOR&iK4Y{}mSx&e$`o?20CjkO9r~S?GQ4=6fDS%6e(R zL%Fmo=WpG;HkIe*-QLu=+I%7PL$P99{=0y4Shcd#kC^x>BshR(@X-#AlI^j7)<5^H z;Ih-7B@YNLUGvISUj>(uodIa~vwZum1C#|173kC7w9p&qp*1I$^xu6d>qgl$j!X^(0YD<{cCSa@CfEP+&HwvC z@?UWw=~W55^9PfKI?1Aq${pma__^%DW|(mfKf*JQmi-Xk9|M2$hwnh-o*#E5KP=@q z^vo}oX2bn^1Gf-wKHF^WJ9vN0zwphcIqXXQ@y#zWBK^(gy8osN2_m^(rxx;Y3C063 zT|qze$NXn6B#7oZ)YC=4g#<4(6Jg@xd(e#V%%AHgpOln9Ed!eCfUe|Mwuhei>X%f2 ziEncqXs!cjAY!(yaBw@=rH6)IN^0?PF`_H^w#{KG?I$#lzb_>J_?v%B0|}y(xv^0k z+m&a))A6SJr{MN?pu#UEzQa_S+0v!7@B3qTQkmnXtd30* z2|gXH->gOAl&Yb8d+3?xq=_gbSjASZo(Gca-+1OHDuebjo*7)S2H!7P7(?EDC2TZn zdX{oQvw}Oeh)~$mlf#=AV_Y8Z2_x6+Ia96v>qDkg{0m;hz1nXyVyx=8FtPAbwTnqH z>zTGK1MgRtkiObN&_L`vC(poXAb7=K|9_MQvfXJYe@p{`{O8|%#gqMc-5UxtEu`ER z-f|I0V2YBq+Zmiot&x@LJ+|8ao{sVNX8!kP{-55=|KycEBpUoqzwCd-D{V0+xwkfW zxS6}plzjSm%iDkCl_qrAuSzAQCx6Ng@0Z544gT@X zTy^tC<`-tyPd4)}R!C*?>@QZxT(XQezsQb@jq-;t4155x<5=44$Ne%NOoR>WJ-^M4 z54NXPYdxFNs)I1pv5(U%xhC1Vd%fEk9=x%#n1}pHrgEEZk=i`qk&Ukxd%UF_(%4oD z&IX$Y8gD(#3GO`PgPUINyh1eCs)9cBE<;!-$qk$Y9>`SVHAcUJ|;w_5s11#1`iG1RdMae@4`bSH>wC9xC1R^-xe z`lLf9?{)!%dSgPvWwN7=*+hI#J-P~0tCdmEO5#d!Na&U>j9$-tfxGatwprR8qG7NP zyZK5Oci5Xk5*AO8IUyD(d7Qd($d7-Z)3BlY4vo_R1`$Xrh#5EsUT3(p&uGH>=_1tB)GCG^G7fEP02-Vr5&)MLuXAkTd zw7yqk3duJu#<{9>v80Jn(TLmqAKT3TRsFJt|75@H>Bt>|R(_&V>PGJOv=DMh%KW5` zZ7ESAFq1P!4;#3UvS|^`vx@IqS%4QXQDmU}xhxR*uRjq){i%sU{ii01(jQC|tD+sm zEMZO8-e|q|OZ**KVB7fW53&IMp)8>OTe5)LW%m>N;5reQ4-$El2ivv{*pq=)73@WQ zo)_#*B*g6DLm(wNAwn7*N&BmcSzdBa?7moVh~wPZQ=zge(A!!9$Rv6~+0Lm#Vf{(e?7j5RlV zrxRXoM^tKjbRs}^zAq+*eTY-~Sj;@oj)>JSmiDLG0j)H5)e*7)drG0(f8<2)xl>C+ z^0&(E|0{-%7Eaig;p2Z#4x{Mqi=9+*w%DZefGl8`r+DfW9H(^thPKNSDkLb7!vJtf zRJTt9vH<^%m9!O5Za-LlC<{#8phe)6ig`SNa{H&{hq3^b93xOM`?oCcuNppvnt>C6 z-diz3cI^^xDbin`2nK+1dw9+dcRS>0_+Urp`QbzWIlprsKSt{DE~{9DW{E`51uNCVyMMDV#&GH8QV;7&rOk zVGf`bR%Xhc24ngjQdWk?Jy~H=YtZsq^-ZXTY6C6<*at+ENPyP4>D13Ml5aP@|?&TR3F5sjYYD&*}VFo9$8kFfMMw}7V-^G&@CE& z8k{&(Yp|(Ll<6cIZ(PAJW}CmSi#{D&3XP2X#R&aQ6*R>-SSO7`5tZrrdz6D)-S;+f zk(*_wFOY558gE#~qb*F+L}<0bB-eP(o!8}@tZ3HsE4asqq{CB63z7nhoRroA6KB=G zNe{jS2v7dhoiN7<5|r9fUD2;$Vh-F7G0l-m*UhY@U@kX z#Y5~me1=Ar{ho0aFWMF){Cx?&ydDWiEf%5M4eCL0UiQ+DuA!Rp_;Oy0rfbNSWEyz|r zf_f=Vuh?!kAqV;{m(dt3K+ST1Xy}5=9j)8ia8qa9Y3QleL)qY{I@H=_#N_}MY=h{8~IMsO7(_#kV@;u`7z}f z1_p4<&py!+hPy+(Nbdi^9V%|yA()x-#xOgtEPga69~f-DY3;qiy9j6>{VeF`?lu^# z-79M4FHI7D!Ex0z=>@;@sAe~|Z8qQzbyhANKJB9_^xTNeJVF;+@soUEzO9+$JIrL- zl*x8Ap=v%~lN%2F6EaJ+dHFFMk~OtT>~)UaGKE?wY@!X%O_>@kl{Yxnmc+$Q^uOaC zF?`i5goQ(}*a%!z`kUxR?#Q+AL8`;)k<(b~FQYsUUiI|q&QovN8BS{!nKU!~+~b&Y zBD|BW;$yMk0-@`r9Cq~+hynxMu3Ir;rGhdYkq@NAsr#P^Uc=T{2RM;6v#)PibdmNA zVToQEHn^B)_f2;`OCPLdbF3micTjK!8NrGCls^8D=M%3pj>hoHWMpOw^iGV0WUs-J z5)O|DwF<{h7Low*&Mbo3qZ%du);X?(cbA~tNPEk9@7M6@ zL()gyX}H))?tNC9!vi>x_eh-AhwgDZZj4q*fxJ5HIr(JI(JHwu`Bq`NIbr5nF3GB5A`$QYLSJ6R) z{spUgtY1+FEOs(5-d=(qWSEcN~)j}#_n{USthtWyOz-d zgvk(mPgYkw!y)S2z|=z$t0xpQm`}*C$Ng>3ouYgr+I(%*3~1zIh;af)=+Z5rK9|zy z1Z*R66Imfa@T-bco3sHwKY>mxR^}G!=m83%Y@lKCLCy z@%%<1KtfOFK)6G#1HgOfT>es>I$!#NWc5;u4mpwV0)yKUBhHds1#NOs*Gdw`r&_ri z;obQW%zbZ0`3Bp%?J7S%S`N-s@oJNH9KLuiqk3kyxeXSnKL7bK=(0Aq^QsWv)WziH zsk6ecLGDm0+Z53HDFi1{tuz|58tBe9E)TZ;LPDqgB<6q$VH8iiaZA;Nb*uCaLb0>jB%l)`z+LK?+NGms9e%X3c_b} z?D9Qv37TP;$WbozoFlOlS~I)?GO^}scrOI>tUYC~>1 z+|VxbqRZ4qS;DnOY7yAu0>teds_IoQY+(8W4CU$UFoSl&r}C(p+^@~f$YiSet3`1% zJb0|26i?75{K3UV&U}-O>FwHfS!Kp`4!b$Kw~L>OeK7m-?OS9t{Q}FYd2KnIES%o0 zBR?g=00O3v?A~qun@%TuVq7;n?$vx)r|DY+Na%@K8_Ci2PZOWs9}XG^vp@lA&vNId z)O$#KDh<7C98%=hB1UyoZQt%M^NBGKtUnyOVUJZPm7(|kWW=k+lb%IE015q)V{vm8 zPLaZV5TJbwT_BroD~=YPq9(i5!YXx>HTW89-~~n~`h=B2+ViQ#kibTK?ffhHclEPV zgxEG`t+U3-Ng{I`7y}xLV^gNCun?!i9B;*r#SKzj=2%MOv&p#FyJ{MdKHe0tyWJ9k zW1T>{5cj~>tkn~(epp1HtG5QNPz8#uhB zC!WjcmMMFi^l)JCmS}rRH1~WHj;YzMbm%Sa4Z)AIW^b%AIS*7rT*xj|jM!C;*0-Ol zpiHedZM>>?$M)Qibnz!=fZ9_irBYDr3FgOUc*K-_xqkCOzKfRLJ4}JrYO;5{GR)EA z$XSI@+FLgy-_;Xbkcn26@5_hM?lU7&sD?hw1IoF9#TIj*y@)+JfmupfIHMe-|=K0!N}r~JM{5@kLAHi{kQJWr0y4P zU)-S$E*rJykKCaa()}W^+P(<5J9Ixv7Dn(q=U`pdpl~Qb#%So!9Xh$0zxyue&C6QA z9V+pDY669AwHb)19=St_46gsw9a;z5YEd{?O@QsqD%9-^_8e?f!Sh@+7U^_s- zbgQTCV6z8yuqz<@a?>5oiB$DKcYt#uA52WlT&&49SL1hB9k0JLT8qC zcL=Kdo`ha{L6AW_xHUGoeM@Xt%R*@~cmOFRhR~x!HALJHBauum=e8+dInl6#@jx@- z=&Vm6ZODK_=y{#ckQjfXo1ocP()!JSl3887jnD^%mJylw6%K@-4Z{eYhaQlFS($B` zN>23$@Zqk6Aa4`SL&134V2dJR)HmS!R$u~02zeYN1qqz|fPlD-h$b^F}gq0>*Eg%3A7bDbi}>kqR-y37c}3cqMXLd)mQUJ((t5THIF{njJe>LLoIox-QRLGZck3?xvO`_1*#C;}8Eij<0znRn!@mPH@)k&MxU z9uII_WdK0}iCwov(>;YoEMpD*2y&WYF;lGiiLsK>W0W)b6Sk?8Rmd(#os6{;&p}cq zv`QdhP^+=RV!w3WJ&rJ+ULq_`MsMwmB#bU`zJ$#8Gd^@cd_sv}M);8tJqdqA0_u4y z(o2k8d?zgf#pFw3ompg&rierggtP)L%c78?U@olArwMtX-}YJg{$$%T=Aqik_~e)|6C_iIj#Z6^s&GsT;^BpU>y@{u^A5=lyY8S8e=YV)h{ru=PsL z-Iz%~m#M2_Xi7{R6)Te?BI2aN}%WUm2u-JK{NuzX=Ox%r=>@XG(xZ1d&*wM%mFndBKz%66a^9% zF>=y58%X+}POgp;dZK@RR1~*i9GL|Ia!MpR53&B(cjmcN=~}xc^AfgFA{bM-Sg@ah zQ|HRqI2dajM3<9#4Vs;Q@BBNNkg`@>-8kM;I@)82pxtVWeM%MB2MK<10=E|2lbe|Y zP?Bs^L0DnM$z|l}?9%;2WK7)hmRKULoLq>2Y}pC%_nyT_oFr_Npn!SMwHj>8L{Ph9 zg}g{P`o$_jl~CW3j6pKWKv;G2cJ(|RpB38e`Zt#y$k{uGDB{iXYp|;81&HJ} zu~(}D&GPe|YR|FY-|eiaucs>WTeL=~yqCaW6IsT-8T?eDCE!77JG6| zwmH<+H4R}B_V=Vvma)f{uz-#!(XN<<8U87Ac`&(cjLco}2b!}?O$i;5)KX2f!{(g= zxNF(CjJr)IPb#FRB_Bf1cNuc+ zD#?6=)IMlFD40H3Za!7jtPxM7Rr|GIdRn&@qJ8;W!PHr`1?n>y0taMk$Zr6)5-LEcpUvBG~neFO}?;fh{9v<$-G3oC2>mI$_^X_`j^uwO_XgzNj zduE4wKJE4_o#`#l=;>_hS$WvI8Q;5I+pAQRzq{KDS|C_>)2Jr@LdE383G9G*l_Guy z`w&KqcECATr*}++#@TN_;QRo0)mm3l)3@v&M#Ew3D?iOVto8+c|)XU<=olN zug;`2aaiD<*Y0jYg0ga-eSN9!b(6im3OS)Nj}vpA&t8{_u~*4O_dYOQWwuduc18B| ztw4qaDnmOfG?h1Cw>N@bZ>|gCZhKgzlVfQL_M^UhLkOi<08qwFZ4YNu%f9~i0SFN=QJ;%^<@(n=j2qzd%z3cjV$>FA zxr+Re8vD;5MmiAy1SBk=jBE8G)Q5ltkXx+BoI{8t1G<#)-*?6Ukfg4+b9p_0+ybwc z3=pQP<>-BR^JMHUMtHn5-pid#CO?td9o^;gVE>)nSG=am0=Ew zc#IIYZ8|`1@qgL!Shp~1Oe_xXR-V$ zxAeEE-sPFjoKkzTZ~#fB)#W2rPgRh@iAWWe!+h~B{F;b=cm#u~EhLiI;2I=~(E1W2 z8sDACEe6+LW?IZhFJc;UxEI-e+5^2qd`85MEMn%W(@>wW%qJDbF>!ZQb;cx5*?XDE z{vC4&NRp{8k>b%_Bz(_Hk*J(eEijcL)j%z|C4yNxP_mC%yg+E5Fh{H;jAX>IVw!9$ z;~;AK6@bu2pTlZdb{I9yD~eQv4P^Hl$*GqO0g$Ak;UD@)F#7V9Wd0XfYtuQ4^<@*C z-vJQjNi1vgottkw1NS{zY9?g2GkQ*HTsz!Ec7Q4z&bK4!Esbkq%*X}mCC{!E%Wk7v z6<4d6GV<1c9g_gRknzB|uBO9D^t6k%|}47ek}V-7bxj69$)CtbGwtQ-OIy z1`#*_VI`tLmXU0>~{4@uN(=jzgalHoG!}Hrn@l5vW2UbU`H97anBaP=yJ|rp~7` z#pX(adEQAT6WoU~uMxBcIjYC(H8ERp6zNdy|Bm zwfVx~UL@AFJk{SvO>3w+!;Z}}mj_4L1N9O)SoywiX?f)zLz2Jkc^yHLj_pMrK$3oK zo>}toEnv?JOm1I;Bm{>f>A$Ck%Poaowmah(I-5Y%g?>`r4cl|>m9wo zqbNC-;)o3S+j5ds9a=rbQ8V_i^G;ix`Zy&qt$<4ucRXsk|Ho0&P=4lFQS$8@Svl#13os^!%UmAv0lCTpDuQm|mzo-(I;DN%-YQ~Rli6Kp&^ zzOc2F?^=!Y+r9@6DhCuyZ3CxaAK{Q>Y{qm-=@GI<-a0rW*-kQT4+joO)^;X`jpzE5 zDpV^h`DmV;z_BB2ZfIMge`Gcq5HfFwJJvat!>3j`p^`$|=m1-UCxBro4{ zggO{9j7mSck%|qf-~yTVd`{Teoe@4&{lXW%=k>S*^`?XVV{uD*@2Ge4L#W*{XQK++ z(m!l;RA0%^<7R;-A`b~G=Cq757V}#22lLMsOc4>|1LI)er`sY`Lfi#N;|m77msIx} zH|jr+^k|)WIx-Sw+UWTY| zE|aYLgX1Ke%kHj$@x0G>oayU_PlfIaX6!Te+1-=#w*SI#D7R$3`GMSm=6fKwxKnH% z$}O~79`pxtOQi?vf!spsd4caxZsCjZKJcUWU4&)X|doSq&xnZ(x(x!i^y=YMx9vO*kF$jF6%`HL0A&oS!m@kla)%6NApfo11T3Xt*IIw;* z5DOfbyX^9`68Ek;Zfl!zQw({tR*+y>5Z%$~`PJ#`N1FeY)3Ye0HT1jFb8h*o)0f^I z$M>Dnx0=|QOw&N6d+78D-J|=C&k4qIKl{DY$0PUjfRfEgH!%V$>gMs>+eGZZOg!^L zoSsEft&j#DfBCB7_nkLFZ%W2X>SLbR;W^%H-k!`4c@mv$`dF0-I6Z+W**qR%_>?To z9?Nj<8IPnumK!~_Th}L1k_aM%Al1V2;6k$}ek1xDPh!(7_bd47Z#o3bRGr)X#8D@{ z@peGq==AjMy663J%cN4n*X}cr zIHyWDDNZA+ep8&`X2gUK>*18_R1kN+$rRx9Wln`$zLVN5a%GaxP(%!0{hhEBW<)AT z?q-=`IH#Zk0Q6EZg+`(n$UvizteK$EU^fiBn43c4(-Ow(CeeC#5L4x^qHoGG^j}KS zv~7womO>`(V~}vgAs>idejC|zqzjS;qe|SYoQAgiTTno_LhGYVXP587y9z^r~cXn zLZo&l;{{JL%q$-?o0qDa**aJ&KCX0fxOP}~aU-T=TkV1T)W>)PC7WA@1;=9bW%?Tr z`01$tGgFj8P_oYwHE0;;0qm`LuloZg&e*`|8EvutyVFy%+-AgnCU0Z(;l}>L#+Vx# z+vd0z3Bu{i-<%BM{d#(8T5cVkp2sNJ)mO>nZhxH1t@yM(U)ajF^D&};EqtMLCV%JC z`Kg|r#iwZOyGy|7dD%+3b~6yvd2SJYda?sfpQh`CH8O_DmvwOavo9M&m%w|QPfhPe z^Xeoi?QMUoIQMvG>B+RyVT7s1+~u&@{1LW?*nv@&0`VmRr>Ah=$wGJBphRQ_X@HUq zG0m#^|HS9)yq4@IeWn8`ysi21a2{}aPG;OwiP(}b#LN zQdZUe1C2ZlJ5w10f((+zNW%@Bp2eoYd}-gN%IQQ2f6wRSCZY2@?(`j=o<@=Z^hcCz zSY}qYrQ;DLTk%SAa(r|kDsXxpIenLBWPWpchCdnJW$3=Zq}+%nWs0JZDT?Hk?8hSIDA4+9tf5y_&`mob~cL^XpqhrNHSq zC$F6SI-&R#23Jy+()p{elA5~0B%L2Chj;X)^RMY%cFu0tR#(s3GtbiK&eo_1V9m8z z%hAU+OHXF*FP?mrV+3zDW73osUlrp8PR|+Hf$AZ|>8ZEDPjljVWI8yS zDJ8P_XsiRP@0!L-&F@~Y>@|dq;#5?&Dtxku+Zmpd;H)0#w$x8=BwK)=o(gwM%Bk?x z!^D9Wx~0Y7%`uD0=O)kjE$n4Hkkzw!EYL>jE!reTVU&%vXN4C18ZN?ClkEYX@_C&I z5QvWSRj7*>osZ|$k@fv*30g3OF2sq9pSU7M&d9Q8|77z(SbtE9>8DWF%`-FkAywV3 zY@e+J9!hiVUwT>h*o(F_X;wDl(u=u^_hT$?jX{;G$P*IoJ=ut#c9L+YMc#|H*wmR; ziQcZPNqF$YSLcHYFK;hwZ>@|gb3u+bcW~@JVMVL%u+?3Gmh4ZjOUFhQ-r?-JqMtK+ zRuVTGv~j)#k8sOThav;>%E~)-!08*K`@AwzJ9D%HbGL0&?O(S8(@^t^PT&4Mh}7-4 z(}!8T#&&q_XZdv9$mWv)u^FQw|oTkE(0Z@uTIy!9geus`9gb2FO$ z?w%{ne3>F0&U|#w9pCjU%NaPvQdO`NsO%qa@Vra17l`1k8^a{O@z$}T3w55MAYD20 zu+sWF-n!aq#v@i^&nE&(>Z}J#H5+|$kTuZ(utAOybIk)_XVP|_joGO}6vpWOgz%F9 z!?J%X9err!nVX+|d(TR;E7n!7%@3BCjrG*kY%GpH3*0}abiiBBVKAN7cM4j>YRTYp z)pz#aKzWxD>+0II#{?*RZlrix5O+cZ-@E+UG> zI_qUHzWbJDs6p7J=};khpFv%tF#7jDT&j5(fHC`(w{CJr51!mQ-1R#yC1xD#`T@N4 z+rbIIQVqacXTDZf_g!)e9!WoIeAgQ_7sRp+@YcN*;k&Mw z#wOb0sI?AL))^X323V>sEO#Fi_56Ey>m{kZpFSe)Ik=Pv+;h?lc}G&>!98cO_C^bF z&qepy4(KDK#AElI;45Cs*7F;O$t`jnwZC=G!N`T@5Xr4?_Z&h>tc2flwHu$l-E+Ik zZ43pwD_y+b?zy{P)&`9WzN`=1EgngU(RcT@faDhZo?G18Igk?JeYkN+k7JQ^!QPacG0C~enl?kHMa5O+s ze0~)?l8&NLaKKXi@jb^L#+@~~fT3C452A2_u|T$70i?I{e$JoaEY;{(k8L2ib#%{h z=!8SOv}YMGER+{{N>5DCnxs@uypaU$s*PHJK+mR7K&~=RZ-5x1YpGk&Y9j6-WY>NAP|v{n+J207K2h8o7T|QKsugTm z_OD}k$Ir6a>xQ#R8_xQjl=wXwAg1T=o;!vH_zy1C{HywK#PCSE!oyP&%YcG(_|4jP%H&E)LSQ-M(vT%PC1}H)ls~N{BLJ=k??<8XE7DpPCc5V)1 zz(?%>>1VpeK6gAVG*Z%1-eKaMfAm)Wa`U;TilSEJ%nJ|NZR# zM??ITf`%I&V@y8#=lJw)I-HoHN>JLjs*~Ahp6Wc3e&!1<#~QeHdU~&p=_2u89hWgb z9icCQh2J+0OaK!ah!ZHHt9a8JkcRo}{EQ+Lgoc_KCUcQ2BIUXO{hKLq;j4tS5@KMP z7>E@9qg3e6DME%g>W0UluvYb(xBeUoJDZ|CVgpHqXjG3WAh7F!-tS4ioeEh8*mZ4( zmqLz@_vt{nPs-u#HQ7`p_^DtfUAV{m@qi+fuII&cL=l2b=L6XF1B#IE0D7uY1q?B8 zb3xne-%1hsZUR{LTHB9L1zt3)HMr||cq&Y8cdh;YR9N77+EDxTRQOBM4<~!))=VP8 zb&R(B>N*}tKmV3fVRPo|1n|k<4%{qVOm@fRZs(YbatPz&tGfWF0?8Jk zAOMAx;ig4|ym{mht|PB0ixeRJa5vL3!YM**vJvU>fb>(vpj5mPc}^TS6#(q|1DUAu zqmcIzrS4eB`sXDDe&mg1U&sE)b?i$fTg#MI$X1O;NI!t< zn5~{6`!B7||MgQr;t`9;yWqk7q4FY>%Dn668=LrM*M9?rwTaeIFW@}DuESkNelw4L zgzKpLw5Pmg94`ILYvMpRYG>=rsb6=Ft{Z8R%LsdrBafrfM(EeVOvEt4mPTeQJ&_|O zJFl=^7+*u>1pyQbk2E=OFZN(nD+D-W9`29hbK5laGJ{sR$uJ*U@tfr3ev1l>@_HyWT2+Mf7wp61 zZ*KIc;VXt*uuo$BDHPT=b25FJ$G03Ag#rux+uAEWkm2k4o9(C5%jBKW9Je~+WlDbe z4IMk2{_PEI-tLODzg089{8Cuc2u@2!#BmHdWZ%g?5q5gHa^#7m$co)ldQ$rUJUJqV z@I-((&I6P4P{9*vvM2<~fLHN46Nuwzo_C_0G>VUVfq@KM!%yD2;wy zIo8{7Mb{}|AzYpcj4UQ=z6X!voJ{cP7kZVN)GN4x{x0MO_J`(35prU$C%z}Yd`^;} zNx!P;s~E`$3BW6AqZVh=Bc$<1tJ{1LL^L4{2|0bIESTHBd4uG-AhGE?sC2+>C6=s+ zmpUvwTj8|Qs$}YE7CeeT`{}%mKVATmdln=H44Hc$g9eo`iZU*5PkU6Ec0u!2Od2@{_&YM1a_Gs-Dv5kL+DYg7eM3zJxaUYY!6CA>9@f1wu zZ1uDRGPP`Y_$Pl7~OR?3Rx^*D)_vuSfVXt@&X2ZT>|hGN%Bv1S~=h zEqx^_ZlN(S8L@EfV#nb5U{tDV+)#Wd>~`g7a?Z!<-{SQGq%y^Jc>37I_IZd3Ws!^x z*@DKVV>l$x#wwS@u>}k*o3}K~m!Ffu=qy{#9K>;0fwkAr9jo?(I8MdK3nC~D-+dS_ zAIGn2#Cq@`| zT5P~Qk&1iw7Y{v=%IoBJY&*yO81ngsmD&Hq6Zubl7@ri#ZEyVlxGA$7pw*R3T+#L% zvHW)QVf>13{mq9FzWnyvH#A}!pPHl{v5gNoY(HtQ*oIVo+ms2SfQcT&aWdf_#y`im z{_w;23;0%TjTCtM>9?K;T1fE|5E1p=LYqoAcpS%BQ-mNO*Zsn3()KQcID=!Gw<_Ed znT4`uBR-5a6HgRrF;&CPW~V-wVnloxha}V3f=Og<$-Y(sURHc-)bh3+uM@WKu?l?2 zQudYo^AF<}{Y=0U$lr9=#O7Yl_@3ZLAx#a4u5s94e%I}1#e^NoXLOX zmtc)yPnWDna2i8o?H;5|1uXMaMqK;>5{Tz9t}Ep9^IS#r>?^^u*U&EYqZeHaDeywR zdVl*3?I>y%jrAS3pgeN)ppvR0>Z@50EDB(c*1E%`nx1&?><%}Od^$x$Uo zp2)0X1>lK%dQh`7vV`zN{#9@2r~iX%-IvYkho(&=F5x4YdQLCL%6L{9P=?`3e~@z3 zymk_KHQUu$>G)O+K0sycLc;ysYoAdV|By-l$Cd8CpD{jW47@(b7*|+*J!-yYjQ7tH znp?p{o?(5V>Zy#;pDOlxB1FvRaPxf!K0B9CZI#uGM-0uKb$PPFugu`Fw*2rW3O<3d zhCz7H<7`QMmHaP z(>4Qf3M0Zv=Obn?wfZDy-=ruzGvSmfSGM{s$%@kvQxXFBeYYg8U=qF)7sFvvf$~up z8j4Hj&jOWhNv7X0>C@DB$q0=^ZsDsNsThYvq~C7S<&KTB&|XcCx7Og!czjO9&@X5h6CX9lxfY&~MqAI{n4 z=VIS??~jfenJ!c~@aH#24JtPY#m1(f8|Qm5#B0Bb8F=k0 zoAIYoFK4z&@P~Q%09!RcrCS&<24aAW@eMA>-SJdt9KfV!KVZ@?P|+cdnibTD{GhZw z^@E_t{Uo}BO7~A+`@m82L0+W)zpwqjaMWZ(_`KaOHz%1=}G$% zmG|-hahR|ue%Lr5FIltOc-eu?1dygWc&sVK{N+!_Aaeu(rsf5)AsB#Z=RC`w~4VHwZ0Ji{ODzl z5%+6OFy*o84K5&p_xy~5Cv81h?n#2ZCs1h(RBwn-JZSkYz^gY{M)K_|hB8q48<-Fb z75Z*po?AA3Sy1D~ctIV^pK|bkw|@9ueZW~A?pzT-1ZS?zIxd3yvS3W>R%+^x)wreX zovr0M5W)4#m)LLRc|}WV@NX5}t|wK{D37`H&dC1>jgJrCcJbHGB4X(z;qa|LKiXYW z0na~Tol~r>6xTt6`l{&mI^v9CawD2ybjuJ4X})+E+LhclBP4W!2=&G@&{8w_ z@-q=UAZ_B!HHnKn5x4XOMBm(!C7W!X@DkI|dgm==6!XsK=OXxZ)bA$TIQM>G!tFz* zfsN3?TYoOa;nIWOO}Od$l;LS-W4cjh1D{1^7WP@=Odx`@Qyp3L9 zrm%zOVCCJy<+Q17=K%*V?9P9VgJ-KlS#jIKDfCx@7-SEeL`9byO-ywoW z=v*xR(OX{^GqZ)K`0ly%swi@J^=3#ekf;5Fy-t!~^W zopE_Xyf@e;l`5cP_I9!+_sas$-o$yBPsZi9X`d{vrICDUT0b{}5qhP=NylP$Dn?;D zk9JQ5jBh?A&{p-_?s-nI1q1|=u57cf=p;qKdfJHVVx?Iz5eiqH_pZK?a@)Ca;>>0f zhL4OD`^^cgTQN=h%6BdH&GZR8?dez379O&EoW$B0sLNVdaz7R1^@wA$;xm!3>s@y* zkhtj652p+6UW@nI2fn;?OReXt#q`EdxA?=Br0_wM{@~C}>Y+k!J0(^F9Fom0urL^e znR^o^y16fagTtncX&%Vb8dJf_#$^LLIU=;P1^DHqiD(Kx@ylDjpr-Sle@kffzuPZo z`{7&PST|jC^Eym&{7iDl=9c(vPKflG=Gm^3$Ls>2$qSqiXMgvyZYxas)0g$7pHwLR zC~}v)d(1A#eOqGk$1iIGT`(M_d%QwHBbRVw7mRjQ9gL;@0UR#N18bTd*w0_|-gCJ@ z*yFVDDZLquKDzR{u&rPBlPf_&!*=&QU!7HLwfs_k7`by@;d2O>MoH!UxL6Co;keRo zxLUb9^j^nK?{xv}f<5+^ty(U0c+z3+V^oY#4?IqEsOKq>S%??5%Ip)h>$<;(!`T8# zd;oEg79^0ckq;7t|B}%ySoN*nEqVR~!%mSa+VBd6D!f7=3$IX!mKuhi5_Et@Flv~- zkJK`{l;DkJ?SI3W#Gxu8h7szZ;)I%X4H}DFbO{;&0X3-@U9e zRgFHNrAq{VSf9NLrQl&7CLLabKEo&G0&F)^?9tK|4 z#*Ihq-6vJZl!q0H`N+G^4qnze_kmW#_3QAL^>AJ##g9QTe|v)7e-7h#g@W9_`=9i( zhFrB2_@(ylU-i-d)Gpw(db^oIiHO`CvkPqQqB*6~h7X*9Tttx#hmWOIQOVnciAC+E zGA@#~tHi$YNVtr!3tpxcM;3OSL%;bb=Oi%sSK9R+bOYYrU5R#@phJwM<)gqOcROBL zh!aA|fSxbAGE6fkG7q#e4jIOWJdv{-j${F@0j5KeQFTC_QKV+3Plifyq zLZ2hB{3Qj5T(c4QAbD041@F-FKEoUJId5qYh_6<`TMmrPpWY3{scC*D<6vEDD1WOA zmEk#a$kLVFx4_WZyhgdBN$6bs)9bGi+MvrYn|s)8~*XuJTeF*Kbxz8{% zH;$R{GL6DAdw~@9n=$|2$NE3xv7VI{@;eRtPPBoAmqs?2(jK8pMqiiAF;P?QhP`FM;dm)i`*a+^)Vs&TY21wvZ5yWlvdV7 zvgVL`fH9wB(;~QCC`W|T5qK6vxd|#V_qm5fM@TCP3 zYb@TyK)C%EjCt?Dc7w08r2l=a7y7|>GX5;wE~44xd_N~Jt!}_ns`Jkt>p-}D5_qgL z%AJRY+oxl#%4$&Bvkh;hr{p77SLb=t?pe!@-#@MGB}=dRyb(5+6O;0^ap68hS;RtZ#A z5G`#I_P##R-BY#Lo8=R=uuUmHv0WHOMN$*kubIc(AaJodpd41&=3gV`fxnyboaIEJ zF&(QL5p43D49JbPvVo(> zRf+SW3U1}$?(=r#(G@)mHhV{tQng=Z>GIj^J*y7Cz($XKPf5Z?*UT?H*8h)$+v$%z z)(biuu`cL>IeGCp*)z#)dX(bHn`gifFYZJ88^MVq1$6$FpX>Y+4S>!MwAZYY{#81^ zrq>^a-A8XK@!EEQM6urh#Z!RM6fI|=0)t)~)H z`-4Y1V&~vU=a0@@&|ikMV$o+*KGe6JY>~M_!cq5O^@F&@**=OeCy_n9a;`p+ed-|Tl-pLcQ(QZn3e)u}5R9a9EWKKS)Cs>3O>V+>Vo+Lx! z6Or^YR112t`@_?vF=E`?QZIsc=KQXPP@T96g%ILhfefs}0nl7U$yC)n;bC_m(?^v9?Ne3urgSJ2M{wc{<5{y1sFoX!K-m4Xup*)t z_ugMV3$bWk7?g$xyAQ2=TQvVO`&;|JVfS1^hCjBy+eFLlo@bpOM=Ryw? z%-0A@zTWKBS@K_IPMCnU8k-6Hh=1-b}0pc^D=L)Eo$r$u8#uf!sjN zu#tgeP0%tCx)aLyXn&JtJs5rQ{tirgVcL#zSTNKgC-4RcLiv23FMJ-*q1=4y(tM7o-1|J3BYg5+<@2K3OIJ#33_#L1 zY2asu1gqPksucdpmqLgsmSM~$4Tc4Jv8AB=**(>arpj(Vo?4oBRB`J~y9+CKt-EyC z**A{STz|B4@DDg0c9Q8pVLK1psBy}4TI_tU@YF49f#5$M5% z77_dx5(LWg^7`~*h~U3m%7K!v@h4$`zZ?AjZx~=_j`*iXLcfZ`Zl0B|0CXH*ld?rH zA85ou-T^RK#(R;Ln#n`MdbAjwcY+@UR0mt^dLq+p(pu2Lt$g9Cp+Qs(kkx3QbaeR$ z6T1@z?eM2uO-kArnH+naJl7bKIAnC&3)eH93SxrkkVIYu>{l@dxDAr}jlo(47W@tDyLWRwj zLunzEG~|+bo+uDJw2X?U(ixZ874+4XT!Ndb0 z;ioske}#nqD?&n6$Ysml2npHQz9b7N1J}Tn`$Kcta1TOsdl>FPh`zg1@bqx2drpG) z^pV?dFpY_D`vDK4$qumS&EpU`dduXJkpGmBuz1a&=eu&?KSxM_x8}8yC2^PBu(wdZ z-|GI)wC2<4$@P9v4#cBscT73ctI1ZAYa9YE2R7Vq6%@)w0Otd_+eD`eLxCFsXw5T; z1Fd;TkYVy9W4r8~7f=Km?Jd1LVleT26eAEAM12vCXw6@uRtH-1{}mDj;9K2mc~-&S z4<>dXwz}Q0a}k4yWb41?K}a0{=Z(sce|jSTIr{gH!JY>m1i*a7wu{n%Ky1o~1|{*` zV0f+|N{qG-3p@cxZu3J%VsZ=lc1|q*+U6-W;7T^iYdP3DS|lLway}2^^Wiu2Xm!ia z^DO~;-F2L|?!(A}!wF&V3Cf9c=#m_kFtZWbK`_Qlk@tC8_s4^lNEon~LO@73B_l4{ zRP{y5#{!Bc0J=&Y+aJLB}S>FqNU zQ|MKt0()pW$#MFyd|Flvmrv#d*T-NK*Q(%K-GAjqz;jKS5qe#Q;__#K!T)VH0_j+o zM=H^EB+TZi)2$igsFUdKZPf4fFoIAzHkka6z^T7%GyKcz1e#udTqp1Z>I7weaGSvi z1(ld1W?>95rz~&BF_q_emLRw*Vr8oH)OpQ5dFW^HUVITLLTo7a;dDTC*-z>O%l_p! z^rxz7^=$)s(Ilh!bcOFfe^a2=-J=c@S)^(t*(X$j?h1d#e~G1hN=0zT_me`)6~%`7 zFFTuX1)*WzpcMH8AJh$uM+$XE74@RLgJt<9Q5D$5p^_j_R8JBok&G}<5ZIcT@TK%& zoP>i@C;b`IGbaPS%_-BwPD6sRC)yw(F3Xz{p^O%OYQFgRGD%QkYX77#vI|VK!M|_W z9oh^kLf_R1Sb<;EpW6(Xnn!g4rnIo%B@~#04iXBq2ML8(L_%R6dX!LL$uOwO;_TjVWwjwP4 z(&l2dU=gsnNHVrgEpHtyRhRh*To67wCC2_ztCUgPnfW2n`f}+)+W4B$ZbvkX{X%cr z-1$>Fd;?W&ba_`SmqRV2H_y>gHhN^$1f$-4Kn^u2I8S{7L~FlEoFZuP;O*>nT2SIM zuJ$6cFCrrvy6M$cXufAh0@FP$U_$Jyo859$S6W%nUY(u*iS6`$}5q*nYh_=T8w!5)=U_+sF< z;k_}}=u)wL>=SJeH&;B;7!#SI+Yk>TPHBiIfe0hS3r|IwN}M=0!a$mQ8;DrHkpfF%4F4r$UsHF6Y@i$fcqbx$yrQ6{~=~>gUhq$k* zn-H6R)0xNi(^)eKKdRyf@xV8FweNR|gi9W6^zz#LRzhG7{3;<#!6k(G-%AKi$0dZD z-z0>NV-f<}e^5fW<@k@55Tu`i|8S%C-`6?pN(PnuFpCfzmV2=p>ioW1&S@0hImFYo ztxZXuO$9c3q0+7=Q*k~YbPm%GJBO0l!68BKP!BtYc88tA5P0V>?Zjc{koDI(hyS%1 z3jVT$VD?Hk^(DRlSB$C5pJow!bJUebdCF>oQ!JpJrFY}4XxgYh$pahkuELs?y09PYc9nK^gX&!M0OrmZYhhm@7iEYTTt!vd)R z{OGQeZe09g6bST&4&!cF5jK8=FgYEiJ8dbI|Eg7V*-(r+{;okFAQoW23MJA|hqW!P zr#4}ux}E1w9_}CVXaW~`ljG(Fe+hd)6FwyA_XTf)xM95-#@8d^b$R&R@Z>p?WlnQX zR*)-WRk>1BK7jlB>F{1j>_FEvPtDdpAd7%wjbb6D4SvdJO)j$RTx~!Zg6qdBI=cK& zLyNKqo$->$?Z#fWWBvj<2n?`5Km8Ay?@2K?!^EV9~N6;loe{K-Raj&yt*AN;OOh@H%tc@bcN-ch6V`T)Hv(tv#86k$*W zyiGWdNlAnW0GV*(K3>Q?1pt|1xL_#hM{PnuTk^Tr$OaUO9tZ{DEHME(+xiIi<7-%q zRBnY$(&fM)K?pDDa(QtGR$*Fg)#sV(W;@*7&<%Ck7slK5*#d|Ge}?@LmtxaF?MYyK z@SNKHMpdv;3A>qsuw8JJ=r;Wo6?~Bob_={?ZpeC9CEayQZ{fOOQ8bV1qhXi;zZD6S zB#CJvLo!#PDyf&A6z+cGezXrFk`zt3#UNaC2S6r2s8AMe>ZCHoWHXhXKu3&9s1Pbs zs_Z2khj71of5v1e9^Kq{xI8?lsIrYh8>wYeY8Z9>!5rc^Fml`qHl2PX$LWhW4$`lN z*D=8r1plzu2j7kZRfpS%0e^sE@ojui`yGJpJvt8J6}e3_CKk9DGgE;9fA~&Mwu$oX z%7dLAyaeP(rujS@jR3%3aLFZQN5|Zl#TWh~EsR<$^SVb=8!g(jR0HE{{jO8O$wtS_&WV zw^}>7Ds#s7`NE4h%-~X6Yqq+CSBl~9FNjFh+`som1wP>aQL&D@|A9j{Fh2Noz#l4l z&?c;Sz19Pa4|a^^*;P6mjSm7qrjj}93BOSE2a`da!8TJ6_944>5pW=r5J_Fcbc`L& zz|;W?bpMjW!GOQuV-Kiw;8uzl5S*J zylm}q_AX?#Kw@nBGce#USk4jmW_Nwu)zo?OUG!a{g?iF=*jjVseS2F=Vj04Hu4)AeKZpDnjoboh|JjbsR3le%~f!ot&VZEaw|q4zWj;JqsTs*oM-pBRUR|Oo zHVT4v>BWn$Anx#vgMalU%-eo8q||gZm2C?BAveyvOl2T=>!Sj&K!J_}Qgj9oRJ1Y9 zefTw~_?Uo>&9f3)`O``?9uob#FcXHGnBmu^K8LY|9t;vRT{C(xj?x_@QGBqAF(yb(sDmw{E@4;)d)S9#T`E><&br6#Fat*>SXV`qOI9~@Cf7YnDl zMgK-=$E5io#dhD7V3suEq-@PIDsS@ZS7kT7ur=y{@j+4ATsV-a`({FX9^fwso|Kt7 z24sT!3q(L&Ge;lIDY6QG{jQH7qT^6zjguD)AMnqSko(30eNmNEg8rJ>go}6RRqT2x zHS&o&>_%yCs)A5TFfk6Uax$98Ta^SB6WDsh4n}G}h ze88V>E_zBa`e9EUe869~*sy{oa6aE&a7))OrlopHp}=tfSmmwWsGI#j@o=VdQ1w;x zwfUL?mks!U|3(8yPtyUx0{sg>rav4XN_~|BV0-l21jw zf;n23cDeNy9lE30%Hrcn!_gDx&})S(qMa6ZCf-`x8=kg|0Sm`7uSi@h=hSWtlyb-l ze&btlv3NO9ZFq`t-_DBfJX-iensg}?rAy+pY@cIcyG&rMDq#~GlISsj1*&A_(oj_B zb*gz5jA8#0t@z&BS>!peTXkP3&U2>6yEOF^4hs1c_n`TUJ zxvVE&=5_XWMo+o!kIC$VZR4g-s0})Adlu}CRXq7p-_V3b-|O@=XMb<0!gX(;z;&`A zad&3@;RRuPBy>llK|2(_2grQRNQ`I=R#br zVUM9#i4o0#roVw5?dEM|;%&p{QEntpH-kI70pX!w53F|+h4*`r9_J^#A3HXs~Pue827MQ!q#i^O_=qiK@afa^HVTkeS}8H93#y( z0W#%%aC;^|Z8N|KEim82k9`x{b{v^t6S*eQPtV?8NgpH5Ezr<7uz2u6DPLd*W8f)D z{;U{jEDnzgAiq-_!LOu)`?Z1x{emygdYJq9#oO7%xp|H~b+~MgVWS*8!iWO15B`)H zyciRlhJKbo`X)|dFq>QGHec`-U-0fG=*uSP#-;~bAzHPSKYJl|_=`|>NN7|c7K{V! zH6P@*Zz%f`w#_)0=rrU^R_GQwcPSuhSIk{vIKq7?>A z`GHy?hTFcqfAkVI>m&aYOu=JI*tevDlVZYPv!JBULA_iycdW5CHX}}fB2`aEs$)dr z3rAik#CUBVs=9|=fGGT#PVB4SWDnjR*|Qy zq8+lL9sHvoW(5z_O#=!xPLN%F?z``IV%80GOXqZX# zTfc}aPyyLXw=tC?Q|F@6uf=9M#Ad$@LR!YQER5YikDe_DJ#vV~0!2E^fhuGotE%EQ z2IG|G;_9zO);tPr^p9hg!Hs?kX~KwCk%`NVaXIVO-tYgx*JSPFZnFa|sPw3ALtA)|j5CWPv{O;dWv~H)6yy z7h=p#V>@ObGbMsCsuMAX5>IX?;*cfb@+aYICt(EOj*TM|#v)r<`Sv}qqa5;~;!md5 zPNsECrjJc#aC87Ck}x{jnOP@*Il}@kMl%rF?n{8d6G^(f_*DZbqC@!2(^gYcFS@5`RNu`mOVis<(QCKixVh%_uhg zPIbDbdkRTo$}QP6bN&pG6B$)L={lbkU)$n3YU4V`l078LbmGr+Vb1iH&2$UMWH-pX zw_i=5jCsYzQPO@W^BG=P#0Lq>Yzt&+B*08;s2xB9nMkoj1CjH%^v6$)Eo&7H>p5e>OJ%Lv{Ygq5Krb{7+;B zEBpnk+6C*fmP?KW+tmfTLjdBbAUCQ2Bv6Q~Q;6zRh%R6Rjw?I~E5z9;#3e6cEHA{@ zDI#_%B8@8|o7W?(DWcdZq9iY-7ATH=Q$*`j%otb9TvN=7rA`kk<{&S*AW*`sQ}Shh zwU{TagukZbGOR>MK!$IpL{y+uT&GmhsZ^D)RJx{A9#*QjQ>v^ZBuieVu2ZJrRHhYI z=E+s24J*^zDbpt}zZuARU7*~^soW&4{7y}IqiVVNPPr9%g-y<#2mBQe%!MFRgCRyj! z{XpC`YK$k(37+fVUZ=xtk2{n0Mi}{KrQv#&y9WiTNF9nn9kP2JQWEzN3+@ODsGmZI zx4*L%jEjY~TsP}ffA4)Q9k}jvXFWD*1Je=17-71jgOGqH^TMw@nel)Pzwa2ve}CFG z0w(Hnk*{3;nul@2!L)5~F=~tR!CwE@Xq!(tFpLKX(}BJIFK?cV-Ngux7w@Vr2N=dlqDB^SpgSSalIcWzmu;6PtHN1s zf zjc$wZK%0R0Fl-mI!9)K*>I4 z@dBZJ!W^-ZFp?3+ifOX348(@tQ6vw+FlMzZV>{UJ%PWdh1iF1T8i4@Am?FmlK5hHE zSpbWC%mTIBkNFqtHm7ys>b8&10u;K8QT%=ufZ}4nYfI9Dz5d!c{_D;ncJO4b#cSwzbL;bAB+t%C0nWVRE)b;X?tdY7s=4%)GMssbcSYfddG{;bzAt7? zjvM>fJYy~hhVcMurIIhn_YC73kL|xQj2(2MUD>KzQV<}Uso3og7kq#xGwF(5<$U3Q z<<3Io6?Nky=H1vlJF4?6;W8=}`|ip~=H4TQvDEvAYl8#aQiset%|(UHcY%Rv%kMJ^ z2G>4(W!^2mQapGvA2N)0=Gt0z~eEUAVFkWJ#_EMTucQ&NibC7fX_nT7fzkd5x37_iqbP8~tX^fAPjGL4aZ0 zp<&}tmS>eWuA>vyUkPUz6KUvvK8)n8&8r{*4CCKK@3x7~?|5Z%Sy*r;?ypo;Aj^jUZUtW5>S5C*9 z=j=txaBl44M3;*K{`waur&CjCTl@Odi!S;R6Qf<*srKC~jFrB(Jnt_5z@nP1yclKX zLtt_DYc~9{0_(buchJa&l4Z)vD!Las`Df1UV%WJYiCel?Y7e84*;Nmm2i>dC8CfKL z%9D#sY04GIgr2-^XPC7ZGAPiMzua0oYW%YXw^k zsykg%>p4QUym`e1{E=I>rlsvuhz4u||0v};o(OykKcyNE@N}@L=7r!lIL*9vDTgmq z=I%9YJ57f{-L9a)L-28__s{Jd4*N}jgKv9a_>McQGQC}HinzOs!I z3Ug9Yv97mygl=FtJ$L2MMnJybHrL06E82;F4nrs(0-rz=%E!64jS~iSaT2v9_pxG7 zvD{bD9wI!eqhe#Z?Ha6td{M=^Wey{?)F~d_R2&!GU=EEAiherAiZ|ksu$T>A**&W9JsCO`F(D|eSG2i z`aZUh5;?ypTfdkXzqm5L5*^Hh7{4R~$P3VY)JdF3M$9-{8&~Ux@@4Ml=ltC;0-me- z=u!u)_4$i12B?YB7q0pbUko72y6x3+J#=2xX268@l3Pnz;5GKZtaR^oTaMQ)a*gxi zoy0){F+m%bf=FKl#rB~!58MN#1kI=h&)Nph#{@5y1%Dg}{~FqXkEw%xFcB;l8N!a3B!Iqkx^_hQ4ZmWN*- z4Cmbq=Oc*_;E51Yix9Dk5Q~kFD36dDjF8!lkRypy;E7aHi&VCYRE>>PFOSq5jMUzZ z)FFww!xN>a7Nu_&We^)>R32qK7-hN}Wlj?PkSE$wE!x^H+BP=YzC7A-Fxq)H+La{6 zohQaqEymj}#y2*`zdR;zFeZ3621XJa#uFQ%78_+38xspG3b6@;u}QnJDI{@eJaHLn zahY~;*|Bjs<#D-#aV#SKc_i_LJn_Y9@uJgequkdHx5B9WiMw=(Wk`wbn2H19_}^AwV}QWGIi{NPcci5t z-PMdz(4Snq5P|eo%+dTu*8x|2#jsJ}y{dj(tyFcP_-Wbw*K3?mJ0%>|; zk+17(2+qXKU(TOyhW*0hL?1o-&_aPD&dU9i^hpJFdf?+@1&uW>NLuCetEOV0>7t{O zt8Nh0?F<1gtc-6O8FoI|cSL7B#VegH+G(Y{e&K9^;=9hOJ>gHy)%$SD&lT9RL3z&f z`)g-Z-@c8|>>(u-E6K;~bJ`?V@@eD#ezD0WbhPt1!p8t^t zH;r$IoFH9>oluFEpX+o4ZQy0=7wMpzJsWpnv_M}*C?T~PER5h14=fy?pUE`>S6uwP zpt5$v`v5nu#?ST|5{iaYDdJ2+eHGG*(oBiXvjhynk4`IP3E5!57=-LT?aCz+AsL0H z==Gh|N%j3zeb*-;y$qAIU44EdQcHcM*d~G;(FtKCW}z(Jh(#+@(|#kH&T2TR_G5&- z257pF7~*tZT>OIicsMwadW`zuu~UN;wTpZ~eGKS71=a!U53GtU&OcZOg0PmWHfVMX zfpy@YpoCp+*bX*cYmMo3Ujx>GK+^l4*MaNrSUHa=VQ)Pjy?JnW>L(T0S!Yc@S785{ zb>P|d_Z8UM+mD4NGv%IhYq`s{5|L7xC#Xo6+D)#r3L^^!n`Z>@#olJKmriBS!{kpo z%W-=)i(RQg{9@L|RRRByn!GMrk!IV3KtZ-Saf`i9IkNkggK<;A)Mj)1uOaWMlG;UG zqBd$}&73v|7-Xxr`X419u8n%YtJjAEmJfGlvt*rjK7`=h*k7)M9~`_d4XHU?Y<8(V z+I@>t3txLm1z!<;iA0L)x-Xcr z=F|488C2va#IE-L3gCJTD*K2VAPJv`tEFxxtD+&GswXJ&qx0f)2VZK0+H?)p9~L7aQc?=H`l=m zc{+0Sx!MLh?X5GfZ5qmwN#Ih-2!O)7L{QDB{ltZ~$igQA>8t_ID_nI7KZ^JX9UFC> z_`zMG(%weGyXRd8kEZd*bxic&cn~$EF4A-PjjUoi0Yq30gu{Hucj3ALOU_#-y_S+= zRFqwwf0em@68B8rr3IyJ+Dl7}!$(x?XkARQv`@LAVKg2b51Mh*1^pX<9cN@-QX z+j(c?eU&*BpsZ}qBn`PmE^ZCiS{&GzC}N4=*7l8KEZgWY1@_>;QNU~wYuRt-Kly7M zOcBFbqyufDW#tRnpd3amg1gwrX6ZAx;aeGWDHYfc-t`cQLy>&p-55N>*Pok|tasFt z-%r?1n6nxyk8`55O#3i0FYv~$$A#B2g=%zx6DPQulA&Rzso+&5l-bP=Ly=7V#)NIx4A1=G%TyGm=+o>Zv zT2Vv+O%c7>X}TM@5*$)B!yvo+TH|Of2ItJwz=e*#6P>OPrb&AK8N`GWbr5Y|R?~yNdVMZnK|p ztl1!`TV2qA?Wc!@H-zeRy6sI;Y82A zr8-ir@3?6+hXZp=hlA!_kOo|+F1aG_xL~NdVu-myVqCFXT+y;2l`A~>7;f0vu1LOa zrwv?*vl(#8+=zDENDbUb7~Sbx+!%=68Oz+62i(uKxL=rehZ1{maC>lyxpUdNUh(y~ zp6$WI?an*k!N={%ROZ2N>nVicaZ}Y(GTT$2#Zz|PQw+mPk(L>(X>sGdxih-xr zfTyOI*XTmz)==`Jm)=G@-iMLojOadA+&&ftJ`a3-4$t{K8t^d? z^Kpprwh{Ba-{Rw7K#l+l~m(b!Ho$Z%c z=9jwT7bE7Mr0Sm&jKBulz{>f+_Uyoxfxxzyz%GNJUa_FJj6rW=f<{^bAye4aawyId*pvpi zV=LGTWx=&CgFj^l1A^D`Joai?@S1JN26xD2S;*c%$WBWLd_H8C7zXBnp<%+%nP3>@ zFswlsYAXz90ftEuO289Jh#5-66iQqkN;(*Nwl$P$A(Vt9jE*Oa9y5%ADU7i^jCnBZ zTx-~cg)k(ki;#R0F$Rke zYmHD?h!DYyyu}l#Djum|7^$`!q4gwEXE*W=Nt7N>l)hS&fnAhQY?N_%l<8oU`EJxh zl4whwXlu1-Tf1oc*l5S{Xy?Ib*WGA+LulC~b`%UVP7XB*WCPZPE$+l@5y!%KV#Cy8 zBkW?M)M7V%V-udlCi#WH%43sbV^ewJE*ges#l~HJ5_hFFF1tJ~e=x3KH?B}EzSu54 zFE+mDNqk9bd|7$?OYtzsWjFf?h`k(YfgrB*LS!3eWM^#1o56%Gp2Qxt#CDR%K9a=# zCy68CiNgztqp^t-aGs# zrb72pX%^$@NE2v{($0~lG1;dv`=_xDrCofTcDW*rV=t}L&V`BJ`C(|d^#r750=qdj z0XZdtk148BE<-3M@+MZ4v<_wz6jkhMVw4=_P;7=fNsOxfWA(VlniY?=haT(fJ-$Pl zsdqI~Up>>nKGP^JQ-*}7_x>3#lGKfP%u6ZQv3J9x)gY*Hm{EM7C}?a+7ucc;&0-}h zrW_(Ykt*#97KgtCN2_6iUuHQ=#6=9nMyWrEv40X5_avd>Nz%}hl)Wcuq&XQ^b28O) zvh8zn;&O5;a`J|9^7nEINuL&9eOjXa^u^VL3LW%~dB~;w7*w~E1>$VSy~N5CVCBZH z$WM~q!+!H5SX_?qXeBqQ3mm$Vh0UBhRFQHz?%4<+qLJo}Ud@}3$Q!rMn^MnP^v|1( z%llY?P|%jHK3}<-cX2h-PB$iY1!8HGHLn_v3`1Vu!G4iX%;XC8-V3&XqN9Aku6UVM z!3RTnkbZ?U{p_`Lg7^Z$rv=1-f;LN@{<%rzRWkS$Q02i7IP?;h%c6^ES4EAmfJ5@02DNb z2vZ}1{R!+i82Xio=jd)(VQQElIn3nx{Io>~Dh!$FC2}-#+_)SjvK(d{A4s39kj|l$ zKA_Y(zSOa@)Y+lX^=YZwaH+?Bse61dhg-S@l4flVE}D9X&~6dG2h5l@*y!E1vBq*|C{o;pqM)B^_-6N+*N0v7uBN_T)mM{-xgL!hTI^e z*|5`(A(GG_QPm)o%f&v@AV=P)FhVMDy;0e*Q8l4ay{b`jq*42zQHQ+gPM{Ob^(KAC zCWC|~qpBw3ktWlFCUf%Uhu51e9XaVWfwiRBzN*=Aq&du@*_ph>{d$Y1W{bCDi*G{9 z0Ne-5pWME?s|7~h8g{)kLbEl>u{9>4HLj{PVWc(bpf!d3b=vjU8Je#%jnB9`zLqYk z%QH&ffD|DjJ$J-g}(cG=d5Grl}YfG?vD9(w$71G zRl&Lya)*!C-)uR)*)eu_pYVnarT##ZYxCd@@{KNVhaHku7e-?e)>OyoYc3DBgYWc`NXYlSAtrZatb<;>ES9canndWGH$SZuBZ? z^(wQHusHRqSNCd;_5xz04n^Oc8-03Oefmy)28n$})qTdJeWr(f<`n%8Z}eMg^;Y?1xp}fPPe2U@18^gs~!zE6`Wr@QT)x%Yz z!!?J)FDXXqZj3Z&jWjupv?Pwat{!P09qBwA>7p3zxiR`qYqZa4^tOfdK=tUz=;#>y zaCCxVZ0g3?jMmt!)7X6C*kbkA$I-D*hhr-g<7+p@H?+pLoW^$&$M>qo4@Sq24#z>1 z6Ue+1VC@Ms=Lw9Y39OolQ)3gSk0x*_C-HeF3A85(ohONtCP`~1$;T!sk0zm%Q-=@V z(P&T6J5MntO)=L@v5ZZz9Zg-NoWAT_&t$@`WRUcjDk+W` z5$73dni(-RdVwMPl7bmI%J&Mq@0BRWEEG~Df=RAvztEHdta)+}IdFL#(=RB%rtvlN-lIC*KaOr~aZDlU1b#MCTY2n8olo-sUHNIN1Jy0Mt)ycmi%->kKm zJ+_#a*K4SQ{haqhvG#`&=MQB^-62UI#PJrZjy}Ak{79abihP-%bx8oXBG@y$KCvOlCaR^{hc8v0hnpl2P1vB@K zO|nM_beS&Af11?IP#is?dP7MyW;(8edKW&1KX+u;(`o-nW(n2oQ~S|mSIx>t`DJN~ zr8Vbe0u}WG(@!g*tEAdgo1a!8%e+xC%#r_5~Zw#Zf{65w2CBeNF)mi)^5naH9XUIytACw`ayd;IN8GJ`HI}ePK4|oR+{ZQZ+AW> zi41A)CXK7nxNS?E`lP<8ciU{oAHJRyvZHlj=UK?!bJ-oe+tf>)pORhna|w4@-|d!- z?kHbgwFjNcYFVLcG1~|4aI~3kzK(G@9I8DWfsY>o z|G)&Cbdc(3=JwI7%h7!D(c%S)593Fl00SKreC;Ou!lk1P7x+#xe6JRMaA6TtApMfh z9Tl5WC`N8lz#E%_*OOR&O342#t9C<-{Ip0g#SLdLiNcIn*g5GWp;(3Y5>c#LHJ&7j zvr=(aOvV~w73XAQdZyhNck6?4o>sLp zDw*;})xvunNy72UOX?*iqcvV+DxWkftd_12^a^-ZI`XIi!16dGF}gI(c<<4uVg z+oogHPH;3z%^mZp#vm%uB+cE2vmJ>yeJHi|EEjv9-EL0O+PD7HXJUg+rF~$#_P!%o zG+F!5ersv8)`#l$k>lRx(s*<7ZMgH%;UQf1(=`w}T|OTQj?hJZR3g26esn6&ivpMo z8TkT`3k??qvAJgQ1##Y-SrNn&r7I9RBP(=C_^gUvfiTf+&r2dC_cIDa$jllpiBcGz zvJj}De%aW|6Glh~DYQgMMmzwE{ zq}bmGu}fd+*DI2a%d=#c;hD=QlDW3rz%F}Zd!|VCCLGKm$B%x_Qh*yG%mJ4dCc0NF zFG}Ubp&-uixL85*LL-NwbmcWmMcJFESCr&M&%IDmloh^m>z2yB7q?VyOFvgsz5n=y zvW8jX6%{R;_b*g#yP$Ha>iT%eE8htb=2W{EeXm6AezF&*x?$Gi67>fUu578Bl)f*~ zFsnu7(zIwkSE~8wjWCy%RsX$GEgOa5B)1vE(Q}Q<6Yikw#q7Ox%E!4!A-yq)h%GP}dOsIqKqDxa9$>&1uR(Iv^Dw5?jeZJwNM~Ho8=SpJ*~YsM)tG|ym*k+9UG;R! z$gEso(aJ2RjaCfaPIeLizTEX%X2rZMk&9!Bi^36uet2nja~vmlo*NU%7&B!)ZPSA8 zeyBJ)#g?rinz}1@SQq_+mvBrwXmIU^m=q_Y?W{*gsy0ruc2*YdvxDriYRQwRVl-=F z#^SLlL)fM3gp2%TkC$9bpNvJ(!Mb?;#K54JVXOTi4cPb~ScZ{!T~xz|oXzegKQpP* zFZ*FDT+NMj_~Y5yM>%M&BSD>xbd0a6M_!gb^;#x`iwPd0A%nOMF2FHOKzx|SNFdx6 zeoz>IljDshUZgl}3KY3xq6( z`=D#t7G==;3Nk>K!I;2D9*6^BOn9F`2CQY~9=ts;cP$QivP#g)a~s{>1T8X_`DaK# z?Sy_>P#m`u6#j#_6>Jj%eyT#TyPvKS`r)^C>jjC`u~ubckC=FXOS{l9cF^iVk#vYc z#fCW*44OI1UQyAGG`{vkYq{$FlF&av=u-|C?1OxuujL&Le(Tks6+>D==A9;9(pN7) z#`Su5Bk{al=6s6_b%ZAGe0Y&pZZ@l>+gb0EqEBZ*h?16kSm7ujeEkJMr-nM0t_U#Z z2=2|UU0Tq@(*(MUh5=5vx>3QtU{L9#FNe|+A$Wdv5Y&ZXrN3shrz3>LGKoP`%um#o zJH&j5*PycKXMi-X^{E&Sb` zcoiZtD}h9wv3#S6?ersL1Hm(F@{lkleCu8^x~+)*uB*G#gwSmDYv)#RL0y8pd{A2fpdK;GJ)uA3t8~wLhaH=w``6 zD9$&^HKbD?uAZJ~I-GmG-j1J(?v)qEd4cOB3vJH_1*l#yzJ!zN2KbFZY*2I=H8z!y zpDQaFzq^)-{Y30CzGI%FCU}XD)DZh1HrOIr=9l$|nK41{!e>Jxh^z z)3)X9wEAjBxu82;43;Z$MD&v(5Hk@)>sx{r6X>&gT8ZiM%L1pto*+4Q&bsY#`$Bw& zy7yMfjUnuS;poK^#9D(ni&<@JZe{xMHg zg0Xw9*|D15!B3)CIKsR6(qho&Y$s6|NmKEIT;mq^hpPg8fiqznAMRo~v?Q)>>PwXO zbbv3d3n6R4uyOXNz3D9l58CgGa1AMnWcoF7gk8WQ1GidQb9naO*Ky}admD>pm3{t} zaG|*cG=qNA1)T;W>O0i?JV}`qSAjb)L%k2(50zi<6-=XkkLz365*GvkY6ORWPqx$v z^CxCELdcfQAwP66axfZZcEoc(TKpRP`=ch}=Q{QN6p|%~;GZtRN86c8WE z#$S1VSfueh%uJ}(nHo6{5}mJ6kBV}W+_B7J=v&!RaU(01<-SMqHCZK=6WMb6og{2i zpdVTHsXlY1_2gjLqYrG%4y6LajBd#UpRO^i`Zb@U4=E$Rv+nbTLga!>b;ag~fuaZF zoz<0}YXm>bmQNWBKj=6FE<>8KxLtId{I*eNvf^A^+K-q3bD=9So+`|ZfSMcTj(>^K z)dQCYV^R=bUun{wSpQ3nAd8m>%=b(vBg_vk)t5$y*|axJ=0Z|~sxZ5P(zHQocT9TF zwW)bxU%44;mDb}^a?ok=ML&xY`W;S|b=x;fIhdKd!Z1Y?fN${kGhwol%QYkCWvgP8l!|st& zc&B$Jqomz;rp&N9ccx*YHBZ@$=x1!jye0GO)FRA2?arn6uvH9r-yaKINWUOc#P>Ao z(_WZ#Ti@OXAovHk80Yf#zqlAL0Kq>ZvxC)^Hw1iZ?Oe-WT#PDahnqm~@9?vW(dWVu zBKUW-JD&yEx<7t(F>ZVb{(W{aBEW)Qr~o<*a#?&6jXrMJn*ATqkY8cwFOx+p`c7~f z@OLoH5>X@RqMN->zUr3`WuOzox>gu~N7#WwklTWJpBtAHtHB#tm0HAdULe6v@Z5C* zaR}Ujo8z_tov+X-iZa}_dhdfYzf&Z4@Ez{g<1>T(6i>wyJXP>x5qXZOEu@JCx!mMs zd@0bSev%JEC+u>Xys@ey03Q}BWbZkVEt7A(Iz|VbqASwh;6&PxKQ1>SVgiX?M1Tb| z=-xbP5eJ%xV-PihKojw?ixEHv9m9uzP;PYn;j=Fd1=XX4(JxPB9@hx|q}+(zDzYk* z^U8t1-$eD7l1ZiT;bra2#fbZVZ8p{3&4h(HR4bhZGGb(dF; zf6D2gY@w&fU4H5taoE+2nanxe!S)37B!}5zPf6TE6#~=grJqpAON7F5HXdILVk*#N zej7Kmky(6)Nya8lB5n;4{A12^WPX=Mx`}WxDn!42mw9#biCj>QQWoH1RNu@|?Z{Cs zechX9zxh-L`>AR(!o|3mYXAiQ{tmF<-|k`rf`2Or7o+6(-VnmY_)GBbbpEl6k?b!D z{wZ7K0Kq?QcAK5mC(cYj@Nf5O+ciY+PY=dg@M{+%iR26`QD>XZ>7wJ{pP7F%qeph^ zHDCR68nkdHquC6}d#Nzac$UrwosTa1rSM$;05lOFWhSC%@d&uIcKIF^rky#Q!@mdw z{{R=G2Rjh_+XGyTh~VFXjKkL^Vzphn*G8v1SSvr?GZ_#dQ_zgRl1+G4qc|0FXkOp- z&;lC-O2HOivC2Cv2;l^!fGgPiZ|Wg|7*deHQDP-d%?1$Mcb@wD211~k0vs9uj}Ywr znpX^pj-*!!f*($57*Stw;h;G^4m{ir3a~Xk3h+tG0ksbK#(FsRbVmj#ZhE00Ls2%Z z^0#Op^=uq`RROZLr`A}Gtgc!x9jh07rAj@SI2_q8CpI?G@n%-AHNZN9((oNL(%EWk zQ0_VK&5v9yK6SC2V30p(%;!o}G$5Bj31xOf@Wwudyf;AsKNu8k>R>%|S{V^AY zae=wZfIE2H0E|(r`_TmC04?ORev9O4epG@4X5y9ym4uoA718)0u~$O}1smBy$e^u0 zH2M9f<{G)r2yGdBr=wVHvUgCxH8Ka`S*##67~h5cl&hFSIv>sWv_W#{5+8b^cDI`z zV}M|S22%>lDr9TSxw9A0u`f4uelS~o9F<@UM(^(B^4dZT?tW~wv^Vg0?yKNMsN0-2iIEHXS&m~>ka(dq3I=&;cL?6t@r4;^G!gklsQ%(&Oc?M> z+VM*v_D|#X&rtQxwDr%9@y{vq&mHj3+wspQ4k+XfC{_(9u?;AT38*Lws2T{U*$H?_ z99YL4*q|ENWE;<2yx~;b+IQ@b=BSfo;pWxi+YP@| zb$xh#Jx!bXAsj3MU7<5F81i29y2N4L`&K{n?;Xc^ z?gpZxWrvAhA&p4ayhh(UEd=m4>4XK5#baQi_^}zG{D;Lefj?zv>O}zr41;g*Sbypv z9K&@3@ermYjJh59 z^C+p99LIUG&qplfZuaZ=Xyvjz4W&@PzmxTBYv{c_K)`T)fxJDUkroy|Y&qvdFb2eV zmbS-T(b>42_;E~kCVd&ckMkf17%}(r$^%19PaeX1^BKo+o~*pR#oW?Qdmr+f*^UVq zKY0iAn;hf@$db*Py6H{%z$X&_``?rL(4(i zuLO*;_Qz~Ct;c=Zoe!xm`m~Cyje6Z^kjlIqy>L-y- zo^qY;swBF+_V*C8^5ciFUG(&&_}!DLF5`hny>fVinSN11o5m~;K)`4X0*+U%j$?aSG=zs zOyY*v=JEQEqLz~gaNY@Yzg`&S#%({1tk&v@tTogjv@R+NC*d(reH!whJrK%&euQtU zAk55|&R{rOr!DBNU$CPPw4_YfYwH!^&TaxtKPbQ1uM_6Pmu1eG+yxeKoe(Y^A@OBcL_~gaG;Sl?8WenE}^niT4SW`w*uWwdC!dnkNJJyigwf$TQ{YP*vO1~T=;Z;N&EGr(ztwd5h+1h z#G+J&T}@oawXV~PbCnhEQCEUGAOIeytBF-LWV(6ZW8uYZ7*}5>S8Nt#^LVxnopE+M;Q0d$ZV96fy45Fhp2$FN} zfQMQQnbngr?|73>nQuE~=n{>?z;GDYJ`)=$AKSMSJE#i`ny`ANf_!-kZ$6rR420Z- zEB1OR(;Y$}P zdC&0z?}S^{U|mT1{YNj%ZS9pooLT+`6IO<5WbRrqZzT+cJYc{ynQ$4B zgCLoE2Z91@vT%eZz+oWk!hC;+7>{;h?*|MJp?qxZa4^BPD&U5pP9c8*#gxuxFO)-$ zmV=b!Q-CJWdUd>zUC|6dK!Xpv_JEyzw|&|i8v80vd5rz=iXXChpsAcgC=>#0E=elf zVo*yfMqD~M)`=u}Naw;32&R_u7uH~PKO7_9HuU><>B$obwq^Ekd`*lpVh&6voJK4|Sc z)}{vJ>P&Z$54zm?TEmC=oQ`yYhjl{l^gD+!f+`2&X;uTM_^tfP{LHev-}Cqn@p$g- zs^QNk+aozr`rN(9k6S?uGI+#`-xF%g`*0eQOYQYx}o}SopkL8X^e0s`crPEl2>fwwM;(RhkD|r@t%F>h$)Z?PUUy7#Xb8D zO)i`0IRpMpn{-kiSMJRLqc&I3l9lX*Pb5NaVryl^IqQSy)aOiJ=QH~F@Z;g-x>Mr zRRY{^kbwArGSH4P{X5ElJYT{eC<6)NMZc#EC}zQvN~CCC z>{YfI$&tsgGGI8$`-?K*aB-#n6)~QQl4EK9cgldrM%M1JGN8!uSs8$TRR*+~D@&$7 zD+AjfN|;R25z2ste=`GpblLSgk9^-y{jM_b{5Q%#=|7|lT>6zVVBJfDPzDBs*d>&v zZi>xJir*TWQ@ZEb6F03uuV2g8{nKAbkW9UO3oF>SO z_{)@m#hmvht$$7#Xy-iP8+^AAUHxG6*Dpk0m4VL-(Xle{eW}3H!Sy$M=&aubnsACk z-by3*245DU%|1;VY#KvtAJ(k_kfQL`;E=fc){t>&wJy79Gwb$9jl1;rsO{WWWdK-+ z03;yM&ljTI*#w)vVIiX2MLt#roS#=F{6HD-xo7j8GBCxR_DiXNobA3t3YbCc?ACAiy`<1fd*0tzJUm>NPduc?%3P1hXKb(Kp|y{b>AmEKrNx`#}+aa zaWTA41;@$&k5!BCRbU~Kdc$RVxkYT&pDnVOt{hP+04M_wr|1~@BU=F^p!Z{-mhe5p z>syFgLOR*=cg5S(|G2xD-FD9wSct?sjQ-nQj6ec@!#6+#nh<=0X9k}uhrTESs3|Wr zH*t)Qk%0CcAtfCrNWdTS4MZ---IaX&C=1{lV98bVU17B@A`4r3xD5oF%P6cPodMJIuf38x;MUO9kZbPv2vgZ_##R1M*&Xv!86$lOw${cx<9v z^d7BQQ@YObcIEJev5Zsnlbm9zC|cEg!%uU&FG{?t#?$b1fSxn3mRU|DaT4quM@1_0 zc_mF))#X6eO;A?U=xfq)eQ6XjcR!FuW)%oDDTQ*2H9<&lLDaio)Z^Mgd|(}DN16G} z8-S4yzupIzRw6;{=UCu>G}Qd#H^2$wsMLJ=b>goWM{o)PWAkDDddMMlXIYHSbfIT5 zFCn+xo%gTtFR=4gm7CAG$Iu#WNs;D%?F<-i$qTQebr4#{1v&$$zPJN!zp1I--(ER6iaHez zot|wjtJQG{fMXLtg;B8NQj}0Bi51$sZTKF z^rcvcMrrEOyD5PS%mmX4>^VwzMM_B`riHKJzq>1Z6N_L*Nboe1d?+`io}Q3c-aNt` z0APWYlnviUs_H*^kH7*yR^%cj(C5F4ucR-3KP)2iUW*n-T)c_;MrMMAGDlXTl|s~9 z^v^p3{>UBh{ZX{@o#xNo0Y7{LSbz9(6z#KoP(GiDa0hhm>HeecfbWl@KYs&UUkE!1 zHE#o0;FC8%__lPnn9YL7ua2S*inRbNu;vd#&06nRkKX{>ULxPT0k{OL;jI57Z-9w^ z#vPFIZ>=3XP~|NA?NLtJ04j-n@6;I6>`z5xcBu5J~;e)ed`V|Ul({Xfo68L_H=N*VK-D+(%cIhzcb(aS_Mv#$ens9 zf^h_dn*Sjz@IU(oDEf=v0N%>hiqev1EsyJSKh1Pw%`7HgRL$m*$aF9ZQq$rf1QQwx z3U73$CaKy!DRA{;Aw(|4pO~qa^0F3yMt({><|BWL7)#%5U5qAqBCCUntnu4#g4%H z1FS;hl?!*Dc}9yUU)?RZS3@kVToS`GqwkkY>+Q|GSNL^~|4u=mkOq3FkCHZwM|ch; zl}grBy#n;%*0Z||IZHa*uyKetJd4{|$IfpKHNz*y`LKSAev<49s}Lv%bh)JN4woiK z;X@Ho(s9G3Fo<*4xRgyG_br@6RZ;iw_ry*A$CJHk!dEyW?&@3<=)EgJI@K`gDX6SE z<0YyeGvobth@0s!#2inP|CUvlmEz63_!aN}{Tx4mll<1@XUXIJ1@AvJr(OI`8DJHD zfs=fh<57Q6eXxZuv|w}fJ8=`(<;Cj0-{pUq<3uL^o9lxihjoYB-_G$12`wkA!hkmC zgWq%c{Vj96TcVfy81Mf@+{`-JDY4wno57#F)5%IgZkBGRGG`&+#YpH-Y-#ML{|`gt#dn9(G(G{6{Xo^+->( z8Y9}h{IBBXAGrM1Pw@VLxCyWdf8+A&w60kHq04V?JsI?Cy#G(c&0v64_`gEj)E+#2 z0w?+5E{~Ywqe--PC5N}+9VNgVH!(JQIy`o~%bSvUeXS1$=J?3$)f2q`@f_c-80bLY z{eL{iwRc~9cKJE*i+2GoKdbX*>!0!d-_G&hikmxi#K0U!unH04=D%}}Oa0LtSNFiU zTAW7IVZe@;dhGJ6j+hq@ctjOhVktwBaqRM=^>5%8>S+14Kj&n?_Wx#4ZplymyeM1z z4ep`vpSy>`f9M|K{Jva|@JqQKF8@t}KUJ=GJ?&pA*LxmgDF{D>WE-m=iAhZC_D`1U zF_WH@>yg}jJlPTvLXC7Q6h?r@6B>$7O%fV*1#c@noZ~l(^4D^`f5ts@GGHUv#O3b( ztL`BdwZFzaq;y9V=+9yJH4NB7g-H858@x~rV%&qKrhFIdT5?d_Z1!&1R-p? zOsI{(pmi}j9<-u25QFwq2DDeHnV)pc(d9aDk!}@ZJXd&}SNlVo?t7J%V^#W3Q}@?n z|9g>+B)D+zY(eD2!;g3VP?bK1HP{ObTFnQnn|hGpA@~n2(*N8hTiWBj*>@K2Q_%Ud z^~8U7UhOwUb^q)|n&(dr+8gZXmk@(?!-vKKSK|I$j3caK9a#K2v+31tZhgaHSk zVvvjFr@ZpOIK!;@&D#1mbi#Z7bZs5=0oGR3fYrS5r*ig|d&;P~T9b{0y!Bz0gZ^_L9yjtQkU|RpzMkXsSv4Ceg*}#f?QF z6N-0~VGjJu1g~)51Q$Z9KQ^!NXTX=;}G?Oix}Q0!~^ z`{w$1`{&x%zipa+hE`80!3(JyXn+ozleM+s+{?%<>oUcG{rhDeQ9 z0JsYS>2F_hrau#U`9pnoJ*EW_die|V-Q73N{|R?t)mY}j-_du!@pvhEBtGeVe*1eC z$bVJB|Eh$4==l9+xB5F&!rTJk?;?;tbNjf83#@l=A6FRs=k8X{eZjfQNBb+y7vTR^ zm2grii2B#lAdMhv06#!})xUMPnZMXJRznBTXm+=_im^%3q5wEzPJ6s-5y1;P*{viu zfg>iKD|Ol3+T84BUi|!EXJEHNUtr+F2O7VGutjrtpUm$baKB z09YXZ3De*gw-4Ecd-7X_F<&YSexnlBTQ(tfD{Mnn<9o-ul`^#Wa|!s59lw8GB|I(x z|M##!{<7VQ>(A|0kGxWjOTZ~*=uTf=P(=g(;+#F%tdM_C5d80E^}l_ya`$ee{TDYY z`u*O=uYZ)D`NcW=*W4*>J{F{%b!J)nwd3aENjs?Vf6^>P`5^gQuGX7Jw2P&+U0k33 z-Lurk7iNt6tIY~AOB>?lR{h)V_G$Hb9ODG)rf7(X9yeYB(lder>7+Lpo32!>2AMY~ zkxe6T0tIr)z?~9_yZM-_rKw1TBHkiE`cTpixKqC2I!Vuv%hS^SDV)H6XX!u8)q1R+ z_6M7l^J(Wy>7@g?r|KDu*?}?A8T$7eRQf{k-_we_vg#wjz%ejFP?ZU*nbiZeiCN_r z_0rEQE(i>dQmPb-;qsZn3qoCV<_g8iP%)8p0yKo`2wSPy?u6%KYn1U)HQ^rt|R+4aEi$xyL==nCQ8lY9Cw)Qh&KGRK@e>zEBUq7y7~%asP8bMI*czvowC} z3zf3DIQ`6n;!IF`#M*Ql4y(#LsnB(yH~9Rb1lXY*vv0G34(s26-pEvyt@@RmrpGC- z(s|_n23;hYTZ_-CvG=)RN2k&-|1$L}A~=C;=mFn4em6u8NB+jX&nM}on=-XEi2EPl z3$2Cg7K4$vLtT;ah(q1b1U#We5Yyfi1pr(_Eqq2sDOHF_BtlpE+V0$sO6xv%SkuPM z!h*0TTVTP?t2+@Pj3&N{KKS_JsiA~4eyL%kmzn5-ew*+3mu)LdDPhw8sxS2JE&ngR z(7#zt`=0*zpML*y^7A(NMon{$3jQVI$uREp@7nl8pP=EweZ+o!{}WH3BFN&da!Q#c zR6^KR%2-%{rby)jKuxnHUygyl(PKql={2qkE%IFS${C4;sD!9BQ|U#2PgG<3)O2X0!k?@HTih+Aar=dbeamp&1QUsY-ABj1k`;a&+L-M=!7;` z<&ZSnol3G16I=AENeTts%C->~O>lM3*=76I4`b_frKM3XyqvcyZ;SI0fzE-l95Asnd4tC~(6+_Iu&bk1`> z#M4EBB7sV}nj8onCLs@|3E^d4&eW$S+B3Od4T;GFp6k}Z&z&p0DkBpnoO|0%Xo~Rd zxrg`UuWL@)_g7s?nu(~a9G+6PEn+0hGrK@D-WbRI!a$}duD^YjvvL>y=Qh4y*;fAd zKyS(#7>+ZZQ^aq|nz+8}unvnqm|-N8Eq_h2l>&Np@cv@RZWJID#-X!+mI{xfpag(a z`1*GvB&&bJLhJi;snG9-4p+kO9j>-t9IiT7RKS1A;i{SPFF9OYqKgIL*hnofR~J0u z7=wS(;krw5;&6@S4?62jt9a8JtRyU`pfn>SDiNV4B-tl4AS>I$_^T-Bzx-4H_;_Q3 zcmLIe_I%&hg_hNPN&0V$kN{HQw)OXXyzd>Z|KZ2sKMRWfD;=&olU!+2EC0HFG6OnN;{6aU5QL0bx+TqxZq+PZ)3Fcd?-h7{yMnX!OojhE>6hXJFxn z&BE3Xa6ek+zIcyfs$}_8qnhstST*C>OK4``{@Wi5w@ZLm0|1KF z5f^f=J@oo?)6`-x$k zo}0*%tCwS{kpHQ2L(FYJh3`pQ#_MQx?e$7@|tAe2(a-Xb7#I?_coK^I6X znIu(Sc+bxeSCCLnz*WO5lr7-cTa;5MbEf$5F;Ev``eDG1DQtlK=FQQ-%F^ZWm*I;t zhU-SpCR)PJ-|ifV1C5cg1|3{?OrvuzT2i=w+$=G4N*{icn{xlv5?XiGjW@i9jZ=j; zXssLz9L4s>k8caLa5xA}^tNp8>Mb2tathxG_fwqnM9yn|qDda4PH2-}1jo%1v+tCB zpcP^23Qx);x(d@7qkT)?rFJw8=bEw&<>B_L!aDv`{HW(ke- z$~{vnY5pz$D@HF535{1?#U909c=eDeaHSqslx4MnK;?UO#CdeXA6&rMgWEcdi<&pa za@T=KOrS=m2-4De*R5X7=@y~SKwZn%EAL4sEoIjOE&m^TXB`&xzV+<^0qK$k5hO&V zQ9@c8X^;j91*D|AyBRt~N?HUYh7OUGQlv#dQVU=)_uQHHwM@df#^M-hplw$aoucvu$~MszPBfPu_89QlK!@u0#$qIG=t$!jTX zG{Yf6`3$Z~8`wIBP9pv1?j1;nbonZMrugh}utn~_ioZ3L5Sf1Y1%nFz>PrsM&5`n~ zr32yClzWY8E5m6Jv3HLuaCf#arleBYz@O+cX#-Pk9n=k@B3$dg_*o0>0lf{{XXQj1==NC0|mBoWn5K#O$EjT97#*qS(d@Al3auUYgKk+A11A$oot zsmat{CaJBKr<$io&mw|+?AXF~k~8%?ByneM_6gLQp-#I=@V;&yFtphZF*H!bT{?SP zsCz8+W0)kbA1$z{Yd36+GTSPssdU*JbC!+^4R6X>3B)sdd-)2Q^ouJuJec;+(aJl4 zC+qusGQ;jDV_t;wqXMYum>q+2SvHj75u7B+kwv<1!ORlbA#Tw*Sc?&olS6zQ=}e#tz|mkS5#);y7NwR^+6Al2tG_AzbydF~NV z_jsBti{Iz18SP6rnkfte>elqafx7w8y?|LFlcXn4{FzdJc$-p&n3m)`{lY-_;Zt%` zQOT={_+8%R8QJa2^fC)OFK*`GQ(q=%GN)$%kJ?#>UX%@%F&?|*N8~RcU2<2nfi2Ky z+Xlb8AP?&ta0j5)o)EIKLx9HX$zA+Q4x2 zf{(814J8Ul{IjwfDMpuxH9A)FTggfDQ!&nBXp#tT3UUqV7FU_oz5UM?oJqzi(Z)%%Mt}~}pmHXmRv2CfD&U;<8+|jvJ zhvspe4<5ud^Ph`dUUutlL=e}n^51iMTdTWUN!+k~|DH#;8DJLNs^7(8^@Lu&bvW66 z<(8X;h{u4Y7NLVk1)-1ysW~n>acc`w^SaO#8GLMvrl+{mkA#HWaPhge4bn<1{HHHW z5Q)63eC$>lYMdgCVwTv-)@v;$Q#T#BzTMijW9{*23L`FP`;r8TO>%%{+}Q3kUD{2X zhtV>*PndH%FsZGh9Pt2A@rM>VB2c^_BN+7tkJ(xGpruP}xCD%?&|ErVS{=Lx_uOZv?J-$UjjNN`e@$!r_J&R(zHT_^!yKHj)C5aomFJjxuA9D08 z$-36ONFTDxUE7}&oIg98UC+qgIO z{KZ*)>T&LoKtywJ1E#?(j8^PZ)()FL#}N^#K&`T?W+}Ym z3zH5twe_p_s(2^XC>`s%!&hB^BjJ^{s@l(3z?VG!=2Jse(?|YwcjCG?r=gB5r{vZH z$S0;z10gMRz3YKmd^5xkoZ2o&e26fcc&j1~wllE8mu(&GBZU%4;vqNr#V+iOxQka7 zC2A9L3f>uJKNs(F%lBjIR;L8@y?&PL@Qv`W>W;?6vjaHi-{)`~ETLGt3})!!=BwR* zhg9k^R7z=4oG`kKk5W5SEAYAO*6S553Et7Z-p%qV_xF~Oyb}wD_7%ei?;R6dCzmK4 zYPZg=c@Dcy?FekvlY6WOvH*YH`_Mxs;$&z zu-+i)2|fIjCz!Nko8L8I~W|qvbnF#znU^67%|eqQ$1O~9w@&*Lk`{U zkZ;&X=-Z#?eX~>J+3+b>{@|S!^b_xz{HMo#2dl2oy(yeV=ytpO;YNy}NRt4Re$>GB zv#ZtKYGmWS2rqPZ{K4(f#>T^~KIq{dPzR8BAtuuIaCoJth@or??Id_%j(A~jd*PCJ z<8ylxsCyq0*!klb5{=OB^$SgudXbx4!fAHKNAQuKMx{>lxnv@SW33)9>~opKm)(hw zncJ7s$#+MQ;+>B#--s_2qNf0f-*s+3QFT9YCqKzVKWT`cOc3s9zn=n$e*=P_5-Nv^ zy1#m&zviN_kg~7Vw!a=pz=W}ifqHzBH&5;$KlPvhryyX4M+ zQk~#7n&1KaU`P{vcoO|I5(AtQgOU>KqwpAeSv9`9ku%(ACh(Nq)v^V zdjq{2Xd^{zPn4!g9TwD?jJbVh5iO2{Byg81g{V1gtrK_7`N8gJg6eyEy|-6h2YF{^ea%Oo!d?^^b_h@hy8 z438oRd6iicY-F_f8CV(WY8b*sdEc_s^EQ_l-J1>Dz_$sdPoinsT zno$oq3~F2}5b*BioOwEsb2BQNW`{=sJ*P`QmoOt&sUy%XTE|8@;H_}(xIv!A+lN~E z53!(8VW^5o{vUCwrc^c9$?4Luysirb)g%BKAEhS(X$ZVF1&fQ@~@+1yY29@5(%1AV2w?wW?ce3lrFrFKoe%<&Bk6EElE;7fLAbv7FOXkD7l;~jg7^u;W)LZj03ad0K}9>v|UTS|raM&wmkro|MOiwwJc^?5HE zk)NBs^w_dCMr5YYey{SvPLz$%wx0JsrZdwX~TuF+mst&XXrFE;K3@H!8I!&(}B4l*MqFcx2V@_(J zAf7O2NTr4^s5Z#CNT!*nV?3!}n5eB=AwSe?=&8t?-CDHLn^%maTFo@hi-Tm-RfeG5 zcy1ph6{4zcbP`Er(uI63sx_{j#!z&o)%|SPKv-Ib@VSoA_Ub1yo>Sh9{+*(0DO3nD z6y;~Gg3BAVUumN5GsnGU4fd^XOyNV1Mv34hJmhVC6k`X-bx1EKb8Rx_d) zOEXg4lPkE^{mECe&MYkVqv|bH{l>J;qJ!lk#fe8f($AF5GjE1HQ%ilOUH444DCZVml_qA}ZN@eo?KXw5 zHl?CA)#q)7=56|^ZB{F7#(eD#jP1l>tu8B6}1zTVj)|4HrM#nj$+b-gPSy&$LFRf@h1 zzP?Y|eVZ#T>u!C!b$$C2eTVyfhp~Mi{(dB#eiZk9R4j4C`~8@&`>_xDanBC$KIzBT z86a{WAh|z4hQ&fqKR|gfKy~)Td5hRG-WT)-?Z^go>0@nZY)Xth=_2Os(NYZ;pw#UV zb|U0a?Ob;yLnLq?)wZdbKP-HkN8o*bQ&DiwOTm9X{^?-ADMir%UIK=_r%I%hm0%+( z*NkTwC5CVLN0Nxa(@m>4DS2hiaW8u_86!;aaegE41E1eRU_Plvq(uzdwUhQloi& zn!?$-<@AT)m#^*&%z2-g<`+F1hbx0ucp0~O5cPar0Y+&p$`-B5E8Ox&2DAfX$apGJ zDo8i(M^_Mzs_wreQ)3uwxwH$)Kb^s;pvfUzfz_g(ll3{VT1Se6i=uhAO?X8dajtm+ zZ5q;c9~aeMp-e%YO-48FCT_~rq{2r^GjDOi6<(a0p1`KABS0WMv~newHv2T)dN-f^ zverv>tXwV&h`qK1VHBxSegSn9<6in`-<=GaWbXWW$r@ixbK$(nt0mBSMhX=zszM?f zrHqw1k{3Blpw)Pj%trl*ES!NEZXN32r8npT7T5T7!*|uu@g^>~ht1bcQ)uFnxnzjT z&5Fq3iXFD+Sd0laM1SHZWMIHm_85-c)@v>uVIzHIcAm#x2ltj7uD$^9>9Wi;f0}I` zF=HOFX+Xd~cAI0RBnZ8Z7x5`m@PbV*L zrJjb5apMs+HM|U^&HV>zDm?kJ>W>TnlCS3w>o@KZgyJF374YY}6FJN#pN}p*>P;7c zCtt$^IlxxU!K(*v?xDq`iaxKYd_NA!xNc-|17sSJAf7|W&1d^zrW#1TipT7Q$51kG zVzJ{m?Gc7O&x=p8?uoBqKK6yKd04q^ZxBDrmAI$q?z-7G&GCh{cEMpXp-~EY3IP)B zEQiMc_S&V(oAL=BXuGddlK)vx429if+W(qtP=*>FdjGUdyADC77>%mRd9e#}v6-Tm zErH~VwT%Ime03<@;{=i~z!r_rB6=|B>GqYN>C{B zB%1iOOVvEto7}q1cgv5zbE-00RvfFO9+k$)jSm+L8QoB+7z1`cOD8-oA17Z&)YMA2 zQ+1raawGFvfBt8fQ?+8cd#w?4nsL1ei5N(}P?w1<>x$i5Z#_jEOj>UxU~x18R8n;l zEo4VqH50{-#C_!{9Y0*ZZ7rit+8(eR~J!7R)x4)6ouc#w&bTnhTtou@7W}vcFG~*?& z`!UF5psRJX5Y?>vvxa408cRMU8w2xn+e!{ub^up(R_A&5GvHe_ez7IrUDc^b;${J~ zwe$V#s=!tano}#2%ZJcc%jZchUTA~ueimo-bQ%Q!S9Jr1=R#yi-yEr=G@tl#t#4OR zY$$r0hYhkEnw0a@gn)fGXwP@%!goJw&EPPY`@xFQadp$o>;P?zo)Mgunr6?5->v|o zrpnOeO6PaY>X*fJnjtY7|0#0%w;T1EUa}!kN^-NPo}rymfVO7*Quku7O)`hv?3d*0 z8*Oc->xblPQ42hjV22*dGj1YciRq$%>CG;vZk{LVzQht>;2(DeNWQqbDif^Xv^7k& zOE8tx#aG-vQ%T7`VUTl_?hKU6y{J5!uMjA$()gZ@TA0bSTxd!8A>dS18@Q;Fd#x{9 zsX|?;9&oBk;}_b%oT_HMWtWD^(xQqauflgf!<;J~S%nvBOK=X?Wa2%#yeLp{5rwr|O#B`y&`k%Nz^bsoJjEgdzu{t!W^^VKD3Z zXBh#N)OL%-LsmF#P4MPZN*HYoQyDjA8>W&Hmo1ths@;C}`8HdaF`$z2RR$bIr4f!{ zG87-T+l8< zMSa!3XWQkOeH12RC}lX zo-EE7eNQi!?hMnqYXIGp=hBw@eczS(ixeTK3Bh(PWmv) zw}&Gr{a)CgqRw^9l1)3e$MxE!SGg^!2kwfQH`{ATwh%qYcL5a_+lQHFEl8`?fC}V% z@MYShxpO-opw?Pr((x~iDO~G8@bUv)p`Js`-^!W6)+)zwpF^iZK&!FDXim_PC(PyU zFJ46fb>w_7bm8--^~6ZB)dA4~8d=oG&c$yKCB}nVhwlvpq}$r&NKI6@|ApY7T{<`qw%YZxJ_SfVK z5@0?OV7VP&MG|Pk4NtzD0-X{AT_AyOK=QR6=tUCb^CkHTN(>4)O1_)`rz**p9`B^a2Ni?_6r)RjFos2g>Q8i(W_jJC6bYe_ zD$DMSVNfp6{;LRoFMQQwjZc1bLkRzvQHrpq;me;O{Q1XjAB|z#@~unsgYF{b;FheF zyln>`jbUNM=;_ylz_#g?WP2aXW5h#N*wGl4DLGtL4ZFFm962Uj1~5uvB@lw{BN#wY`21N_mX%mk%%Ypx^Ue(~6i6sjLT9 zytO2%n5jHGEB7DHz44lvGoJFku@gAua|_QT%J(GtHz>*n^XG_%OrbFff-E@>A{828 zF6>yEFm{KEERf)fPljL`Km-s)M6CgiCScuJccDb z+nOOml5^KcjjX0BNBT1%!38l}Y?WM5M|AK7QRmeig$Kk4rcvp)hY0mDg6IoiW7v1_ zViefhS{1#WZIQWSBy37%XQYzUMo=IzC8lyoG*=+@ojtPUu&HBjJ(NuMVfhjIS9*-o z2 zqwBk3^n!Vsc(_>mx+l5>Bb)QC3^0bBpAPuYMgc2E5zIuHkH@eaTGm~RRj|D+VwZ5C z-RBhWL!>7;yueYfQw7{>8q=;ZaO5?0ym{})Ybwq!Ypvs_Trz4*K>tw>fp7xyu zZXNVrdQIgnazw6G3pqL*b^!H^f6IeGLNHaWUG_gmP`&8#nA*G5S0m zh3i`}Dk0f||6?(lN@oBoM%MwaX~wkObnM3^R)5>=jMvcO*t7A2@<1_qet9z&Ks=P% z3Ah1=NRmACN_d`{kn@L`c}HH;D|mQM7n@h30F6&;66wnh@ly5Da2_ohibC#oqOQ^i zCm8ydq$rL$+ske6J{RJsAoI~t@A;22k6{`gNi(FAdt3S&ZL)yICmr+QH!|T|_kP~b z5dKv!I&^k75@6_G=uo#lYz%vhcu2-4?9JA`lKD%G&+MIRQJfw2h?bnfwt&}EBStPh zJMj}RhP@LF4R=3r)VrHah9aAH{X%A`KlW+_wtp%$jkMzR8QY77MX+LYAn#6j*7F($ zz-y|MCR3ix@H+d9>Bc~;5_%@{Yf>u1uA2B4Ft6#wCbp1tziw)K|@R zUqZtf^CVzo!W#QDfr?9FSfpb#gJWPgAa zxfFR7l~d}0uw_~#1=?xHQ=n+Q4<=8vU$PK)bRSq_gqw)qk1-&ind^VZG8>bu5`qY| z9elE`q6SHUE8F8%Ej-_3zN->K1eIreE5fGFczAUiG&O|8V;sxZ>iw zUH>Uh{$Lyb@$OI~-Dt7#>m@_^y|M8_$5wrQd}Gf&&X$I)CY*-#mlt-Y@5yepou=MU z)ZU-vh3?$aIJ8T_aYvVK+#Ts_*sOXiFlh_j^Q#p&9>W5~C`5f2Z!kqU&69uy@GIy+#Uyd8}4*>&wIjSFf>Vti1}h|0snkfKEypOKK|+sfYq zVlV)W#IKZ)rFzkSpoF}_aQ9bA$e#q8CzOz~mb{RmsYc&>#D}49C8Y7V_%|gaMnZ|! zQ{+>E6mAgf@05_rpK_DnN=SK?VGI82QVe%hv0TP`bY?c z!Nsa9r3Wjrw}%rRAdITJmV6@2v4Xf0QE7 z08VhSI`=p$b_x*UB2f~ z+G_?|=>uv>?(pw}&EHV2e*uU|AnFEc$sdo}WmcaE{Gf#7djILDmOQD1eE)e^4<2kL zSZw~qU^9$sb^9$?0v>Ey?#v|`7k>*juR##PEO(dkP6V6Gdq=@0WTAL(weI^`vg5+z z{htP#1_(U>eDkC1_3whse+3ZpiYL>Dd}Y83N>d?_?Zu-~Sr0XgDOq!1b2WQ92mGYIVO-@O-K zZ2}x80wq+?E1gDG8|GRN8wf-djAiD?N~vlM#GM4fS2vmVw%h%YOJ)ei4VaLIEZxk7 zZ)-`O$G^A429jRaLs%RZ?0;1Xs+`8sszXNNTeX(mC)DvYf7-38%Z3ILLgXnI#-}8b z1V1sG_Vi1FB3Y6=@fxd$pA{JH);(lJGo3*Jfz+bCiH(^(n1j?=$kf+qG@>iB6^sE?V;lJvQs4UNweQ&C@H>UjP zYGqZ=drQ~7@hKqKY?ocNN!goNl&ga2pd4!VUav<~)h)=bxxj+W-l~SJo;8oXy*D5n zNYiP#bszHmDO7n#3vusy0Pp@ZZsZ@G3x<7v17IxoF&TCP&{y5-*!wYUZ+}4ur=~wp z?o%fD!J?#m&5MNIPdU5?OA3)SgSm2_3$za2srS_kRrP)@c0E|u!>JueN>|xz)SXuy?TLh2v&#K)c;Sez@+RX)R0u?LO9U zz#AADS}^xUH<_MNBr*|DeA=j^hj~O)~RUfVPu@RrHu3RY;XddQ3Qn4U?K3q z*??l1n({yNTzM#s3%{j~B36-$+7Vj7&%gjjs9&=$7)lzu2I0TG<@4rZ0Q4NUu7NYc z0(F`^)T&-;tM$lN3FjF+=1bQ1?DqBl^hW2@wVP8?=A^NDVi@>?Q=&NN1p1<9GesX1NMI9xe7atk{2y?l`J+(o0tC8TTy_8Kr1GKD3u77z)#AK`UB4uw#w}!ldm@i zRt?*RKNcunD3`t!D92%!=4%^pHdwXhjcmM8!BS4B{~YnR0wq5$2UehHIu8iA+=tSE ziXK#&E$tgWNqIB@dtAkX0 zB~YL^c6RF?hh2d`*Km;bEGzuux%!jNYFOAMmULNoHhcs+R#}P+d8EzM+`_%MS=EH~ z{p3|k<-s=%N7J<`1G1uG2jQh4Z*7BGL?VA85iMFY)ng%pjGWPHc6^moKDy=J z0qRl1Xl*;~4wZPp5#`f7WAz<^%rlYrBL+09SBt%>G5};kQ`0n7NfF9(JrLh^6Gz6X z57K@l3Xpr@O`->4U)HM!t{BaCO1$y3b+jNOMA1#_f#=MF!?PW0E~Eu>S|Z>R-pj2V zv{;wm!vx_IjABKBTfH6yYa=ZuFwvTvLX*}@J$r!!A|lR;W{`>mf*|k%HAf6#n4agv z%sBuJ6o%l1#5O)-SkvMDfyq4MmXzpqkOis`Im6A@2+D~}SVI9!IjPeEdpu7uiGuE* zd2PH$sR=Sj>x~OtHWmu4rm-@z4A#$_l;h}pi7rKZ6n5zczX}Evg;M_@7)br~#*=a`G_6vG=H$lHiD2O6wFw9CqvpJOq=&xn zVBqd+fp5WpE9?5xW)eI#6}PIA?}7o}Pq{nrU_klGaWDY=8Vu-Os;zu`91LtNS6;Np zf&~NCA?+9F6CivBwn2U8ei;lr{!K7Y^_PMHwjY84hgaue!N7VNJ)GlX&M{B7LM8HbGA8&w>Fjl;r*t zpW|Qvcy~iK?;Pu|ekT~n&zncqE+~TE`WZkg?|dH&EI%HyCc0_Tf?jgIq=Q~-(GQ^A znP+74!*2ax9B~utHpa?{Bih~G%gQf9CQEa~ySCjmKrpaY_pC?yI2ibMzq@?@z2w-x z00)q~AOXC)UxrL%ESf}rH5m9;-(AQPQ}AztfkhF_7at;~$0gJz{o%pD;0z7b)rT-E z2UzcV_IWdgBih}B$`S1@n(xh2@L85%#v1eJ7*NX5yL(+KHizKV1;7)1t#Ts{ugf{2lW`cW$D0<|lc zN;wbpLpRG$gWh{@SkfsPAn=V~fh2w6-Is48Ok5Yb7-40(w2@>navs`fI{8SeW`bDLPEa`29yVqFOZ>@=8WrlTMaMl+ocP$ zW9qTc)IXRZlpMIv{8{h&q5>5tD$sw^%rgk#A3HU_0t8C4+9Q7s5cqXb@#|^B&o))$#)Y3^98mW{67}Ae`8^OI;&wKe>%wQ@5U8uRTJTAvG2N6QEBV^Yzv(EB zX`$rit!Ny90GlgkD=I;6P~A^0$SQB^^|r=b7UZw1u#WAM7r&)z<07_9P%1yj9OWvy zhTE(RJ$JmhQh2Mcp?+`cSWeG#FS4dYurX*4Jxd`l>_>u^# zgZ+pUxxxMf`V3wH_;)+>MJbI4X57C31kS6>uno>!XSqc1R*9oP#ZbJ8H1@3+FaDsR zm>@dAtf&a~Ma3v?%GN>wH=loDszz$7zrEVs~9O7N5|&e>Cm~7 zoMNH*DJRuh^-Au2d!_h=1o*V!hh~2Bb?2AO6;;#xuy!4wnNM|ixAdE4{um&z`-188 zz$KuWp9iK5%valgSfeh~+uIjU0rl(_0Glggx$=Ot8sp9r*cx@!RKVq8J48Ru)oS<} z^|Wp`eA=*9SD;G+7TA0NOdIw$L*vR1QQ<sjGn~e`VV6vu6Hxiwb{cv_I9%|3Bc= z{2#{A{}xWD5ccb49)_bYF3b3_nRj|lgV^)1T_6BQPewTL9BkT9APo-Kf0>NmDapT4 z8U?;WeIAa`#aD=dO&dBp8${>Hxt(uckRWZAiH5IHyUOIlH&<%$fM&i^Q1!(IFm0gI zG0*>_X8ve%g;yDuv+5sd^{;UB-%lGZLLX*SvWz2BFi~IiUn2TdQ2}6vr14^hda%&Z z@k1B8gyTEjGua~KYd4Ra$EJO{O58{t>bb~?)*r%*c8G`Om$wChLV5&2Q@99TWg1)0 z)&$E--{23b)wLe9b0VDrf!6UMNJOY0%+wfqyv=h^h}dm1%nT3>7k){S6)on=TXSOu zoD`h>HdT1~AaK(&#HGia-pe>x7+y%0Ky6X3pQuHZSQ$diibk7(#RY1@8Uy<=na53d zrY3fXHk1lkB212s&9qipJq;QMd2y;ZSCTjk`6J7dh+P5uZaM`uPILOW+mzBb*O z>wkS3|CgHXygE~>lVLa9ISqu}FZoKst=!%S$k;yO2EuNqS+%nt847q{@~*lr@>5ch z6srJ{PbT|(l>JfDo%)IjcpvdN%c2vXXVa70cfvP2S6M+sEI`cs06t}p$mhs%KM zGy1|Kcz!ZO;7jPes{=HjV+Qd4v^KBkOX$5?^LO6gTK)E)$urB`i5nO{KEE>jMe*YQ z?D@}!%?c7s|KhzUN$4yzS-%g?Ri)J z>=v*M*Ki}!qm_UXrg$N`6A>Vjjg62G5OFu6Dhz;ObG|UH!iLrx@LM`A9uX;E*bH1& zr1M?uQUcC=t*+BvQsWU;0*1{cVRUiYM}RxnHry|U%`xT|opQ?9m)P$9vkmvxLT~u{ zD>KF^T?=_+`TJ+SF4A$m;l*}m5MR%#I@XNbU$uWS{!G{gcz@%h16yuPZX^TmFES(3 zBNE(i4zYh4y#GHMy!?j|zX?E16Z9?oR0|NPoZvoA^fcI1weUt2?16!8Gv(`7Z!I4; zc)b_Rzicz5+!7y~IR739KnovbC&37+Kmhs^j>Nxvn`webi~Z{Z^Sc4)fByp`*@XCa zPWS%m17lKW3OK~nVRjb4&irkg>2ZHin28F|)fqmz0$;aQBY&%&f0e8?!VWmy%dlzV z-!1jGJwmSQBA3A%Jc(EBV%P9}1CNmF*Ts$+yyd|TSr;3xg#B#T>E31kqXti{^Jk}f zCmtC8k!El4=sKFbKGjb^g8oXbvTgyIn zImwauf2YCI{<{sH84n|Z<|`p>!U;(y%`{7H`)jfmxT+XJ_%AR~;ScVg)}b}}5@P{Z zNY)vR5roJ-wA}2lTX_s4na+*dQc?7`(7|Ym^gV%`hBkxwQO3=w{95Q|rOWdMvLs_J z>2#In|90Z2=J&fD-RnT0qeBjb>Cl`{t?l1{Bg=8tWQ%UDE452gbEHiuY>0N_vq=nM zMsZ9wQ1dIpk>!7&LrcheulE7mjzOObanrM%X_FEpX03ns>7A&>*+I%^SK&2+W*jI1 zOH>``BW_QYXWr!Pz3JnLBW!*6{|afR!S@|q*`Mp^v`%((cfEeo(Iw9ucXS)jJXl9p z13v2LaKCkQnkPCs^Tcl*-TH}+F6Bf=7qt8c4sQB)Ke*p@bpQW8xO;;^CvN5U-LwAZ z5>?4O^PeTE;t$F{gs;&I>x>}-(oSHFDU*is935PT#*C0nWuFIMV+z8&Nqq+9IEhy5 zaG|XrP@$HhH;;-35>+m=3o=I?UBY>wqr>ixfv*qWJ+A`q=pO!MaMM2>-5+&yYUktMESE+Yy)hV9Aqo}=z| z>No2>9VHpZ>pj*p|91E2aLn(!M*{)(s18I;?@g^&*5TPYj*@A(d(?cL#qg0|g1G9n zozgoEB(kcNi9EAL!4GHx0=Rd}zOMHy50@Brr^(jBD2Z?|4a^VXi*XKckBVxYjtW%K z1@nk4oXR*SZ>d=WTE6+n@WMac?Z2nH)nvYLyx#M7;!`-7hAQx@A-l|f;}}fy{jCn) z79W`Q+cEL!_dZ`JiT~~KDcZux$M&y-Y5r<=`|VbTNi7^kN&I%Ja}=MN5XY5%2!A); zEEr)oAlxDOa z{Fu12Q~XXD989yP0y`%5e!vIZ>U4IoJS+p^(|;b@p-LE-2B0J^NDtSHeJ*zDDb$5g z5|6<&a7yB4Nzk9^Zhtr?Ud`3|&G^!++cPznhRd2zDr7cX74P=B-9#xd^_$uV=2_Ja zOb@LpX3{G?42jhey)ku5Uatc2=_D45Q~Tw~jp(hqd07^x-1N|U9k1$S{PO%8~s9eUmi*-%K#LiyfkN6CUY)4yCAT0@1D|e6+ zG+G|yeeme3n`f%xfwt*-cw_7<4WH}Q>u@YyyU*cf%(F5>oU;9lWtK|+z1&W(Yg)^F zChK6{H~MG9-W<@w$(C-!^`2`q~+DSyNq4jSj>3&ln~>cl7&qim}tn%PuqdUUW0Wj+^ugdb}5Y zLvk7|x#=@Y0h2$kn<05)qVHLUf%iJv*ZUJjKA(NzzMvCC@~SW5>XU@~cjbp))oW66 z<_8~uG+*vw7Y}hgqM@+l>6j+RZ)klom%grf*=^W%yA1=>fI%GQ+K>YAqu71_j+B6J z2A9aG5xIEHFa~3g7djDis;N+C)pQHtHS+eE+n|r}Sv9q;lAn9b4noz}Cb0P(Hwm=Y zeJrlH;H;!IKe;Nrdf`g*1c#%uqgKS?=|w~xhBwoQ*JN#rx5(!Y9GVC_4(yBHlFhS> zoXYNFK1ICWGF@%CIgZd^O}a8e#M}WP&|5Y2KfT*$JK{Rry!u%#rLOpLZZ$?z!*<*7 z{;24MUHbX-U|G?IS91MgS!P&E#H{z{g(BCvQibfYx3!?n@01*2yUE0;7RZ$z+FWob~AimyI3_o=N5SDlNPqEljW`T>>kW}s zO8Q@7MV4jPHi6os$)$s^!GXHm0kMk#aSQ>Axgb}k07nJy8{7d@+`*aZA<2>^UUN(GeFx4=ryqtk)@gC@~xn96s2l)_+s`p(xcE>T@&GXEW@>KsLCquHwFYrd4p2 zQs`~O26v?5hqL4T5fAPJ+?R~pABjBNjs%f{5qZE!8ekM>FlrJQy&8-;3dY_6b5Yy^- zbGRSGiZsCn?gw#jPH_5H{UB*ON$KDFK?QSPdPRDFhZbX(;3TG!1h~a$JN3(M;6I=j z{wI1{3c4Bb<1z&nuuQ@JyUP^+hUhIng3t2DW&eUe;`dp@8i)|+*ir#()^&Y%0ygWq zK5P1wnZ6{(MS8qU@kDX4ifPR_ap zT<Bx<`{rSqm?wZJW33X@$l4Ze6@?4m$c!*KRPd<=_ z-W^uP2Vwoi5!t^zwNvx^{nXAENbM?uU?VbDWE3LS#P@IDshx}?>)S`ZXU~K`kKK6N zjl-liC=>Njv=3icf&eS(%KRUU$Y816hu}(VdYtMyJ=>7J)8Yx-Izsl(UOiUs=~WpQ zUZZX%h7!m}?F)UxAHYz+QRLqXT$ODTlxu8&6L#M8HA3~vkr23}yb$q7qP$VA`%#%< zSiVYE0w_7uVrS%3GDL~RWA$ZucNV4tsR9^gzFK`}LKrK*xJ_u1=fUAv(;eUlj}P0i zkqj0=%7OU!QW;T1=Yun%$=EN_hAaHuJFO`2-O<6%Fa3WY>?9lB`eOCXmrj5Yc7An~ z_ag%E%hDr^u+u?bSfm}zw7l{K0SH|B!;cP*Fa7@~c2fRt9+3(3a~0oU4isABx4W@o zLGFOInor)wJ2u9K#4FMOP5VqC+0*c1z3s`q;>Ui8dlgA9)b7>4fNnqOkwDXJ+}fOS zg>DHT8#RV+&YZ$N6r9d|Q?)tq;6eSK+mm~qd!L41M{Vw>M0y-LYQ5P7C30;itvMrM zP920K2vzPp_3SZCA4g$mM*p36y5BZ}`-Iy>{~ig$7o0S<<6k;D`1(%&Z0Yd`0SFtB z!Ew@G5P-CJh19@1y#e1zA%=~}Hln})0uW8?sg&l1|159MduG6G;=-<%vQL}O4qJLG zV~zvf=_Qh*ce+mX=$$T8&##*+5sJQ{Q)3q20N|tpt1s!{!*J5`IWGCnjpzpwd&6?B zQTm6l^A`v^e{^&J>G(1t+p6vdmL79?E2k8Hf&kRzypO|@bg^HUGFvy!4_Roz z{@(S;%h6+ZD_w;zzEDa;(|CW^kQ|D|>UElN3h~S~;5K3PAugIiVcGUfecio-1Q9~l zg0zq{lmu`**T;GqS$^<#QUW`%9*=z8`@tTPEDZ8$O;Q3;F&bX-Yo8zSs635<6xyxgY2t6LEt3Y?>SGt($M z$(HCXGmq{Y*cisd9&KD_H#p(6qv1W{_9%-)h8irJ@L zU^Ly~ukO;QT#0{Lw}@%xJE$l3Y18f?Qis81_<_*_P6vHK@yEO8?&nmPJXN|Y+%8Yd zg0jx^iBa!Rc8}aS=VSR>a{;r|weI;R$d#n``L&!*b@`;(mGq~Iu`fRz!Pqa$B4xU_ z*{m@#MQ&dTEsfM)8z&k9U2O_JFtpdI?0C${o--<=CsL@{G?B6?xUrApZoW5pM)1v5 zx%zdjtdYLFhO!Vtol%WGNP8U=rG##s|APTEdG3_>rv?P`70q*d^8%dPx0AvxquNOa zKOgScprp=P(6|mBzPC-Q(hry8AbZ&v!ImMRWkeZhL;fbuB|DCPOj>R9g#b$#2wjN8 zJ!sARWTM0LR{<%Rwgg0U+7MM&5l;F? zt1p0)mT%l0{(_Tk++UFYijzKJ_2u?LQujjnij)4{>PzJG8@I_9ob>;_ZWFtY5O9lZujmP%K;Yo>vxBUI&57k_^_!EP=RCIF_})4cTZn9|=NzYKZ`heD z#DVU7$dzwA_`JX(aJaWD-vAwtIkyYqZiIeb^Foo)1MTECAu@x#PKi#PqFZc27ccQ9 zPNhOY?hr;XUH2tgp+XXqY{m@e_q{+tjV{}99pBQ*pBYIXLtj#aaID0SO@h(7MMs)%o3!?UwELZ{6fY_3(VTg%DV+Lln(tuyp;@b4-{IPg)%l`r6&JIn(6 zO;Dc40S;;6??r*_Xlc$!bpn%M*U;8%T8`>YIaT)PNWOCyF6VawzC72gx@_7T!P1H~ z8?i-UbC-;zq%{l5;vsbpnUy=c)hhAhD_7`PZ7)8*MW!6z`iYL+G5@(9Cr8rL+eTMH zt7S~D*(UeJ&a*wPmNjuuPI>h_=jyZD9X81yQx|1&uMKzhI@Emg<&Ay(!I#G%*m<$v zhwM{2DxfGK?&=S?_9+85JWuojy1b9gS_t;Dyv@WBx$r~ZV2xRZYfn1(qm@2oGsu4R zkM$bfutA>c~3e(BuD%X-L#!(E!khpdHa4FzY4hpc>=kU|IC7vGZY zdM$6N?1gjA#(LZ}X+3k5Oj8Tm;qwI2b9_icbU*F&JF#d5WwUi=w7U?oOEk?xwWkGXZm6zA+$_@XDRz9ir}M$mv2FtSo=ea8>yI^6_3JlTTo(3p zcY0qGX-4OAj+Lm2B-^$H|Z=QX#O=i9fO-a6$ zTr#k$EIEELp2x%Bb$WW{X|ZVe!~5kC zw63F*+hXSoa4|HjQtn3QRdP8@WAUp9g9f;_UNjtF+%hp3-jLJ0pKo#6RZSQ_jwDE6 zL$-W^?K+V&WGe-&p??x!)8raY|~SZ9pKIO|HWbZ%4JWk;KAmyp|tPT8Mj zfc}ym)kjAz@Kda`WGUrfZn2#}-@{ibaI7?Ek?p}v;oX{%_O$c)F#uM&DrER23@Z)T zRy<)?X~%@5dKgyP^%D#$ec#X;T03=Ge%teP{d&+n*Qqmo+ikoJ+M%9DiW05EjYMEn z&jlz-Tn|5{C7Y1G`c=oiy~({pxS}Lb zet(7>y4@k)@J~(o2fjS$iJB7Y2}Yzb+Fe!VM3dm3`tlgr@Xd0J%&0-Q8zE=#LosG> z-)9jc4^S5yhSn~I;vj~VK*-MO+v8+VozLiwp9=20USog&^PMznTBEN@3lbO@|+M+Q1NtUE=1N{n1*2<;4t zJj{y(<%gT9M%sSBLvRK|w$W_OOc0_BOE%_HGV0%pQ7Zy+%? zRTSomu_Y$46+yAHd9mW7p)%F65*K4-dBS*;!j#bBq@3gAtK&3B`|Kybv(P7>?tgzZHVK_0#Fk}z@v zoykN>r%?eRw1i%#DCXdB?yCut&55V1jd7Ba@Ggc`aO0}xN1wSKb!dgrqmMC}9##A# z%#MfJc__M=G&w#aj50VZ%U_w0KJpO{?yy%_#tu&QPBIl~(*GguE&QU;_qFYD90qV0 z8M?bmz@S^C8>LZD8c9LAyN8hOZfS<@Zlps%X^>Enlz9eSYwfkq+2`zY-p~8I@Bc8L zneW{9@4l|~owpH1(8NT^{08WSZL0Ttst>;oHcQlABBd8*T&Pd%)I_4qMymDs+djMa z*Rt<+kjH62F53kzoq8@B3*%&>=yZ!G3F;*2U$x&!hP+d0h~GF*FJJ+*@#E#3q~*Hc z%-WLIHH2HZWPW9dw^7YlWr+jYLJQ2}z9y!{vcT#qGREGK=bop3Bgr_`PT-zTz08Eh z!^x-l5=y^ek3XS^=Q7yZ5m}l@bY+RfC(T)OffD3rFH~S(Q)@Nwq5jtA_|B*Ku%vAq zi?F$-->yq*o6jN2%KZ|XKBw(eH4sxFOR>$8#+aNFI*@UgliltTqsf~3iZs8RIgcQo z@?&N;MOH4-Hr;$MXAliH5i{viQKkb;eh112nVc7&L`hT$T^vZCfu{@3XYd;5*Ka2| zAer)(`0*HuQ~O-f8&y*FU*(Dnrp;(4)w?9tHe^3gEwt878sX2i*T&5)N}grbn#auD zCMllA$X6GL!??(zxTD!?mrc872W-zNy{+$~V|cccWp$ooK$8CC9Qq_lo$w+fbO*b% z8i%e}L*5(`AX)k&q-;5f_+&oo$9X1>TqIs{e%V6qhFzj1D{P6obpB4Z9j*Oay4*J| zIKqukAyzFR3(SBW?D%#86}jx&`9*HB6u@K2oLU@AgjPF+|AD78SWr%w1C8Dwi5H7-`p#1`CUg zWX-`Fs{LkG7_wID!%`6`TLKL&GrcU^+$}S|#KCects|{BgVeuiig!*X9GECE+>=af12pni?chqBB{l zGudh#TpQ@w8Vgi$WnVTH78R;O5M~94ilKx67TikRrq6s$@3@=lESnyzHL4Tky&-8P zV{PshZ0-`w>@9)z%Qp|DG>_^wj|(;zlC?}-HqYp`bSyT{xwTAQhQGblJc)#~tdcc< zPAUH6);gfunvmSuz1O7OCuEA#=E>jIXhyi5Lw6+Kb`Gh&A|vpvY3t;U5P0eTVjvXk z-j0#ley6!zzl#1YIYX{IE=;HfdT}81}z2+3SMU8^+ox3&A?UN@z<%yK9x&#|U)Acme-Fwp&0`b-dUpEiE zjUIe>)yq2ENoFi^TWKZbr9v^SCOrLAe_F$1S}Sc@r)64i zdHVU!X#=j{`A$jB-gg82;lLEHIg!8~-XhWAsyf=9jtQ^hG^k^4G zB~G)+(vdokGc%qXG2-X2k3pY_b30H(_TggREnxgAwA&a$4FEJ#pkKD@tpEUa6 zy@bY9kVf}Pw6JaIHz6Pn=6ZC>!^Cu10I*(Vsr6i_4i1vxf~~+o6Sn~zu8;{lOlvV9 zQM_bK#bS(@o@_4m!YXK`BK%fnwhUa-wGz8>{QcO2&$1xEzMmb95|9CoW6fn*xxB{z z4jeO%16T#~r-M*`8NAQ{)YRxeYD}w&H3ozC;-doElv+pwOe?O%YxojpIrIs9V-XI5 zvgnAKL5VcdX$_&bRs&=u+; zD4<<0x&nfEZ+#FG$o>(u0@%8shQLQfsBkbDGIxgNFl22ZLFG_DE0o?AasdEV$8T(5 z0-9i$oh?wqk2_@>VBx{N2iyz!qdU~z>Hsdx{l{xSgEcM}zivfX(-D-S99o$PT&cj0 zuwA@W@m~Jk@`X3}r=0#fxt)tl>|5~9t5(pvB8#j#8|>u}v3r;d<=FXX02$jaZ_2SN zy+41whe^K*W-m{@h5^VAvSU{F>MF1$ZNCKMeO_F}Fo#Rliva*phk$VmC~~i|3_Bc- z`j}uyj)NP=4`iQ$$d0k!j{0qq03whcMYl4sV_;})<2ydqiR|woAh zz`lu-npPA=A2ePJeZ+|wUjd<~# ztvG;tuq!lwhITuivBfFm$%f^@){;0d5c5+&uhr63q#9IIwYFq#S2-2Gbi!Jid$9xX}r~ul_f)-kz*wY!1VfwI$!Il`r zV)CpmMD8r*bE{$cSz)kFybbH-@dCyWFA)yJi>C{FT!ToTZmVQJiJ*Lv{B%bxUolN2 zfb`k!)8c1k&wG-e?P-+jw|JtF#c#JJFF4O!F=gg=)Vzisd}|meQfWFT z7Bgk~ZGjZJKVC1?2I$U4?0w--?G8iR@8SSJy`u!Z$imGva;zg9e;Qs#%rJdRN2bzw zJXdd8@FKo-`Ei7}`BQ&~@XDmI?oZbrUzXc~s9s#VUz{Y}10x@Z+E&DUd+-BGF!TCy zOyoAUB$qfEkx_*>I+c5|SgLFGUABI#VwEB+pGKGjwkU{O5=WX|wd4<<5IO(|V8;O5 zM)`!k{5Q$;UkGBHwbsagjUa9~CL2isBG;A%std+4#Qgrl+c?A=_Lxvb!do{W z`d-+tL2z-E5?;-3c{ap)Z_b4!X6}Kg=yG_|%|}lI zu=ES%>EmYx-sBX)tG-w~+eDsUL!{IFNIk%70r)0`Yk}mOQyM|kjUdCnUOT+Boh(DW zc95$Ce-3{*WA-_MZ?o`oq|ZSA=O{5S%Q{?=(0o1c4rS4LjKY21mw!VLgP_5mW3}Gy z{FzLH5y~;fH$I`e<^!83;bD@lJM9iABNZh)G?fy;o%)pSJ=$-aNyNXYZ9bj^kOq-|IQ#byJAO`oF73D9hMHd4r?`#$o-XIpeDn@U7LVplA_TD>q zfKWc63&P~*ApQrck9v51zji1RK>38MEIaQ!ElG{OGtQyB_?+#Y7D4#UtHcX}=ZG?w zC)o-)B-LpFSGwIwIBSO@KF8SX7tw}n8^w2`?$ypx$hJ8 zO5uNPl!QOmt7(p8jBA)$J($*UT4tDyW%+V4XOv)7m;W-O?5&o;`!6^0Y%6+C!6B>D zW#=v7xC#6^WEtPaqbx`X?fqTcj0iIf9wMN9%2WzDi`0=`ed#@n0bp*|nBweQWU>j{>+}%R*k= z$g^$fF`KjgeC@!QO7jdk^@(ttdz8jZoC;R!)PYUX1C`&`yZer~=eu~Ho27X$xj;T1 z{}~JIQz03=66P`ja1TfFw{W74Im!qF96CdKx-W#Z-Tu@{5@oEP9(T$B`DcdsQ@(|e z;N6!Jywi=lB9lY)ikF<(!j8H^CkOD6xk~Vk0nZzRzY9#QF9_d0I_5#Pn7tNE?NfJL zX1ETO;!DEsE!^*3snfH&6{fShZpRZChABPN9P%+@3sGt|;^KHHPc~4+)o#@9?HVE< z$W`q<=CCOd(?EHOk9zGuK9~6^Q4u{dDEa=attV4-N{Br)8#xG68p9=rPWL9kiznc+~`Lf!ta$c(r zxLvl5OcuidT6|Y0`T`Ll`Z|cYc0ZY_g+NlVdYGr~VKz%dk%Fn*2j+-4PKGj;_u!hz zfw*dRt10tQ309Om`tU3eZP0SaZYqi%<;;>+bL{WHAZD!*8)$lmdZY~C{! zPFzk)a`w^}3=^g*@ZTGyGy?aJi60Kg@yhJ1Vl=<~-Y5Y}*$f=NC%wkv@u=iO5jf7uT_eWT3QNq%YN?ku7QYHc4?qPH$k-!N`m?vNnAyrneTI2~dA z_I-)|zH5Ec>PES9z5K_+$l2x%sEzAb$@A|w$+Yo%_gVRs)6v=1lL#Bn!;%+QpJpX% zp+{C|3ahus5bYQu6~1`Gt7w9V4wz?!Kb^uF=3lQJ)}U^PF6!%w;KvG|a8eN6%p#Sc z>cgK1nh-r)o|WOR$X^21&})HkG@3gv7q2f8+r&P;NB#VMrXfn|7niDvj&)yWd~iM> zA6XSsuy4eonKY==KV{z%S(zVm1wYI{Dr}1pxsC@aJBYi_WbmT`QN>-A1lOs2rANh@9J?9`3z9mKwF&hKmfCO5XKK@H%icun>0j#1 zwjVfFxG3(wfLzY?+^h0)7l)bSua7YN2nfvMFnFNu);pJPS65&5#rnWwZh(3-3 z``F8+O(ovO*|Gz$Wj{9h4maFX-p1vFE?zwR)Ot_<(1>nv?)olYJG#hgUsT?UA&Tfk zOScW=Tw1-We9u?M5at{^KW$M5y0dP83Do*DM&4IVu3~_x56i?YK=$&LsE^t|E4kX> zc+oKQ>h8CsMZHbF_b#L6qu)~YuC|0%8pizYe$OJK7=sq=+ULIxVeHSs9jujvsK9}Y z>rDujqaM!0aob?GmOTS6=Q+A-$I6tn{a2iV3uEPPYqt_5zJ1RVEB+Y)-J&>6Bg2nSKfqGWFYmUaoqk5FObE z`)xVuhPa=`BVHT3Eoh?T+3$azSeXj%8&kQ>&U*f+JLML4xJAvuF1blT1UOVJH_+eq z9RmjYk0-ov*u?vJE^X8LJ?rplTixqoX3X=XKFZ_Z1@dy?Pz0HaV-)}DojrAZ0teo( z!sU;x>z{}yuZv|)uZuCN>(lq5*N&F7W?^$kD?&s2aS+JXJ=V$lU4l0T!u!sgH`bZ= zU1A>?pU+1ywF7|y(7=YY--c|?hy2WklGvA;&zDxqm)_ZzG4V#8%{u4He&&0R*pG|P z@4lAbLuWspL_a>njXYcE%uj^aUyRRRLd##$*`F3e{q9RV1%#;5oWIJMzZ!7>YNMoq zl4m;y=p+W{Ap)My1sI$Kyd(}Z;tMp<3N%B>vl9bfBLc1G0&UL%?TLdN_=4VQ1vxth zxh4j=BZ55Vg3M*;%4&5KV~G5ngM-i5Qm63(w~4NhcqYKg;1E7~IbNL0ag4zZ^;lx2 z2n0@Tw$5Np$oxZ-Y#Bxyd_FVUkWf1nj5UlrEe6Gh!7!Sz_l3Ogv~Y^G!t`^XL~+=S z7`%G19B&+94T z{@5rD$k{u+JH@+6rcoOu%g%Q+6ZZ|YtCYe%OakYs%2&-i|hcch(hmXvYPka60PaebZv zAkDmQmjTqt1iNN_kDS znoX~h&3Gq?&NZ90F`GR(fn_0^i!|rH&O0Oi93IykzT_N%#vGxA9FdD0G16QKfm}(Q zTq)OFndDr##$1JkT&0U#71BI4fxM?Wc^a;HTFH4j7in9Fyyq8r2BC`jr1?fV`6dgG z_nh-{?&n)9JD^S>1jZJ0F9kf6Z zva9ZoTqsntKv$cGYu`>>G{cXP!wa0miA#RxfJ+v(TbQ{^o532#$x4U@E4K4VP#w(o zXO=Cr$Vo%QT~HU0b`-xCz{zthX%t9LHskr8mFSa2ozPgq#9iF&TH3!$Brs9((VnzD zxpbVgti*-MQN0YklIXQz891x#+E+434z_f`SIi3dJXp5s3fo*z*lH}>CJI@LF54!3 ze>7PBeW46|Tt;&%u~UNLvZClK2F~_6euiNwM|8=^w^9o63Qix*JA1gQXi3Gml|brB ze8EaW-AZD&O45`{@}^2kw#rK*7=>UJm2MTiTNR^aC5BHGdrB3@WfiL%j7zYZu>|rE znNsKTc$MoJCBt*H@GL)lr~0#R&+ zG_&qCHIOwo$v5{wn)@xAhsmmYAa!F9MQ@10kZwyS8BOWSmMOue9yhh&k`^jtRr4s@ zyVA;*TuVswD)|1(*0qx6gQ3K z9k#ZD5@=mT`<-xAtM+OMHW)oMMRyan%y^B(P@_Q-!dOXwkfM2NDu zPPxMJk+_zv3B-a5ko*zs33X&BTMM^B5&3@oyG25V>aKL0E>z?ssRHtnkYs)hnLS43 zcA?=zU2$wJTpOLjOC30q81yOtdKIAT5mfH#J#Y;i9MgHN(#89_!EC>)cp{#@gAjZv z0Dj%^{5$rA3ILT@&2aTul66#twSQv+NU8uD4G4+!>U7xvPukl`k(Z6qx}cC! z5_T$gcB&X^Oi{rBY25++y}k@KK*V@WYIse~>yF~=fin3Lshz&7#lf#;y#hFt(PBXD z@Y*L8J4^r%O@=*kjnsU)OUx5BrG$gl7VrRoO%DJ<#nw zQsxdRC2s~AKvDUrS(YfO+v-yQmf}KU#=-QZtdU|PP3_8&6X2MN9*$2KUcSSh6-Exp zS{K4cmf2wD?QTMsZ9tl_@9eNA-pp3EisUsRY0~L!HXyde0S=g1UphYfS zhIY~_6#y##Gdr3fb}R;$;$2?$$=E_=0VJ1Vpki7~Nu&XUdkKUzfYNe6bQv&-_J_U= zRpX}()QS;Wgw@JWV=i)yl}>;q0qxdsP#~$R%i82+CN=|%v`z)EU>owh27AG_c;RRY zxQbCbF>rZR1DwD}22oiVU}~mK11qNWBf!Oz;M)Wkhli{1{=N&Rv)Kc zj|w@2UJsbfJ8MY~(cdR#&SV|Cf?ii(mwsEjgHJbMM5Gocw}5uSaa3uT7Z$WlYh zOFoPpfBby4GUE*`+cOnxv73?>?5RA5Q5;=BR5BV z;+#4@?2*tdNmrIGh#ah|T#wOL+`nvB9pRv=qjp_vQD(@Ds9RmM9$hw>0Heo(;e*RS z6^J>!Q}>_+k8N0ZbmSJa#wv1*80pAWAq1Na?;kJQQvBFltf0ZpJ$Ie^DUS`{Wrb(> z^W)vSqiJ_%^f&-!DuBgIXf)OoIDE$l($Bw!y{9)L2`7>i+7c0l@lo!mjjrwwRhxT* zN@-LIEFj81p+%LD6*#z3tRJ}cAuti7utXvd4c4cCuo&Pm2+vBQzAw^=%oH2>aR%eU zRqMq1(hTvYC_fad0TZ$IoWjAU902U{4*u+q{ttE%-R7pOdVJ+q=RIWmhTUo_<_`6H zAGP)cA9f_VkLS|HS~FPZ_sdbWUOV(6WQ|W`qYD}rSaaG?BZC^;kwze z$cUVxML#jRB-L?Oepd9XS-_S zM9gqrefWMXYV&g%$+7$q`@1#fh5Fbf&Sd)~{dF1JMWffX1=ZXcx5;PD#`}})$I93G zL)ZF6Bamj~)d~_|D8DM^8;?OLnW(ZR5eT%w^u{>WcpQoW)#y%)UgfaDK~tCtR#Bsm zVz3&haGG@l1V0gF&VC{wx#rMl4+}5&TNffJv3*urf2Q-F**agLTq&< z3-4cdy*$|=*j_BO@2i_Gs?CuG;22}h4H1^Fb~r<*q*AqxU-m{&hz62te>KYHXL-?^ zdS0+x>*8e3vyW3_GMT5C@sDJ>Gj7J4C1T0HoknB za7qLayJb!{UI(-jRH+Bik&cU@lYHkC0MO-DNI(Xf#v3pntXDj~Nv6AVdGISG@suUG zdoHEaaRdoN+$x`tnC99QeYNQ3mZor8=dL4mdm1iTAO@(Cp^K8dFUyc%R3*!l;eTI_ zr69LTj_rN-eR+=h^(uMJHqZkF?mqfzg$HBZ!y*r7jj9!SA6*`ga0bLxD+wNUKTsAv zU9VOaMS{L_3EXC=QJDdj+(Gg`CSqV!lA?;(my%)1t5K8Z?0NX%5y5ng`abyNJFoO( zhT5m<%1@qkJ*9f*@J#bXz#|Q9)4W;@U7H>P5lJR_Hq94aXgpemL63@`y^K=Cd1{nk zT&HcC;poU~oRz1+^r)nVN7t%;qi*r1)CrHEZ5Knm-kY%}y!wu_#`XG6im5;JUAFRw z2A%hMcwcy&=IuWBM2^h9@J44u82DjJ@fijXnIInfkd+@81~cU&KB+O(@x6-R-9)^a z<@&*A6fMozU=*t?#c#|X@vOl(;YA?7Nm3=y#U#b1m)|ta>0^{}x))f$EGvky(JUuQ zO29lX!GyFpIVDiQqNpIh5ouBKzE{AqtbVi6@_idv@O5Qh>%Mu_n3SMZ?W{?YRsBk! zpmoDmev@_6VXxp}#_&v&O&by{WZQwx)NI>@EiGi%LuA@)*O%rgWIw=E&}=`%*(da7 zgmmYud*oL0QhMV!}y zm|C4bW4HZu-bgTQb=k@Y5^>!rC}?%vd*AoGZ@qe})$OniUDW-!kEzZ5+nBWI&!&3K zHjmSlAW_frt%5es%fmiVub(+aUS3Efx&Z)NWsB(kcgAk0br4K!zAk_#|-S$NiZk4evbTOTAk@9>D2uh-J+8m~>`5khk0L zuKBD4#gFkIQP4|R0G}i+;Y6^s+it zofx>xZvJp;o6iK2o7^hU&^z9}4EW!uHPNR;A@W7GGIsKxo^RO74QS^Rkn zkCO(KlPBS&dK+xUA%oh*F>w{m#vHmK@|u&A2{%u9UHBFBd%q?$v76kBGFLEUe300$ zmw!KnWW2=($1{z+&^h{s8fH&a*f<=_q>4lPiDFY=5q7vONTsJdY5@A||<>i3i)40LXHw zkUD${Tz(h_hzHP1%6U(6<76>gF)L%Z(mqSr?Z#xFQKN92^v{FG=7cQClKFm8k2+EZ zSiy=^{0E-kDf_8po4x5@8>y^%MH#Ypk+S7c3DJQ6K36kGv|++d-goY6RdI#@P6^TxC_0SGvtwd}+_Wyw{U0 z8MhwoO{EMB=0EjOA~by{<{GeRuDKMCRiIUk5x|u}s!d=#Z{H^<6$;;$=qKL_X%$MM zSJg3l#2R|NEw!9$6SJje#Hwto96w9c04K&RXz?Q>{dJ?38X@YRd6?k5+7K89G>4P8_j(Dt9+cr&sQ%&Jxs}1 zvB8W@l^kxo0VHNgm{`dJEFu%6@(K8a-W-2wK$VZ>3y$Io;4JL8yYF}$Z_RqqN`2(I zlsd$E?}t3}v~@rGO4L&zZKLYp_G4`AL5A}0sWsEvj|pwE$lJFNF)m6t%y91uhQd|f zkcr+j{feR!gD2qoW@`Zgiosc$ICsX^?ECcbv!BpuJf(fYq!gDe$!7iM)cWB}znTpX zs(e(>__F=0e5BXsBYc{xD1A3BS4{rS_Qkcs#xxKRf}~hs8S) z79zX(*yMTKCj52X&Q19^K;nxrD7hu>L>jmC%xz)HRQ5oXc}3Dk?J0AXpPWNscF5q) zFaN2zK7rC7ewklWYbAm@X7#XK%3MSB?A|z5nJ}p-R>}7wNc@t=)iFfNuJxOwD+MV0 z|39YI=6St0ei_9tJmZgsrT*~CX!Jiv`Q7YHhEPZp(mgB0diV??jbfUJ?@R*DUGQn{|!hSE)@ZK z>yZsI7Nm#|arI$675D@H-;C2fIGyt+5+w*?H6g=P_Ps#(-pI^^r8u?A~$j~IqDSf(;vBsvv=e8Yd0k78J~S4e9ueA+w5!7}U%^fCS2i~`3Y z;VD?s?6-SZbx`y2=;J={} zOMYVfg+#gWpXRYTKK!?SHw7Q9oWx>vZ4S70!^8V1zZ*G8l_$=K1qzAMkju!USTJJc z`Yk2p0?OAXJNhqXF&n+rE`(*!AA00;IKIdM_ls{C0BE5Yy4>$s%!$4z9%>eIH;?r0 z%`8T4B2=fw#k8?dig$1#()D`|>@|aobh0u@%*`xjXKv{oEVdY5@6sJrK3?EQPkzt; z=)j^BV*DZP;(G!41dB?L+*J16$wHY&#>#ZGQ@H{sMJlzL>N#@L#X9fw zAGH<#>#6l`{68NX+uQn~<%32I6d>`&@1}i(0wiuLzJEFL+wbOR%;~;`!vFg|YyC0u z-t!dl^a=$?1l&E6{>ioqyg{Ncpr+O+Bubll$K4wwO1L71`dKIOs4XW)>Dpblv##QG zu3xhlUbSvUrOHsv*HZY^H?tT!JPNkYq>E?0e4~|-PQ#xmFVFhK?pDEr6xM0U&iiGQ zs$vp`*BJ%R2UH@f;tCWtSar__waTFc)ql)l?p7!EDQsquR}Y&hRVU95Z}K#q|DMHc zDQpQ;hZtiS8ol^3jGD!0KX;DQ)kKw#60w_i$)GhWsRMXYV<6)I@|tI6)hhEm1LJhB zid3s(F%(WECzb6U`k7s+swf9cQM+o93ytiOTs*d($|a zPY)JzXO`|^ReYd`;aGXH^vw|@(g8lC$|hq$R-obDJC5RESFi66{J?Q_jLq-aJ-0uK z@%p;M7Epd~jp7`mi%Dr)u21q4o)>-h1Bs(3hty9sBICWYv38+0U5^%#81n5Otis}( zt~Oet{dtVOkvP3rpX|C08gx8}vf57Nk;M>;K2VGiO>*3@+HIIr9(Ax<`a~rQ@E-5` zeiZFwx+QYT|F+IBuMnlQZP7mMO;CDUp0TtCU>3KjLVX<@{@l_&yqMjh{89IQT(%Ao zFk~t6t-w(UoGa9iaQ)UE+ju~vFqAKJGxA%_4$JJh5vZuz{TKJW{sY73-Zu11Lq*t%XI5+ zQ)}c$kqD7@2lb<3e#mqloz^g)b}6#xaZoZ50f(kX{VVUKZx%0R!O!cVE8}kfaA1V3 z3n4Fl`7Iz#CWHXPDA5Q)U15x>@@@ghB2)kshETeGd>mZV%T-W^9nY|n_`z44S~214 zaSXd7DC)(aaDmIh5mYe~RA!2a%?tp*z3#1%E&u>Ca4;#K2w#C0VBG6M3>cpYJ^k#% za^$#T3!w*)RG=P^+KMXS0IhDaRbMV=nQJkSJ?eEL3~)^iQ9Od0wfijs0ERfgWD|(N zEdHCqplcPdGQ#N6+ZPB2#o|Dej-XGFwhGq(XKF4&PcsM^2L2@gXb-<{=B=eL^M-mg zsA(0uP7Js*jzNuj!T9EN5d0VatS6n7A3w7Vrih_-F}>J!+C8gs=vntzS7jyk3x(Fmu? zpL*5##jF=F6FXrG+&hOqh3xkR7`(~ggUxV-->M2_ngz2Qd3$2O+1IeC&b%X3fQ%up zs<=X?nB1h8AuE~Cn0Ci&I8c!qP$~8#n%Pnw$Mp$_|61tgp4C%1|%j}Zj$ z2I(REK{&xO=eU;IL5iE$VNRl#DiFCNs4NWf>b~!#N~HZQV8?MBDvqS4j#cdSmE6XT zJ_?jEfS|%>SA>7Lcqrfq#g`0?*^!70;iCosSrVaU^BDA~--$vf?EpO$F+sU@vTPu+ zxk?;898B363N(nduW);^gDraQyqF1bDZ=GN#CFdbQO z=v8I9xm_?DKYoQFBm$N0hlqYH;yq;s^s+c&VE_R~e!vc}IeI!T4Fs?XG6Mi4WsE5? zeDThpm#b-J-tkIy*(uxD;hEX;8h(`ae*7}P*l|C-Q>fKZyewCc5`VJB{UFAEqk66Y zmfJwh#DLZ_N8oBejRu5k5Pvo#kTo;wJ{V-P9rQ*k$lN=~l^H+{AQQ33^P~k>i3OT# zLr-&pU(N+bVPwS+6J7)IRB6I5#qzlb!?O4Sa<}6O3qz%e(Iqgls*ZBJ&GHFIja#&U z=tx{Z6LolZVwN&#oe-##^?tAWRxetMiP9;#r>P8Kj$3sxE|6{ca`1vd+nP zWsNT_WTS*w0JHF@pO|F17FKW#81@4E=XpuH0M3;eT<5r$eXOGeZ*3NiJ6_-m<_5Aq3Y*IQaO& zs7N+&#=zGa9*T#6?lR{)6qA|3t2`P~1h&Cb=)l=k>`vL#S*_}<_(~$nm#Xt#Pe|W* z$&|6E*D$f6Xejz?t9MSRcWtV7U#$1M ztoJ5E_zEKYbrFGXh~N}NXcHoQ5fOQbfRi=E2sXs&HpII%B&IYZH#MX#Hl$xRWRf*z z3pVEJHs-rE7N#^7H#L?nHkMyDR**GS2{zT}Hr2T`AyS$eo0^&zn_4fM+R2(b1)IBd zn|s}w`%{_+o0^9gn@2C3$H`hI1zVzyn+>T@`4LaXy+bmP}d%RK|23&r@4)>2xwGhLi-x-TvOmM}x8tCTqnFCo&B;WkE= z+}9fC?05`r!k13%hnGwSRb&Wh$J=%Vq*6da9AGP9B0voAYBD&6x>(6RyRpKb1>FhB zm9C=+gY!F4#W;#G;V^}!pbErfX$nrEShHkMUyXnC>Khbz*YhlIYa@iTlI%hSG+GH| zu1|3%pnlEBDH)(Oa+Q?cAgYHMa1aA-xX@Eg zf+6ZdCF-Gd-Y#fI*ir06o^`Q{&0wn_%7nT816mYZD7Z6Vr2^by1uz_um{+(_j|W!@4XF;eiOhlp!zpAl zlan?5P&MjD6`()?G>!d@{Ww^U*LMLB4zuXrSTI;^v|um9?s3MvFkl#MwvdI7y=AUp zQRx#dz>ZW&(qjUkI^AwQ5<_-aE_nol0cN8q#4r^&*zaIA4vvj}_ly|RS|x~u#oZO* zcBvU<$UfML=^{wnyHEj<)|%8DaA2kz^qg}AAZ;<>ru}cu1|5eddPCxcrGan6g?~KD zM7Qf=w1nuFzORJ=;$fJa3%N2LHK-;@hRgS1DRyN=$V2vF>-Gtj&;Dyy*b7Io+gI2E zrKsQGz=!+q^*JyL6=G$$hV+;)o9dyoF7~$oJ>lEIg6x>cVyL|0ET`+B$ZVPtH70|? z>@!#UPvJAgSJ>s`gpAv7Y?6a9`V3YDU^FU_nD&GKSIk-iNFNAbtpYXoRyKo!r7_3= zX+64Iq~!X2=uEwfDj=rQSZkG-ZoXhxOVWWasI@)`cnio-@c~0Wys^H2kt^hSe7?yW zRJD39CKJSJg~_vPKZf2T21D=Qc27h8^bSrKokCx<&cv2J|4c5Yv@LS33GAkU6IdbSLz!nJ#q}2|h zff3mupj+Xy9f(<3Z_wf@^cFQ{WooBO*?>K47|1>?Q37=vnLFQH6Cg_6CJ(8qfXaJN zA1t+PKYBCoj5(s{F;(woZpuKM{Px1#KC->zbHos!1zY0UQRLb=gt;cnJf)ZGs ze46!Ui=M%NVLp^@Fm*}P!``z6DwB!2n^x5*Aumohx_v-{BONDmt`9^ugd*H4IRK(8 zj(k}?!L|*U2DhXB_t==aUvm%eLioL zwZmEJ=q$Be^1y?fAEppQoF3Xu+)H&(l~jILELp>GrjS92X#5Z(%ak3aDinJZ)&V-E z$tW`27KF8E?#mJNfh+rNXPGO9D`Rajq&kInnZ632>B6^bqt5zL2aMSbD;=2jIJm!u zCw_oC;gQkMy~d^+TS~OrdT?Ydw?d{XnMV4B@=&7E_?w8*i8a}2O(zEy1riPk6!T{YsnnZAfpCU4>z=IVc}iaai%W5B_^ga1-aD zFB90?sXa_~^uX}VY=!ge;%~z`vS)-+K)h7CfXlQl{q>9$1phB7whfzzal4Qi!G4j z=O{fOd`c(IdpC|Q{Qle89DwNL_g8Sbd3$&?A&oXX2A`WB9*Zl^;vEN*mECx(@jPxL z%qO7dk1YWSMR%40alW~UCTU}RzT61`KGTyocb^tWI^BUYNxB@It7H(}vWU(!njtXA z3T7GM1k z;rM1t&={XVW7Sns-VSC%Z3$51#IOho*Bf1QN^Am}_}+fal!koty_tWa+$awI3&OEg zgxq1v8SR-lD$d(GZ2P?>Ao>;OHBaW<;oUzn{~`2Gao&IQofMSX>s^-be;rDk2HxnR z!%0nfwo1RDwgf^`9KU@hA3zQhmJ|_xZ3+Ha7hUko`hObdovwKQ73T#rm7jfjGS+wY z`93$+`R_O{(e!U|-d~iPbW+^nKeq(?HM6KK!99k+rjf|~gC^@piZZ z&v1z8SDeS`@w&sw?dm&fOMr^=1fO}Ft_E?6gaX2CuFto1e|TK%*B@SA9`$jy^~8+X zApeN-P7iOk1epNzKjXYiAW{E6;yjuEOioN-kdW!jD1GnGOs{!Iv%mAD;SlpkN(lia>`ZwYRqYkAvp&gT%11VaOnvZdy`QoTreDoA5i%Q=yN#nVxL%V;lr zji&@eBNqN=yjB4pU)-`PA1wySDikB?9QHv`ZbSy?B!~n?S?>R$+zgPjPQ2`>&L$pVR=_Wwh!lv; zrVMy0_;|OHFDA~OTKI-?qvl{&lXn*SLB>!(HF@ECKHsv2+?&A<=@$>xIDZzYkTiVA zB0WJ-Zd6rc<+8)>qvE`X;->{Sao$O>7TSb+YVvgBNX@S}k4y_YFT*XQH>fs>$3K0*XD%#vIv}5_El{ z>sgaKBseFldoh_f>aa>%wj-mFJTaqvfA)IGyxF~RisEjKqH@G8Jotjfj{YR>h<5Mz zQ~oq!v;VX%S?}3aK38flMpo(-b_D*VXoE>GN4)T!Cf<6WAI}e-@Q8h*j2_Lo^bb4$ zH*<63tA*)09`W5+s~0<%G68FKIW59gwh(}sEUaEE-XqL-G5ezwaDfK^2fe6nm;+$* zwV!|hxZO=NNJ2#WE0A{}75VHP&L1@ltv0xPLi}+I6%~;`vArbqsG->BUGl<5QFub@ zL`Z4pcsdbVt9`N!7N&<@;UmY_ADqGoSar)~$3>$%xj^ zb-i&+=ra4_^6_m;*R_V}o4ws@#D(?r2(8zchk~={l_}l})h<8ox%6*>`H#xaK=)he zCvE|7Sfkd4-k>NqV-O5?>GSaw)vt7c%{x&FsiJPJK6$h0yPCf#H*g1`gRmbL%bFFZ zL^CaiL1S_fab0?!BU*9_M2ev=aoMSt!pkDjBp1T(cr0_8yBlclI{$o;fz_a84s z=ReoiGJ1L8o&>VTJ8fhNv@W{H6o{r8MeTY|GdTjC&lzM$~QKnLd_=ft2J z%FQ;}+qocb;$UCCV1KP(`{SU%#NbdwaQIwsq#BBH!zX}49I{etMqwBdhtNxZ=#9-C zLb@FSlmg=5pta!xifQq&`d1-v=^lq&u57eH1HmjdV%!v^Ev`rlR*JL$XhVf>y%CobMnyePBIbf-tlj@Ra@5IHk z*%eJh;QE}S{_V!_Z$^nQ2F~f5#4v84T4R>2REHV!tu)kRbt~Qd$Ie!UH~2pQy8k*e zHU8cj7i0#q?iNyfl-MmQ%rD+8cKXr#OB(-g0NtoF6Z}s6UjVwTipxF!uK>E)%TpNt z|AQ&E+5$p?N>P>5mFMD%l-b_|eXC`r0 z_+PE@&17}b#k(vilnD=`cS|s)YwWx@nD_ zMQo0a{;M<7NSzA50OJYE&6)XkX*^we@xK&l2*2#%Ur-IsZ~S#;T5eQEB`u&+qs#Wk zO;y5!_gAU#TnZoGoS6>&v~;qvXn~nApf~i4ybVH%$wo1$Sb5CSB+M!?H)p1Cs!-9O zM(Gzn_`^p*8*w zFvXkJ_&e&%{Hrylh8D?4%T2~4{}W7+>-S{!*O@s|q~vsSW_~XagBJg4jc?9O#bULD z!KwV4*7$E{=18$d{or)D>&dS(vrlfO>W|iVcJTjwtzOHk8;7k<#Zp#n3MA-#`(RD_Pct|&*%I5 zj?W+Qx;?Mg^|-FgRo6kAX-mz;4cwMG49!#5uW&H(6_c05 z-o|zzDVf^u73ANP4f2|tmG)N2u0pZM7axn7o;x(-s#C@Gx?_W9_~Ky$dX+3w6ck-i zp$T6B+TyJ)5=V?T4UJNe!Z{7>Dn5PL!s#SU&7fjXT{+TnGt7?~UBc}7-dx)$_(SUY z;pu0nl|z~yDA{sdDjYgDLZ7~X+Lg^PG!K?Yk=4!+L{h+AdpD$*`Z3R3 zZ6>3(;Cc9R_Oi5h)w7qi{F!m*=T+10N}#fPXQeS*M)3k+-@@2jBM27)h3yT_UMbbS zi2r*3)x#mPgLUb%NrnwEt}dcO)P;`wHfv4f!&q!^$G`*YD~!~Yjh^sp=PyAov0kXb zs7f!Zc=F~+i7UjBTLJg9s@LMPgsR4X!qV`($BHWJ1^EC@ZV>b=#wk-Yz5QR1g#iW-sC16gYC za}5t(=^c$JzAtb)cx_BrGt#cMRgwsdDXQ0u4I{@C58hmhM2;zLSC1bc#}p^Gkzb0}v$T7vkHE86IV~UdrC(l$Jw~CdQa~ zDoBigcps`(u|=6Gs3vpZlxI){;hOg_zoxD;QJT(-Ch4PWPCqiN%tQwBuaxq9cM?h} z#N6A!0Vm-&$bpLGw8$&4Y{PinhA)d3Or28N(?9DOUxom7F0M;95grY6D@uDx)^7us z#jlAw0$_-`5ADV8X{Xr+Uvhjv;W(x?L>$NPVG`m+T6B08DxK@*iZJHOxKJET<|l!I zW=;b+Fw4gKqK1Ds_YwQcA?iypKOLf8sJZ=UIwSI~oV|+6%zSX%NsEX|O4G%_2ebhN zDj&5|p3#%)@?Rl|J+;Oq=jdVNI%=?8iACa6JZOa8*_*jT_r}gvikffxOtA$ZP6!#9 zx}Yr5C#xf_)hTYb%yoZG+`TS5mtbJr-7^V5p9lrhG#c*FzKGK9FKCNd;y z*qZ*#CKOQt`!|1T(anaQZeukI!@|stQWT(yNxLY*JUAxNZ?scnjrtRz zj~3nU4pGk~$PDUP=KrgUAWkwy10arf`mPVWxB(N0TQpA&bt1W*wGjX?VE zTXd<|@(NAF39EjrD&N3Oen1lQp41ZitwlGIV|#inSR?EqY1UUHaYaXKE~q%vxQyPd zNdbV6X&RWFn@dZ`XcMe1X1(m5Mk5{HCX9re@SmsMK*CKNwH!aBK`1NRj}mva+Vmtx za1#}8_jIOr6#$ZWJt{s-^CTY|Xvw|f06l32@cxavRJ>CYpH6UjQk zE@mb10yZeTuXU6;PZQk7&%gQ`B=M{3=HEidQc6zP-|9A$Yy##!R23K#Aemj5AGOni zuGE*wL#4f{+=iJV(5a!=@cz2D`aVZ;r)Cnv;Tl5HXr&ikOFk;+15d@DONgxnAgdF~*HpYNxLeo=d_yRaqS+ z;p3+6W^4!rf$S<*C761~*NIyicV!*C6x|JvCsMS+Y43^ix`)o?4wG%zH3w*RPYI4l zQAb^EzEkR^qzKlx9~yiEyJtCn@+fh)K7q@5l(@TAM;TkOGD3TOw>wYZ6f$wgo4DI^ z2cIY5!t0j;$i!XY$tOP9#}?0yS3NK-z)N};HX^z~nF-2%`v6OIh>B#dFNoVFnFVix z*le^9K3HNyW~ZaXviHo$uJmGzt(D3VgiL_^3=V}r=-xoKT6u0B#Z|VaF24sMQ(ZBo z-XG~eChnfBScm|7K@sq>EM($te{7@|NZdVnWAC;Ghze zCw|w5Dg42QsrXAi49{6P(ce#QqcJ8Xkvk}H$_%OorH}Ew(p?4c7 z2Mo{al?=R;JA=E$7~yzQFf;zjt9a%}8v@eIn1AfUq{mu+@?l=ub^b{o=F@c8cTkJ7 zudOSl1O6>O%ulq$u6Nzd85)f7KGex$n+mM9&u=CR)wlFZ(cf<)K7> zs3rD(=EKNj>7@OrC1mjq3qy@bXSj~E1d*QExwMR}R6t9>PCJA#Vm@bWM}pE~9wO8G z?PAG`q3kH>CvM7;OA?e^bOnH>04R<5WC<*pmx+mmO-fN~J!;Ag@L>Qg;UpiO{QFws zlMhpM#$$Co?lBUS_8%YSeW4frBV(*j=RRb5|0m}@TP4(#(T96kz;syt)r_{b{se%m z@d;@9v-G~(apm>TKFmel`kZfl7{Mgv%jqKHReHnK@T5?2cbl=-XVcLYpnf1Gm>+Ra zY_*M~6ftx)zoQAG&ISd<%CS$ma~2(xRqi0YDq`?X%CBLu_3fRF8U}xm&|@MLFQ1y% z<7k1p4aXd>Ssv_zLDw!64n#1$R?QTD2Q&N6A~$J7y(W! zleFb<&=j@@+M=rVj&W~GG>5ooZMkF2Q+2t^MozA>uStv52e@HwGVj2R+FwsBm!HPMz21obC1Vf6|i zw(2mEp|c>J^#U5WahoCUV*>< zrkGc^vyg`@=KUtg^Jul{7?9*?27h17`!UJ$J+F%MWz?r6&+pm<|2v-c?@la#J<0PY zZGxXZ?JdmDxTw{BunD-&p5iw;#)v7-bi^uuz`#g_?_VHLy%uH+*aUdlA8mpat&cW= z=BX*L1jL58U7U*8)9vHazRpx~l;qLZ25bT+w@83h4m|B}^O8TZ2|hmUo&LF(_Wtv< z=NWB(Tm}7ur`;K5Rms`nOfRcE9d_yd;G^H#1m8dH@gjSVWU*YvCy^(X3>pXDk0%x< zTVkiU?iUMZKQT~&VjlPAiID?U=PRKTZ-<6z;C6G?t$7CPnM1YNvV~TS`xBG7x9X~C z-`S0d816L7_>gpYvb}Ho=Ekil?{5CLXOt@M)c(BdqG!mGe>#yPtxACnU^XM|32TxiDwum8_w_IlGYNlP9HJSdnzF_ZTdLk%WqM7q|XuC(dyX4TqGAsf#QC$yNksu)S?Tm1xeX(-zlyD#3`X<(_Qby zlbPg2bhCR~gj1n0k+okK=?#b;DxjC4-V=zqXSw_W>QACQ-+f7A!MaExz@``_pTORA`rlfOA5{4e|UKVero zRvPXEoDmRjd}m)DcV7JY0PG?&iVPQE?wD?9QM2_0QjKz;|8sg&g~5 z`T!{Ie>x+GoKO2cg7K-ipY3a*!bswP{PkZ8-!NsQkuNVoo)OF>fnWdI(!%R&K+<=< z_yg+^Bi;L%nI>s)hg<*@8i7pujm}(&UmF0Z%luc^yQ)DwkvO>+2L=k53lp*(owz$4VyPd zgB6CN_ozpFkmf{p&c7pBG7aW9?MoZ>0)ua)L45|#kBGwrlQF(YwK0fESE|0* zV5bS6VC|N|=~;Y-kpdPuo}jo{!Z46mtG~WN@EX+|-cvoc@f`w?{W;SP?vWF$m^e{M zCHQxa-RnTy<}r4AVZw~J+bQH}8yJ0mI$%H#q)x{hYEwJcpe5WITjdn*$oUeR#Rbtx zLBJD_qJauRhY;HbwHQ;_Oe54PyN}_l-)D53Gqi0co3Yw3QfD^Ha<4*%jmS|01##&q zDe9134zDZ6mTKMQiTCO-a6l>H%9dw~9D7%lY#o;sYfzrI4cg}{=Y><_rSw$dJ4N3N zx8${<&U5 znP=(pyFAOk8NpD`5RF!_ciFMof^!rGB~2z>E2V7u($KO#T^p_ttBb&l5aVPEFe8LKL{yu~0}KQz;*fZkCbOT*>cd+T2Vq2Ia{XZ<`eRsOJd^v~4@6E$jD zP>F-aZvvr5Y6NyAE$r&Y-VsubTnkI1SyX60>%;2l++#*DlL3Sp)*`oN86j)}^~g|z zb|WJLd9aM+$KFu^4O^#DCKx@oC!PTaHBf1NbSoI&cWNSgN5=-3wL6u-u_Z^LhNqid z$llQ(20~vcqwwFnBDs>IU0-^|J0Q*SsroMrdrieg`=t)ID{$ zhnx{A^1@P?jvgv`jIE~31cFYdcU3gr7wGndQBUCn%HZT3$h%EYLvS79n{kU*Z3P~Y zuB9IO$NU5IO8Ka_Wt=YxjZwuEH)7l-KEnx@fYkxj*$THLgqwd>falO1gn zR5A{wG~8M!^<%u)aky&YAe%tE|pR!&==ek^8GM z1KV9rBJSdlaL$ETa}LqT%2LqVFbe^W>QbHvr^rw#AI%55J@!F-@#8R=gfc-NT$6c*v@%?=!)-jK1j=76G~sgd@dsF90_I1T@e0--<9weP;g_q#Y- zoqr;TTUXufv|8=m@5?SoZS#9hi{mUD2y7k#fz6qJSzt5zus(#=kpGcnsrhsE+8kga z@w3x%DUbta;Zo%VaV!;A+jG)4@i)g7Q)a?zbL9fr}o3Z4+G2Vtw;RPVFgglL1f)_E; z1LHjpnzxu|sJ{d@r=H&7G4MgClBP(Y$>|t-gK4iO_!#nJlWKh1sn*jrIrzQ6W=O`& zpuVhtV2qiuh}58&64h+WjGwfw-n_rOMf`lgzay}j29*N>n-4XAEW3OSS$ubi`Hs)_ z^%8SKIN*;jF`p+A|IsCeuv_<&w)t6L^M9Gsg6ve^`bA(92wD7BTw9UoJeGfIhNBQclK+i8X4F`cB+2}Y_5|q{ejc+pOD25mlzeF zxRQ|UE(b2MKRJ3m^Eb_$P$3Kj%Y(N_g^5>y3 z#aDKwCK;0RI=P0A=#>F&Veo{Wpt*=jD~N+S+A7}^>W7!*RnJZ)L9JJ7MlMeV60(=Z zt)C$@1VK)X?VOH|2IDB+ux#;Gl_WVN!c%l_If2sW?{?w7-${8>1odI1Z0yN>U;%Er z2RpX)?sBLZiVOn|fIG$kl#(4ORgc#M7LM@;B7LuEV#KOLl%4lwyE1Qd`*=R@?P_3g z3IxI_-~}-^Ufy`TOXd%k#eo{*$!rf&q2a8`+oGWI)eN6u`U zgYGx&)>j1i-FJJkOp52%Y0d2%c_+`t0uSDdodeI?Wyi5>HfMZsKDf-=ZSqeAHs9en zQ-gjT*!-o_68RHt^KUAv)qI0-OhgI!Mw2|m*IKkWS`EwW$yNTLR3Z8oEuJl7};(`JkIh#~8-&Ct7d z#>y-`l3dx7!o~DTa2%sWK;=E&>5wFrj||z*X_2366zV}|=#Kmx225K=3|b|#h?;UD zfcp~r%?vn!1){Rf_*TdiRsbSS$VkE^=;c#!74@jP)z4`WVE2VE(7y743Bn(-b{wLO z78?^QiKQC@k;GFQNRc3vBQ@~@t13kKpD>A^3ZVJ7psD)B2hGnxyN zm21n2Ya!DjN;>l@;zak%Rg~L)nil!T{)?As)K3bze?_BkO2yFqiL}VSM5BE5U;b}t zl=`0VqurOIQpv`lDsuPbFK86Ltxz0;U(GoGUa3S{{>slZiVQ7oX0Qf&s_R2!sl@Su zcI|9xR7NYeD~#pxu{88j)}ypYB#;&v?r0M{Tn@IcJ@3Ox+U}H7jMOM}-8b4r0sqD8 z5it##qQcwvKp|Hpok9FYhwPuxC`Y?5zk3b(k4E`kqdc>R9?dxaBnbNbHE6tI8}>N} zYQSNg{mqOsStfbsn{?+qL+;7XLC_xxxqwC)4IC*~xE!v_tDz9~o6L{D&< z_^n9P&iaK0Y>Q&9F_4$S$ZY%AwPG`%QXvQ^A~-}6$A@N~L>;$ryvU#F5Qa`%X+kaK z$r(287777oOVHpvCWN&{DCrsXEmqPvXSGZap10TP=!Hvs_s7Or)Vs(O?0GHdA6*u` za2rz1Rrvoe2>LHeizsbiN^!&Vg9&BG!A~nuTWLB!RZEYqFdtRG?>QA~(}JN`h%4qh z|0)$QcmhxX;jRKm6%b+h&HCFxe2MX;fLmA#N!=G-8KK-k46P_1k>vLeRUZiyX|*fT z^CchCL8M@^`C`ol_dyp9c4m>))c<2mWtN}*`qX% zPcW1HYL)}(RJ@jw@H|NdN%^$?HXM#oy<(5CZrEnud?G5SMWV~}QiJvU38P?ikS)(- zXZ;0;JxBs)fZC{a@)k8>B)}cz^i*{WdC~U!c9#w1>4W48paZTIx8vuGQOV;gpdRmh zxLz0^ifuKZ=$;D1QJLznmT5e^<_kiFcpbPhJ*FfBxnpp8DO7r+D;D`j*riSrcJI_K z-&G?9aG!QBq^Jq$R=CmE@#C(dKL*vy2BSdD9+!+LfCE+qZHZb9A@m@aLP?}Z2|m;Q z92o-eA#~iQAJ>y3>Uj?XZ)w#>o<<31X3%%JqmLBXG_ zgHT-x7Aw!a@Z`T~W)#1lFSy&M{VWxs3#vBPdQ{?l6FjO{geiE$GtmId;q=oeSA58MUo|FA>>jK#jyI1L;&um>5B4jZ+=VT17QBjjP@97-Am zM|LYu0&v)H*P(n4mKZ`BWUb<3#e`G)W5uLc3AsekQ1Nkz;)BMgC5kU&vA;ZQ z{6{YQHMyX-sQ<7i=ojtLk8+{j&I2hIzFDGZ%}yQs5+OB=Lm17&Q6J~q+x%W=LmvH& zo+#$TD}wWkBNLAtQE~LcV=)Vu0tJdH$zBH-GNrr zEre^39~ey8eMqa@@h>!gofnQk9jRLkU$H|thKABmG@{1Zo8qiYV{$KtdD{9S!gYyQpuX6@0xX&QJhBf|_O7(kc-vv(C|ukvV#BFM}<*bq2uTzJl4 zNeTYCMnwa3Nt)1BekZv3>ze8E>WQBX#$#^de-OMz-S=IM#DA|ax85cnojCzH82@=e zV!#eze$px9U9wo|wYjdOkNn3ghZ`*TFhiF&FJ68;90ZYYz=MYj7;W~nQgLN%i$C!n z?>%a`lYd|K?dLVBwje>6m`l2Dcd}{?z<+eiV;CDQpg8^Fu`k{UphnU;v^PMsZ&zEj zvDlY}hPc0ER4euDXvtH=s4Vy41VWh^TD1)f#^+sDf1dI9DJt>kc-$j!vFXaj>#3&= zcVtqpzA;m!wChY$1BS-TV|4s=X+6~6&gU~*g-EtXY_^tNDyP{ zb4zqb^?ZLieX^KT@zuF-p@p4`Ua$<+=Sk7c>^AOJJ zBtlgF_$LbzwEb+bTB3eDSl#6ryy$vb?|o5^NsOq?LY7ze;ADa=L-@DF2&FMNA)r8 zu8;i3-z<6lQMkdP;zgnOh4Q!W5bC@85B|bn{67zF{#Y{wG=TAE{v$Hnkal!9_$IiC zT%!UG2gn79y*1m2oiyZ@iV{jA8B;c^z=a&dU@|=nZ?mJR6a2LenH|p{^JYE zQ_pv6rL-(V-qe~9uL?JV6q<}CnN2}E`fVVIrUyK>OR|@R`g{W%(}?ny$f6}cp0Uuh z6Zie>ASfU>b~)GH;*2z5Av&TGBS-Mf<ikQ_&*KM)+P0GZrUv+(HL72R8~pyA;fDGv z`l_a_xlw}Si}mKnB~PnpUCH&Zqb1MQ;1)@A2XK?2z^8uepT1@M$DH^dY);6r|I+ce}3BPIjYxB zW-{#-;MTtYQ~w);$)A}R|07}Y=SVj3ydD~VC(+PM_nTWrMHl85lFe6PqFY7@+%lx# zj%%TWn+y~f%xyeWA?8Su&H0C|0@XaeR{(QjQ9)k0^<$y|XRu9lPt)rbU`}8uDhObd z93>jc2ij%NmUsjLGnp)kio~)dzervF$DH_U=EO&m%{S%*?HG6ZRUBBkO$qGD_lXAO zv1dPKQsEJ#?ZL~WSS3g(o;JIdKbg&iIu=u|4 zI&29aXCf|}tC;)Jm2T+f(^n{mHJ;QY#9{|j zpUGG?d^8R@o*2_oyIUlK#|gb;Yf3Iu?-=1|Yex6FvR#CL7aI6sj$wbNLrTyo3Z`Pt z%u&^O#Y~;$xg9(VK2FDM!PQ_mc%!!EN~@K_E^$gPv{Q2vXhg7z+k`D zm^gRNQn*FYX>$t{q3!Q+)~-q>JHgh1Y9RU7?g*CBX;K*6mE zs~t9Dlm-I9qCl<{Q3TkVgb;7U|fKYwC>qb6ly#j^sHboK4cacW?#`%L|I{yWbN>M6X{ipL1iRUeWM z)0pZ)P2>fu0el~Tg><177Vfo>jq%~ zN(|okORiH@UFwHU_lEB;@U-t1n$%xUTy$TMXmIJf!@c>CM8K}`81HZ`^0K=bwG!)@stXV7FrbITsg`vs=hgQ|$LqH$8|vO(f4Xn^AaU}| z!UwJd@Di!*9JRg1<5Tc{%;S2dC!#?0ty$`8z7D3;hsnIqJ8qz2-$Z4_ znu1`}T*E64^ukcMiAmwDcFRjk-Wx3BO~vX>qvuU=+najHn?Bx~7+W0RKdXaXr%vNU zt>W9A#>(0z9EV`BP*^^$z}cV1jyvNbqUQp&bgo&&XD{*@8}^mk@m1*XRb28_8u3%v z@snTj)5P{y7V-~Vv}h>8>)poZzJ@h^+OJ|7l(vY?wTkZ{=n%U~cx%;*avNXkaX{S# zH=Ju&h-q}TRXhTUz?zCc*O5T?oj^~DpgT)8w~Pa7itur-nJE?F!=d(lh%W@|hC9v|x$AKLah7nT2$P{5HfsVM?Zjf6z zZE<+tpwBUTBOBtjBb@c}}q z5Hr@AoTVz{YTSqe2E+sv1)ARx{7%h zcZgkrZY)G%HpYmN#lx@Ljmo-Ab3l>U)W`Rf%X@iH|AoKfA8jq<_E7<$lM# z`(0J{dq(f~?y`$K(`Aqb<-ary^(UvFxip!d@D)RifKZ6FiwAQ^0>xB z0GtjhqCEtmRzpnK7YL(3po)|f$3aYp2I^Q!%svF2H>caWOz{q6%p|m2$gUw)p`&DN8J6hBtUdC zgm4hZ%79M+if)&JZU;pNOFcyOLRIV|l3+K}N1ViiK(KH$QKM1_A*c17z*zfUn6cN4 zv|r)tTGK%^9<063K*}6}(anEE%T^q$Y1s=?kQ0?Lmts?-nWDD>~*~eCv49+-Na2^JS%AQvwt-I>QoX z4lM>egO@HP*Gp-w9+#LsS75^{~kv>N-RBFQ+jT^RBXRgg1Ssfq)f)JOwO%L zA+b!Urc7nLOl`kRgSuQxq+G|aT-U8!FR|R9ru^b~xzT>PF*V#&1a58!w{U}BO@v$5 zz-`Cj_WST_)D=!56*vB+U}`dKcuj-;uSq^F>nA%91Cd~Q>Or6M84pIBI zT8Is}??Y&B|DOB4_Qic)==2c$!qKv^#{)*3G~=ft5^m&t9&viLM)&jmW+1lj4ADjj z9_vaHIV0OtL9oqui8-4NfzFh zzRz@oYc*ubO0ZAp&cKKPubweU9|A@mEe!P@+xR?oPP=>ZVoLsOM>NONv6@AVh|&iP z`rM`Pfsuhy8+C3wk@K&a6KxRrFY5qYt7u~yp^YlYIXqVC@cao);>N}6i-l895$p$t z>Q-i8Pc%B2X(P<#ILPH=+)Ku?vpD<%0N>oX-XVlWuyd}0+=bX?wLT7Vy&&ytcd+y<~&Mpxtezh7cm_UdednAI-qb8aNpg@ zx?UGP#>CUhXaaDp#YOgf9G^!X$5*m2H97Lts~F7l%b^x-z)x<-lHGSdxg0cVZ-Lna z&n-%(X^FQ&Z5sI-$u}M35SZus8jf)(FG)nc-?wSPeaDjAh#EY$TCl9b$ zwxM*ov38H$tK)2VB5@~2_?CGt?U{>`-4c%Hz>Z>_C>u}C;9XtMzTq8KnxgBtx&Abc zrw5EHBNDPM(Roa#SYnve{Khjiq8W_=c9ZsZTw{9AJ0!L7=J^KA<7jowEXcdf1+38g z->Yw3asm(Ak#{;xEb5DHs8Na_{G3T{SGe4o=6gdE72pus^5zBF$;nEPRfKBgboBKg z=a-BG5xWKvr?^QPSnb?25**y>cbBuX#H!|U@yyQ}KEi{zzAmG_u>a;0M=PRgA+ymC zx>`^EVCxxvhQgz@o;iJojXrt8+|2>AdUw@VE}_u^#X9fm?shysekkS7D_h%N$icL` zy@FNmxxXsE>-k}ma9tF~70Q7bqlqo9&~$^R$d7ei153N3$q+?CgvB=XSWQXO%dl(a zSXDE}w6moZ@~s0UIMoOdY-ynos^aqkq|-!k+0pcEArKSg@bKjJ7IuTRkoxNk(oq!m zx=q$Xc^ZwCH8z?qMcigmCN*SiJGa-b?g9Md zc1C5kIyypwm|oBVEQlNlD8sxJ@+Y@bDPi8JABMZWKtZHtupZ4{6)w?*-K7jCY!`ytB|TRx339rPfRRVXu$iM#K|GME#2aN;oTC}nrDL9; zBMX5^YbL(Ziq|TSNqOF(Q`j{a2rl}_(Ha|&hiZP^=bt%R9E!r2sNqGM#!g&I zf;;6y-tKk`V@1YBYx++@H&=5QmtPx`>@a;We=1Mvebs`gX2h)SN;Db{WZha@@2PEh z$+T0a&LvacQ$B(jN}_h$b3)L`O}X0zmpX98sqgk8a<`mwGQ!1i6UWD6H@H@x1=h=_n9GNbp8EWdTiWn-g7PUfu*3>vy{npR-VXg$ z!L8wux=6j7#IG^3Zs+c%FF*wA`$_LzKUE_C;Si=4Ha#joF9?pDd&GL+Piw8_EdDw+I#5Bkr$U4-7jM!lxr**Wy z{3?TI`7StW?4Y6BqGgD^O0dplk&EO+sn@=)MXKB!u_)F#t2>m7fn^?G(}ex$ArUQS z`u%soc@)5ilhA__$IC%WhI3WTc&09+R|3w_%$Fmg%`CF0VGMHfbF7h7J^js0afb6; zv=4T%80W)#m8u}l^*hpP1=nBn=gi4iDs+bSiYe+XEz+3qK1V3x{>_{M@`FHrb7$H1N6lSI>r(#RQ_yQqq_4@1MZu-o{Rb`ra%|quwa!p=!GS4*!G5 zbm)7s581qMRFj?QhIoUs7qv!rcM^UHx!95%GZ`s$N=fWc64Y;$Srr z;plJ*VQkWHxbw8(P+AFbkfwGZ;^=;O#tU7~3o&p9^EMmlx>;777r~Afn8KSlp7!w- z6Loqo5{lcDmEJV*ytE4Z!)@1&z4tC-^kfQRjgXflF!5m-@!|fAYh4|-lQ(hUkN3UV z?t_hDdzL~7yy5!^*LvGeA>L0t{S&TLgTi0y3$8WZ-=Ojv@$-lNi(z>z_sp# zK8~lTr3h=$3v0U_))f%eRTR*pZvJBX{B>ZH0XHMj{V)B0-c;RADH( zJ`~dhihU1?TLnEf3MJTuf+=Cd!Z1>O7?}%<;vS5u3Pv*uquYf+D5DrCMRm_aF}p;u z-iuOAh8Q`Q7=>NU zxdln=cv@99%5(8CTFVj6VBh#*2}xEED4zI2C$YdYBK=YQt*d0}!gnq7nXd?YndOjS zT#F4d@ui`RhFJ31??Pj?y!Wm}AE%GI$wq858t0W0&K4D$Wk#=wLx$+T>+QlDIvO95 z!-P@cWS34IxEmkqaxY$==}wg&x@3G{^u3hPxVw}IHFNjUT@teIC6xGc8}1Uh7T?R= zy}I2_=BjOsNpuUXQ^Gyi%^c;FD-H`F?21NRhf?F?`R?}&qwD$H=j~4@&Y|jEcDx)f zGc2fHJaDcjSfN3YsqG#ZJ%&Nwig+BMPu9p5IxERix_kds74azBjSXjVwEpC~ddcQ% z^z{q$#1+YVlvMbY5BO5gVZcaz+3pGP-(!v=@(&1@>r|asen7C70v-!mr%YY5OjwhC zKpH~Ryi3@W#<|X{=x-9ApW&{$#>A!z7Up%^)pz6^e#p7^@Ewi^H&q&6LW)53Lw?*e z!Q3>V>NMfKG%>1lAy;NH1JP-DRZE`KZPMh}7!?hmJ?2gGQ}(XW0If~ z?Dnj=$AyF*HuR^EoWH~tMXK-0XPQnp$YO*^lqu8CpyJJ|qNH^otT;MLoZ*9jN zktO`nwB?<%Z=Ez;r7gjP?a_Nr&VwIj zcVdFvCh_d?of)qDE|obx4xG|Qlh<=76NqLkz%wT?*i&+5$gH^`Ag&bD2?Ox7HF%D_ zU`7f2GNfSfEO@!A;59q=4Q}C#K|X2<2rOB+Ub22FI8qR*5{q?UN- zXQer-cw9H-drg$&U+SG!qQC)SHzu!J!y#=fYn>;QFa&E+5no9ZDP@4;yTxHhmZ8pI zD!CEqzkYC+7Xv*tTPWA{c{NEXaRsYe$*@eE7`>bQdGF{=1ypc3I!}cg2XS{4DWL}V z0HOclS0=`hUYa=AC-70AL$k@-R;oh_9>P2qa|C_IJhV^uQsbR zQR42H^CcLRp{0VHiL5D`tHSq*Ziaww71eOK5j{^ONiY;OQ;xlyPCh(`I=EMG2?f4- z9quK`=d(%EyzqH8dW8)YDk2rQ^aCZ5)&n$jCXGw`98*6?u!Zd+n@+Z+0VwWy$6 z%(XJvz)DVjRhs*n^qeG>Rgd@cgwjQIm<$F_~8)>y^%vVe9*oV?RY7uC}nsq`Rd zC>{Lt=Ui=Ny$8q_5d-LN46_ML+J&w^R2ilzStYZ2Y@5rF6O`UAprXCnL^^zQPEA$6TAjxG@((Yzy`Ul5ndy#X1PQj^iuwSyeWYO3 z;-T~2v`j@_KqP&lM{cd>_`u5Ljt^;`wVu+qWKFf7 zuxH!{&x}yIPhTQVLVSSWh(=xXBT+o}{N}Bv{iOW~JM>|gH+XSkkof8#FV2vWsGh#)kcG$4)uf>wmLcxWA?qi) zR}O}pM2Bx&8m3$v;tU>k#@BVM8}>XH_M#mz$Q))@9PzQ!@$eW4sT&EK7|FUa!iqB* zk)$0gIvVRS8lNQ4_@@W5$QaDJ*S=6 zX?Zb}G%;2;aV~gb7jcz-xMyNkbaKl3L7^ZK!}UCIrN^DpDZ9s_PEHVYH}^KFz*jk+ z8V;oGy-Akpn%ciK#oLv3C^`-DOhc!eme`xZo}9wqp2km}#Qc8aQJ{sMESZj}z2Fl#%+3hO9)vmHwe(L<1@WN1L$)iw#Fa3=Gnc zQFxDE0(p*}T7hOZg=f+QHgSpP1gE$*Vo6r|KRcOJosFsiazI&Z4s3iwk%QllDGjp^ z(5-UzTtFkjs7E+1p`%D1U=oF&6DXIEc+*c|%?)aRfR=R@eG8T_Ocv1kvvD1*j^*SM zz-prUuzhYqtc(RbB$e&B!Ewz@Ifmf+53fkuz+-MieHQ$@VNu--OQ;}=s$8(6vB9|4 zIa*7+J_=dJG`bXS;f2;y zo$y8UH6C<&Je?T!$=Pl=h*#E&WH2cx-SZ7*s%sCMJ1P-14dW|(qGxZD-Uw=5WaY82 zIj>6ULlS&F=?&|{6Eht9VA)8`Qh$uL8DT+zl9*Ip4sO`pPNgX_hFAo{x^o2iI9TxM z4Dm6(YyL56;Hje7?4+JlYw)t29=j5w_-N|c%PGfs}e33}U z>RkjOEn_>%HmixbubH`fq@^1pIDi%8;Q;o%431Cqxc&5m2j)#JT7}>{l=gT0B2N*2 zGAfVuMesprpnkMBf5xbEoNkDKNQclUmLQ?E+PN1yOEP{I6aIsJ5oAm_cw8z#KnQNE z?_=3;v@c>9T7uc;@i8X6@#+(e1`Ur+rE>L2WB>_=QBNh$q({VYxsV`%_qC&-kHUt9;=|?tK*&bR4Dt3pS?J zF_C7qUOIx-&V}(0328Y9E@aPXKX|h=7b$_s#&ki5OebAco**V&LK(MjK3ZQgI68*K z>N@l;nTb9$mef%g8b|ES<`oYPR$P#_Fp61#eljXM^?Y!;WELfFQN=8tcN-h9R6M3d zx+LSPq;pj!P%36gI<#wf3Aurmql=~X#i(?Cm7{VOE)<=eo*RERn>Uq8D{Z0GlHT1% z3ZX}ocdWm1<$C=9#1Prd(Dv^bPz4W}e+oL34x#c!kH-VUN-Gy$oQ0FHS+VV)y z+`GN&Lk{QbVuy{cb8U^7$K^YXSY+jIjoE&a#z}h6=De7{J?XxUcypA-5h}b*XumTP z#KL{NCH{E9&Ky*}w_+~pf|!eCjA6m<4J=0*fpDXaXT3P@#oES0+eK8nT1?fdL0us?nmz714d=9bM;2jYFO5}Z}(k=5l?|Z zs|OE5N2T6k14iWyHaU@ODRN{?crz9Jtx*ZYguA{PmF%5YqBhgt%P=Ti=z11w`h*%+ zGe_A{>3M?SlXSr+%dFIF+DUtxSrV;!>b^YqS zz0cKql3R2?chJ(YJP)muT@RVYX;XY;F*tnT$fy+HxADlkxTpj`YX$Nh>%O7U#7dz3 zK4|VwrE$i`zS%%KqS5?uOqiR$Klf-~B=IHp(FPj3Zta3{;C=A81e z>pRU5f?{S-&ROEbofZ!!o}-v>v}P+eGA7*9;`eN)O{ljx;#SWb-TqFy1VITj@N-PK zBr2}wYfM<>2wDpmmC?i5-+|^VTc|7m(A;-1VI*jdlAq74!`Q_62sF3YwK21fiv-Q_ z-s;Fs5wTQF=67X2#mAOfC`Ikl^nLxEUQ@d!p?1BW%1#H)J zW39L&p|y7y!_Wwx+-%RELeH|OBY6vU`G4%ag+tWq+wDCJ4FW?5hyf@qVbCBUf;6az zgd&I_-CY9GUDDE0(m6B;(k;?bQX(ZvBlCV|1{B@8xBD08Ip=xzKXKpJwXU^3>tZF< z{siRVhUV%;)QQOh+I;6?1%ftzE(wIfkbsT{yCK{pC9oDgkUzx=2$lBDYf&Qr1Fc59 z<2?4KSb#QPw6y)q9shF@Tl2iQT={2mc9Z83G4rxbQ!kTc*E8SQEhu)`VV_7}XJf;q zhKAf8@SJzcH$Sy7CsHvq(78eNqH4(mpv}wpu9b~E8(yQM8(8VwtiCmrVGIC*G3B;i zoe}wK{{!FkPS;L<#r}F;VAbLyIRFi_ zzX9#4TDI=m9oyaCtR<*k^_1J2ItklqmaATi=-Qj*gKc*QR)0>D`?8=4+ZhCe%F?bc z%l5F{34$8?tplNQUan?mplg4l0xne6?9Iu+c1B=;P$@{5-=Otn7kGuqoxy`F;kAUe z*C}+V)C)l12v18(58eGo2B_RF{3JGpo+hHE&LmKmD-T`XY|@`12V5toAUYJ3T&@Jc zV(5vk+X}A57f+FUxt^MFr6YtKiEiV7&_I2t@Bd;R!-Q#!Hs>ch8=v{t=dt5@-kAr* zzlsuS^>l`X9SMT@ItbE>KD6XpZ0plP_Q=EB@f!HyIMXyw!$%h_6_U4-_pS+kIF>Fe zfX`!(-X1qIy~!SJ>v~M49C0{)?f1OA7~s8$hWq>9!LMs90@?vPDoPuM&|Qd01cIPK z@4!LlA$H4A3lhviD{+fu+h<~pzOLpz`o1qbQ9m$1`7Y-|2KDnNQk z^HhCB{s>Nb!OXe=J&oY)M;yy;phLF*#Ljbo-=h|`vBR0P9812RI{9BKN_7GA7`t68 z9x}FNp|r+|h;2D4yuMj4YWauaU)&V^AszTU_Q9on0~y=e>@nPYYcsd>VaV=q9^0C* z_$ULP$8xr&ei_@^eTBI*&lz$!k7boEADzb@-}i&hV*!_ms=s$fThli3_XY5?RoNxU z8Gl(H6j`v^7**BY(ipd9+uxdwFs}A`V_flNdlBI6@2-wK1rEmp#)8S9(OlU6-Y3o@ z?LR^K;k^G2Zy!@7$%9+E6=v34pOBRcFlo=`!YoX~Rz)A;i;*OOjME#MwOV*({LYFQ zAfww#?MZ+;8sNSCF}9@>M^k|0?LR80=V9&kw>pe%^(flxCHFcZNiSZpKArH`R!$b- zk$KEJ>l~c~X|s&o+R=8vi`PyZ#vG!p6c55n7s8Z0I2;4> z7{%GEmp&&hI-I?>{ielR<#Q5YFau&9vuaN~gQv^E0mQbVKc{S-Wkk$lPPi$o&m$a} zC|+B>U#4Zs&XBckeXTlElr~zZRu`OxDJoeYIt#9)ff!O(< z%wv03=!QsRD2>xS+m!GxD=$%Lr$dX|gKbHHc}zPowhY!Wb7OWl9qXX@_tW{McQezm znC*5z@$Vyt@WRi^AWwnM3Gm|I81c4%01Mk~CS>ui)2WopGLn**(R`9|BQZRVWOAW9 zFP(ETGUPgfToSe{$P-jzORg^xfTA{vs50x*=je056 zf~UU_(=#ih;MZ>EzhPN%Vsi$HerTMO+ z6+$mLW4l)$<3@2Wr+U?$hM1zzXiTBQFgITLrkV!uISk;)3$>t|nfc)I55N;;CBcG# zC(?#;d%ekK%p62Bc`_!vNX%;49A#^7PGas|G1r~&yI0=67m&M3IeCREhmvMa8WV&K zc6NKLL$kn&Z+pF+6_Pyeigvr)oy8#E{9cUXoWzzV3ysF-$D?$1?r2g(J^*oxb}>1d=hOS6B!&bdQg zB0$a8v=?|skZ3sOWLvW^AKo+T-Ld=8L)8RM;|6SqdF&Dm2tJQx64q?{_FsX|V<%*v zz0S>bYKhBr|!ADG9kJ$0nS zgddJEY@D&UZ-dDn?tDEQH_PB+J;dX7A&+#S01n3tlE=C2PXqH9w=0d3t39bMnT{(H z)Rh@H9CM3M&TBGmxw0!g;k0?eJuh@|Q1f!+6M?NKLga2&ZLaV&YhK}oAC4uVZqi=7 zqEOB2gKh_h<9RN*bj=$!hlk^NcI8M-RdNq)8xNgG4?U%enqHb(P!AJwPcv>$Ed4x8Y6j^wv?oAq0dAR2jVcv$0V<#E1N{9(-(U3jC>z$IhUe+7ZM3)o=I& z=k#BdMyl8QoR%ud8YU@y#wHhaCa1L%no@zZh zs^BRHsOj+0u~C1Fzk6J`E0&%KUuK8qT`y1?c_uwV{eychdZSvEMaj}j#Mr31U>H^- zhq2;szIE*#QSfyI{NQboIs8Q8c-gA*^$&xHw136s%0#{I*HY>8MV3KV#5U0KqZQaAC_0<~P4*>`iPdH9; zR`i@z_ziDxB6+Y6)6G{?vTR8f6rz`XJXA$FB*Wg_=jt7N=LyJoaKEAMbg(!bkoK46 zd=D>`_I_q@><0Ep)f39^!@|#-0@fziFX_pV{JgWtQJhIUsnK9(#u>nG$T$~k0rwl) z%w`<;4du$Q=M&sW^$=rYx|SO20z$@n|0_TslcIkdvQ#?rPGQx-*!UqEiY%3Gjd^73 zj+F&s+0k3fe=O+*gzENrR0@HyajB?JkuUsFtI7+*_!9>3P@PJ|SHGdYyz2015~5U^ z%{0IB7d1^-^#5Y1G&1df*`{mxf3j3s1|4)%#`|GxJn$PX@2=E-KQ;m~-X7pLJe2VU zAN@s@!DFr9cH;vXZ*P-Oy#HD2K`2}EXBtS3xr!?~G*mxvV=b!bEUTUaSWuqYS_d<0CW8=~zHgkaZ z6F!4q{e^@GUK*JsYSAc@V-^vUXLs>iskF*w`44G-+Ty^E+Qy}?i^Y~(^~av%l>#ze zuE-ct#v8VvJyO$TFmP2Jg=DK1yaBNzUK~NcLnhjJJom{7K*m$udPxqK@!BWx?UfQ) zxAMHMOF!sgN@(DX$&*s>n<6z{Zdko1L{WbSn3gUE%zSXB*yV2ISdd7v|S-**yHOyuwKCgfoPk%oSCk?<&UT(rKPH4Dbm0-46-ZNXGD2%4#k%LiOY5{zFOQJEA!XAk z>0!MiwOfv66p>ta@*G*r?&!R1Y573MvQ@?I+tq;5$~l=8JGhM3Sz5g*Ln!hIknsqh zwf{=m-}S$l_V3&%srZ7B@#bVV;c0)Hu8J}5o6A+ZUsjw4Zhtv;$>u%=+BXOhJ`hCd zM(y~svE;wd9tnpK-IEB)8Z5;6l6bGJ#89*tW3n6xAu{a1>5B9Wab?+9A$0O*MabDr_1J#r2qL~0!fHB0jVLIlJh;A+;&I2=N>e0xOr z9d$67f^6`%&>T@BZcvUAuVrR`)G#mf%EL|9aYhdqCAZoGTa-EKI60U}mBePlyTj|^ zrw@;>M8n$)7)hwqP&scWNSG0ZO#ov_pZYZd0jwKtSZ8P^MMyltCY^rCExypmpec?? zp^z-;))T3z#YOk#-8G@xBs8KTVCBf5>qJp0!GF=Pgs<>0N+t$v40}V?o z@1MZcEDEBmYK-%Xc@3ocSs7#+c86L2k_>%dEJ3JQA0`2jsXn^|(H`mNBze#txv1Tu zRNT+NDTHCo>O@w)im8cPr$Lcyegw{SJdn7oE5QsrYR8#*; z++sM0@Q19wIQ+T@fC#^JStGBDKOalJgAgUo7Q(x%ZQPXS)|#8xs$U?+5|j-jh|q1| z3~`G%EolJ)L>RH&ECIhR8oWWYM=B!QBUcozFZ->9rAuoiab~nCx~_&Iu8Tvoz*zE& z_Q*Zq)JqZHu8YqjYjjoqX^;HOyy;(UAzb>|^t*cE}6}hrGjQpxS5}{^|DRU6F zBd&{(fIK()#Wq}y2w*HR8JXo9^NWWUEO`mj5m1UOgqPwyD|u zUJsI7rAibNQ*T|`F^U(FO%ol!-TRmt2nz%f7{j$jseK5-I?*U)v=$ufpt*D@3Qa7$ zk44g9a#HOMC43zat%nbAxJU(fJ0r zhq((uXFtxqSJ-SD>GojhdvJ>RNkr$_s6rN^FK_+3Pjs1)=9|s&&+!Tl^itp#r(c&@ zxEZt4moED~w|Hq>rF*9z3aDAu9Us&V)hwCC2Pbz2o8i~Rjzw+0Lp5tjPjz>A5Pn_k zSTX|CtO@*5Xp_wHZ#69aOJhl;pBb9S!=r>^B0#TbN1geT!Qh5a>|f{=u@Z%UrdQlb zgT<9dpDWJ%c|MYN)G8>uF5URV{u6{=q5D?gn_gjmVYR-FobZluVAFW zm*J)TL9fWRC^2k8=oPyMdWGY6dWHT7(VyrQF@Ml2RR4}%K`n{YEASPPuF>NJoxR4G zqjcMsr_QTam#Alp%*c0=Av%C~h=Dwi@~3(Qw{!I<_p zrRAIr)S8W)4baCYnGO4yUg12vt^HN6m`{pvZ25D&Vj;uU(0d^hQN0+^0mDF?xxVTZ z3ok6=M2|nnW7-Gw3O|HiLB#u2ukc0a6^Jv}QmLR8?(#uCvXw4~voz%cT(203$yz(8 zmClu%TK=$71Hxoptwkdnf zXmCO?#fmcNH`@`_vEQK+4rbn4UHxhG;@=z$Z0e~HwbDe=0aoqj2u6^#(!D^fG@MR2 zg%ju@J&lcytX_OEJQbBr^rjUUNxAp z63J&x&4Lry_MLtGMNggtkt>7v_OJUt)t^3xTKh^^%_uaj^46Fp&A6GV*`# zV6ZpMa1pLosNK-Vd8kAeZA637ixE!H=YnBcFGNEPi5t0_P(a??ZqNETo|t_eIn!g1Aj5F8dQN`@tE<_D_?;oI-dlg8R>Fr$HSbSl6{(bbOO~7>p%x=1RY(*i!w;ht zJ&Dtuc?yBZXaaA#`vrn}xwZpFs ziyEttJQ6j(sW7M2UKcf|Y47oVF8&Yl!p^|60C<5jq87F7$plNzFIe=-2>dnU_=tJ= z@5&2s^YZ^$dEw8dh~@+HGIEOe7iy9Iv+}|lvSOsXaHkBA7f$)4Bjg3;b)>v7-3ON! zhz{h1FP{Nfv<5h|*;7D|{!156REH>R%uT_ZFGk)%O5H(&gj)(rsnKfVKyKleKk!2MD^KJF^bb=LuGZA$1p zb!(LI`dctcV|fSLwZR_!J6+GJtT!hnV*+Jss^J}daNvFo40el=GuYYdG-sp+7HQ;! z3l3-V#1piuSc7hlZ(|{oG{5NRYrgA7dLuH@4?|4noImcEj)p%sFIKYe&rk5cXN2l1 zcJwn!x9mRwNB+zn)w=(1f=@Ggu+NClx*4LL`r968-3aF<;xo#~cE6zt)){6@g=^im z$>DmL8SKxHC-{XIYB{j=({Se|{4>&<$|~PjKz>FBr*zHR;Lgp(0yU=A#lsW)5$7gw zg8vC{|KHNO&D(EgQvZZ&i*Rmo&t(D5&Ht?{t){dYGD)+TL-2p5bm!MvH*FXt(9!pb z318Yru|4TnAiSyfqwm|Pvxp=OE3U7$v?k^&|yw428bXI0Nj_RiNFF@+Ul+#gmV*{M*JqAb+@O`akaF_e(&5o%C${VCVDW$&sca&{GehNKqIWB(ZuQ39tCOx4k!hhlgep2_Z$DhM zsfstvNGr<6BR$#nipA(7%UyoW6R)=#IXgf4THbwkdKcOx)c7&b{nRu$@zARQp|xP! z%4zD$+byyIX2H)#rx{htT9rK3o)*VyF_~|-so{SLe>FODabU}dOae&K?D?}BYr;BA z0t#b)UAjX+(eY%%GZF6GbX4bK4o~ob-Ez08tAVs^w+B#;3>w+;5G+A)CSeDIB%H150GJfSO^A$Q z9NK(cb}eLtr#~JhTgW0r<;}j5Oo*ameh#NwTfbp++NR%vSqS77-Mrn$O;FzL*}1Tz zkwPkwV0mt86)#+l|J?A_b>a|KY$@?QN)Xh&_>JRoc4^Fq2E`&ykh(v+bL`uD^jw2g zaaKjiyB|!9?aRhlH;Z3fS+?ln8(DYSEDzju(#$Ot5K{NfhiT3*+H7$d3A^4ZwWZ9* z0`)ANa^+k^#fykUBx%I?8Y;U!VG>TS;;Ew5QWogETrq+Z3yGeiNYT2v1f zI70UsuyH6_MQNe zG~@AJn7Tofo^!y**WfXSC!lq#dW9XA%NXf6a>n)HXxoe?u>ZkbjQPC(^;F`1p;-( zAM_xCdg$1A7-4yuM|v1+d02TFu6XF(K_Gu#c$isi=sPQUdDwV4d6*?)JfgsKkAcm3 zc>%~D@<*G=Ae;#hVD`dw2F#n@QCr?|&E5%6@8opvByykU;y!UYJ{dMX@$+!HZ6>!* z9=C5ggKu%9Z#L8y+U#32?_0X%TgC17QpvB*#xEDkuSMLincTM#>en^z*P-Lv&Fx>_ z?Dr#g^ zu0R7nHwSK{2Yw+Bg3Sklc!I#nL0A$&IJQB!xXQ=CTmhp^yWvt!>EWt$=qhoq(e!)Fm`n-aX>QjM6I@2;@Ky%@A*={934e22e;g`o7CLOEJn*1Wgt0_~v#oy*dE{fp z$bO|rub~LHj7X0Y5xzW;{_i9Fyd$651del~*R0|hZ{UruqK$H+$8Kv^OrY^G1|PSL zCMgSufkeYhFa^A$Q=_8ud18nqV)B$@;9OhAn6j3b3f&kSTS3MI&?8-Mdq!-4yvx)b z&LnSa6a;>efrfJd9X5e=+4dO+b_mNVZmCIl%ql@|)U!btPu!Gp+_Y`nY*gHQS=_?5 z_vU5HXYavmtGMP9;E{w_GZSp{3z)KbxFZRm7!&N?_uySB?7L-8v7*B|w$XZRF?T00 zFewtTc@v3L5=rb5Nuv|V%M(R)1pyB1cmi59&$9_#%ZhI8fNr#!2{eZ?5Mz)nWFayq z5`NwlWONeVKe1Q?g# z0kC81JY0!9+=>LyP5A_-RXjH5aC}gFXb@U@6bQVEdlM9EG#o>p3GN+=G2V%>uuHRw zPOC0UvusVXSxB=R4kXjHETMX4-<>>eg8gWlzzCLLHyH`GUL`2K5X#O3k(~%%^nS)D zZ)_ZtvGhJ8VJ9PrA~S_IbICRozgv3*l&GAEw!VQ@kw;Kqf;|ojNU+7$$$W}Yt7edy zNK_tebRn&}HL-y=t5GGZ*)FTqC+pKWwO!CN>gZUeRWK|eg1+^6?0YnPp=SWv+MEj8 zXf-)nDFf9sLk1^BEE*JLjcZDU83KuuT1ffmle32N{L@bImR-tbX70vt?)pydXUWKw zZ9L-yv|%oE)&$G-46uw)tQk&1)P`SQ`KZaPg& z{yF`EvoQs<`oW*y;ejWDts&9$I~c{{8T2sijBuUI=jDaGBZd6Cg#sswgkE?*JrO97 z0S-68t+;><*$EX;etKLVLROKb5R;{-TC8MWtP)dvS3iL4gkKVQNjF1@I*-pZF9bzB zBXS`ZB_?-np+pWR&!i&PxGmRAztqsT)V!_4-_``&hrQ!P)hFHemrPp>G?94XJ* zEzdbwk;hk2pjuI6Ur`cM0j;PgAE~IY7mR9&s@uh@t4NKtt!zGD*~C}bUQyX}{zM@= z1ZJ7ks#?|Xp|XFZa>%!8prUGQq-p~8qH40OYD%?w+P->Rzxusz^}CAd<&o;u7u6rz zs@GI&KHJx<=mXaO8m=}0))x@wj~dd{wRceLw6tn{L~EnaHHi9a;!KIK_>~Dq??En> zGlv6# zsOOHY=dG;gAFUVIs~0-eaFxH|+T8{*hX(Q32Fc0>>Cpz+y$1PHuWs_cQn>p{(czU+ z>?@VZS9eEWsqMW|Kh^kvzwzPSMs0^io!Cab%0`3HMx(t(lT%G*{7n{jo2(p~Y+{@2 zDw`Zeo1FHVoKH2o@;AHPZT4_z_KI!xQL1eA8*L8QYYsZq62jjScDE(mp(Qf5CAzXD zcC;mKuO;DBYZ8BJ%H7sfht~Ai*38P*tkKq-y;iH+_puUdpTEJ%^SiNN*+xN&i%N)% zIoVd;E?>zn{k`8GE;gwDnb?q2V+h{=gV=zV$_x!rZ*yToZzQ=;I4c~(WW3Pc5;`Lr zf92jj2?fcleDd#!4Q9+xPD7Q)n3LuHQUjWAUClm@(MCqBjJY_Xz>bqguBxNB6H>~y z+vICj1kFhzW1`1K@cXiY%*EOhn(WRvvj1(dAz2EzpYH$~O}=%XS`eS`3ThoLjD*d( za(i(eFYZo!wf*kON_`WhV2#6<_5MS#0ffOY;f&_`M(H}{!ttp4xH$a@8U#$F8m`Bf zbTr(_d2JFsPF#g1dZK$UOnK4#5EE@=fMYv=c0al)h2Vf|C^MRYLTA^LgM?cZC}gg$ ziBE@!(YdFDN^`CIAf|G}@Bato8|n9FbSXWh@IECH zZmf&NUr_#o^1YMVBM^`M)mVpxG}cK%z8dS8<0(2U4vlq<>0ga?xT8mmb>`oUbzt%T zys_>!9mc2jBVvOlt@%%lb-&Z@_y4x??Nu00_{~^{z;^r(D&Np!NU?$97U`+E!3OId zz*yIwT)vnNZ}$uA2?6fs-Xa1-aIxWG<}pBQP=lZaj7Cxcet)7%$P%4h3#8v)`ZbM+ zgd~<#0bs0q&h*Hl^>+E%)1xubpWe^KrBE(;uj8TUXdCE14hg`@aa9#vdqa_cyXgJdaSmi&7v~rAXy_0?$~NMk;M<^h`@Bdnxce?7u(`<9J_HnRre+^jZf?@1VpR2h>a+E6&Q1MvGJVxsXh7kqAfa9vVU%EwpA_xqyaJkzK|eKXSZ8bg+5 zArl}r9L7Y;p70xqs}fOB4;BzoM{i%$4w3Gc)w_m=mT}QIUN?y7*t9BI@Fo2;S_q`? z4hV(3nGK%^Y@9a(D^XCqWPI_guZz+XG;G^7qj$_NI)u7w3?W`l=n1|AJw7^u=Pl4) zEs}`UOLvjE74>&Y2a(~*Ym=1}32mJkuAH8cHRkk6jX8Fii*m>{#OQ=GI+O^_ewMT( z4?O}i$)B^xr57?J#vB6izMX79muz)Ek2uL61WLfx1=N6>NqC@yT0D@rs|Y)oj0i+U zM5R>H?NKFY=vOdQB4k1#iy=rDyU1n2aUK;E-i?99 zO6{!gJaMud=EVsTPatqiiJ}UivKFQx)K~4^Yuf(;O|ld--bPOyVx%fl%M3Q8$D$#U z5wbZ|J!xj_Ao8}a1RdmtPfSCTh<7JqL-;cx*l9CLJI*M9S%}KhZSe^fXf^lLR2~7l z(pAtdRUK#L$F;RcWqR^DudpvD&g|^OQ=aRdECr{H))_{oz^rQBC!gw$~#r=x)U(?yGV@LWk8>Lu0I{adcYcJ3$iI| zxw7&?*7b{vI&4RTsMY8Ragjgd9c9CpSa)B}2Ui@2JKbJm5MJK%6;ylSu+s<9xi!ND zIlT$lrB@*f*F%9iOL7on4&IyGv^>V`a$!cF_V`f}2lAdX_Gcs3Klhyf$L={g(VAy6 zf4Jx9>gj9rg@dBZ?BM1CyEq`bpu!}RntBkajL>(4Z7v+#bD|makp;@N7D*IJoC*F9Bq8G^)-o6gX9=|MMe&jGRvN{s9X634rQW`-tS`~wn)4IMw?o|6(b z50E&@y8w$~%2_hov)3-IA+ihb3Wqz{iL=2tS>HKmLk zZR+6sS+lGMzZa>rQVnuExaZKVT`&1opse}E%jC-C(Md2eyYSVb*uez>gTt3KsRqyk z9wtlOj5de>EQ-dmX}*zzQy#Rl>mO1>^l(3xmoiQt2Vps@zxiCfS-n-o3|iw;zIUp) zDyNw3F(&_;MIxm_T<$#A4^W<(j6Jqw!y)=+Paj#ow z?uV*pQHgmG*Y=Fb!hl(p+1$Y|PA*#l5X!+^r8rsn|? zM_J^f>cY6qb_5yC86a_B%D~BJ-CnXqN#EUbkR*=IqExPq_pWqUHJDcidWK# zD{XHX4mHKJz$2CRH-fpvD=km_J#)rCddb0O{*PV)|IB|wFDW^23RZqT$QuAo!S67q z|Kttsz_D6?#YgywIYWJxg1Q#`HHcVad?au1drm=(&ra0!6vL|?-0g|@{{g4qt+XtT z@_g@UTX^Ykll4LAa6Y_rn9vhhI^3*sP&&->rb$%gJe#*^%1eAk#Aoi5M1wGA6l4U) z9eWPuU_^Z8>}P3zhSmD1Uh>ap{_Qh=K=#*IEfsQ?f}(VpY`r^e!~NwO#d-cem@~fV zC4uv`lLtY>h!H8ABYXrR#dCvSq^%0|5t!4%ya9!^O6wJtr+&MEQvw5bqpK8zr==h} ztWDJlmbtb!UW|W{)|PIlK;6=S%NwNGScmexT6E+`T*AMg<_2<9eeyk)9A zk1uZk=51F-O`&Ztcz!{9DyW}kVz!RPiOHeZ75L1z8kbWvoV}gzs!!VFlIJ%BQv0cu zYz&k#k|QvuMH$c*`GB?SkC+jd)0R>6a7_DY7JHs7;jK%xKFqV1Vzv)H^I6V{sFxXX zPJd?3_#gYs2}r6Q%3}FRNC|mfdpWXe(IC{94dF@{i7y}*XC^)CZT;!;7=A`6`}YBW ze>|7}+dP;5{T=;)FMy<3Z!x_$E0bQb z+6~wXtpfCNS(aS8$?sx>H5pV~LAmxq_Oe@8Dr`mJw2{tM6L-~ZNa)-MK~DBXDjHs#Pg zm$;x)(nW1V?nR>~BcpP%VE{Z>EacqrL92C&`X#IO(P%#xkb_A3lN^NGym5^4W6X=P z*OW}Zp$I{~7&k~2B!XsyBETAP{0xP39WjiiIekMRb5ijaT{_z(EFSg5(S`nX4&ub? zq=%pv#IkhaP=>!x(u-?vWbd5Nn zeFj=q@F?#YTPDX&*}q~<2pH}c{y>>e)+ZaZE3^UztO*dg{c_tUGd=O+)nBa%f>+kR z&WMvikVv)&$L)oQ`4V zbj3ezy}lv1LrxMTg2NLQ%(s#LFi47YXgXMqu4UT)$57s(HNo`ek?Lc{G{r=B&Z8*8 zpIQ@^ZQF!H#gL6688J~qWj}=Sm@>(i&P5AlSHsEy-8>*u4xWR^d~ukAV2&VfVMplZ zfHh&(TK_Ny@nHyXB|OP41_;(mr6zVbhtd8dTD9`U|Kh6cK>2|4e{~Mxm%6#&usCdQ z7vmQw!vE5roP@|h{1HXyqMdayy64FUUO4kdOzL^QKO9AfejE6cFS-~b|Ky7Yf3oq> zKUsWsLYms!08xEBM*>(AM%8F8!*dV?oH2-K|AB7)&!6015DmE1|Ms6e*vPx_?N1I* z42S+jqewd;)eqJL)$!BmrL~8RBG!@Q5;;0yFGk-TM*F3Zp*-MEE|n5EWd597c>9g{ zGqwSb_9F<^_q&%T({R#_HBTpu@9%8Zfbdt>ThIR%!McJPfg=3d1Z#2GUo?vR>7T6d zFa60iP}VN+5)7?CS8BHx57pF7=;5U9gT|!3y0C^T2g@&_y6Z1L+O3s%XT$&AM~nI8 zxo8_{Mo-E0$BlTr*7K^RHZx;yVj`B+Y8;m^N|Ym3@7FmH*CPXmw>U_{+Jn}F+JY`W zdF601S-t~V-Ssy=+V)|5F&KB1x~1y?rZyS$p3vq>Z~aLanxI;x<)^QK!|C{Ma6KS! zDEOe3_ylL9JeX-?+yxz+PUVWmsTBFdvt@eRjYLsr@*DH_yQ&DCo34cU^Jm>q1sF8l zE>HmV0~dRhB7FEakkws3GJlPk1&*ZOX%%BlOMvwI;Ya)Pz+u3UR-D5IJpJzUUh4=$ z2Ladf&(sQ50ZTA}o(E}XGA6w>1k&$rl30guy^VCmw2XuFJJSb;tWHGW5UB1l)J^GN zsYImTwRv>l2Wq$n&{r|L6UqGj?*WEZ!f>mL+A*G z&VOe4WznQ0ir5lVM^tw`NQ`B81&8aI-aJcM>LtL0I8dK^S_vGeqd)px?LAAu@tlYw zCs^g7147frJ{b;kQ)`ThQ* zg)@JdRd>>dI_)+J6Y#Qie94~oL<7q&Qq#WiV7mC33yXp3(ZJz1P1_S-{sNjd_#Ly^ z;qvRBW07{`qdoKh0t}tqQ>a0QaJ?fREuy+>t0VUa^VbaPF%@_Xgm zN6T|}2huEXK@=iD(9mUS*dTKDVi4yjPsmiL7Y$m$yokt6QdH_9VVZjoNxq%nAniv- zSJ&T&@c(lq{^v^k_gwY=#nlzglNpFr`rjMj|K;lX3ta90tgBujvY@xQ@oY#MVs-6W z2Ub_WRd3Nx@u~Sbc|TH4mO0?bxWRcc&3FeqnfGv>3=rWbc@5xdB~TA=waTAcZXhgQ z|NN+b{i9aztpCoBda$}G=2i$L(^`q;bvu3iQUBsfyuI#!a3yADO!-Eo8@c1Jw0U`; ziq-O~tNxHmcYvz}epIrAU{J07+z4}TFJSrl#gBS{4mSb7)siP4a{_R+KT!04DJTDT zepJ(MKk9a;P3OO1`O?#E)jIi_NGQ`~#Or3-Yve*pt$!!}77?nqd-fY|{U^!OWJe4bHaXf-nAR2l8ChBAf9~95Wt+^1}eolrvX$_ z1AFZ~twdHGeRu_;=H=1;o=-Pv3UpnaT6qxAc#*fydS~CLyhMO>c&_S$?evS-iP%4S zhhX)V=)Wz4ciG^=`m{}Ug+C1wSaCrGvUfHY*(lh=cgwq)$a*~c*s1}L4$`Z&<8fbZ z!}Jc7BsS~(#1qKctMNy3x5=r+5@gaR-2rHPqNffAP@%UQtTS~$b=$ap&-X%Ox`O^C zc(#ojsH6_y--sml7x>184Pkfy@3Kj;CO)#)+IG9}i)DP3EsPM5?@Y6tKWY1VY#UB>YrA=A z3<=V~Rp*#ZmHH63Q1XHG&SJHFNU@SXlXKM?oa)Bh*v6(fK;pKdx`Ds90(i9ybZfUM z_{r*VfJ*8Hk~=^pHL?Qn;HX=m6&&!Bqpo$NK?k?Fv@!A*&Rsh8xf^#(`g4ysvXUC8 zK)e=y>?<^$CA?3C-jH3&-V$C(-L_{rq{GHwVX0gC<)q4^%Os^E2xvU1yFa3m8joYZ z2@^k#)s>7j*23fa3dHBSV%s%C_i}h#oQ>gBH{2oH`IJCTJ7gtwR;c~X)lyF7M;{QC z)X?M&yX8uK9{UwP%vA`emdtqXW9w4D-p6ZLs}+G=Z166d`fL2|ZyvF|86CD3RR28Y ziL5}}-?nxQ{JHU3_+MMV{%|C{Ii<^Dk0?nOy`u@oW;s~#nkm^aeSL^QkyzkhsX2Tx1!Oho# z_wu|kZ`}_}!FnZZ+bw({3ou?QrJgr4)m2uIU929=z7X=!PX}(iZWdFC%J+Y7hXCnZ z@9^}oJf&Jt8QIi$F$sRuMSIF6CQJd(wjuV~(3bokjo0^IHX$nzweIpFy;_GLovG(j5gYz*23D1ti@l|OjDJ(k8DUyyP& z;8QFDq@zq@QUI@{#$|pd(PalzAa1p%eXT$YkEK6afyj8a+a0K+#ydfMjb5_H2dF?K zUw^}P`LL3jF;P4U0`XEvrk8ooLI0WGJQEJm(aoh`y2Wi+l*-+aA$wW07g0%#mnrXA zPHqiUAd1T@c-m$5rSh(4$O9FKG7tJP)_hVGJ2DkZ?Fh4Y8=m8slHY0a5y+Kw<5Z{p zcGUe6Fg7K5hasAS=5p4HXO)QqUw`2bu@yucd0zj4E}L)0>#qVbV7z{N_jV|p4a-%~ z<_Ow2lNwP>!CcUKV5c=yy&gn+!VJ+=*G+qOEi9Y3`J z0y0_D?w4F(uT{T|0R<|l^IXsCrlYcL0bZ@u6Q_}0EtQlDh%TFV^7Uun**0e3{E)4N zqetD}`Gp@BzNF>b2E1AYVQKJ6>JxM_fbqJtT}vYh+NO?Q7}+F^^lELeY;uMHUaf6d zN9-`>En?0`;5S1Y9`1#4U-U4YB^9(CSj1KA*XH8+XFI{z?80|(rpl=7x`K?_lfMk< zRFhEk3P!zfFI<%1QCBIgTuc+F&LWgeF6)h#Ext*>{@#0%zRN{dKJj)HEu0N|wg>wK zX756IEd`q)B-md_C z;%cZ9!I$%9wnVAdku=uGWb`y2SHHMplCp^V*aB(u;`B3Ps!x11tBOPpJ2I=T#Hm+A zUTw}S8m@Zq?M+(jaW&8f1UcWTWFuM`acI}1^p&HrVs(tOUA8fu%oc6yf@w<-$F>`# z9ve;})7|#yAa-?y8W~l*%h}ciWe* zQCrs8`I+F}(;B&|ZU2<78d4{h@|++laB^hE{8QqbkZzX*`sID-F>E0Yb>*bs#MkRC ze%+DM#%;o&+^{(px<&E&iltbmpi0(Zrg@c%1AeR!BCLjKRXO`P&&&C*BIw;yxS$-h z6rU4yhR<=O`aA6vpMLZD;@0I*m1kF%>@VG^Y16^x5LRTh6+ex(PCkYUnv7v;0^F^4n@)i&LMW&x&frN9s<3ln8U#NNgrVUK zPIShgcD^;~EQ{gN#{T&ARTorh7u-7M#D^~LU)~u=1U5O^Nhs0F(zL)q${$r(E^fd{_B!s>g`M3;1 z5PNd%pgT56){muLl0r=>nXMcfCVlRu>X2Wx$PcyJ3AV~MwR39H#}alEPsJT~CXK-0 z{^F_KL+miw&wt(X%12Fm`*Wh&8l)xaClfI*vOW(03k6hdS@Ud=>rCp7l$xRjo0H{V zZ&ZZr=|EsQntE4nj$j#yq!O11*}sRLG-%e^5e6qmQW{j z%+%lS+AX|{^XJ}cZwv}0(wJWwaANo*6HgK}JrKx{ap@$`JCUK+2y6DCZBwkG9uY|+6r0_rAT0g%#*lW>} zp;4(r*I1*XvxcH`wxfriMDx?ZDLN&#G0>=(7veFzjWOlhF|{XRU-HCe%*JqQ$2LU8 zwwA@V55rh{4L`uPOE@;1 zfWMOf@sY)4vL{qYB(+N(lQ#8BuYhbIxIo~ArmGJk%uSab>pda_qtO8vT?Y>$m3 z@AK~4iOSQ0m^XD)>>$&1q^f!lr3G8mM6M=!(0vuiqgKr%YKQ|5$tX#Hg33MmOi0u@ zY@=>sYdwe>1H_)G+(n4#uqB@YvB?69~c$l%RhA9vi7@VakBtfEBiK_=Eb z>2by*a?*46sknwKfW(HFS=XhK`jWDwPXS<%t$1JXgbsXp`g#-$=~D%YK;K6l7J)`3 zaAMxj4StHQArTagYRVWC0W^PVKYd8So*Jd49W@)SZ#6U+?_HR~yYPqQiL~OaS0nN$sG64EIcs^hsPB>zkXqfrF+44W8|%#6%broxnYt(hjm zz|5JlFeMN~JyNpP(x(jq9I@}hI%_m_KPh)0D5U2neO0drksdd}7rhB*z6u zVt*(ze`6q872dC+xwJl@?%82H@F2o)1KA&MfCPg)i+E-BUE@}%zXgm1-ng|)Tpx>W z1n-Z>FPRFsp2Ioqc!PC&Ch}1ZPeIHNNbH)2whKp!HBOe;EdfQK70ab7%e#hEFjfa2 zET%JitIhPeduzw2I}eLM>6Lmzok~?hCZ$#Q>%gWUv`d2m?f*Z&TY6L zFc~tn+KvLwUb7Iw`g#-;Hol$r%Wm!##Z?ic*NbHsj{s`R>Rh+LkI zuhmmieDo6H@68JOzHzJZg1bmv((%$}(G-~^U-e_jq{cuj>l+3$8>_lu-5LoNz0!lu+0$tb!wGn(()=J|Md_eYY%=v!hC=2 z7J$V53oyuK%^d!t6jCaCh7LUy^9S8KuQ=co(t?{YV_~Pc>m@qP#@=(y{(?gKh@-Rz zhT*84qlKH8EQl#7pMsU0fF%R;$NxEnRF^E2u{Wfk(2EXEA+=*Sh6Dr4Q-*Y~SZ~y@ zLa55M_cB0#d>p=XngD!xYR!oTmZzIV3YT1b5X)2B113a&yj6Q9-eo4mCE7RHcIz+H zvv1w0=Vi+dfxB@#k+3F%6UtA2?#m8J*Yuj)aLk3SR$@^v5#<6eE@= zdVA#Zbld>BJe6i6m#49`gXKwc=U{o#Iar<&50)qEgXQVD?F2d>usrQ+Jvj%LFe9H5 zS0jo*B@e(LD_fIhEwps9wJ11C+g$ljn zV#JyPpLYVg?5QOZ(GiBm(=$a1LQ9l41JC0}%Ua@p5iSXuckQ*>kIA?#^Px^zMb`K7 z=K%g}-5Uct12_ANb+qvija!5t*F|E}4E)$nB9O<(QfbBlgvS#>?>@O-{n z{N?zlhaT|>5N05>fnN5bkLunO`F;IHuFjAAtd;Mm2+9x?(wI|M>0v;z#=G5*T%`^( z7Y16}G-W?UkL=BIa}`vYcYca%vz-(0d4%4vGJ?N-(Owa6|6g|yRt|5E}%)%LQr0uVS1)53&P7e;RY+jQpsY{PTiMB<_|#Kwh(#-(kJpTx`M%$7@K@Tn~f zSBQofx`yjUgY#J($Z2uc)6ZSc6CUM<;DFFTeW>sMgdYMgC&7eiz$@9Ejn9bqoRTO= zY588p{;f&uxSn^WQlZ}4*5Vh65^D8yhJ_sog89gD5`Ab1QpQG3V%Z}P;W9QVE@`G| zo`#PuS}G)OB@f`ipF5DTBQHOCd)&oJ6koqp@J-*ZIwsc5*r{~i3gMnuI~ zMQOtjx(hK0YXY;WOOr39bX=^)r-|w)ws<3XJIjUcT>Y+2M{cW?kveM_rH&*2+RAiK zJi$uEVL3_svT||q^D#Ckr7p|`hE0+HLM62ca?w7WuI_qltu)~Y9+4ZB8;Rsrf;%A? zK(wt}&QD%*=O8&Nd@gByRD~8NED3ZzZfg>dvEhieOT`ZkW$dq$*g++G%H5JveJP@H zq$IS$x9}C73*Es9nhBS+(uG9aw_|)BsSu+3JW44k<9W0?D>k{3(E$%WO_BI!7`^B5 zHE)f0uo1bA#}lw*LV_nzbb6va>CRlTlbGGyA1c{5Qf1OpaBiOwO-pSWvzuis&3uua z3Tw@@DaxdHVVBp>`y#u1w)I19MK}|p`*bni+VCuo?o*Q{7NGm|Q>DRMn>nESbmF`ZlZncW_M zj1BQm|0-j5q>FI@GWN@+kTZCUf^`hNZdC;-3^MOU#4`~*ct%u4=|{Y>;k};$8C$o; zAoF$H&gZlbA&l~0isM7^IqtXFW6K4$0+ZNnB`L>+@(`vsnRE*2fQ-$UocSgPn8XC9 zn3S3%e>^5LU1YjDCpl2g>6R!&_~PFG$KG52MY*r-`@_&62#BOecZdZDN~tiUf{KJ7 zA>D|SNOun1N_XebDoRKwsDL1ibax2zy=MSLm%7}0t^GXT&wkc_Fu%;}zTVe$p2xAi zB~;akmSz7no+Y)&u1U&%<>i(eo?l!z2K`q=+hXyTc-G%Di6P}Ah#d5xcot%f{g>id zDxRg-hn4Jq`!P9Jt>};4Bn&g25vDFuTUWTCv20Q7w1MXZA@qE!fR?f)fFB~%{#s;s z4BmpZ&ks4rwZ5!#cay2j2jIcG+lLpOQwBxUtRy4&A@h2zkMT?Fso3}2r)?+FZ(Nd+ zXWzP_a`MDuC4bV}Z+l(<8QC1u>LA6VFS~3XpU?Bm>ARznDfa?!pWbkp(f;Z_?NxvQ z?o%F)x9WJt2kuim0rik=hLB5ul3i6xt7uQjewo>5q5NV0@}2WFh)HZarsPG&dM#$n zu}8-~4`S8!=i)sw?YiL90={N*gnoC}0m^f}f zesbRSb;#^WV&#cR+{n%RtlXz@QhnoW4NdiUXV!2Xjym2c+iKT({2=gc)l91F_FI{g ztD(3wGwHjSARm)e$Bi9oHi*a|=4-Lc4pY*~HxIFk<-j0_C}nW|OU@dRrMuU6Df>S+ zX6(p?X922O5REek&;l6G)Xj5Z>S&1ih$I0#Arj)slV$#`1c|E4VHKl>0d~UGq zm`~eo)7gp2V_Bihx;s2tBlvleY232mVMRLO zz?`ygIKJ(4aJg~Q-pc8SqBDt&Gg+iFh2k}07-ABmA#)m2#0P0Yp(66q$v;HDtvCb{8u zoy=XH&zw2AbzgL$f7_LOSybRzR|;q!89)VZMO~upzXle5V^j0$lkGUT%(tk@3#L2s*=xh8wohsIhNBL2#>JeU9f0X#=Cx9m0NSAe zHfx~Kw>*07$zEn`TrgO>X6Y4!Bch*sM`&CP%5VnhwnM?=Kj{YUBtHG|6&DR z{Dkn{m>GK8I!VefT4;Fskl5ME2er*Bd35v1j{iFgNMDKNe3J0%}kbR6e}I|s1vqjh;sUWo6(lTCiaJhJX2P=TLX#vp)uLSE1T3qOc- zB2mP*3qNIZli5ljEzyY74j~tQ5M&ErFD>zP%=Aj-=vWMZ%#a`|@PeXJfygn_mR$fK z0n_b|nUa!00e++4%QO;t@KtrX@@ zT5j=&7C@s6Kmy(~>1y?0T6%jb4=E>EcEsh16lMWr8*AE+JGp=ZPff$5@M~sqz0kzl zRAr2Ppbvqm`$=Xo-vuDsV4O{<;Bn4(J)BuQ61J0{BIIB$Y+*VS==;uq21k942beEF zkv7T=)mMEb)HNMBo|dzloCe+T8z!bqMt@o2E@X8CM1ebq4qh-9v6)bD9F1%gkbTY@ zJ9vlua(N@`Mgy^0`W=$H7hb{5F56rx1Yv&MsE;|m6d?6<#I*Y*yoUI65h^i_W~<-@ z>`oRGYzA6P)E640UQ=WEF38NI=n?)B3#K&q;dBP(g*#pIp=9X}BW2Vkhs6NgciSKCrc5 z1D1k!sq!jH6x02L2xGllx}DTr6R&wjX`JpH8|}nmExF9mYJB&`n$ULpOUB?k!DlFY zTG9nqM2jyGScPoS%vog#S)phJ%xv{n2dv+7_X;LXe>wnyuh$At>IVaxE-WFN=Y+d> zq$D2;;WjX3;Kb{geU;0w0A}%th|K5iMafY29LPn7#bA2UQw&QDum(?o$k33FlDtbD zI#RNWlO3Nc#~{?;W&Wzr*%AT&awbJhvey=P0*W1=>5DUMfRfCwc}m@R@%As2p$FLVi}lFrb8kSbv0-4h?64!l8a{lyq0_n)n9 zJo|Tq2>5@85W&vk-x4AO|3x7J*IyALxO^)_*!mqI!lcih5J8#u24W1#&^ESRn*?aR zKxj05e+-(+s@I1Xzt#meNwR0d#xk=+w`LHbQHpbh`7cNe5!3w=16uF7wJ)?@ zB5Qx)E&JYC*l4(+NnGONto<>FHW>5!ZQEZ~0Us73tba7t6vX6Qd2?m&?wPX!Y}l<3>LCvw|{xO*bEZMlfM=fSq^&={oq-e^4D zlWS`tIl^RXKQvl4w>AA&#-PD3q0z&4&jS)rg`q2a_w%8<=U2cVpaM2i_O}7HZA<>x zU+$j&{>dKx9SV7{aDqtPuj+7Q1 z{^c)1gpTWuo&N|CzHZxin}4}&Grp-xPG<^lTr2hE1euH&V3X8qe5DS2q4mZ@7nZ;I zQii;JylQXTHWyafkB6*oRLiG-9fP_mDZJ-(N7)C~k)hG=%8=?+J#;{jr=Eu{2<;A? zHDfRI3Q-SKeIYZYpf{eIr%7OFr8EJL@?;(*-RWlp%QEyqW|!^6{nR9&G#~~pQ%X9G zp@~$Rm#4Yr{o4gbD9(0K6UmBl);}EN0mcsMa5V7j#zz43$3?1d;k<)OI@8F=gp)tV zvzriC%AsBfU%-sGLHB9GVUgbEasV)A1jf*gvjOuAhiguih7rZy0N{{hWyv8we7ETxI z6Q$mIhok7kSXildwzr|((CR5KUy<*GNBPCxiT79K^RXoj%P-nHtnl_b5y&08g5Jn^ zPV@SX_66&R*I>D)fB_P!aEkZT^?I!MBGFkF%NUx0lMopC855MynA|sFrcou^xDU2% zUgec=BJZBP+x;7DWqaGU?F0Lw3+3m*Rf;puN!yU2QG!Ev&(|=--810f=dX9q&!a51 zz}@pU5Y4Xq{E0iTyhV5a?)kdB%^J9SZh!vc7_^cqu=AJ3AVIYXs)K0+69fiv5CLY0 z7Sx4bOe2WfAK6(0#O<#kkmm61k9?7`If7g3RqU^Cf0B-}hf-K!6{hN4IqG#jR8pnc zAByx0w<^2XABC7l=0T@4KK?R4%-Y@Vmq9JgPq3-&zS&SeTEAa2@C1T|l~^=LFhotWu0n zwQ|qluTBF?ncD6WKSApkKDh9z>T2XtX5I3{DSq44g%JSFAf%P0w;qggmTPTb?A$6k zpl7oCu-qxwL@X+OIyqSssIZ8!B$)JKOi4r=8kzmcCN%0QMutwb5mR|;jB%S+a;#)0Us~LQMC|d$mNg%A zV{Kem^>i7DZcd1L;)G7b<8e++#QBNYeY_p4fM6iyUSai*0+up=&@<^Iw~FK`!-)+= ziimDb3zy-9W`Qc#aHjJxHYqsri-`=g3Se|uS%p<+*p0H@9H1Gb>?A{tVXX6IO zu;*aI;nU1z_G$;y$RQWBPATV=p~tKf*hceJNy{tWbM5x2iCxKKf3)zG<`FTC@)8M|8yE* zzuokp0;sUOQxq7HxF$B2gRHQqJb=G`w6**MH2dx%s^lAfAhU!>VPRS#D=Y-(n}uc0 zw0p_>T|Hi+*G`ey9$>eU6g$KM$q8!@iar;_cqv0NjHM$C;exJ~l+u!X8{LDr{bk4^ zQdq$4PZ*KHl6;p)fvB)#%10n?e{3i1GLb1P<<(3@M1|!Q^7f~Wm-U0&pPBz}aS8v3 zX86NW<|~@vPl}}bXof>enXl6bGKKZG-u@0RWm<;tAAWcHTa*OH4-fVvzT^ffEDyvp z$bZQtRE_EQQeokc43OLWlEUIG6;&q@j%=9u^bKwpsIcI?ujh#$4!kg}NGYM`%23?y z!2_dhV5>kU0*p%3QebT7q5{s~H-K!mr=3x)Sd@Ef;#iPk$1SbKB$;gg%hcygN+EYV z>E*yEEyXmYkn?FMAdr~Aiw>sJs~MC;B}_NS-sY9Ax|!$bLmGPCdj}9^OGq2Y;r71h zRkVEa>7$;ikPW4TnJZ^0A+{(l<;!Pk?fF7RpTt%08p77j17#5tzL@Qg6S8HNRAvNL zS$ns?ahZ9$pH3rK*I>Utjlllrr;(p5Wo%A~pMMLEqJZLZLV3_RfEPv~!Ko&9!~HSwxNBvZB%qg!h5US&X(~+l zonhwJ7pAw!NO|vmANQL`IrUaA)8K$e9Tg_#m}Iy5h)W>0*hxMmb#0W0v()cqY>LL) z;%Oa8sFauV-lniVQHZlEK=g5&AInq%k#Y_~(s#3610n+uXHsHW=!WnJI0*N8+vl?T zuB{0|)PmJEt0P?@x_4_X@jsY^0T(9BR}a-~-N$hQ2cl|rruK%J+M1njfR2D`l0(B%k*PP52SO=1m^V?;NHgh_Ei6F`(!SVNu|wq$f(#KC$A-eigC2|gzZSu|bu zf=q}$ZnZIUkaef?dSBoruyc``;tbm|bmMaRKIlHSe?>kKY8?D74D zX)0^KkJ|}cm3SJ<)2{&5h?%4FeC0SmxFLko@@=vy|lIHLAjNL7-nwlyAzlJcLKk>o2NYz z=*V>yxGg4o(Ku)PPp}!rZ)^e``kYqHuB6wrMG`;?FXxsv3;Op%0$zo@;Wfgn9O7%E=)il z_Yp(j^RGds27}18%!cYY)ja!gsk@_+V8jxIvj>W%x@$#Q$|6E^0^Da@oPbwxH5b^N z^g&=66}Tn~t|^p56BWSsUp-%B_u0^MOB>knemqa{&l*GgWEUBDOeoL!K?y0>UtqJI zHV=8@A^1uWwoYXx`q??s`56xpBQSm#1-UUucZ-(35p(~n(qlYvo2JL?jGN`l(Jlq1 zm+hYxElodGp=AX$x9;Qz1~!kJri^&OrNb5dcIM7mQfsuTSGZVTZw|kKi~7e9`2Uz8 zkR>Y2-}XC0;ABchj=P)+Sg(gQH6Hjd+9rh?WM-U;+cN}CWvS)DSE=?5fnx^4*$1TK z8KV>W_nY&P07f;oSNn#*zui9Y9jM}di+m>S|4l=nmbAsz3dv7m$X)d*LfA z1VT6nPz6H-79e4+dA)aYz-HLLIUuD%i0B34=5SyL1a1!d_JL$2BFztMeiN?$L@$sD z--E8ztFNGnFNVPHr9#7PB;kLIUL1bqleqfXf0YWY`pxP+@a=u)K%XyUfMfcQUAcv5 z9X2n~XvW^m+N*hm$QbIzW7LkpyD(M!*7!0};={gok}hZ_`B`H1)8tFRyzGqJxyC{2 zP45ko(fU+5ADZJ1^j0{dt*SO%UE2<7H%LMYzE12I(X8m#a+?;uAnqs?a~JJccLAmq zx53-#?C6U&1-no*qR=;e=)NQsLHX#Gy)=Wk%vO{=WTrkb+rc~iopq_&1tP?LDrB!a z>kA*48*fVWPHuIR2#3#dx^RG0j+B=%iRA`giWvR!%13}IzP|DwZhix*_|ml+{@ZX- zdkJ6JlFZw!Qwo(^@ACsnvUUHuAy8({V(*n-(SslLx zaf&ZiebKoAoryHR>cYY}Mx3~(Y;1-3bYlT~S6gi5%GBHYK;lxUcwKlIr~Mey>l@V% z-_IbH`@eh-^K3lf#1zpBazmGcK;2O_SfCzYvk4718UTvnMXR7V?9QwcIqbo1)jjNm zk1X~e`BWWiR96LbNKe`btF0$NMYa@2tu9kYj0Q{cc#j74F>W%1+!)jQ6sD+?@hSX{ z)#O(`)mRj_u|iOEn*W$ij9KnlYOJ{e#(=hUp~U!Ot3r>oCw6NW(&F`g@E#6bBG&s_ zvG$vP^vm}!Y|FY?q;d@T9%kpbGKGhX8tlD?fzSS9rEbA#>~qE??K)YU&Ra%6;u2FH z_dsw!aWhhTa*q-jV_3Gd=MtQr0Bi_#c{LzRj)kWp$EEh)!;Kb=hl@Sm@Trg$>!l`^ zy<*SrNQcf{Z{|cs4G;Beqe~(X< zCiy<||A)(c@?LbaUo7`|8A^btK~Rk9CoAj9LG(H6x8x^W-GO4yC8I#;;f57JaFD+v z&iCZp06%$GRbyCQTq$kj?$SD}j=W8%^zdWC^O3s+^upwQiW!H$7LBj|_@ zWe~`Tfy@5n=e6)!6Ob^7ghTzPBVQc|^wdRQM%CDj?LgLX%Y0P{t-vJZ(!355lnEIbO=1l~7j>iBIb)~BEU+fRB#p(Cp z3>F4U=xI^vs?DiW*yBn-PU=Pp1CA_9Db%(M;#1tVZgaKLN!oY zJ9uST!{v_Noa|WJgSj)7J25&&=ewF0;y6>^lkWL>_jk+)kzfBWzNv)&Jf;61drJT3 zMSh#JU*dZRX%JABJ@}@k{@`H#4YuU>cFgw7nRNd*pVEi0B?s}n|ILGW734QXerA3n z@r^7E{P=JDt$-c#x((As6q%&o=V+XGkbEGRxc9Vq-f=%ZRV{VvoN(hkeLLB@J$H4GpSb}&JRuf1EfBVH~jImYdiL)TM+ zu^FCJR40awBs384T4&I})e`A`dNeUx4C~@u6xXyW_=2bNts}!NTeoRWkO;dn%JoOt zlfA&|%yKc6<1p@i{*0o0(f@q&$Wo7JJwsz2lsIb^FFvKWzlrbt zO9yj~9~{gtDjROjrS=paUG7K5_hNyEdE)dz;trYr|BYSzU(f%`s)~HeJv&r`e4A<9 zSfJipVz@&UifffcB%0mzUB0T~kJ?(q|fgX(qe=qD6nZ3;%}p^K8aQssq+#NAnY z0cervYx48HT(}i0?d|CR_pB93+xYS*zrUZjd+LfyEn5WxYLG~1boui5n^$<)$m-N-Fq32sy_HiKRaKei4cpwV7*vd0%8#Mgy) zSs3I+h%O{cr?rPB2a54{-;p z3<-m6;(HkqR15))rm$%iiBQ<9LFy;O|KU;2W=1g!KNc-q(6)u(p7}rpk-K=bCY*iR zM&njSyL8h&ZDZE2O7=j8^jwu5D%fv<93WJ5)5rd%0b-AP_AfokzvTb-ALZ{Ab^kjb z<*;%w0t7TV9?3o1nx{NO+aPO+|BXjEU-jKL3m$we2?%I3q6R5^B=MIu$Un*dzdxPj zZ)TrpJB)agpH{n%v<`|JR|D#XcN!;Ak%>D6SELCTa&4y|sJo|Glcp*E3X-8?;+s!?Hp15NW%?C`tCVcIy zw8JNFmzSw}XUhvH;XYtsv{=LxXVULAR!75b*332Lqy6YM0UTtj|9m{J2K?3`8L8wAkB=`r5h% zoRMe!kR99c4&QSy_5x>*$_I=XzH@ltjUMAMXj{7@FS%t4jD=j(uyJXK=xf}a^pE## zyOdRdS)A?Ww*!r<_{vym&9Oo1xOD7ejl-(59>xh;#@#M8VmxR3%pV4A*LRV?X;45u z*?pY!A2_eJVTC@ZjM$Zrg42kv8B1~#X{oG+b3N#vrB6E2C%C-{aL*185F=|@|D^-O zl^+Zc0QU^Y|9h))qO91{zPpu!LPg{q*ZYdD@~dLMK6YEhu3KW_om(* z**o$d+Dr`ovzfR7r#8KAZ@cuxvN$*t6Da%5w*LkzPmq%r6;GrF7D?owGY(JVpevdv zR=1nuEv&(xSQgWVeK<-R@3@i3MMnBzi0RS$FA@ecS(EGg#Dk z24w$)uK+p%ustA1jMu?n@t<`<4L|1k&CLWH7v%)}D&T}Fa5CA`8K2+R85bPZ88;qh zEd1U^!Hdut|MbZJHOl`FUjc#f`jaESqV4&tuR7yD4i+)VkD!1P%H2!usjpGwM``@^kfc$i@KokqvuTrB% zOXpq2K`aP%=$%oOPYfMd}{yj|=DlFiab3+L3pE2grG z12V4xTML8Ctb+t0M+8~ZIRv!;5hWP2Hbknf0C>~%2Ou5bnp5%-arQ8?!#Oy6Br>Y~ zt?;JrqXhQUntv9p|1aHI2=zeVpSLmoXNQZQ^#q-DvQJ01yH4{XRaa6e2wHp63G`dQ zaBRw@Pu~+Ph@HWz?5@u4)xOWIKjw(EdqnkMq z+N+^AeVL~&t?P33n_rQ^!b0ceSyk!52 z&mN+`94_{#1&vcn9B;t4LE@x#XZpAa#IdfBNP6mUB=$>7d^~#?hV-Xn#m4*-C*%Lz zSb@2da&-U>z)MWUmPo1dho^IeAVg?T)HrINMWkN>+>CTlyEd5wW;|J^p*gkUfLuPmUp+TGT`l8$#-*7rn3hX(q(7ykt{e^f8yGBPsI|WV2WV zBrx=0RV+v*q-X~n#rYJX^SMFF_w18Sj6)i5Ult%6d*dVZm$uBUtv@3hd%b9dKrsPn z&_trg5ilf)reCEgz7`Yy87qD^R@nC>{?TKt7*(J4?aqQj{FY0G=4!hS*@bYmvIG)G zFP=PLbHKn~N8o$nOb(ejDmH_LvMXHOK;HPxOJ1xF50L8lV!%Req!a^vgr#0~=EJO# z#54v7%etf?6C%z(+-Z!~RbCh7XQ4}{Iz^$E-TOxDe%$t*VSG1vplo0*)O>3&7{ExU zG}&>A4tV5SX9N?>KOE|1RoPgt-96rTx1AzxFnF;1?Qtxz9vh+#6D{h5oOz{}0=*D4 z8tk%kcZS{QxDNjA;*#o6uVxCW_c+2t5+IPLX;9qOt`_B~fC8~OsrM6lBh)>Oc?=LJ z8h+ZRI$?~{&edAD#v8oY3}&cV6SyNx&5`xD{9hOt6MCya647qSHgfK=JHbtCpX%Yw zUM(iD$$(qn4EytHz(^ zmgRGGX8-r5DU^O=tk`2hQUz`iGzxBA9CqQ}$?>;=Fkp1_CI!md6DiGl=g3Mb9l1A! zf$~t~McV^8ySTV-3Dk(}<}WWKe?5Bf2j$$M=tcRzgI+xHcc2%yO#dzPqRU@IFEafV z^rGgs=*6kuK`*j8@1YlU5YY?#DWyNaj*<2ikV}l$tH2UtF~G*MlVZ71oU9XwUI4HonbiiQ zuiNe2$zx58cqDrllF5}uBqbWDQbj1?WQ{qZeOlkpD~@Kbtnb__}{u zgH%3rAyLSy6i#Ba63c(%09;4_0`=kO#lxF8@OFSeeaP3n(<;d$(HnTZ>GGKJEDu)) z#!R*xeUr?rMToGA3Rwgvz&$FcL3w3t!;1~*C+@#o4qWPZRYHbhYIFG^t||dT<)=@6 zR_v8{#zvQ`htQAOw+h^CReM3bftLrGsf^mFU$5#YF?B-!oa{#ySsNoVD^Aj)?su`9 z`X~>?ky>S7+vE0A46X%N+H7SBy(BaSD4I>LnJ)zL{N<+tcRyX}5qSj#O0Zro4}*vc z5zt`hfuRQsEd?4Amp4Krn>-jrdnzz4(3f%-P=W?APK+qh!&P&`;p_=-m6htt^3kzh z_-ZL>qtT1;EJZ~~f1nv5g9{jgKvo`pk({RG&6#1oP)zx;*C#Htiigko_7PyuH!6ZO zFqRWEe8;Av$!qX+?i-48=x>>fc3|S0q_{T!BD+~(c;wDD2)!~{0<62jqO0Bc;gav}S_%<`g=0VOMK}B~TUvDQf+Aho22xcV;pM^!Lk2nXS ziwR1X7ixzja~byc+=~!-6m!}4q)bmdJ4yxy2CBk-1~j+Hj^|FgWk@$bUF3bQ34XTO z7M+@Bg2IRY-9)z#swRw z2i{4v1QBWy;zX^JYL<6JhHrU=I373O2=XPV=Nt0ghTJ$I($<)cbl+-;bMz-Cs$AZM zgahu|jC=CjY-K|sQYWKmLs`W1KRL*#O@7q8YA~rSs^pOI)|Upd+kI&o+*~Q8iI%nD3ZEpLOL1~q;o)B)HIQtGTP>_o65}I zUwc%9NZosdSbKmap)s(vihF6mAY$b76dx#N>PGt@1`(Ce%c$V zPYw&i_kKneWfhMBc|2-1;yBx{TTCiwdJ$Ht?>= z`XGyQ>L$Q|4mdxa7~#-AK&@@EHD$voRw0^Kgiv9;owG%{Z~HRm=PFGrK66zWq2rr= zUPQWY_f!}UA84(xorUbI259B&tbN4odAL4Ey7p*)?J*+YAiBDxWVp4r_Lwel*x4Z6 za@eiGTp$2_#s#7p6Vcm*W)4>fp6(77KSf1EHI86|;)tK&&@oz(w9r^nq<>{V+pypV zFSxNt|Hyq?oe_D}$^)4J#TueTW>s%8s$7Ymdpe-Sx|w0cw^29eQBdZY?tYY{n!pqKcc!(W0@wA0hw z(s|B%-XbXfm8M%g7O?gxlnbsJ?Ps|VyQXiU9{cs0(uTvxc0Tpht%{|vLjHDo4c2m( zc8iC8Frb*}UAJl*{I!_*Rww5h_wBhf37PI&d(=hKqE-{T<(R=EX~<$`Awv|xeOq$A zKq(hd%w#^h%J90Wya=E!GRG;?z@1)90Mx}F7c-B)5~Lt(uSk#zIu01uT;-GRnye(z z-~q+VOh&(8pqSZ*!++xs#Z18A@s+x0aP0vbg1Shfc5$D&xSBCl!Tg1~NOg6NJ<=Uf7~Z?o?Bm%J}Oh-yfZh9KRyGj3CC-Onl3^1WoT zHIJ2d`xlfT*B-P>-5!z0X{BPabuK9?d3%i)#^B}X?Hkt$%c%@*<2JV0z3|Ug4dd0^ zzosAt5$%zlzF&fh(xm$Sf^qHQGP@I|^dJ}&m@{Mn6~-N9w6lQwHXvVviUV-pZagQ3Spc!}HJAP526x3UEgnQXv)yYUiB`!r$@p{Tu4&(l^AVC^S!VtJ!M z82`*^flperl$(tZ!Fxd=Eu%~Vn}Jdeg`sKE+FWAgNa~_v{`+>Z>K$w+%64m~I&taboG2 zT1>|Ye|nGFbY8?kVyYPQu(NTuxxi3)ri_^81HT++2(66F1>wr-mCy`9jvPXRhZP^X z@YmILij0zmm^vTG$>qH?hFSo|wRtP-a?IhmvUo~>0nHnnuoU?~3jO1WDCufruvrQI zodJSH-skiF3v8nG@|dQ4_Vf-@E>aieD%F~_IMg&zYj24YJ91%GKO*uFa7P2f^@E#U zmXQW@y`vtceO)*5X(`GC^)iUXS!%anIbcDOp4__F1_WJpG^(S%c-L0W<>W$X|Fuc> z@^X-u+KTbQoeRh7R9ZKSS6`Y7NZ`z4w*Z0+qNksyz*v>%(YdRwyIx(DPvdWYV6r-Y z9DBE3x!K~Aijy+( z;Kcf9C>cR3>bg^;C*F9fte9fY;hYP!1``uXD9$~PWTV(_C3pr<57 zycG+_giM`@9ceTt%Y}2#%xA$&#=uTE%abyXMs5qGlr)6#m@FPuvAMev{Nxh6!!d`t z;do5OJpAyNJQ(!UVGyzURQ~MaT$q z;o5KkoJ8C#LPu;aoL6K#J8@k)!c}_3{Ne`STGQcV5e+nV4WoA@3OXr9=9X0K%H`%J z4H(xTgi;fFx3G9{%m|e92vigaR3QX+`3N*v2((y0+KL_;R_+%Qz&Bt7dg%fN-Iin| zp2muvR_V@`HZtZkItim_vhgIkHl9vnAn+hqtpJ4S>_vg5B6Y-f)GA} zunjLvbMK%??^r#8=nd~UMS}PV?*xc$8|0n228D=dKR0>nD4J%~~GffRs{1B$L8KzDiZuK(E zSS(!AHe4?%+@L(1PdnUjEZm4Z!s0@NrBVbsdW615gjIQj{f7vL&4@S25xPu~PD+s; zwvk>@kzQ9Kwd*5&HY1_rQNb6YE{{fP=|qJ_MMalK#eRswcZ<@Wh)TQ=ovaj{N-iFc zt&?FJo&6y?cQZOaiZ5$YyNEod)HVhd6;na33Zo6K+>8Mh)@0p5b5~=ZvTBln?I};Y z#WP_uW0Ul3=)B(`Fs3<4Yev+Pp;KlZOH3H|aWf8AJN8uo)4lOjVm7SD6SlWLVEbt$ zU*2suT=2f>%}lVUPcV0ZfZtM}L+r_t{*#>xx~=VES4HH&BJq<-YBiGto%Gly&|`Q8 z1OeOxglwQr+MAtqRL?h6$0wP^ZxT>R5>WFK(6SK-oJ|C)CsNrZP$?&X32-r;6Hiej z5k5#*CM2hP6?IPe*abEMj#oDYGKuzgrO28Z9taiGjyn5`H2D{ns`+4Tz&Bv{f1jo5 z-7D&Gp08A0$wjvo$x>DEEySpQv=4@#>T53BlR}@AhAp%PdK_a{Yk{5ae-vTl_>yp@5Br_#+<4*(9@IlVQAPsy(&WMKRDdVSWYj^LJSv_CQ%*l9 z3|&J48jfnt3XK3evFe1~qd1ourL7Y+7H(+uVJyPbgM2(ne&5zN{#e+qyU&Zx3TqmGJ#UjjmRQcPeWk*)grAU7Fu(YT_bZeygb|^S9gs!_OV7i$ymX2V*pUtW*49_g z?SA=L;_@; zFGvh)>8_jfb-JUr8CTCN{VYw+F!Vr_^`dw%k+lbc9W#052GZ8|1q}bAH2GPr+;5&J zG!I!2QfSRLTQAR-HMN=)%E$DFQt{OR?3n&ZUc?in>j&%@-ScJbaEwPfx!Sl1NkW*C z*ORewkYM;fVaMo`hOl-77Z!OjA=oi?=S&HLQV{HzAhC|9o|_@cS0-f;V0e7#G(iLy z{#9-?(Q3MU@y#>NK7bT@HKSRR4f#Z|YRSYq%cd~P_&x`aLaXQ8xLwD8Dkm86L^0H9 z$=nZovETZ@_BBmj!Rmy3qGYRM{?@J(K;3_RqI|zAJ@iDe{*|q79}LeDP=W-*Ge7K` zMX*$l8(G&OSgK_?BbV~*x|;jbQp>6r{PXO!w)!`bni{=F%gqD3TciowJ9)qpMco<$ z_7n?vqNLakq6+{|lwECCdTHQ^5*c=^CLi%ck<@|J(Ev}B`HdmM7~qLArs;j71$d$; zdSN~)Kt54^35JhAK2e&k2Oys)_(=s{!0?DCii6kr=h9=}gW=5r?rW;m6Vw(;x7oB6 zJubRBUeo>nNRyw_np1BVlnRIz7Fm%|7;6-|?al+%=A=PyJsq)hQ@}g^oa~8N;;X$Z z^;DmVZwk*+%LlUKN6S9I-w`Q=PPlYf?Z#x>l9_&{q%7-ub|v6qj=o&iR+oHdiJlJL zj3(uFH{s&y<=8YMzjFequj|j|1<4r0RPz8Sw3Tz(>_qti+poR0?r#iJ2ziPt#Onc^@z_wRB!8-AuWvnQ>( zaa32c5-tk9fc10$8{SY(Dfq0Gs8>hdF<1;AtbW@#?sm zMF8%{hM;=MM);1Yr{U*O?%H4wyH6AW+rqVc9IdtHxgJa7XcG zM--=3!dXWKlxbUCz9#hH*jirQN)2=W4pS3Tlw$iqb!)7+j8UulUdp*BUawJ8=aeV& zmsY5hw$kd#h8u^x0wTqCE{eS74=sARSopenZbx(b-uz>FV;D~m%EISP|82U2Lg zNDl*;htYu)+Jev15_qB z?|3qwL_VKnMW0j~pY%wdOqfr0w@>bdkHJ00+ZevZioT^bzOcqq;ZF&v6e;wd-Yo=y z(IN>s^`_V?Dsa(zbBHizL5e}=1-_0hE5x> z_Rhcj^oee)fD_sQY=l6^m39*i9a(wA0igkV^vORNQZeBg2z!x}>B+O5%ED}D*?$;2%E#n z;A4$$5fE`XDN})n531BlB3TNQ&Che$J!wWhzz{5jn1mUZT5Jr`>sBz~krzkl#OEq$ z?{_taN%4}!ZCMU>x$9CZQdO?b_tzQ1F@@AFuFp2KGtalyRBx{%>_xBFvX$HAXGz}$ zhQfv6U=$W7C$y6{U~EiJvwzSRW9PK@D`{-ceyfv}Q*27|ZWeLSH@VH$!*}?gPo<3e zol7xKr0fLoLM>X|O%nw0KdBtKM<)r8W|!k_8K$owGvu# z#g-~KfFTvI7p2kNRUX01nftjP`*4u$S-_B=DcF&-y6RrKqMqK?_;jXx@goqE$HOV64gQjT%Q)Q>3K6yNw z-~GIT7*eUC1G%<0_J-8KM`(!3qnSL255ZCp?wrVTCh!AXiV(nFblsq|@^@GYKZ_4u z=~7Dcf^fV-4QagcWFZfT57K2=niFqI+{0H0)kF0=Kzls=sW_UOSJMbW1%nWP<@Tg$E%0ef`apj^7P zeu<*kiJuIqX@cub@YfCqdl9flAF^n3rdWxWWn~fl$&kABSkhu8Y3nl`gmCOt5CAwl zO2~=?97eY!arx`>-C{%9i#{jr?a?!FQw3)u93&}j+H=k`@^d2g=r`pVOERYTfg#oI zdc6ELGB)K+m>p&4SMu9Lt(o{SqJKa?kUSF(M$` zKE}hMpiFL`eeVFq^d9HV*hkVEPk z060VpspC=uTR(Cs4uUB+kV7g$DUBFX0~SW#Fd_HoWNpYH^$+%<0-xK6A$0?3FGB3m ze}70ta*exRvWJ(oeB%0cj}EV9`pDBuYue}uZ`BJZx-&~Np0-ia7Pv|Bc)ex($;a~7 zv+b$yS6Byobk5Zg9rZJ!i6_#jI!VUm~x4!F6R9%u3L=EK&RUO-lT?Iu0#j;A{)tN*W;I}MM5i~!gwJ(f!VrqRO%8`f^y+Cf`RJ6n>;;{m_gV z1cC}zaAQBkaCyPxa`Wct+}kp^+^F>34l<2yXWlsAo1r(4yIoJWeO`(g^Tx4~+l6ZZ z7vAN5h8t5I%aI<2TLyKq>v9N9v+acngUuhw54y==xyv@%iH);q}%;lfTZ<23pd=#xSdWdfY@0ulW)7;<-?SXx1C*gKPBu``^Etb zaSCnlC>;bTPoTjdw)1Nqs3IV6JnngjXZHk%mFOP+0;rD#rJpRIk1rqvhFL3Yb!!5A z+bp2E%Rj~pvyTP!34y!3y45Y-z?F4y-v;i&2B^v!GY0zLMm!!0$TNWt+a40oHv!Jz zyN7G$JIIG}6clijJLvcaw=*DH*+D=1$OrO+;5HUie03lEe9siDVEU-w)Cn-x^mv&vVFC8&L4%6n_a^;u;vWDRB=IX?6LoCt zH(+BWpCJ|$TpEX*4W%qHQU*FqHfX3@d8mg{q!)R>z#vBSAX*Rsh$SDFD;^|~0mkRO z7cqzyS{~8g7==F=MY~QEDLRQfJnchNI%|Njl0W)WQVAMRP<}{^L^vDBRB#Nh zj3$yb9$dW{Q$rs6^g`@&rPvp?vGq~0PxWyb-^7^HV540JmqKItlpM~L;#P#mb(hCg zFoA$QdJp;I0r+Ixu+rnf@;JT7$J9Y+GWmE7w;y{3YekKn7AU}zmpCC$u0*M*=XRRA z)C_m-gZ{B0>dg!eupJ@A;?dsgHkdu}^v_P?SLhCm9y^w)NKBGI7M%bO#psMrIJuQT zLy<_wpJ;k7j^Wj@Csv7U6^ZU^5gc2I+!RS?wnVm@E^+ZEp}dUet4O-olO))qUMH6% z#GlM8nk;6QEbuPE!zu}a!z0?0EV7c!S)Y7eIYl9wMBYdBrdxFW5yd6`A&mC3H9kUY}*t$1lmpjvw zJGYg)z;fSU(-kM$BMs(g*^o8Y~d#e?BAj*8OKt5U)&(5oRaOHfQ%KRg}`S|Q- zF)Qz3Z|4)M6p%bDAoD#%n04=1Ou@X6N5OX6D%tTSz?L=A6{phRx5p5U?Wm2^spGREg%+CEd5Z za9kh|KJu&gqk6E0tVes%z+i<#F- zSpu;52H32D;{5XHwI@eIxuACD6M+48psl)ceSQ!S#!+9ZLE3M#?!G>FKkfnY`wRtO z)LL*CI3e+%Fe=VXAPd9PIN*YTct3(fS>oN$NTJJ+VC<^ALLW5zvuR#Ao|GY+v$2J;&giu9qkO4Cz9ZxfY`Mto_t zA42A+p2t3@pN(bc%5^H0{iM~7Wbr8&=*K)#+hg%f-g0pG9*}=i-zW~w1j;U|0CHG5 zC%u3phYPl1-qXE6c-Bq*3X1=ay|WCfI$zuNq6H)+rBfP%MmnTRx}~H`q`SKtX{14N z(IK4*(w))`BE8-PI&xr?zT-@YIJqCj}uxk(RQ)$al1|2vR5Pw;tv%wher_hU)tbq?!~ z*>4Gi{!u@B!!1nv=2z-xq*l=Xa;x23T9I;ihEXoQ9223n4ZAFCON4ZNGJ(_#Rl7N#l#{)gO?!%h(*0{!L9b-lvgs4-4fTxoX1b^3FPI8gIRn6OcXRq2~Dy$ z??(!7oax4X`@JK_uLJV4S+0*9-{i3V2IPM|azIMQWP=0Yz1DssH2J>8Aw{O^2h|gx zNpK)M1iQxi=SPm%T&`m4xZY{7Fplb}eX)%TFl-%*vF2^1@Or+4|Q;A?AQ`?HmkbN`$P{4n-b#1M=%VhF{#T7AEIEm)^qkP>7XFC3ou#avR!h7aC zwOzd&Yhs?9k@5p!pCl6QXG`7PrW4rQPN*8b*IgAxWC)dlH4!(T^3hK3-q5R z4}PD;_4$Y?I2_Gzww4uVezuGETtwo>aI{SDuc2ms#o`)InKlS+Y4z#$aOZS#Tgz(Re3TOydBGoLe+j*sliV(0 zLNJ~Dx)Xj%`&Cw#hXV%W_6$U(T+8a#DLE;jqq8Ky$phSbQs9p=fgr_=l3r0X7T9-f zt@)*r-az%k>z^p;KghWKZE^i!sr%cqx@(K8nY;!rsRgL(7#KtkFkdo;$Le_YON*;I z@?u-GWCp4qwDwe^X)BP9x{qb+R$RUIohJj82KKB=SOz4=Co4}Y`NwF(|lQ#R{5>0osVoZ$2Fkg9d@3!6rM?mkaNkT&%sx*&LweTFJdqUiUnEZfM zQVEv2F=3E5Oo0?Ft000b(Jj27$L{ZQC+_W%$5*3CYTKp0*$M&kf{=88b`43>zAm5D zMgXk0d?{{kt{&N?mf2d?fc7_uOfr$|fiP$-g`dPr>aZMbE7~J0xAdN^&ia zOsi|w&{%xGs_>|ys=-^9#{@bj3u$gdIAWJU`|h0BZn5u!n0v2uJYU$?y{v+QtV>MI_G+wMqgU+TvSD&h&uXeTco}l7#0`{yT zwcTLtlr!znV0_&(tF#fv-Qn%saUM7_rMqL?@;FB|M4@s$%jB^fgnhZ{4jZfNFsRY5 z@I&&Ti^ycqKzY!U7Mwg_^I}r=VzIwT9#nfh9{1ut@w&U@$;;*~sO()t<|G{dP4d8B zX&Te#`^ke0NF8Ng1AE`!nLKzQkLdZcPl*?-KLgd>`(k%cYU=-@(Zw#$g&tCnLP0}mT z^55Ph5rO#h6Abc43Y5!@XL>3N#=b!d4CU)rZ)>Z0$t^s*z-HA2^AU#{T@sbF=ltD3 z{I^X%r_K9$KcFnG#(A?)`Hv*RBNO3ui}HzguzXG__V!;uMufF-+M7OaU^+C5Y=GOH z72qU7gAI#?Pn9ez5BtUE{>3{H;_`$M?1HN(>73E#^BwvI!O2C>^CF53rvXs-kF>o}B;zA|w)Arse7|gx4#@BF zkx9vC@ZJ-S)(J!{8jlHLduuPJo3+ppAA&JR6%p#bpq!~r@@w#Ac-hWaHCz>VyjXRk z?#MX2eYW^8&d3R}aMp~3%mm$h_V9T5uU3bj^AY(ik&V~V{VDT*VOR$95y5DI>mW=uWP14KR$cUy3Sg>mG%g~D0uA2_e zx>cfua+5@u6I0^1(bx*_u(XoM1<1wtDtEXCsPA`s`UaPFBB6C0B;9{bcNj+OWm=X* zwfcCikHzF7j0d~-w#|F1Zi$DTB2gFdgEmN9j|LM9Wc$6V^RkEbn( zX07G|=C-R}ao=gQ9oM;|VLRX@9*R2c-$Y>34pNDCV zGIWnSO~62aE)yo>Pzp{~a(2njHmZoWcq(k$ToaA(w3kH%R8lV-AoLSL7Q|M`i7}y=Y+KgV9zmsMq z9gs>kJpjqZ24qLlc@xx&!3=EoU_*NGw09f}VwInGN79ctlVBmfOZfG$C3(aU9!ykx zJ@_MAFhW3iw0@Y2F^eA@@3hcAqylJ7lVkIKH>ecp@L#fmUa3E`j3 z03|rYh>hO2hgQy{PltBTsJo9Ok1i5gaHZ!lR*!+|(`S%|K`iO~Z6=P7IMehLm<1lz z;7M(J*JNdgb)5Fwnvf(q^y??$cc`#~u|umiO_6$XqGzQB1@c4!SC*;Cj(Bm^jFwrz9wfROrd`unNwQl>6{*7n-t;jVpjA@4J5;Xu;qS#hVZZg*91z5G%tI2E9x8wV{ej~t) zofYxv*#skSEo4^$hjQ*L5T=o{@{Q{V|K#Nv_TzlUmfejrdS?$C!1wvpDtE75FIWpD z-jSruhj;dsk7$SzQZpDX+?NT5zs^fk+0IT~Auf=yE_Me!`ekT2;xp&b$dIVvXP)Uf zve}YvrE2x!m#OvxtK*43kLIxvY~{tJRIi~LJAc4JRHZ|A4s5>sY$K0+~i~S))#N59OYP;lQT9ff-}A9EtV+} zgWA+SFiQ_HXiI6Qv}ChU$rr|CN%BB`>i)JmtcsJxi2gum%$A)2ytCOz2mAa2By;YJ z_(&Ot+IWs0Juz3P*jVgCb0ZKvbHJyNeJ@;vNy=w)7n+HgA5fjG5|hPyi6|F&pz5Er zR|YX9CC?=D?2Hg$77RWx-&`VDSr@O`6@TX1oU3-ZL9i7(${6~RZZ3N15oSqB`s^nU zBZ77ARmX{>i5EU^aYju141HA&G}=os{M!{Br{Apa_{yD>y}12&@N>%h)EBCLo=^t! zC@)^LXq9i%Cgc|%-gD@DZ@n`+!g(9X!mgLKe3$H);Wd}^*@vX7qg-hhiIL(n*ryGj zX1yP8%@qn|yqkSbBFyQeJBxib>*}l6aU?@CcQWTxHfE#bIP)TOCI&B6CG2q;Tkt_r4CuHo|c`bXtqpkj_0}1Q*?hcxHZpIUxSt>UK|FpY`J=Fm0q4$ zUa~7*X3)|HNBU+Frp`W`!;~zdbY;%8v!XX5W?!RDtF@8?qO=ZNFy(dGB@ z#Lv^v-`n2LpUpqG+CLPe>>r-%AF<{K^dhhFu_KB5=W*E|ht{HalCDxWx_HUgdcQKX zo&;>la_)2}LyQLX|6*uuiq~}V)h1Q&ruf7h!WQ6u;vYF48od^}nH%ay6&7$3dW;jc z#};;~eADY&3%fW8yJQQ8R0)T02w$%bgNF|XyHam;hu(&dK%NMPod{ol5K@z)Q1#kt zemsKkG=dm6l9WA?TqSb4nyZKsFN4pLF(-)9F!DZb)I;_tCY2}_hp2AQNw5WkXK`u7 zm0$?lmqwpTw6H_;*hz5m!h;PsrCY};nD%TKr{PCzF^bd?m;o{JdEu%KF$xng+NUu( z-7&hj5&G;A&qQO5jbcp#VxK3(Sk%Or;zpcXMQ~0;aZ!f^`b2+e^tt24d#X49VkJo` zB10DCFI3$$@Bx%AY)v+hloF+9GB{e6+g7XNqqOV#UlnAW3aM=>y zoxU2tP5!_hMbLuZ_#k;aA$hVUd73@gs!VMjSA7wLo3hNFvZ4ZR^rdVhq-@os>`bKW zou(Y%rXI1U9;>9DIHaB>q+ZmdUQMI|&Qc-ora^P0!K$X+a!f-=OyjjDM56Hy{@{tq zk&bIciY}I39-~l3;=cUU1|={({4m(+qxeCV3&%Y)C8&%H>-1cRXOkEY>1t(ZdThx& z9at!>iH*DUij#aUX3oQ}dI=QMRe%r09$1 znS^N8$4akLJ2D^S%LcZ+Ui;{(qnd57L8IlE{bba}m_|!tGW#A>h~-_aOPCmCj+|r# zwfF?%c_>%=9>ERPP!@sgdK-=C!<^*d7cv}@k|3dY|4F`!=kbPcqH<@JVLgJ<`A*JI zR(y7Oghz^p2*~acd~A^8J()iMbzf;;uMELC(+`y?uAmB> zL`Wp5I4cOElxeBuG0cu^?-54!i7<;TBz!H?WgP!*gZJ$u8pC9c5l2z8Qs%waMT9YV zK^sLaPm59%GJQ|87adtieB;&;WIgZ7ZPPGX1m>eLh3qFjTD!|lV)N#sK=H-dO%h@A z4J2L;j8n-i6KeYSH}Fo3rIRI4LM5o2rQjq22TdtfQt92g(!97L{Hez%=cQkg2$W7` zR7qttb!Bu@Wen$K_wmXfa+Wixm9v1H%Gr|2IqJ$EPto3Qk?3~8CKMzQWno7`_us>C3}R9!_P@UK)vB&n2vuOx;i*{s}OM46O91P2XCwf zEHq)b7zR>u)a_eWR@X7MysXQps%y@uYc60+;;65H26QFWcbU}JeK7ing$~e09qg^I z)j`DJB#2By%Ay6FYa@c*q7H$?Q5VD;$}(PpIlog=s8=N@BJTBd^C(6D07Q6w)jSHZ zWn*l3Bf^75aC2fAkM>*}X{5Gcst!dE000hPoi*R0AciwXg%{hy8XahiB}ThAN4Yw0 zs%#;ZKE{r4Z`O>4wF++(1VGNFHNjcE#VvfBTZUp54sAvZe>m7kJx>TkZKaBY-h%*` zm5A3>pcu|W*UF=g0U-IEkx&+zX!}~S7f~Wn5s8W6q*qWz0RS2qL@?fw7^CTvQzJ1s zqN)VxJ{~}n7=F&Z;%ea58Xh7572eFFMXax_tPI77xQ#~w8h*Y8g1GhSev=RY@@f$U zoPC0oMKT|N?NS3sgGRAZ@c?!5?SOe`OS%T@X`1F}Sh>Q=)g(x8Ne0Ykf=owQb%Ljg zgr(-KRlNu1Nx{JgwgUk7ue1@jr=aU(axcZZV=idU+;2tJi%)5{)e^%4wc%lOkcd$M zX?+bLXWOeVBC{y+*@PZ*Ja#4c|5RTJa}e2^m06$U?P%hB3ff2 z)@33-c_Oi4;?>MV%H>2F!DI&4WR}Kcw##I0@??I)WZ}$Y@#SO*!BiR7RE5SA&}FJR zc?$ebSwAz?csbQfFx|p6-KH_!;WFKoJl)eU-8VD+?s9s7VCDnY%&^AHsLRZF^2}tz z%=FC6Ea-A(o?v#7Yj#;OAD`g&`asKw~Jo42%D&Yb;_X39I0+#CnPRhdF#syEwF8r$n zBZv`V?nQFV#U?H<%9KT##znf>MTV=z`-Dpm8(*wAqqb+g^i5n^Dqj-rz=A?oW|>`L zC0v$QTjrQunpTjgp+rCDsD$@+*jWYA)7G)1kM?#K^wmkKz6(;D{iuHRQIl{*n|np) z3JXhY#ZYs_sBy)3b_Ga>XG*wg&b?~Qy&~19{8DQ5g?XK0=!%_Yr3>Mj1NWMyR0b94 znmuUM6`Ldtu zMsV>)9`b6^?3#V!dV%Y*VAn?3>_#oeX1e)inv_Ilabr{CW;XX$%ey7{*|LPt^&Y9! z*v74QDO*0pt^-$F!;O-Wn%m8aGp#40ZT<&%d-p`^X6tBxpx+>winIy3>tS< z&3Be}b`FYnjtF-@y%T4?+F1(S*>l|`&)+>X-{s%g0BG%=yK4BWR7G4JogxXdxI&6@@C=z}s#(`VZ4Dme zyibL4;61fjUA$TLtlDYqSb^~tL{b8WUOZRh2TiA4@<(MO3&nXLWD zOzYEIbCcrgIU_`(dI2~trIK4>N1FG?{}*~S148C%E3hIkv!`G z?@y$Ysvvgv78;3C=GNU!8mKZpxiey3WqgVO?WWG{Zq05Zp`52N0?wMxW{FYln~-Lc zswfyS#|A!F?e5-2*>U4MUwe0syK*?nd5C&YHCrIrkHTLx2W$YHeBQqhasLbnn(OJ* zI={_>Iu?G;W?uLH{U=CE#F|vevD7Orl-@2PPzTEXcq7UrZ(k($e%%pDs2d2dZ;`~J zHU*7}p)K=_-xra9#k*RDS1=HT!g$J{SCQWY_6_C**ge4Q281?FVzW$Y4y32AE%cYs z;Ww+2x?ADPjTu$dEfvTV9>YZM;t)Rf46UDj}1LrU1cn zIUsH*=jivR2qh_Qs{+kt8h!ATcGPQMZqK$SDeY=Dx?Ent;4ANGx7c2$e|kP(x>z3U zGg|rmCnhYP(Bl*I-5$6mUvS>DbhB_o^b(z!|6+-38nV%zY!j7j5K8#0oKxV`5}8h6r;|`Difo9)AmsON*KRLe7=6Gtg7Gk9IlT1 z=?8t%$i`9$ye-3v+Y%32q3=|8J0>0WKKOj}Av?evO}1_oXEG-{gk`D}#KyiE{6gaK zt{#T;_N&A~O0gmQNcNA&Lr-dZqiMr>LpU}DpG<8zMT>J`e;mp)sfT#cCG8Tq+uN(^ z6!lJ#4C&5edN&vrXBV zvU&l`w+03km&?dvQvx^C%CyS@Da8%tZgnPWN1*{J!-Ds+LQDs9mgC$ zRf?VD8@aU5zxBlB0O|xWcChJ&uofTmzH5V0kwZ|MenO@kGfZ7}cvi5x)UlH}^s&7S zZ+ke^HY<2~O;}JmO`1BE-SEsH)`m1yNztF*MWDQh&DsPyELqzKVKb|b5s^XX?`qwD!@Cl3gc2qjFeGIb+0 z@!}pYK(3Ds^oSTF7=;yvL~jP+JZ}bz^R_ra-=tQcZ{SFt56)E>oK-OfEX{N zsJ#TKz{NAvkntiyEL1%)p2con=Yv zR;o_c+QCo@30;Cuxg86#JwY~t?{Oh&p6~-7kVJ$->yeT??rKIed$^cMjL6>2sVEmV zFr`DuTq7!F(9M&2q)HWnB}QCY7@bLnNG01{rjRekn^9i-71d zj4Y(fw-ajG>=Nauhq0MV1`Haay;3Yg3GclPm|h!UukTqWj)B??SSo8I&5=!5dQK7O z>e!{MV~1X?3O?r;sgbe;4khn;KY#p@UD|PUDCKk8bM8+y(yqrtsUT=WUKkD;PpsiI zIHd457=c(4q{HbbK8Au69I}Cm!x`A^hQiFXvZ1!anM5!~B0?N;k+H*B_k@hZ6l&#S zfy1vEeT*dZIi4nt4rjBr8%e#aeVTGSoWlcSEaSr=pMf=!`$WiCE~ZvKn`Iz3mjt?B_qXl zE+!o<2}-rcBX5|TH#JA@DpzXW<}|%D(ZO_L=OSP!x~kp;8A7X3cIlYD38&xE0q+BW zXrtv`T!n*^9CQQLqZK)obealNsg`9d<(O*p#`>IU+GwMdwl9kewGh?o z>|2yZ6R#ksg+)30w`jmU-A7y6x9zH12pjkOgz$CHO>o*M2_FQC_bp(Q+qd80E)7z6 ztcyE_(?Q?3A4E~VgtTg31J7+{gOd zVq1nsVETkLY2rP@aaksTk)AkSRjp>Bja7r0x!u%Meupjajry#`lep23!gjSI1m^9= zQ^Om+cJ&{*c1_ChibDukN^mQFZC| zrIN&FmUp{XEDzTktU}*7F1j)w)NpcJN5(n#6YUmsD>PciI^F$fBWd4;du5qeHNC=m z@340@@I}h!=~cN=c6B#yn+$A?E_x$4WY~WF5)>}rS=QJoiDCT;)QQ{Bcs+?EI!cO~58V{1;E?0%#pAI^u9ObaO zYzTxowlQL|aT#ozRqiNu180wEUv6n)GmdYBf-dW-;2K3Aq!`aw6NuNNxE{zRj*)D} z?wW@b9=v9hgX83h4dGFo$!WR_VPHL5aY@>*;c@l2YCKuI=XTaTsao=!uwlcm>B$tK z+u7LM)#tce_5CKd@YFbZ$Q@45QWM0*Jy1MXC_68tJg*~v6O2uBK0@6|86CWHGlJed ztBqo%a-75RW@P-F>28W;bb5H&`i;ZpJ52YQ$iO@1qFI5r*wd60WRK@sxp6AqKCcCS z2yA@2h=WxBmS`)hSCy~9gqQXKAF&`mzFvLiA>VBNTXJvy^8D(CrDi147OFP>=8d9l z(vo|9+>CuK_p=C5)e9EUc^?S2Mg}%B>9vAbY+6|h5dq$<>{+cG6|J0Yt&fLWxt3eG zhqIxNT6rwMh)ONiMfZ9koeA zx65F(%aXUtF||JxY?qgBSI}!$v}srJZdZ#n}LvRs%Jd)RQE6Bf(pEQk`8*5TY^qAIV;A+iY|JJt%Gx&Qp@*X zeR`4+?-GVhz$vQ`9c-1A*#T3|wFHr*B|9Apc`4qllz)#rFQ%mHQTQd@~ zM~nq;NQbldM6je#sU!pd(qyn7G&c_CLJTh&k3BRYaqA43b3)wM>fN;En`URiS*v#| z)4h3gk|pv;ZsFb{hWMTOK1r86JI6(1VlKL*SPd2e1CGb0hSUh(#U~M{Qk~qEJUBa_Gp<* zD~W-uf&Q%l#1ILjeyJo+Op{vx?P2w?s81=Ua7YLeMf$Paai_S=@ufMOySU?w*aDDPfa4AQSZMa=Y?<~ z_7p#Xb>W4QSGa}vX#ll2-Q~Rml@kgm`M*mk_Up4#626VEZsQ4o9sa8*B*0ALG+K?DsGpTf5T72nGjrz(-@x zk10MbprrS{(9;@IsWtK;R*fM?%&65ZA}5$W&B{Cz07Pk*v_bA#;KIUyL(sBjyD4Y7kc#BE;vJ@xBBAKZI7X^%d}WT>Q636Qvk z4E37P6f>z;&1=Y0QS;B3*g1LNPEAmf)W7Gzz)fzgV{pU!0L2snKUs*G$Bp42h zaN`4EL9m6pW1vyFd&uGXYfB(x>-F-X=wLkKyQ3<6&xoesbgt9a&z<`N&_e-dN3 z7y#z-Ee0xvbcP2ZzRe8}79Y%w48dJ62oJ^H7YPr;grE)&zk?>4B`CaNKM;XN(Y+WY zBMi2@|4hWHykHm}4-+98o*^0inYb!X?%+I@%nF9*1qNP zeG@eLF&$sh0ixL~toRc_BMpuxf3mX1TBqHCZ}$Zq{wtRE_q}@kY^z_9C-47um^8!w zdoAxjPsdjUWCv*<5&O4XSJu!JbRXY{SS4J*Ts{fyyGz%|lR@bhU=eH7Y6zF>CLW7J zCXtnXF<%C4nD4bQZJki?hRe6CfzXZ0Csw8qU7rQS2dCq~l{MQ1@*5E=3q@4+Fec5@ z?jA)jI=ti$J4~1@vVW|s4OaD7{c2_HAq4qPkSB0r1D;^y$t}s;Uqhbs42C*>MTd)h zhy)`~sIIwuzd(nx_2>Nq9S-L5iCv?^b44V7M2E|Sipgw5S)ye6Gu! zf)gkXnmw*%tq&mB6_^*N;;i|cUR5paic~gte)hQufLwBo4!50LZ+6a?@Pu*K9@^@D zJFj8s@x97g>HIRSPIqMWH9GuvBTsNSAN+yJTHOC^Wo@h(8CY^%Sp#$Vx}<<*as6AP z)HM_B@{ASmG}|CZ0Nc>yNj z_Ilo%FGOYYEuIWf1${V)m29?2;S>R*9-V5w)&GW}OT5sb0?$K9lVGIZ6@RXY;ZURV zJTUd1Z!8;!&U)Y1Z}sL_iEeL-WZgAG_xf91SG7CW?1e}qRbRcoglmw~CRD z5}o4gU;t+5Dzz6U=K{Uv=zT$qY$-aY9;+1D*d>IEXU8aWLD6CLjh8=4)BB9T^>RUQ zyA^2>5q7_ zJ(yt+#gTrUqQl#%ML=|iH9$Pl05 zq_3z=t!GfNfuQI-`AB~#@BgHQmSH>eeH1I(XKGVAT3gzt!r~jNu`)%Qu>jKU6P2{f~dE4LHvy210=qIg;DPYUf~vE)ZDN zzisYxJ~fYARoyAMW1Vz9y(U#v+vK;><_>8+P}g| zQNgg%(chW|NZ-1Fr-5nP@Fo7gXc|y@L)R2Yu=#L{w_ISX@uP!b-oq+<#>nu*=`p zwhHP*q|B*y)_xK29!8KA--TmjL&A(;*gV3CZx`b&3J8NSq8@OF+Mnr`tEqRsa1AT{ z0-HH3z?uo?5dg(_u;98&qxqw&!ICIPctSs5i|~Tv!-?=l=NC*D!B&k<{}whA`@_qf z4)_IDnkfKFDxc|&9bmJh&ME9mCdaOTK`ta9C7&huKS=vx1fx}?1KGCp239KmvV*xc!j0HIv#EosQ;WJFbl>=^^h@*$ zY)0iZCx>^acUBC^9Tf)No0mIz3_kUZ>%2vUoYL=gx8yZ!=DOD|+9UT1`zZBOVsTX$ z0glRF>9uDA2Enx}jz=+-_SsdXCyX<*c=j_s%R(I1HVE?c}_8L>0mqZ~Ca5gvIJNY6D= zR!%-B)^UVHZ?qS$QT5&tojvVcprMukX(O^&oQIKLEMZM?#oF-X5O1=4j4j4pa*Uiu z+1AdAQhV?wt)qZ#-W6KHlqlbO+; z15V4V*~L=BEy??dOcJQ*dvO(4X14&s5{oF0J~ls(DdC$H^#mt;o3Vu-(8Xmgaz!k+ zLsEGF$e$q+5?K?Ao)z+(;00h?2;f!amKwgX!g6CHMV}&m>i}trMuXkfqXTax4|=Ps zX4r~EPY7>?rlY?d?GF7gblVy%ehSrg0QEsrOIexnt+KY_l869zlfkf3?(&|EPLaXXmC3hXC&cV{Js>aX#yRLu2J}URC_R%2y&1A13 zJnkl{0Yu0JZz>hy;TSW-Gj;FE`xNj~@MnBe?%{@Fwh`uOwZm0XLN3IY@6Ik)*uEVz zz;R{pf#5fn4vWoy_0mD9_^L6GK#i%84?JejVB~*0W(3f|uV_?*o5*$UnO6k2nXbnS z@Y3Pc9;0rNcbu>y$7!j4Bd(BQN7BTi0k|va>&tdl24DuP>THbW={yHdAa+4>h`yj4Hdk$jfK`|*zj)Wn)??BIydTDl&AIn(%&MLs zNsKgJC}DYR4^#rfL{GH`x$;t&d?FFvcVwv|d>&ycru$yL{E=z*i!oy?oN$PqufuB)-8(lr-PIjh?p90>mOnDNCe`n@Ld?>-Rp*y{es zMBn~Fa$d0gU2)GAaC4{b4>Rqi8Py2={{I{^EUua8{}A{5XU7a*WId_iMFb0yb{f_F z!0`;y8>Zb|#6Zp4nJ|@9-~+*aa3Lw#wYZ1H8X?$x8PjtShmje~w6pKaOxyahbWl-^ z6_~%(rQBZ{zOqPm!?e>81vBly_#Ad3J~?Y;zk2Y}q5I}Q@cl8vo0R+ppEG$7`#00> z`v(Gxbz%TPRtXdzod za~g`w?RwSJKLWw{90tRxXIQb`>bz7mD87SfQ|yf!)Zuz$Z8+fHU1g46earil_5MWb(+Tr&FJ{0zVxuB zAsSn@b(Jy}Zd3DUX45T1#1nozjk0r^3ikdN+q?D;bY|V+KCk-xVU!Ahb)}0%PQnnSvkf>SYLhIz6<1>Vd9bb0%)Me^btkQTz-Xr^ z;|~3VlmJImd8N&hVY+F#q_bf$G4!8|8Iqf-Q`ck0Crtgq&548B|GF{5?pMbQyLX2v z=NGHID76EAQb!qhzejS8Qa9cybzGKoxn(F_H#zq17+80?Z5dWKeTp?vGj+LRFD*}w zTxRzi7WyA3zb~`MZ=w837n}d`l}GW{m4{H7A?}&@H+~j#@p8z0%He{sVy#@~N067| zH!F`jy9$q4e!22E6nKx!_q$de(!W@F@cb()k4&uoa5w$8Sf|h9+@;X$KdAn(l?Oj8 zq_T`w>V$}Fi1j{BLa4|``G{}~H1>!HbQ1O*aFpHEf`2YJ>9{X(= zKUsNPd(M9)tN`}2{2vZ0NIR1Kx2!w_-Qiyc$bdQF86x0WWKiYlwdcG`NRtbE0IAo; z0n=PHRRJ%$wYt+6KMM{; z*^NZdPPa=Gw&2SF`8e779Q zY+C1f3}At+8IP(?2X|gO^k-xyUYlkjQ5Zt$a|T740kkW!gx~>kQ_&-3w$#NgW^y{T zQ|TakK|DZ-l$mTKG$49jK39Xn%uYOd0ey_3gR59X*;@5utsWi_;7;$kIql8M3U4OT zVp9+l#Ztk?3EX3_>%5i-{=&~PCL}d;AwYJHBjP%hH^pS+T{|wg#S6VfVde})4w<{_ z-1G?DY)j`Y?1UdPZ~;XP1CDRmIjbDwRn1l8I#Jk+pBHn+LcH}j^XKG39&#sbK-kAN z-yQnw0s_dKII^kS(r~YO^wYDY5?c1c$T0kL^HA(AfzXFy8o_wM z_@|Ax6w9Ju;9u8|+LLP`Ka8k)tl62UQf7F(7xo(8;Nc595WQvgeIJ$9l$FOl0tF{q#vj#Yr>poU>qgba}Hj49HI=w7Bgf&>R*>~Ive_pmB*J^ zM0)$tf9uMF{&&tIs++p0-*VNyOc3+Gbu{^VoALKHqwC+f&3I5|D*5fv5vXcuOp>W^&P=^1oleY(f&sR{1=nk0B&k-pex09n$AU#TXGAjdw4ux!-;MR>E2lfaw%djkM?0cy&hO8p|d z$tT0dyM!~4CS~&JP4`s>?!vNX#|YAUsw#+r##_pZ^=ak%m&T_Pec64EivB9Y+nBy_ z!yDJn;-ul0%T2@!yK)zsC?JG*>MNu@546I07_#xVQt%Ak(xeOUWZf--`~DseoTJ?^ z;#)=X?)!%@EoS)JJ9_%uRlTdO6GMK|M!(Y)^bCK=gWR5+uDCSRu5XF({G^i?xh&jI zVwn{0nyY60;B&g3%!lgkejV%c6m=$Qfzuvk+khA_SB=5RAzt9DEWY!58shR-s}idm zQ>Ql?;?MP^7>5b1u2j=?sJwoJu9U+!-uSba5{g6m>GW=C#UY47K zh;9OJEGp*)c!ao}6&(8!l^wxa(fcuZ%>~#e0G7l)(D{9%#8em<$F*1qw)! zN`)&5=n<&Rs=SL~Zf&35fH~$en~sVlWm$QW{RQ;or4w#@pUT4}gXyVgm7y^e%aw%+ zbx$|OV@{YWbkk|!4bF!%L4*n%i6eB+DITCU7VG7d=p!mbX$PT)Yga|gZ#$G2kM|4f z-~}nr*?4Wn6>}?~o8@k>u=EnB8G4obZ5KXye6G5|A`E!d00S?UMgW9;S!3G2DKb2daK1%kwCUiJsh397YAWms9S1S+r26zu3B4+?hq1{} zA0H;2_8Cf*Cyw>4u+*Je_FD>PP%M5kLVPE8VME=Nz9#dq7QBRD3Lv^n?-cu*yD-C~ zu=*WKi0UgPhZp@T8h1Fr0Jv*Y`%M+%?|1y)sRZE0M!`R;E&e;-@qb?e=KUD2PL|^= zT-QTi{kNnNV1wzUf=Lm-mr7XrUMk@>7XFey!*@~%E8tWDNpAS+A4?_tuYAYL8h0mb zba1gCz2kY9@O0J&j{J^?p0vVHGI{Q5E+p!Pj8SHYnjsWGgm_u*`49n^atRMI+)xS6 zAI?k3&XcaBQN$Y}cm-}SLYCw!Of{o1n?sRJ-QQHf_KGdbS12?qdM8wYHU>`8F)K7| zDzInZyES7Lx+zF1H`6HBPx`;{k1^3fxuZ;eJC+PI(50qShNMPpTW07&gKo|T2@qVw ziU{|9afYCh<3M;=SQG|r>&D8|MR z+ty{yD1n`_Xh?xCZ0Y}GixM&F`Xl_HN1|}C%D(!Kn%b4$mHph*K1RuD@Z(1q^xZ1N zgsR--^*i3M38wZdAAL=j=!Hn=*Gs@}h95iI7ZrkPMvAY)kN^A~Z`wmp`}?X8|CaEh z`A^^R&!r9%r!H35-q*bQgQ*1O*I_>Oez;IY^{5Ah$GlUrl-vNtCk*p9YJpT z7hgt@zxM#Y*}wQZjPO4fMmSV^_W$)M;lCspDLD8qh7lU%u<&Po5k{~!{TfD)`(79U z^4}Xq_)qKs5F(=E0;>(wjZ3Ut`LNWR@?kV%HKY1?rtQY?;q$%`Y*fW;?Ri=WH10W+9?;|^Qkse_V{R8VrCB7# z=oJyrfNDNG;2yP8|qTlxws#01dVNExwgp|Mgy{F1jV zo*94_PeL5E{D8SMXPeeyss&AL0IP!hmix;i1oYlna4XhK+#JFQ(XAQ+zKveQs47Uk z+rW;2ggxIF;yeql$h&NLX4?U?Rbw!5ndr4pk?X3sR_hg9l@l|g8zR(L8bVqHS&flB zTzz6$ixNkkzNKj-?Sh^Lum$H`iEobZ2-4W=RzmO|pb};g?RpQupc3#jI2N<~8AO-o3@;k5vRvv(7OyHErL4QXQQlkiX0FK{3X$+j^ATK0 zP#+|kCl4kQPm!o8(+@I26~L0=cUSX?U&!uM)*D6V zNW~jR@kWkD^-PM;w@c2O^v6oVTglGFp!BbL``Y{Hmgw;hBt!%sgG44wY(6~A*Qa?LyB@x}IdnL)Tqvnp9x@Oi>XX}-` z)f9qDk? zcN>pa>Ij=oAPX&;AVGDg4s{IevDNTVz1bXiqMI_X&;gr!d}UqxioijFXeGWX4Seb{ zNIvRPKCCd&JOJ&XpeEjn+2s%b8YGSN8}fVqkGHq%igR7Jb%79E3U_x65G+`5cXtZ} zhd>Ac0t9z=cXyY<-QC?iIKiP#kuk>HYpyf*-s^lhKY>=Q(fZq;yI+^+#pp*rYk-p= z|z^m>Yg+Oe)xK553u4#yeH-r>I7GN(8sm1Rez|#-xD< zoDO5WIqk54A9Ozs5#Jq0ojLMK_YusrK)gRCe!8B~sNlFncn;*B86H=2IfhbgYyA!W z`2W`=LE%;jFI*za?W)_hefjtHJJ8GZ)lbmE%d`Oq=I&$OTYx7trXl2Zf*>?A%TE;5 zOlS&8p*Nfp-l%+}Ff@&w2y84qI8UUoVh2KSPUpUqqFL}N16^1^MIR>LO+*oH5x~+H zUk=g0>y`d)VuW1N9K3W?P=KUp^p~_Uz*%KcN5_`V#CP(6RhANg(#hBjGr`h=?KwI~3px zX#N;|bIC(Y2E@P(d}OGJ<}X@wu0^@%#8(bN6Q(q$e@v#R65craka95`Q@W@meW!7} zc=BJ&qPGr%iH#2Njk#M)Uk8T+RKq#UJ5}BV1X0eST_rLeC5rh5{$=!)O&1(MAGN%J zQ*5ir=Tw<#B{^~UvwY-@8!c!#`UC~%DL90esuqqBvF`S|d{p?~oA9HT0J5d^!F%PbS7s3wf?~|jOg;}5 zcaB@JYDU*sk@oLmO)#@aY^Jr$^*3dH$+U92^jz?r5}6uPiMCuO6l;jFQ$%0J8^8}7v}ac@uyCWU-tnOp;;z%Zw1IL4#|g(L6eEP}Om z&+fkQcFu$sV?5cY9-MY)%8ITr8k2dp!f>IEp3Txu6WP6_BfN6z#kcRpb$n;sK6HXN zTOk75?t%KVA+j2r)&$|MB<_g#>j6Fej7!d{_CTP4y|*XTy5cbBXY~z_{2BC9CMj2i zg$+0CgDym^T{i|oIU}G@GM0<#9Lyas+krdA=>+a>!gb5-C|3|sdDvG+c0A4|k&-L_ zg1EB;u;Jj_k5jeyA(3ienU>{AJ#?8CfZ;Mc! zmDV%SsX!{iIgnYzKN43(g|ae6gO7Q+^F>7IliH$0)99!u9idpFvSd;DVwiyPwl7n4 z{%!9bQB8!Ria@uKT*dF_{x@8dy%tn=3^*z89~XSr5x7V~S*s(gYfQG#Bq%pv(l0!= zQcPJ+xE~r5S=fd63=lw@jRSR`w|yosyK|iGhlE@&lTs822s7$OSIvo~j|hjLs%nKV zTfe63B^Y9&m9~bU$YsAzGuv3bL4_5bFW8@CdbyL$z`0~k<5@kD%(0lo6L!qx|E~E|i=O1fyMF!E1Ts>V*XbrvXp8w)Zq4~ue~~NmLwFzEoE|CjkYn(w#Z4v# zaje+$!?uf4PqM;Gs6=grVZ4V6$1@>W#+e(n5wq)XRH(@!5!}%u#r@RB!rvjAEywoI zkCEf)-(mKLs_pC)4lmoe2@_NnHb+L zP?>Ii5pe!Y9+-&(LK8@JKMAN>pyvWzZ^g__;21oU>$sk7lJxOTf?n=W5xa=l)+Vf2 zKoGc|P>ot=T%H!nO6HwnFW-e={>ae)xL)YoUYMF*oZp?X6TR>oy$Bb)hzB(Na@g&H>;W_{epLSzc({3H482pG`3Htj~gc~?R#fp@SpkN&PNc}*I>s$ddH9wr3xr*Zh+;BaO76M`$@Da!YJQwJ{X$B@uqfV#* zd;AFWOc*I3T|JZsOt=Tvx!^h zhi$7!m~mmm(HI)7%#HUMP%8--4G8_EO~fZ@5=+aqtAfFderrWh>++AK5@2qLkt=}`HMhhE0IWR2Y6UCC`2|s zIx&AAI80l(D32;5=Ygo~DRFZ7Ax5lE4vsg??NYiAFKQ!PE{+;7(GrsDNeg7P8Xh16D&u= zi#PrdPk0$;;u3G36mOYC__-;l8=`Xnw4Bjmy90$EgUM9yfX^xUU8 zu%=K|B5%>bFM%CL=kzm4DZjLE#~1M$0Pqlz9NZG=w|J>{Ng3`JNl=0r;A=7nLqt1p zT^M8lb3|5Sgt!DjAFY^DCYlMogm(NP>j9P@atMD5-r=w*O$sI(4BoWQA%f(|94X2s zxa3?i%(_{`UP(${qszgX%7z4D?IUO0YHG*3~ic2T@*k=|rs zBCsg+K|VHCI1Rrzo2R(24s}S9zaW^fC>i%H0$=V!@fUMgTFpE?U$5jq^x9zbfGM}}V(lsE z^K5J=0?d6L$-beA`sniCJTXYil|o*$T1w?tK6;W3IWV8lQkyI?U8}?|D+k4@06(O2 zF)nQA_9DVW&3RH~Me$&Lea;5MZNZkbaxNVBF`cv$N+?5nNzXv7FGNG^iE?(*SR z8H;Y#=|I*~MO71Hk$m%}v9!<`Z60L`FRLP|exl z4s5qh(fbZ{)lS@%&Wfzg11sB|*^L_tLgWcGxRInH zWzZxSII~21PYSUlLY1P5VB*UK2Sm~t4`kVTdEBRRypwkBtCcZjcBqW zV#Qc1=`0Lt?3un_*5YL}Xr_jcs4szLeeai=>nuA|OGudk8B{#4Sw%?0Qtu-eJH%Ht zTt_I?RVua5Gu+*Rn_(R~$R{;Af|d0&LiEJ>coEgRB0Ddu(97C0wE{>Dl_b&7>joQ{ zbO3MF@!X}&CeTrCb ziZE=7ENzNWZt9)Q6f^%c6G(5GMQ)nQW}2;RnjvhOH*K0e8yc5?CTP;?Tx@2uZ`7E6 zQgU@h{&_}AdP0$ZR(18etlq4y|A=PmtVr*yKG=-L|3ialjy->tU3ShqZO#%bM|%$W zv^sZfI`^d&ZB}<1JFbP$Fm3!! za(3bFi|JU4$^XdFq~jN}iL_Gn{*j{*Y2~gi`FvZd{6~()9JI_yvkd%4j<#{V)K#X| zqW6y+jbE~7bw&Q$%EUi%wEe4<1-XLdf639%nAU2jS9kuAqnT!}{?b$4dtUonjy6hu z>b{PHwf^vr9IY*C9m-bmN$(#y8Z!>`+Qx6k4Zt5cngHGACkqlC>rF!2%|(WHxcAen z?vC_fljdD6Bx^J2zCOAp#OtY3>*reu!J9E9V_Tb<1YVh?x@W`Yt69%dc)^;02>y9fdeUjDnK0vK(Kp2DhHt92AF|{fTtU^ zWkfrG*~4IkFL440=3p2yJ04KaT7cD0-FsZfG0>{t7cN*!CoQLi43{fQ6M&nrRh^3A ztf4zp0Edo)V=KVAr!AR0K)Gzr^%PJe+%J7aC>%D1Xg}7;BNoWqMc`GMnI0vOcJv#+ zoScl<@}eaj@|gM|DZJCrLbvWMRT{Yk{=zDgL$An_WsX&-Xui7egG8xQnF+dRZ)q6M!H!dLFW@u#p^rza@U8|j3$ zN~a;87uA598^mXPMQ224;2HS8PIz8hypjKDi`V|YY4N0L@<&s+zaIS$TRf|I8?sJ( zOr1zZp&I?^Vla99L`>_=Ch)bzTWxl}`iDIJ+T!6J^mqNCnR1`C^&wIS+0t56?+z!v zw_0nt#@-*#6alw*u2#WQV6e#8(fC<|uarEo{vVpD49Rpo)dqXN48j4m=7isjHmU11Az zS89n+HBU?fJC;gJ2W2Kt)BpiMEou~gub70BMYoe|U4IB}@u;0Pyx2xvBGX_tUEV!M2aV4`Tc3}68{2=;A8kP4)tsm!kR9q7P4j` zL}#N_Aw-p+c7l!~OSgpz(#smV_7DH9#k2ZVH9%eR&zP59+yV?1Sw5(p`&?pEv0!_A z(y-yraN789G*jC;lca~!mg_mIv(~%4lC!p_o8z-~2-p>y4rm2ROwl8zQ^cF|S>!{NFUwV@-u&mVU;o5%&4gUmTpT{Ic-Nfv-B; zHCVL}A|UJQNlBVCyGd!Tlj~_k38vpOsv0)GXEn{re$VNCKlwdx7{GM1V3J^SvuIvW zcC%#NaB{O8gp72%;y7<}yXw4OcDv?w3p%-7_klkCP{I``)uA@k(5JIQ#?K8f>@!p3knP_adQmv;k` z$ITmPmBCY-nFOq_aet;bhM^ef-Of!%*1iEIvajUvzRAq0u+U|4LXP>sKVx3-6zBGJ z%nQDwr3@x~BlU-78u&^cf1TpIws?Q0IMUje;1-W^qclsZkE{witwje-6<_DEgcW(~(*J4kxJM7^K}FN)57z~P z$p4ExK1!$Xr^WkS^hzH8=^a?)G>WeNN*+(9FaOWv@${MhGkLtJvbHi1Jm$p#w|Lm+ zmEq62CNwgOL;npd@?Tm!xiU*7;py2|@;H{I)u%uFGS0l3zrZ5?d#_-T@-OrE%bWPO zjRSd~?PG>l_ISQ047-;*7RczSi8lZjM$4V3Tvkt9Z<{xsKYj0h9rGrHZu8qIcCg9* zX8s&|>W8Em{blTqQ=9-K=$)AUb>Vucfd)kDC3y5`(6gb@{>Id1sBcJG+_0ki+H%!0!G;X2=8kJlWPYOXYYbd-Uc`>9*J1#Z)!!IM=NO>b? zj)x4K5c|4tTvx()Z)PiIGu?-S|Gwi`U(~)l>Y`HQFf$G z;XhlB0$)m_o22;)7U5hg{W^LK`~{r%f~v0!>m4)#lgHT~II0u$uuR|oARF`ei)LED zxHLCbuUJ`TV-^rfHmF-%|4K78J6<-~zJZ>#Id!_?cK&Wo(TwAL+SK`-<~ClcACvDa zXM{S%(KNc5DPO_Om)h^HMB5JO|)lDZuZN2(psnZbxsIWUP}dC$PA$y`<*3>MMNe>YAvR>FCmLEx?~ zksvi0(^i@J{`pW5=VU4e<#*Bk(vj*ok7a5(p!Cz|v33OE_#pC4<#fxha&g{TRnr^7 zu+|d<3*`CD^uC61+tY}==Cy{_+o(eK24hay_0_Q3PJ)+nWUh^*ktadH}22 zTTj2Ap-)}C+}6W_g>MQ^TLhrH0fn~9gmHl9d(izvMB8=Jsqf*s!0p_4+f4(B&abba z#|_kW&|Sa6%Vi4a=|G|VVSfDOrWy2n9?|}^uK=nJs(86eaB66=vwYbHzvh8kJZ?{D zO-~qSPq;)+gho%Ke{b=yoxO1X)#BZGk>Yxj|I^~pCVJC1dNVF~Gv9f$;QFv}`><>J za60>NC;IR-`tU9I2>faBgt>i1HGRdMeI*lpr5k-^7kuUKd=+v1l)3#>HT~3`{WKH( zv>W|&7yR_^{0wpZjk*0z3h_0RtxOaBEgSu<7yLK8)d1eQ-jssE#}$YB~( ztXX5ZI#hS8ET!K~ZBsLv`LW9UPgwk~=zHg@OY7{vo_yP9Xd5eg*r8P57R(x}w)-Rh zdh!K_MWa)MB5u0m5ndthzhSrhebQh}&G9_aa924)0O|JPEBd}w$4O`%+6xtvIkFLA zdw>R?tC5d(vv80}yn;K;_}eaQ3U3Q@)Z@jkmhKP`iNdRD0``WdJDJa4vo!?`4fh^Fy0fJRWr&5Q-~W3yH&!C^1~%7-0&xK`hQdC zU@X5zhVXQ1MutL9az}UreV{g^tb^kp1viWYxV#m8g`YVUg#UzuBYDA`Bc7BLVMW3YeOam+i?TfhT&lHIL z^iP`m>5Xl9kQGQ>e2^XbS6FnNi7>2&k4b_t0>gVT7^`9X8WzhxC`wwN-tT7yFh3mRCfL4) zMS*IH;)Zl>xANDpNFXiuc;dVn{C8N~=|cHCERrEcyoN;sQiw5$chA?ZbPE3piw36~ zYk%K+|Le*3?B(&if1T;>a^4Q~e79c#dU?7%1OJ;s%7lQG?0~{Q_k?5AK}R3xfH@sQ zM+wb@28Tri?aI%<#!MKlf&W8TB+Erdnk;C>1Bb=SVltHP10uDDl>wh?hykGW+io)a zi$F=)EqCxE=L6lvmo?|?Gi#bZ6gtfj_~hz=Ugn1qwAUx!{#WwL>u&o`SbQB_eF>FB z`=hD32>GA)!l_###&%MJ)6^9hc57BXRRkJ$Xo63FZb{_-1G}A(dBgvz zsZj)6)MNqVjD;y)(f6uc7_Eg~14aL?shMH8*gTNxhM9;1UguH9pW4w|~N7!|>|qYgk0CaQ@HamwlP_ho#%LyHW6N zdwBije`#u<2<|%IYhDmA*8o+_}nke~zuVMmAA?-2FAW8c~ZwDa(Ti z-f~ft-NKfbL17jTmjA?m6#|q!zOe zA;E81cIiHXciZ_TL4S7J_rr!LHHn?3o8N3)MvhIYb%sLsx@fgP2}*Igsmr=b911;S zcAa1K(pu6o8D!Q>ZI#DkeytAE{l^SWmFfx{vV@~Ra0-djtyo0|0>@(ai00^?Em zc@sD+a_En*VDPK-&aP1XcF^LFleQ9@D+a@EFR%{v9(jT)i7U!}zG`Z8EV>Ts-Uhh; z`UAVYv8&8kWi?e<{xJu0R$Bo^-+!W94q2^lD1tq;PkD3?{LldG9{v@)@_F_AMYC!9 z6?Us*2i*vU-G-I9Ts^KsNUWv4kw5n)Sb6s%;EZZfcJ9ynv1oPO~U^%e8+W zwxwRu^rs=f;$v4vZ*BDoqv7bTIPYzHMWdDX(&9Ntjzdvx^TR#tE)55P;;9>xEB_$< z)yon$`dZi|VtVCRj@pN6^u~9eFK$IPK4f?hpjE8>RxguMZ+&<>M{j-1#U0{Kh4weOlC#MvyWQ-TW zoS307sHsYyAR2B$-yAB}4BchPI%kx5X=RF3WCz|*j&iSzD~gHMLDg8e%|<1Tz=l$E zT`+3J7|%mRFNRFGdf}4XNfg^+C(1`F#up-C1`Lvrr1TO+sAsGt)FnQQ5s#JR&I)sc zdA^GHSkH);2hs2}=TCuIW?_WByU3ZJ_!Ya>6hVo4(?9VglunSqHZrJ($wVBAFvIZ@ zPa7SpIxm+g8fi#FN-2+QHxKAGO_ObmpG%nohmSxTA7p&EWy^#R*^@_K{B1c^+5-e% zC>YaMy~7oKa2IL!4WTlfIfQ4j;A42lqPTbRH&;V+wV@pae0$wPD|Fun3$t2x@}gJP zZV5&%h*8TIf{HRq7(JfFXo!``e;)iiz zmS8A#eMA|2oJ2-7BGsh7iA}B-nVd!DT^N&1E-90{JvyZnezX{4PzRMajYh#;**uvh zil3}u5-%%4z6)hZaYYzjxz)ztSzI$l>vG=SQA-dF0yX z*GfzySAhT{WcGrp{a)ogx~*H$ct*p){qI^R(dyBvnP{9mPLLZtsrLE`$f_`LNpfrS zqo+7|UgRg~>Z2a0vcm|*FXg|m(#D6X0K1QwfxeVBJq0_Q{uP#mHqEoWhaX=)TRL^k zv6Fq;QwCm)a$yGJNf8+L@z7*%DoK`b(Ei#&^}Dm27LTcH4Bs~eoeKA?wwtGn_>)vk)5l;(;zY(^kj-vBc>q9@_ z4AoW}e<5q7q!l7nyA0T(q^8hml!us?^gh2);tJ30bm#`cATUqT9J^aMPZs-8KE*+Q za2C$>nCy`Matv~`?-6XTpGB-n^0=s`qMfzV^ zQy`m!q=YU}1xa$FIYpwAigh@XM!56`V556t4EVr&9wdX8$A$Y@I#5c@66|SC>&>*H z*!7dWST>B1N*8;tO2*;TqFzuWnR`FWAx$Y{xlx0PAr`t?OG#L?*1tc{BB<~iErndn z>I7y|lRZ;qs0IOEjdRmbYt{KH(%<0pEsX$Ch!3bzZ6SF9)S{Nhlw4xDRu!8W#zu4? z{c<;RK;K1kswa)ko28feV*gHOZHiXRBVK;61AN*h4djl*6z|)eC^1QV1MvuN{-$sfxJ@!q~jD} zH<}QV=k6~CR^1NukfnP74jrg_-3;sBLOP^II91#SwStaqoP|c3?5i+ZgW23o+M!Oo zh|?Oh1(fwL%<$_hEAV(u{g!z0@$#l~Vvjpq5a8RuE^pmKM)axoN>M+PEtfwrNvO-s zVwGMZm6=QM#>!x0q$xkj^Hk}C-arf@|ZDmr}8Y~kKKhn-XrH2ER4*!`2rs*8h1a^?T^j0IS zY0-{rPOG#&^Y?)*c?|mNCN9YR9K&aGe_YcE)>V5g_tW>H8Fj;iN+s!EHi<;`sI!j6 zXGlI^c~a=YHm2@1W*<<*`>};hwKS1QYv%>uV0X28a%`2ywDne4>@H|Z#VRn`_=Y|s zDfvIsRp>1eZFbD<5oJrsB5e~Z;ng2`@*iQ-ZHy-}!_BfU2*YDB9mdfKpBmYG@_`HX zY4e@;H}54!rjb3&oNL{EMfzjelOauh=%&p!QXuv&Gxzk8F1-qT63 zP8SpG7~(H0tXkifwh6YG>%L>YXoCfPT_TK0Dt~Nr3R{0`?+mG)ea6V*a%hS)d>E6@ z%*LP_pS+JdtB+$@ot>De;*N)7#Z%OaO5U;oHy! z<<7=co=FZeIoMcfjcMVgV4gKp_9S?V@{I$hOanLHaj>b&Y*Da9D@Yk~eixBDEHL9R zCLOPKJ-+a06~>w%XOh0uoYWBPQt_^zg65-QO;$EZ@@uXWgbePycO zTg>P!iz{|Ijr=PLh;206J^HP}FoO%U6k{GWBYNa3 z(j8hH1IMuQyRgf?2MR7ViW8R}heUHL#ipq_{reve(hQgxUlqZA_Uy+Esg+o6Kq}APwB43QQ zo+MzskKTog;na%R1>NC%RRWMjGfAsP3*yCALlQ4&5>XDKOGrgX!=s7O5ex^$E>Fdt z9AKc(#j3l+>2ycRdqoqG#of?`UBShZY{soM#%?ObsU*c46vdlL@!a0Un$oc><0hQY zCfI#Q_>z=h-W2b)7;h~V4_AeY5ft}&*yfTLn3NdYlo-00=sQUtZUK0TzH>ciI-BH#8Hm-<(NCAF)8IT zH;(Q@f^AS_$9+oIVM@d;`^cv0kNQz}p^jkzjy0X}W4DQ%H1 zZ4xhax+rZG1fRa1l)6HfesGw!UzEOWk$!@g{wpbcrz!pFK7AKH<2PN#X;H?VMY zAx}23bT+AFHo0~-y=yi@ayH{bHZy(>El&=UbPkJU4x4rkk82KZat_}^jsSixH%~6V zbgrOfuCR74gJqiRQm*_%?z~a5qIMQ;aISiBt^_bw1AN$)oU6x^dvuUz49xo!oL5mD zrs0(TJ24-5GRs<8)%+;m0l&ZznE%zX;M)VK9kAegae;erzDII_Cr_abeW71)K_Gr% zkaXcM5L~9pLt&&Pnh)OVVVekDhUr7zXX*S@U{QK;QRY#0dy<>c5n;fQa(=QS1ASr< z0xNWMQRPxm7JW(8Ls1=1NxgIlFu6qAvZ$>%O2G&@enVd7uB6Wr{fkSfs%7MmcX8fB zDXI3y{5NG|_+>LZWpl}8v%s>2p)woSvi0J!Ri1KIc5@Z7GFBfhXm8y8V$xsI^d3A| zzPaT`2U%12~mZ}CdOA{d(4Q{jU6Y!Q;k~|Us%ez&I^mtN()iSK|aJ?5pg9mS;3u2>;P6bPIWBe^@ID!)cuOG65g+Yow1dwy^p7@Osa&%So z?oeYU0Z`eih!UYO%L&LG0u(6$iVp+JQ-GDtz^Y|n%_Fe-M{{jRbA3v4i&eADBw15P zom2xFLNzf@H6Z7ZVj&0pp&0dxFTXOPQ0RpmiaoNyRC8TQE3l+>p}BQ!xpf27+`Kj1 zy8YO?OVGBH(zaL9cF^2*dK{Wf&>r94RC13x_lPA-4v0V3L*Dc^-DyegOisALxY|xq zrf(1VKnI6}$u^udwpm}{T3bH+Y$r}?CvHn8acL*%N+;P!C*@NoxvXHL z7=s8EV2vdi#RySpxO|QQ4dxQlN(GBf7Q3E>TPey8dD7z@A0v%!7ln0~C|{3wYL8e; zkK{;?#8Z#-N{=#9uRLL|DqpX9YHubMI&4eF3}j>jeqVENi3wxh=VFG4D~!%!ibG{$ zljxrY#|$V+-yQ_*9Y)II3b8sKNhC$=PbBI-S@)R|4)~6g_*f5krw;gmTGH^UF?27g z_4#nw5uc4wbhIVW-kY z?nRV6buv=h6cX}d-3?{w4!4dB$0Chn5{^{rjHeR3jYMWE|Jf9oOa? zzq1~{F6~vV`SIK`{&GGp$2jqjI)1A=0p~t}fII;+Istz&fw($>KH6EI$$;!IS)iq# z)G+xAi6A(1AmnK>fNx5Gr2W2JR?suE5;8F6tk)}vudL~?#h$At->+g z8Mk`@PPA%{BtfR^RBD& zZeepj`4=p`rn#BO$sI^Th_J$+D3mtw5LRa2Z5HOZ=<)e2&Z|wPq%EeFEoMG1W}htP zt}f;iE#-wR74R>Wq%D<}Emb}*Ri7-?t}fLRE!TxDH@NFTo+uf7n^jJm?cg7Wwi(7u zTdrwc9%x+|T3rD?uM8rujxeo`5v|VgujYhNBWzLNjmE%&CVOLk#_u&}-|EFY8e08%O*b zFsEzEIMXcr)0#^FvNsj252UcuS$GY}^J42nW9y{p>tq63*Cz}=8MkQLh)-;`DA%^= zUbdKtw^;ynI@%45x1{X31Rf6><$+~u=*LHXu z5a&pD74&!I#}=i-sWsYmbjx>@#%8sM_Y4L04D|Q(J@$-k_f!RTO~UtV()Vo3_v{4r z9rX9@!>Luq_N>CW7e_{C8Aq0$_9qDse8)x$z77(Co<=m=4wB1u@=p%J#+D-64)XX9 z!}SlN(+?Bd4kOAB)5Z>?P>y0>4s(f*@&u0Z(~mS!l2@2^I)!#%jkj6Hw(i|YxjnY3 z<+p+9$1QEgZEMFJ>094>0xGnBoxA?(OaC>{_RGcy7rXq|#MrMX;*%MD5-#JDHC9=p zrMbCNmcDd*n9I#A{poFe#oe~WJ^9n4^wVGETYE1*nSD-EP8jCJ&W@SSF3QR8JkIvl z&YoV*PEOAtQO_R*&S4DB;ZW(W$`+OkThHCw6PH)Z(=oEOE}*IwmeTeV+b-1g_Xyi} z6;F3b#&^k3_o)^3zk6Idm0!|DTrz?#nMtk~K&X42trNX^SKJCK#NV#SLls%#R@$mp zuFEO1Y|a+kuV=%qXIii4)2`*muO%xecsT%N0vEnslkFZGw9M;BW5>1n(*_a8heS80 zZCj-BH|FENjZtsR)^DgzZ$2Ary$Qdu0c}is+|H)oI=A1tuHU*voak{&C{j9ly^C6t zCpm%Kx)|Fc8N2&zaCW47_UYr9HE8p2_09wKKEdGT=H-U?k_Ybc)xfli{S%56_l^yl-xywxtH{TqZ3~VlyFkI+lJcGIkGmA8yS?K( ziDgfTtC#Odo+n85UDNj&jh|TFJuiNIrUuy|C-U#=m+w2vKe?f((3jHML|wTFn;k{W z-u@a1&7uQ&DL!tfv|kL_5?|+d96qjtAnb?ZA#|XSu|*}%H-vqWh^Vb`FE&Mku;}z_ z6VbNC!-zgC(VL&ddqz>bO%+X2-j$AL(rfd@Q`wVE=CE1oNmALDPp7ZTdU9bags`a( zMi;eIwV2GVkFJf%l~YckCjGV;yyJg3l@}e2&PXqXE}3uJN38b1aUxi69s{%)zA0O2 zw4CIjlEEomtNVI#>DPQ~HzlcHb7(o;H>zf1Q7B$4Ge1}V6Y52&o^OurvraU99WsB@c$2O@Hf+g`~=}Pi1rYqE8>^aXx+7xt;Oe^bqA zYw?DXOHlb&55R!^pgUSH*o4uG(u+|P?|W#K1gd)~t0eKyC#76e)aG7%${wpRI;cM{;J7}Bhal!GYFnPI)(wb?x&Dgvk zJIMta^kFE#1_9;Dc|SG;bmRMJHZ&+HQok0ALUrB6p*VE|i7Ac+gW==41wB6w?8Q&+ zV(%6W625V2n-{3nFPW9aVJ};xuvhB9x4-4mweKgo9ZChrT8Lz!JPnp19+H14QKV23 zj;5@}FL|$%yg;vC?(5x9Q`N(Uuu!qa&&}eytBqUa53B7w%z4^7gzRms^-G!%1LK%Z z=E+#oDC)PXvtV?Ha%mJNxqX*@qzPmtS_M*gV|~o!i8Vor{qjBMGesCzo%?it69Aev z8<{FPa;#wkTCkbxXab>P{UT7iWc3JQeYhp}l0LPhZF|Uy;p!Ahy1o0J%}t<=UgFGQ zh-<#(>k(fD;kDPL9IkOd1pRrJm7;c(wEbvX_x6wWmZm%#r}P{f;Zm z6Wzc&(x==Es?C!Z-@mTzyMF;lq3{3WY`RYL=@YBT{%9HNxs z^b<$gG`wu_lc8p*t0#fR&1HqA%pS`)`jj!yeYCcYwz|QOfPNglo2ZDN*A#u_$`pF4 ze$D|(!Y?pWz9n$zkrCIQD9N-~WlAO4)LeE<9H#TVJo{t?mMO=-ys51?>?VP{gMqMg z6w*6Dk|<25tm5Ite0%<*~C}brHKUCN0&y_JF zjs`seqXmJ%^8$(#rBH0*oYEWGAXTp+#bcdW^JV$AS;*cnZ#A z)9IHzX8i3z?*%R4sNnFoaaG6_*|BFbVZ-$N9U2tBai~g6UMYvHOpp_x?TC&OsF;ze zMOUyfL(S1iuaG`v zq4;y?qt(tA5=u(QF=#*#x_OW<6r50I69gqCLT@?jg1?ge+~4JyYA~l8Tv!l6q(Y%`UKM)06*~A%>1- z52w0hi3k7$)C^D@QlG0fFV$)HXxv8_|qm*F67AO#e`5JApXX>ygEk`}yH12h}WLXsA-jfZz z-Z-BfeU1u{_4h1;^kOW_LWNvFr{uBfHkC9))b|d9>%iO-K)%5jgy_VR*;-M-Y&C7(nvWdt z6Qfq{R~%D{P!O3zCF&}sR@vhFF|nDll9g{$B+rratEH?U3};m#esc=f&?C!%S?jTx zBK2)r75>%Q8M1-q@6lK+HHvE`L`Tt-BbH|J#D5p5rCF+1Jk0cc8^BSaff$%um}|(d z@^gsZ9>stA#p{rUM}zRwOcyR4gg5IR_LI)%#~VrwCB)hkej76top%J{%#I4#_3DRQ z?d$SkA9IgS)rZ1e9iUY^ zkQYws1}rLf*E2u1R-)MgqX%m_m4LktgJT$yTA|2?TKmwiy4yss_x)n&_R&9DcE~>7 z56HDS#MbEUG6mcZb3vOW8!S!5m46tsAyyUC8&u$ebsh6*yBbnlIgn_V3cC)VsF2LY z9uTh&Q4zMz)mS~+h%WuO*hn_|P-1ZQ09o+a`(xP@=4*xa`&lI zQ%c(D_lzHFC*`+|+wN!ky*eA;IGsCj($539+_uo#oqM^`FCxCXZFs@B3`u~m{~Dh3 zvG=)oIpz6M13vAGk+@EM?Y&9?xg9CBKm7JwyUzLPeyI2H$81B}%@Qrk9(?;r$t`H@ zmc5Df)XjT)`2=^n9|P?yHp6YN+x(u)GVm%T!tGEa<6-`%z)eAh`>EafF(*diS4VQ|vLeXi{!EcYzaHrC_ z{;3n2FoE!jBma(r7o8WswiDkZxUjL4s7HwSx|0~Xiv+Wal(LJAy^Ak$b^z4%KcDC!YwH zY&TbIH+QZGXQ~KqsYvz!KP$Aznhrd@W2YddXrknY=xx?Zk)Cszo(q*8ag!bi%yvm# zQ7K1JY2Th>nV|b&(fA3`Tb&?z-A=hDQF+Q zBk^^o-~GDZ1A5>m=71-qq&0gmzv#e#N}r#}KrAiKu;;*ssDYr|f$_`%&~wp1P>xVPC}u*k zvR1M}7NeMbxJGoi)-5fXy)Oo{FP5<7ieXSubr`4{nF=kF@@ug5dN52Dqitol9cieu zR=Syeq+3+B=T}!=ZKZEdOQGz@fC->5Dn&}H*ms!a4fDv zK3Ft1<3akUX9)j!m_TjCa!ijgQvQWJvEXc!59MkW=Nlh|}fyn%ZFLXOqMOFNLGk1NJ zZ+9kmdZ+J0r}=lMO(>P}Fy;HLTehCM1>ykQagp0CN>!-?c(X&*q4K*u^2fSkQfcxc zy)&|9z%w^7P9~u^laWh4Ww|)+65T1nx)DA#wJge6^>1qUHOhiL$}NWq13zZ{b7fhG zCf;DFs4`82x6B%1slRuf_!z1fCps5TIJc%Ure-r`@NJGpZ_Xl5-Tr<$k6lT~luuY~ z(z2}TbKNAh9s?nf%yH;sMbAizv!p18tkZ9Gl5ZL%Z>AKkRU32FG(U_vyKDFw&!YUE z)pMWnT%Gr#(oFq-0A4_$zlc@TBGSww(So(CW~Iz$)l~!~(_ih?{}yG~i)C0fHN|=r zH#bd9jBQxvj8=A|$e)8&f$hl*jZ&G2&6s%2R6&WCMWdEwiI|MM}1C6rPS%P)UJ(GI*kc^ zrOV2)*s;|KCG|v`C|hNsP86B~Z1j=~NXjN5{#68qfIyq=um|!o)y<9UAm`JePVnr?4V%(%`N}EuP zVzrK!=-ki6T+tN^(B<69-CUQ*+|j+P$px1{YY^Ne2-$_*|BKPwU~CBwxrx=C-QjiJ zNH9UF`&^_43 z@CHsCA>r7XZ>WV5psV9(-}Tq?O$+VUr3Qj)|hyxJri3hS6 znm9j4NMQEcheM0s5e{GtHsK^F0TXIr2?hWcb_pF8;Fj26AJ&H=AOIp}khZa!AYKqC zMh*x5-EBM82`$p=l`*vahoNW$ya`Y<@d`gNS(9~A|Cp@|N!Ti94V$NUiU4S03_Xch z7>MOS71+cZ0)q)jAcEF#;@4@70sCD)24tZC0J^~@DpU>OxCED|uSeEn*EEvYWaGIU zWIlcgLxx!hX;~z$Y=BXlNH?P`jhBPWM}|z zXk!fNktPaz#@~aM=#{34juz;Pu49UZ6&8-@mSky;PFn(qW{(bNoAiewNU9nZ0DY)p zf1u$Q77CO$=)Cj?n*L^ePTPtOU?OI!OiTj=qEmsk>7LGNk!@-eT1B+Q=?4buLLJ=n z`&)#R%U9&)f@)1*I*Do!<-lBHBsk-}0^braUwtSoN3a@8s0_dMpuDV_sIeINjD#U} z;;=!bfnw!NwriE}YvDlZ$xZNn-=(558d>}kR?iYOj*FlJrMvEsD;uhu(pXbNgx47 z$X^7Gw2??`IruSNwG3Bb-c76p|5?x)TlnO3R^5YUzc25MvJs)?fN&CO>IN1xR z$?`_2vmk?tJplkIPiT5(bC-|>Hzx`J(1uGugA`Ge<{)Z^7UBSCgoM5XY>I^wYRxT2 zV4+6jBW4L(P;`HQbCHtYs7Yx44uDMqfJ=|=rWR^{Xd5}0^nkV+1+Mj5pTD*d^_3v? zOeCNHhy@y!157J|E~%GJ0JIQ?`3tr@;(Q6qsjD&FLbgdVs3}^OdlaIx0=EJ zYAZI|_2XE$M9l$2a@dKnhjd_N5`Zu!OPmC-B9KU+NdP}NCC?yg0yv2fXoN-Snvw7z ze_(_FzzmzuNvJ34NQlkY1Vkbrf)BSs)ouw%kfu&<`qpfXTHfhXN`gpczgQk>03ZOJ z34kj(@b@NypNAE-59e**dY15G-mCMaF&aszudk`)P+p1p66v}(mwiBkcy5hF@oS}b z(7ay>ubM$dX&KBdIhhmUD|A`pBBkJ->~<RJ22WH+g{M~nxeMkdhHhj;2`}(5$px5IO7iE;#dzfYV6!--Y z0D|Igf8>uEw+Dze`-lM0B|ty`IRjIC6W}j^q=N&c9IR+jB0+->+h_wJ=itL65`j>> zSaI9Qlm}7T(zeZ|Ka?^B%$&JWu{B)9&3^Ct@}T#Fz|Gz{v`5r9b+wFU527wW}W zB`o?ooA#D~|8KQGXser~gg+3r+6n-$bz9f3+x!7(Q8#O304b1^u)G(5--CcH3O)@$ zXCn}?Kv>#l3xFiAlHj7<3__CQ!3WdGsT+3ePJO72?`&PMFj}?WzS$Zqi@-N+0QCKK zT!iQB+P5R=TrD8HZQNcfDo@?h`9bBAvzj)nHZfO8Zo5WqLfJBBo)PvIZ#s!(Tz~&v zmYD!Bfgl=bmMLe6f)greR&gyMz{RTK$}4y6H?PN5|c;ezWq_+n*SJ&2=e2h|7~fkZ|I+(AebQ40W# z9rRd5|26Kk*-lxVWXnrw!nB!AG=WqmoJz?#C!KZLc_*H7G6j`Bs#$bm00Qh;mQ|7< z@l91IxuJ_JwpgOgKguO0D5bK1;3rgKp@pbF)@XB!HeNAh=_Qm31(9*rfY2sShHkix zrT_>a2?*;6P(l*>kWi{axCtPsMFXk8+%_OA+UTPesmkh3u2y6X2uf6BX%P?dMgU8n zhAO~7yjC{iuV^@Nk)_NYwCqpLS_CUx-$?RZEd>a$?5-7w*rNbxJV*cl`X?m!)E5vi`4?x7$PVKG87>w}0Bb?pO$w;~q1s3eZEYH&{o z@52ZHNCcpyv9=(K60kxO4N*tON{!LD&vCr%(oIJ~tF5>;G%>zzwt06&EwM>cOm_Qi zQ=WkfJ~-ip8~)R3w*D!A6IMC?k1T>#m6d;3X@`>IvrXstLAT9OmE?qiSr$n9czKaO z`v5>R$Rhqv&yc^nShsd{Pa9-p3}qEb0RGfv4FD9z z4q{uk=_O=wtbySAMaBOFdzqdK=2ijOZAZQA*QXAaLpo_Ey+fvdM&|p>dH;Hl|Jv#9 z5ASlA>CkPA_MiYbB{Idao&SO-l-an)fRrJC|1S5x1f6DoZCD+5YS%x)Sg&;K0}W<8 zq#ge3g8*s!3UYiR3*=2n03^^6@UrI+^jR-K|2vKG4zfbRq#*^rAOiY^H$lt@?|?3J zl7CF%K%eBUdH|S11|OJ$7RfLtL9vaR*c6j3lIezr`yv>_D8?~P%1=Pii6xk_4@wn^ z2$>Ur9A4rENkl3Dh+?AvY*C|>4MY;!(8g`j$SpiFB?)QRlhC>(kw_p$8*F%uvVL|j zA_R*Bl6c8&Y%!3nX@hr~Bti;wp|92b%8oZFWdT|eweze_jxuWq)mqiF|1yfDHqevV zL7?TW4GqK%yP#G1B!Y$%>;h(bEKbTy_AiS_f|4M!BqpP0sC~q1UaNYcE`X^tg0Syd zAn=y16nPO{UL=;ya%Mw1l1hCgq>s^D7`GmoM7lX-Wcmm|090v<*X{9>Nvmf>?zy2@ zB*c})S|(_FSfb_>G;D1jY}ndOwn2hrR-~B?nHv%Q z`4E}y0}U!DW<{Y!f?$dzj@p=GB>!ccW)g-G<=Z4mYEjUe2Go?3qUTCkX;YkX3kbx7 znMrz?O%VKap}XiL04Tb&r;Z6Hc+=Z9_EwX>c@-yQJS$q$s#X>8|Ku7ML6lS`SCv>u zZYorX#6e`W7R>w!DsBKk0DOfPv;?3HcO;$U1b_sY0VXsa@<#~ZlF#n-M!&|~UXf4knneJND+QwqnvahwQNoJczwCJo2 zF&ZuaZriEWf+Pgsa-qzi2N#)n5hQ;NtbR)HUeXc~xx7IPXh&*Z458%~mh{JR)mvTP z@&*9HL4s$m``tI0@jS?LZ(T?$B=WWewY^pCfA>;Z3I_&x|7}P@LyFZr5W@vA{iPIS z_bap27FfHX1uu*}?2U>*7%h{rF$uu?yE0+XB}Nu22$iVTB{R9nXEhHZ$-*st>|%3+ zdYr2s7ZbLWWp0GL2qF)1(k~-2%-r&a;%MTMG8RmdRSVj>+{B!|8D}#&wBoCd+Gdg- z1Yyt7&`$1r%D1vPq~&yTtKggxlx)a216i24(A<+br`aMKGN(!WEN3e++9GU_mqZH9 z=_|TP%th(+P4b*)RG+!h6=9A(pt@(EHTowgg>+Xhjp$}6dX2_o7QTKhYE$#%(WNE~ zt1aDCybW4!eH$yZkIiQ%Q@h&Mo)ciM^0;mPgRU0w{|2`o7doq`hI88iSGeNn5u($(=A(@xyyPY~`5G&XDKO)aEL^4vT>oK>T0|{s+u-)3 z$~?$yx17vhPI*uoGV_|F=_l5(1<~^y>OmvLctb~e(S36Cq_bJ4I{|u}g@Tf&+x+U! zf_l`HPUvnOMbNKK7|o&nFQ89d?Lij+2p;rftlN4h#&NWq+C+Dgm>np9B>J@59`=ju z{isCnRwxb`oBBRTp%{eb)< zWgyO-8wZM82S#57hM)+JAPJVB2@b{RbzBy45etIf3BI5LD&GatpP#^0&V^gd?Sr^U z86vIG{{7(2eIL-_9kIRL(y^HVvRUB`{~^enT@eBW6CPo(IN_vuT@fx}-AQ2<4jc1z z;hjaH5l$WfhGFIJ|Ptb+fbxoRK1}U1_c}zg&VRV;h^Ch^2FwSl}m&b z1b$vwF&zvRqLX#gPTUNbUD^G;o?L0!KWKv_yv^JA#h^UJC6-%aX(D17q9=YLD2Ada zg3*vEQIW0S1GW$PjUp>v8_#u`&bi#6$f5><4iVr=30w;Q0pb3&qA&g;Fa~2NG9XSk zU<4i`Aqt~1o?eB~Vl6)7BSzxAeIU6}W4bLPHfEzXZljYGNt~SGnyep*jUP9bBT#Gz zlnFrOvVcp_ zwxmnGWGkK@_od&FiQ_4?-zvhSGAf#i;F2y1fG(`YKGBhOSki9DfmHNM)HnfA0zeZ8 zKoYzLBB=^K>SI3YBvxjnRvO|#9-A?Wl|gQ$KQg3HTngqi$U%Uc060mIO$7mLMI#Wv zF1#KHpqN`CWmyzYHF_Xlnp-D|C13`oV3J-6f}<84CTI+%LhjvFEQNB^INS{%vhNZB>q|D#ogrkN=wX_lsGj!_?`1XzKkAcmea7P?m0!8gYNmf=SCKh7ZA0}=hY&NHJJ|~@&BI+1sL3UB3L8mz~ zMMRwCJ_yvH=u&3#jwI{@BG{2UVq{g=AX8AKXtpPIz9)RfXPl*G=Tv7{cBOm@VE<1)>6t39Mr&UNDz$>nxj8GgX6piy+{ke#uI>%^EvmK}jto|quS#nM3hSkgE4#L9 zQgmwPeQS`q|EA`-Yx2$JB4T2yqUw?EYowxNlm=|=t)#sctieKFn5tk+dgx8MAIBYR z;qaXP{VKY0pt=q##AfWlCTrf*sUS+A#x9wwR&2CR=(JjEUxuv8vg@IGDPp?d%7PK? zNi3O>EdC8E&Jt_P?rgEb>uTC*w9#uq@~l#n>mnj4zeZ!f9w~FODssAN)50pzPVK1H z>T^&hlBwdZQf|}$pR|Mat_Nyd&jP913hj^{?gcIm^o{J&DlO$A?Y~kfzz*z5 z-k#%j|E`5<>BB0l%c?}ehOXz5XlzZa+rBN~j_v8bE_9x4yymLfrXcJN1+)rono{WM z_HO9hF7Tda%X%IQc2V#KAK>z$?p9;#=IHT0Z-xq_rvhT_N-y+o-)cZ=T%oEXCavWX z%F`}qa=t2a;_LW%A4`Uy_wnB2lF|CUU;6H&P>3tbLEl;(#rZm?)q(`p=Bn0i>GcwY z^7d|eZd*KVVDs`{055Ql&Z$@0XZ0c^0}~$s>#39O?%Y=E*KTn9POt|DBi;hA-ZCuT ze(=mDFCO`zPuyJ-#$lb*u*N2?ye_T-H*V(| z|7~CC>*R8;s&4NkPHEFhY34SjPefnoh9Lbu+5MUv{bHX5+AkQ3Q5UywPMRj@W?cV* zE0{Vgw+1iG&foG5ZqDYcR!W`@e{ibU|y8^bKO zW-)F}VknEUHJoznZ1U;EP9>A(@P2FYCZ->U@f+tKUi}HQpoJT}TxKQ|4wl6}BvgCy zpg$zRg9PP4lnA8w1dXLd4=W+gAckf}4+&ZW3Bah#TmvHR#4!WF2}xZ!qXkQi|4BOE ziK9XDy3DiJQL{L0!ypgN+>pQtIodQ=b2!T;0dBLbXoH49Wh6ulTv*FC&=`$|b6U*u z72XC_LDCGXp{}%ZPmnV*|3o;$lVS=n_0FpU+wSSo-X_XbRuq76+CnW<1$P|Kj-0SD`&R_gx6hF+-AExv^{`$S#X%nox48lVN@J;bgd;6Ct9F6&Tl zi`v8h1#p|)$9&O-B==9aHn|M9h+l!bt|#XdB_ zBmhr<4>-iI*n`q-WvD>d=G8{p#alr3@&rJMWEXpM=9~b}r#uL7#6%KAG(2ZTbvW4m zuvmIg294d85;69ifmmZqM@%$LXbhtQLlmI^a|453DWOfvI>L9p3 zw84T~7B)+yZmEt6Y-yBFhhTG$KBR#*aQQ8WIA!R9NOE|LGtz^^fq?@+m2-%Pmq`!V z4`EG5642LM6v>-Y*8z2iyFm|yG{o`@d1H`xjvI7jn>hfWIf{=tjmQv)e>rZzd1Y^9 z2y@&BbJ2$evssLx06eA7`2!;)#?94ZW~LO##DXIL^gq-i*66|}A&RNL&{HUfk3oda zsYW%JXAnk8K}26e=#fXCl5+UbH%+%uonudga~tIL!pM47jf{3Afh{OdMx{*JOuH@o z`XF(K6x2mS(2BtD%RVu?EsRV>l>}=9N_=efZF_sb7{mod|4liQ)U(?{RHDQq8N@<0 z#H+_hw?9b0Sae;4_f4?-z+@G)5RJZs696=VvXcz7CqV!#6S9}cJ_$TeG(xeX&UnuR zwER_!c(+6dRT+)<8lgnRkT)Y_ys0UC!Mi(d*h0Mj3S5jkp<@JEv;oCCe6*XEdn0?p zTLi|pH8%>eeFtq3uk8dwB)XXix`)nXzut_r9uR;4gh2{a%!r_H#frhYO7c$%Ay$X5 zv_(LV3V5+YIMp}U%$(J^yRl?w@CtxnhAF*}kJCp2nHGcb*(Ddmt8DnU0#;UVJ={h5 z3NWD;{puOE6#MDC=nPdG*B!1m^|9#&V#7neA@aSfOFIbb*ePyr? zbs;s3XukdK$1(vAYi){lXu}0^_wO_Cr1Ajjjx6t+eR_z2)-Op5}nfsk~wpv{FKMJmMT z1fhUywrsHpa7&V{oEmRJL?{V_&4LaSax4lF|KrJ&D-(9LwN)P?q7SM1ytxle37%CS zGPES1R)B9Mp$gzw(yPk6T!}bQ7(fzRw^3y_jJl6eiErB=;{;*LAK@gC6xJ=euTg== zkujEtb8>6coR<_{-IyeCNC9du1|D44Buc+w18>f_y7Wh^h=B(eKAd=QkUp*H|TWQ0bj{FE`!(uDlR(6NB~NJJu~)T@XSg=;iVH|E5$#UKs3 z6HWmL_$$%yP)$|U9P6rnD5w zX{Uq&U~MfT1jaX^XQR!FS%^3mGa+w*e0Zd-asmJZhcMdLntm}V+1Q&98VaGxc7hqP zSmY%MB7Ye1Y+h|ZKusSKz#>UAg_;IfXnlxC`d)}m>sX+{Sd&<)dhX}^*4xmeJBn&4ookhrUbC0 zy!t?BViyt9OQVTf;7p^T_yD+tLD4@K34n+G`!68`0dPYh^IVk#fTnJ_Q!!9Uu*4Qg zEa^Q+lOEp^07z?Ps0o*c|GN*wIG6$eg%K0<>BZWgn;b+*cF`xpOTG_({0%44<{Mk~ ztp5D+-RK^}aFdYlI& z>7{`LO_78ow!x6GY!6WxQdAFzr@84NL?Sl4okApaA*$U1feOOZ(w?|P8PZU9D{SFH zKwv*O!H_8^ywFdc*EluaN_%~B6^G#XoasO(NU%}Q8u6G%J?_mB4;dG@&SQ~r{ex>0 zDZqd9!H9{J;2#B9|4@AbK!TC{Ly-V*3n9OiEkFvO4gKO)Cu!u8k#t2DxS0?D#*?q# zAq)h@Q%DhR=AEugqzy4K8(Jo$3(ibPFuSA(gb;HLs!il$0*C}f{FSuW81f<2FhFU9 zNfFEd=a>^YSP~}kuHZzABD!#-iy}FaL@x3n)$}A{I;p^fn6qx$2mn@Q34mHEM0ed> z%x*yTv2@-9mXG5~BTlJ{u(69UneiGxbD6B7VAGWr30qkFflZqo?3Rd0mO^%y5N=MS zl&SIs4=^kd+(Ifqp80 z5bVyT0uqWg|A^y};B2V~3i=L+m`9xFKx7-c1mjl)&7{-pYaW7#R(eKqGmYm zN$iQE%iSlRUGl)nes z=}m(g|6tO}ZomxskE=TC!lmN(LkYP>U%S)R5L~c9h@~G*6`WyI^~$UFEv<$toT?5R z_EQ`d01;@k!8djHI1GBD03Hk;uSUhgh^aA5{W0M&IT*tAB`h5;j5x)z*Rh71@s5M+ zV)PO;dCXf@9I0_@>eUYCYry?3V!XT+S3_4jOM3OK!>gTF z|KkzWtnTe@9jz<%vKerYfwOyu9p7Lt8;_AQ@Ol0VpZ>PzztxtVego|1+1WI~1h(%@ zZp>_PkDJ`(rf(bR_eNN`nT}$;p}FCWD-YjMlS;KSPX8R`DOXvO{l;>qv!e}3Xk#Bp zS#`V-o^XXPTvcn1?@Ey!=a({^;@L4U>>vxeJmZ z(h|L{_{(7)^F|*w$m(9~&Dn}%neQAss;%jh(Ua*X2k5i-=Cr?&E&!_FOSIbB?bkTA z%ug9bB`4?k)v=!SKqs3zfMd7B*{tlaYyIkh6oAH|9BpU^eZPBtHhu~G_9sP2|G*dj zFhq8gqtRHMJR|@?wa6ZL!4H0~K*pkw6Wv&M)BNy_C%nQVM*@XRrlXYGM;mMr$g%uG z8vx}<=4ImfBxL?RDv`W-w85H(^(*Phorvx3^RVCC#~PwPxjtCKP0a~F_Og}dlCA*) zCqAC|#W%jNWt&onzd7RWJwDm1;Ww`~A|d2E`-t|jyF3LT61s!nHICGMJ?%^dwZNv9 z@M9!NkiZf8zRxk`U=2yM;U7>6y90V(nircpB7AC@e{((K_t|&M!3s1&G z62uH+0!pqdJ_O~${9$J(=m`Na5Csq2IOqY{t*z`x5EIUZ4n|)BDH68jk^X@&PUAmz zCnrSC3kOd4h9`tn&<&H0L27{_+^`@@D<|gSJ~E0SfTSmcqBC4ZA`nm!X|WcA&EaHg z`Iyl8&dV0}sE@#d?=(z3O35EiZW4%bM5s?rmPZ-4Fbn;`5%i>U|Bl5UJ|f@D1FJw$ z^Q5Kz{>}}fNB{r|f<6K^@(zFggnp!P7JacD-I2@~@7)|Q(HKk7AnP9AkDZUShghrb|DQCf+a}6AEj$0$}0eDLApq={zz~n+#m)2rRh|OtjY_Bv_T>) z;Xd4DAdmuT3P2as1T4&ED@JmCZjS_`0%}MoA8E2C3yteW!t0h0?BdH#8qg*QtC${Q z03X6c%!BWCp@;rK4e_r;{y`#|(hba`nv6ts5+uQ7D0R|fqkc~zq>-3ZY9b^FTJ|R% zzcQl);8AWO2?C(UfbuQj(#H%>9uaNb>=C}APy*>PF40TU|749p0;D{MZas=L@$xc7)yT5$ zF3TqEL1h!lwDZcYQ$l6*M}bs3a8jj+4D8r*?1EHpoQ=b%O{dhOK7z$Qq;&1tE+Mqx zNoh1atRWl7D(fXhIK!??Eo@BXZM14Z>0X0D(Zd#MK@w^q^9rsK z>U2-%Q$T8APeDysw4oYe;ZC(v(%3Xn!xTd!;t)6VCl%E@7(^H^i@@lp7KAQ6w4oMq z@=cAg8t61sZ^{@sRi)n4L1_LVKl?m#w2 z;QS$2C1FaXv=Xx6rt|?+gM?SL!ReeeNVI`~|0FarYqeS_bV$?lQO~m%t<^Yg6v zAO4i|q|F*@0jV~XKBUwdRJBR7;avYgTn+U}vC`nQjX%G&TlLj91$0c#bO{j=LHBjT z5+WNo?MO^;Rwmx`UG398-jxPIKyAVO9WmmM&}|8|Y0W&vn~YHD6UW zY1?r{@3BR34n~#MR_-Gf&?aHK^i4CB^I{oZFDG|6qOYScs1|l=YtdsqH8f>7p72sXktJr_>`7 z9+oonmSW+f7Npf-{}g^@!ge>wAF?48*>-o)H-WVdZUaX>-|Kg4HAcbXG{*!={R`SA zX=bU^f{{$h7|h`C6+abtgcGn||6Sx?=O|zukA%UkQk_grNwi@bR693yZ*`Z2ad_|; zl}I&IcvCiqY3$xYbcknjKdclRj~0lP`0AMUv78o7B~XGDxL3Ax^Zwvtc#(g7>Y!Aook_PL2nR!9px#!8niUta9=3a?5w| z`q**>d5RBpi(wewZa9(kc##!uheZ=*8M%dxmWYYCVJ*3c^(~S$ncT>i$YizMHW}l( zIJB}D%a8)Vfar#86l6IBaD)SdLpheuZCi8lIgAaGkCcS1n85mW+Gchls4Y5o6QGQw zBJ3`NkRk;hnWxmAxZjzKIWr`otlkE!KCM^Ma;MDNpx z{fw@LWRNHC8`0RFC3;ty_>P|VF1;$Eb2xG!Om=qRANuq>*n=}{K^JVsb~qym+8_n9 z(H}?yqzNf&gvAXDc$%K%A^cI~)D8^aCxMi1NBpBcGUTJ7Ee%lMc1C1^z%WSkkN;L;6rbft zRDw+=A`-Cae?o<={{cV+tl|7_2%sR*Grbx*7vz7m$i@%_B(wU=mQT z83$w~V!D`e$g5MsP$jPy+=e0SWe@yNv<_T)V+<&~1tuA)v+ySY#65 z>1A{qzD4{y{}}j|eHem)_*U!BSgLU!0%VEIqjo}PAf$Ax;bT$cm?n-X62Q9|{b3w! z!MhzJyhDVE0ALR8#6LhKjqo@c>5f)MJj#!wnxo^IQ#hMBcblKcZjI&SvN0hBX(%kw zve7^Vc7gP+g>u@^z|(o1Q*Ilgvy?!f0Bj)%>gvJ$p%y?Y_*~l!bb%_ICSOwE%t-=D zh@2vv=$Wl&M2u-dh*CX}ph6&h*t08;n>JRT79Z=I zkQwY*|L+B+vk}_;EVBw6caWu=HD|vr(6W5)XE-frNFsQi&e3P4V>FZ4(cL(pdeTvx zs#*9w^~~DZ&VuQERDDTxKFmw+ZkKNduI?_&$7HB_Gu;VZI11ZLtsJq99mPXoVT;!L7um`?vYPimQRzChxn2a+WoQ(fkXb~4Zc;7 z{gcmkWL;j=YP686GeG!r<2l3yg6eLp?;OZ8L0m_F=_-Jz>I@vzz59GagObl<*rh7}oP#XjzfL(;Vs7fl}J z|BqW6^g$b_8^8ki47K=sEm`gfAG{d8E^iKsGy03II7ifX<0masIV<7=lk;fzW*1Y# ztHFM~+~Oy+@Il{guvldTwD#>93BH~OTMF0_GJ2Q?O|K~Di9RxNF{ zBGsyuO_G3r|Mb;b$nc-PNZGU{^!HDILt6_w?(3K_B*>8>1(-aEGNsCuEL*yK{|Pgu z%$YQ6+PsM~r_P-`d;0tdG^o&_M1^iUdDLW50Y`0V+XmI&(Wy+UQdNpHYtgM-yL$bq zGULjJ0&GPT@Q|a#TDHDnWSgy)K7s=JrG3bdEkl2JG5WJrOCnlbVgY-Dh}a~<#E2Jz zeGECWH~YunS&+oUq}Y&xZ9&8%Cy?nzd$Sd-cqY7?+4Vx?@> zYWdS9>G!}|x*#I_wiaT;g4qD?&ggGqt>7Z7le|9rwf61YyL0tq;(~w2xXK~PDy2zC@qC$R_KkmUYA;xml9`Ij=9}!Ce`xI zncDm{P+9xg;*T|E<&#!L&9$}HLE6+N6xok6P7iH&aBRW_BN6ep02#rBYI2-%X&k2exjNiDHtgWO)#7=+kC22s~pHkLHW zt96|I3T&{#T1lRzWpR0$m+KA7Y-A-#=paVWLJQ!u))FcbLC`{Y|JJn1H4ARI;*NWn zm@I80DVLR!cqzH=>NML&C^<>ewcU1xm%V4f*bzYjB}s3<*S$+{!3G~3ld)N%7nQQ@ zfoUwl5@&~Pe)>j)QCUY$E3KiT%^T8+^EEiK#3rANa=4snY7%IZhBy^!=CYjf!2(xz z@nYTPe6s*)_6&5*LJv(emBoIEo@ov*3ue*pvKTVYQcumT&f9wHt&2@JiVv6p| z>8bm5%Uv^Dr~vZ%++dRu?sIk3`i{hJ-5vd`_T3)o{UlClM)vpFf)B3pmkYzpo|o>K z+ce=&X4iIDB15iX{|2mnEW*Vv3WNSrp?5SIM zOWQzSyU%S_M}0AN+5k+FK9Xp|Z_hl5hF(yUzGw?avp)~Llt;Ulbj(XP9(|%9uq3iR zHR`Jm2yMwNHG~2rQ9!J3BLM&awKoDl0PO?t?SwmN0{{pB#1Z&T{-n`9{k6p(Akd#B z`j@=~D$qNOQ%TrhwysCfY=J;on|9JB5``RvcMjSI5iX%KknjvUj4;4;_CW#wkmVnY zD1aqoVGD(1q@=TUHoMAVGJwDgpQC2om}`%)3%leT%W z1O)1%mPA0Hiz-elR+r;k=+cmaznvux0B~MLz!*5I|B0?$nq%WX{??({5Ks>Ni{nWq z*b;xp0svnlLI}Qrz$XfFkd6Y?XC5dvrOAwSgd~%h)|i_dP0NF~&_({_zz}^T;UA7L z;9}TU0>oIO5dla-5^S-L7JlO+ZD>Ph0MG=yr80dYu|*qXcs}QivXo7*g)Af?2>=Xl zfBR^|HY^DOIlPDnPUxR4Kq*9|EyhOzYEjVc?c=#qLgIKBRfWdmphpBqAZxA zFAst+BLIkmjQ}8_xw=6Y&9j6qtO0^uNko{b1OO5OkQ=o%!m2Y=rF8%dfTRilz`H6f zFpI#K0tmpGHUutliL}>dDg^{>(1j#yVTniDM5+owNktdC-WV6Ln@jnoWUnXV41vyP zRrE*hFowl6#dQ*~g%AN_SvmY=Q2_80Xc&Qj#fNxp(UJb!K7f#dU3fPZnAV1-O@hKQx?~@bsGT-k&6)72 z;6;G0cJ>}y6^7k-ve?$MwJ8&VwzXIQIHaE>_Ch1S6tsP_T@3y95|J&>vqo_R0139y z1RS;@w{s1^VHhF4SP7uE^Sebw$0q;~gaFO<-bNDKV2dQ^F$KZZD7z0cU3>pc-tF@) zYL%JCb;nPLo=HLgRQ&CfpKfJ`EHAPoI5U;E2D45INsa;})CYY_ix^Xoz)ga;j0Bx+ z`mk$-1tv?R_@kwP^Wd)Z|BS$+)Df%8X3A68W)f=zQRZAod0<`KE^U ztErtKwN+mNEiOrm%ayd7%j(Be7C z97N@az%6J_@<(%p-m94$MZPato9BP1)|zbI8s5b^;ZI+)ZXe6MV#oHCQ2!It$)1Cl zv!d-i3-6M(amSyFT<_b+y_=*rCx3>$@eL+kLz35Zfw$D~m4AGqP=16v%UR|r&#UNb zzw0y()XSA7_U#Ay>}jVO*4F-Z34Kfa?5}p+Ka|Mk`?>v(NgLzyhO^1PQSu?2;TE?= zLr8ahBM~?)WkJ*?|5!V5fG%NY^yh$8qI%i}e&O_W;`D$wA$w9}WE{hRw^w_E5;7zM zf+N^D7ifZv#d4YQci-0;F?WJoaXYl9e%04I*k^+y@q#(%SQY3^VRt>1rGr8tgXKqr zGAK7km^DGDgfk{ne#d9#C3sD^gf)Rdk<%+RNPbu|fH&ATQ|N`)W;jU1dN{^|ulI#( zq=6~Xe;)W*Y?ym*7doQzdvjPQhIfW{cs9v5c*{o`HdP+aw}*Hbd@)#qyMu*XxP^kK zh>p{J=ka|%xQIP5IYn50NQizkSbdSGiCgo2O!0($#zvbM6IFO90dt7tqks2;h}b8J zttd1Rm_*w~|ADR-i5cj7ZHRlhSbMlff+Ew4B3Od1D2yhPf~v8CH?~OQHHwIUj>FP-%J+97(tJ%=e2PelyXQ7@ zGlbU?jrC}U<%o}r0*hl9er2eQOK6K~h%>r~i@Ru$YGf!0Nr%3dj|~YddMJg*SShfB zDat5{(`S9+NRO+Shz{wIjbe>9hK-8zkyhx9L}-aK2#!%xk}at^3G<2a7mE1!jyH3P z<-?Jz=#o1*CHtsEWJrs5h z!8AWewr&UXnH~v|p{SLq@rM-&eHVFs@kIjIq>thJoM#;WF{YR3(nJCi3S9Hg*VRx z04P9yCea8a&_m}Y024)B2USe9lM$yxNywy3GsH}7grX?Wpow=90M$O&RHG+xO12OQ z!8A;9@JenbFZv)FcLfvjQc=LUVIY7*$X20v8HSJ*izCTI@QIJH&|+kf1Sp{oCjnyf zWuF-nQr7TJRpS@?5I<%*X8QPW8o6Vj*3f5vL@jhMloTdnyZU;1+U6 zTy9Vc`g2hShGtmWGWgS=vSSNKRY&lXmtES5Sb0ZUc^X`4k(x+9Q;8cOV-k|^|6Z@R z4MZR+8Ie?p#!Ru|K~~0M)*@;hF;xJjOg#ll`v3wRl@U`_RJB1|66Qh8#G`-Z55mL} zsgzhiw^trERk8qA!Zlag5DDg_68b=;Fo8dAmJ*jnp`sdzX(@~I*@??27Vo7;K64vu z+FTfs1{elfv7%Ac#aeD)E#zvP|Dd05r42u`uL-wg|FED5*IWxRS{?CG8S$^ywWXO- zZ%N>BLFO4ZBnx7;M`gxP#t2UaYDwtIT?WOj)EKJmvX?exBGd?Dw*f*bVQVGu57z)B z0x)0yfStJ7R~CCs%@ad8#}LQ?V93g1+hT~}xazL-| zrCb^z0B6P#bFdcxYCx606`K(t5KGju59$*>ur*O~5V>w400fW%1axLirnznrS85hr z0(xXS#f@l|RUn`VUlvftg-~RMKbFTwE3pkMixP0wGG&lkpD|HW(Xs2C9JkFlWYQU%2{iiIzgT;AsSASH+Q@yUM+v=0VI0 zX;uZj95KBCB^qu3VmP~?PZ3wBLp$10H~AF;{**tJgQ%sZDAV0WD1>Op@Ep=8Cmp( z2RX@V2aLYxluS7pKGt>wy1N9bKX_-z!$_(vW2!LMl?{12@->##ssDvJnR%6A2^hx` z02ZV;OM0d^%7=_?HkOT~S&jn%Ab_%n(C~Sa#)AbtdN=!mEYWuzuP)}_{`0j z%2K$A80n0z95=9RJoHS^M#0F}Xg%}UlBhY%g?P*wnUV!9(KQ5<@t2_;8kEKB$hTO@_M(*Q+=iNrkd1-K^Gwn={Su|zf-Z-QsQR3$ z43_^amK!b5*@x3dO%o3ciQUwe9No}pmy&Wh)JRR$3B%7a<^RkR3C+_8&tTcg)~uLC zEihG0)-4gvi%iaVc+Mi2&aL^yn{rszcO53r7rYd?&stoI(dm{fiIW~Z zfOu`#V@EymNrnskcu(!nQf-9AeAsw>#TG4-8v55n3D{p9*kMiB13lSfZPMb5*#5YP z=Ug#x?S?SDl$q?>HGRpUZP+^PGWe`WK25y&*o^Wx)Yd81MlIV^t<=A4+BE6Zj{S`f zJ=IAV+(*sK@CP$8o7=6})iznpQ2pCu-P}lh*6_Nw)U8`K{dtKGCC%)`+Z$sGZK`&CVSt(@#m$u}$F!{?n%X-do9>(;dt~&D))=iW1Hw zBVOSL?aLSbk<={UEe_dHZ9g(j&(H0N@h9E$-N^8$*`|2i<_F^w?&IIw-9Y)>f2rA$ z)7WnPmXz$y=`Gh=j)qO1%=XNOmd)4l?boLb*h1~%{kP-;FX*ky{P2N`?)2}V!A>NcWP3T=p+ozn2 zC2ri-jpl)#-7#M2quk%b&6b-!=Q&>IkqvjD-v7Wrp4I0yvs?|BeqM7)KG>h`E396{ zPu`DdE#*cokX6p;9DbBpZtUuf?7FAxb_?dvE#~MoyhL8S^-brv&gRR`>~D^Yi!A3k zuHz70;F*Z+*{lW{x zygrLjZkqKT>;Zo71j*=?%|L=>5)FuS0D7# z4e*GA%4ELcoZj;wkAr4!mZNUt44&rRp6Yoo_gFvQ&7ASi9P9Er>+tCD)n4^7zxORk z@{=|1W_a=|o$_+?^(#M@FmL$^S%-9z=nm>*G-SDN^=cnG# zc^~e(WBM-H^knn&3@-JB&+ep;__1Hlh};y4eCWk3h#J0u`0nVf4clX{{4US?C3)#5 zF7PgB_wmU3(5U;(|B-Yb{7rrLsQ&sCkIdMgj~FlHfUn~8KIMdu9o~QVr7!*^?fa`I znka4ZU%1vVZ~Xah-k7iDmk$vC1pf>qSkT}>gb5WcWZ2N*Lx>S2PNZ1T;zf)ZHE!hC z(c?#uAwO>Ohp;5UZML>)TiMbd$!#bHo-|0apiPlEb?)TZ)1W}00)h_x2ejx>q)C-7 zJu1}c(5F$MPL=A@>Q$^+wQl9w)$3QV8e_&BNLGMZTP$CmT|4&dTeo55&ZX;7;6SE% z_3lk7RH@&-O93MVT-Wen#EBIzX55&g*@Y=vs)hN|vH+ZpHE+&&*D2nrQ~8b-Ox1K~ z)Im9~X5HHLYuKyJ&X$>W+wHb+b<-{@GxqP+o(l@Ui`3uJ<4Th!U2eRnUxLq{<24$+ zI(6v4wQuL%-TQZhkTYYJ%>U9nOt$0?jtAeK@oA&+Ns~@pAAVK$`StJT-(O_hw|X1M zw%pt@P&WbnQ!p%|=5vs~(*BCDuLUc#@Inl~BWt{q%5&+%wJ;-yy$nmV$TJk9Q_-{s z=dee9Jbds!v1{Rg}9u!&6Dj$|@6aQ7)r&6Hva~)D$X8JN5Ka#d4(0Hrx(0RmdDc z?XSoyr({w&Cz*3nO8@Clybd}lZ&h_yUVF7lJd?uwFuf3O^3}!|YsHkQO`B!)SZJe_ z_Mtk3yi-qX6P)(K2A5q{P;d)9bX#)EC3izJg?)*#5NRUOT;ME~H#Kkba<*A`^VN4( zQEP(~+iJBHa$m<-HP}{JVO2O`!d$hIO6-h;xK)BHwir$?*8}s>$s+ZwOpPyoElon} zmGEAYMOJy`Ap_R&TJ%l@kmdFeHrYjSl{HjCBx&~f=l&W!NZm*;dlzWV=1unIz))@z zX{e+2uHW8BjTvB62bQ`ngNLK8s3pOU)j5S}y|q^B%$9O%w%cY6*!6_%(aT~-blbJ1 z1+CZVl<)TY@BhPGMr&@YT?V}1rUkEcF^r*JY1fi)qZ@_g*J%jF^wjlE2Zu0Ub^S&TYrAv zsos&LQVU02NBTF4U3al9%yt8OmD+M;KwGV?e+!Hp+-f4Xn3be%GhrZB^7g*?-KT;Z z^jq}?M7Y%%j)OYs*84K`z3+`sg;B$tvChIV$`~(mM_ZvmB*78^xS8p^H-TVVB)BI^u23L>d}JKy)i{%F5;eJGCcjFVAeiZ|b$I;8Hj*HT zij>fhhg4)Y6WOq4hLch)wA%|iwl0s&u$gxuK^r>PLwEuabjqZPIPIw@P$m(3KYHf* zi2ryONeuE}g@h#+4f+>{>5i2PmDoKU%BM1x^NhtyXMjMKJYfoenDA4j9Oqd_kUmtT zand6n^~cO%3X-D^;ode&=FOLW^Q9xDsg{aqPDn{og5nHHAe-hV&$$nSA+2Lgje4Ve zigKR^VxqumD3D0FK^x%o6BPj%O98f0s{uq{+G^=l@f}sH7TV>AdWk3XVAPY5utgg- z8oGpdRB`mg&sgnxp^}2|q<*~PHX?D0qO_p|Q-!NSwCPer##FJ*3+r7S3m$S(5T_rK zp}WMnjcT%_ICgyJ4@09#qH5}~qvcOhht3-$UV6$h94EduM#)uJpFNXDybAFKSQb z8F#s%?HiJKtR- zZFEzwzE;Dq9yL719a|U3x%M$v;U`O64H(er=64f`YgR-@Fs;b8Yon9d>{j=i-;|~= zt;LGzOm8~G6jJ!YLtV~Mqeq<&ho@&%ZEl1&xZ>%Kb-ShQ?_|pk*Z=(0^^bi`t6#(1 z$RiiFl5JA#;~o3oc{Vt+&rNf5Gu-6w9_h6su5B>K2k1fn_Bq47Q^&6Pv#VzB(z|Wi z{Gs;bP}Z}4=gsnZ&s)&>9y`9R&TT`#B;dXr_|DawT&jnhvuCgQ)a(s`=dV(yx`ZZI;^EO$6QzW*9sc;*1p_}49#uh1yAg?Yh1WG zzc|m~4)Usd-qk|i@@|cObiZ#`^{a1sPRVQPl)rOnsF(YMXD?~2;~hbE&vO-733l0j z9jgE)`@Wn1`%kAm!E{^jXnQ_o#zTM546n3P-_G|B$3BJH-~WE;PYmwL9{!<;&t%-` zN`69@y!EsudUbDYd3q+-Yx|wo7G83=RLo?hfKHXEiHe)~$?7a~zK@vPc6HGxATtO9VK^A;L(LpsoxuILo zhP0?b0ni2cTvP!vT@%*04EMN-tnPb|evRK-z5MObXbQfj`5sb@>M%l%hf;dfr z!#7OBI2^`cq(fk=!(&WFVJyZuY(_bJMq)(9Wt2u^oJM7=Mr?G(XuL*kWJYN8#%;{P zJ0!qFlN5rxC-yrgbHl%*Ye#o{M|g}!d0ehgOvifcxE8}ld(6js>_>k5$9)V)eH=)C z6v%=kNQk&WwV1R0`N8`W6d_c;%=?pwtVqneNd3deKFdgs+(?hSyp9CPkIcW3972&i z$sz$qm88aQWXW%I$#BfZm*mEooIHj&E5h-<@Biz=xnjq8{7Ik;N}(LeAUa5+1W1H5 zNTfVUrEJQid`hN-%B7r2fw(DL#0`erL!HdMc3e54{7SG4OR*Hn@@ohP$|>@IIv?!7 zj6${D^TV->OSzm&y2K!=luD@&6RZ+M_66GDr3EK&ewe+!V~d#7p^%Px=JR z`Lxgagirk3PyOuA`}EKJ{7(T5Py*#oseA~9Jk0uvx`&+1%?wWP^v>`kPYQ+53AIoO z&Cv2RP7K}9WQ5v058?8|sz0sl? z$Qx3~9DIwChzS)-vrF?z?L1N>O;ROYQYLLuN6VC2umxMVg(;m<0pKAlwKj5VKipI4C(8|nBO%uNg{5$T_)1<@GJ@wN* zowz{FQ$W2_K{ZrDJyZ)^R6a%2KmS$KMrG7Ol~hQb)JVNlOZ}6tQIqMIQXT9;Q2o(R z4b_3@!BQm%Q|(2bj4(89RWp56SB+IzomE+_)fBX<6zS1V#lbf%wc#?qWOGj^9ads3 zR%1O@WPQhcQ=~m=Q&D}^QH54jy+<}U0IfG z*_OS{=kQc%b=YT(*f@1d5dXAR7Q{ef>R6xsSQrggHvQBeebbVCJ1Cq}boES`N*vZ= zoN}eRq*K>CT@pJrSPK*istwpdxmtpaOiSI`fz39BRh9u6+L@Ksh)varExJ{8G`PDL zo^>sVdofje9%gB_ds7n$+uIZL+iS&D6%kpYE!iPG$EXz}>h#UI{Rx+S+`3%WooQB@ ztz5NrTWX!UE+xUnT@eWB+k*+6Yz17U``H;4S{o!@=4K5*RV^H-0a*D!N{jg zKH1$g!_p$M``UZMT`?mlh!hvCZ5pUG-gX@fgtabCy$go5+=u;9n?+S~t=I*mPQ~L} z+J#x-EnU);y-WJt(*IB|vn8qqyxZ|@5Y6RM(Zx~01r5S|)*xL=Ek#+fY?1BdUUzJW z_tXphbrI}>TsC17nT6iVZQJSGQg!sh+*PjIoV&)AxNyl`$7$Y0;$J)EUJK@?4Sq2% z{5WBKkPP-73O3#}{l_&`T_9cIB2C&Lq*JEd%oqln#-$0{xe4U`%<**yv6bQ1?b-ki zO&E^I;VsxmEnB6d+>y21wWZz_J*NM45WB@+65ig%;juk!QSZVouf;YJ)|I%L;sGvS z|Lt1u9b*)HU#B2kUZvjyOkDd5VcpDMu;gF5v||C@3&|}R%1v7XMqqRt$ZCaKGuB`e zZa~%Z94S6yL;o4!M((s*E8X+r+bJt!1tO%y1wYv{<3-|N&P8EyRpB0l;M!eURHn={B$OYXOuk<64MDk6V}Xd@)iqo=oz`T&V=E5J*V@h9&EpfwlmhfkUwF+lkx@L4P zXLYXWq5s@tv}tFKj^3Ni$9eX-6|`xg9_m9zX`@bQH$&ZV{ZWNRz{gDCytDb17-fFC#>Z&eeUH0m%zUZ#zYOOA7v>w!q?o_np=q5ghkJhmS9A`8>YP&}2 zyUuI8-s^4UW&!YKreXO9+VMEq&&<7>*+Ys;=|%)V^* z{pVc`Re^45YLe3zUfP!P+Of9k?rmVPUTw1`>$BEsTsiHpmTlT*?RSlBw5g74c5U9y z?cSd4L%rIycHSla<+m1Qx3x`?*6hqy-{xj+N`~&|ZtlJHYnB%5!*x5*9wC`lZ14VV z@c#~P?ZoNoXzZOv?gY+U5Z31JMe6cJ>G#I$`0nTVrtJFu*!$jVz*TBd9_W*GT(6{M zM0&`y0dNE7v8OI@1V3=$Rd5HdEd}4K5kUW8&^_CVp(VuHLt$ z=jop0ByV5pUh?Q}a=mVE{BEw5PTi56-yz*@Mw-B1OvPDTMOS3SN>nH?|MFL)#aJA3 zh#B)CO7k->^UkVnFMqQ@#91+q^E+q7MTB!V_aQm&^Dqx|GY6wV7xXy?bQ#RkzyC0A z$DZEwzC_8^VlW3Ola^5_rz7!o!Iiool(}@i@$|QRa#3gUPM`FUw%Zs5^^4tfXQ^}* z{BwLv;eaMt|E4J*G-!s#A{OuQta@tP%5f9-DgrNYvDsA3gR34V_FdO1U$;Ej?X~_3 z_E{Qsv$>t)BlF|f@nwH77_XAQleuK4@hn^^8Q1n0r#N8eaTi~9l@mMSAoOGBaV!op zAV1slX4{UAYt#E2y5{GQ+wE8X_nC^a3{v%hSFaH?_^HENfiLwER``Z@QHXc=h);DY z4_PZOT$e^%TkqoVY^Hc+;#sA6MllS(U zcVIo<`6og1Ujz9`Pr4xU`7&quS8SLNBze;gvp&9eVD9Pm?DqlQqZdZ5y zl3f1de8tZ%a!>aFvp0HQ{aSi)&}Vnpk9_jBE!1C3kTrLT%YEJ6Kjnq}dCv~9xA)?v z+2bB&BUkRtE%+=J-Mn{hhJX03Z+=wgbmtCxu2*spJNvj7(OmHNF=dO+N)o$p}#UwIcBbb$ExPk_LJ1_u%(Xi(w6 zh6x2EbO_NQ!iNGOMtm5t;KYL+7cva#@#DdgA2m|!h_PbIi5W?Cz}ulp={<oSL)hr=mk|#tb_%Y1OAkzyGcp+x6_vt$*)!+#7fB z+o*#hU%fPW=-bYJ4`=Sva7A0%&|+u1O@KcE+q)AEFMd4v^5)N@w_9=UdV~i3)r4PC z{z3ZhO|oCFl5Wz@0^tkA9Z3J!r=EUS@s}Th3i5X#NGJJbUqb*cxRQex>eruz1WCwY zP*6!2(|ub}sG(9SnONa|q*=%jR07Hbpo$(5d(YqHs#C*~xH zHrAol)^`|z$DLiF&PD2*r=psws&M*8r>kByhLvv1O(kM!waQ9Wf78WEYp%HZ8th@g z!X_-Qvksf=vA4>)Yp*{U`>bKhMJrLU%1WCpvdi-1?6%sn$ZWOZUdt_3C$jgey5j=d zYLH(I6egMTrYYvC_u`wczIjonE=8}>S*gI0;yJLvkxojm!qOewu%!+|3@NhfoKa-U1lsdb|Gtx%i4C+WiA6;~lRsTcXCDmKY-1N{{pIG46S95K((`IM+ zB}BH+JMWoqn@LxiCevNF-F!(J8Ngowim~5#GWNIN?hal!WPwMVxZa90{x9E#3ywJC z5f7E&#_?|Yaa!ALE-FN!ihQ@|qmz!8h0A{DD>#VcYl zi(1?w?%L-v6Bbc;WlCWa%V@^E^ecwT`ym^9=*Bj}@r`nfBOT?qy%TlsW8Dea8T;r* z!JzDPNm3vB3W>oDim-!-B;+7lw!TLi5=f4WB!L(yNk}#llb57qh$=bBOmfnap48+h zL;1-~f-;q;TxBU$*-BP+GM1ubk}G9-%2(pjmZa3BDR()`U*6J|Fd8L&{IQL**dm#? zNTvXm36Wc11e(wMBQ>j;t{D1mhW~YxjWxUJ&2OG(n{yoJrNojD>v-yj;9Ms-13cHJaiioO(H!j zx~eqBhISC!$6+{XuGd&Jq$2I3IIWkkaRO8==={`3TPiy93CSzGtYrZmWfK`O1g9UY zU`Sl*)1Q`3PSRV+5N<$HtkcwX49Oq!Zoh>+Ky}-vX7ING*J%u23NLG8G_Iihe$=pHaf*p zx+qbuihUE?AW{pxL_!jgo&T(4D;o(nTsE_AXv1bVD+yavwib@yENLZC3)6m960tz- zX+hhDB%HRjl8^;zR}0$6#x}LG-K}m@D+xCwGq}PXE^&)%+~XoQxyoHGbDQhj=R!BS z(w#1Kt83lsVmGp&J*{?C3z12HmIQ97MKV8Y30ug*7Uw;$EG%IO@&@<3pDizF>r3C% z1{c5ctuKD>YhV8USHJn?ZzRea3jtWdv}r)Wd6RjG(~;;M?9y47k4l-mie^ z>*3@sQ<)yys#Xh z*`~I(yUp!yU)$T^2KTndZSHcTTiod;x4PTS?suQt-SLL^y60{0dgEK(`KGtN`%Ugh zJR8~9v4#L@0snwFK-08EILoF9-iBMGq2Q8eW+cG4>1JmKJ7LQB#yuu*j%OU>9v3;t zNxpGwG$IMRcr22e;LK!};1;jF4iO|laD+Dkj3fWJ$2+d^kY@+pBp!NKQS4PCLS(G2 zUizDg3}fG-cH)<{vNe!k=_;3?zKW zc~f^zwZ}SU_qyYq?s_L8-|xP6zxO@wf&aVU0dM%iBcAYzA3Wm^zj((tKJk%%yyPKo z`O0IS@|vGK=dBa>Dx-zq%+$rglZjaqT7v|Z(1xee!ZswF{^6a^{OmXH_ql7s8U)|P zkUf7{6aQv<8@<;?31T4&0XQKJYA_+~FK>G>9hTKhpZ>mxJ>1mN+Om=rz{8=P>o&;O z5;6y4Bm&UbNgTKdmw2r;+CYG0b3Fh}utd(?+XMjs{J=zR!@+N%V24dg_YG4O)-~|F4w4I#A2>=OfACWbj z3GrSNY)Uf;KoU$=#{}KZb=wSv9Jkrv$l+kPg`9{@8xlAI30wlf5r7<2Tr!cs_|e>F z0RUy`!Y=S&6lPlvexLzP)K^Uus8HV)qKBk?*wb;HjJW~T(M191!o*2}E|kEHHJdH4 zf&UWdLhn`FE*zNvq}QhCLY`S#6R=?t5CN6FpcQsO0AVkYV!CT^l8=HMqTA}504BUWN3n&K!%q9}%0-8Cp!7cMzNt?83yYlp8P~>Ir}xIGOALBkcj*T7;3P z92OU1Bfh}eHV&7p$yjAI)5hhRBz)ZWC7hGZh0C>p6I27Bg%}9fT*L(cM2MfTT?Ywx zPd4NnG^K&b38M!BWEBczKoaCY8e~Bttu1+_VLtEhH4%*xX!PFFl4(jxo>#^3nAVjgEH0?2QKS_TU59e$hi+BTX_bg_m4}9?iH<0WmMDm(D2uM> ziMps)#i-H2XpOe0jlSrO>S&JgsEp#MkM1at_9%@8DUl8-i8|R?Qsa^`;%J(p_dp_) zz9tPqX_acu_h9LgT4~5h>6MCRB2MWeZmE`f>6n^n=j@R>)#sY33IDJull8?~ZsOmW zW@(i|Y*BHq9W=A#zm*V={CA4q&{k-QtG5y z>YHM!q-JWRZtA6K>ZfulsCsIsR_Ze~mNU8FG_mQb;zifFY6~(`hVj>?MWttkW@{!M zMHN>J|Pf7V>JZ?kcekE3g`CutLW>#{m)v0m%5 zZmYIh>$hTSwT5fAGV8d4E4QAjx0>s^qAR}q;whHUA@~g4- z>lOa%zWVFH0_?!%>$Bc#ut(t1= z(5i{YIH{9P<1`{I4JIwq(x8(jlfX)>)KYE0S}ns~?bK#%)naYeYOU9D?bnKJ*pltm znl0F#?bxPm*`jUR0_;pqTfbK9vMy{yotWD8>fKsw-U_VVR;=B!tucMW-mb0O_U+*s z?%WdY;wtXN@+3y|aydJ2I((diXF7D25?(**L`mXKvZvWBItXll8?gDS|2CwldZ|~l# zk2WvzLa)v)YtKRycl0DhO>Xvz2Q_j|mO^2mx&_FJuQq(|T4ZLIhThI?7-)sztiD+L zrWX9N@B7m4hRH7)+Hd{p*ZuOZ{z%^Dsd4%agRkY5Kr+H zOK}!ku@+Zx7c(&zfAJQJu@^fr7?<%FhcOvLasL{#@foWz6}RykyKx-D@f_PR6px9{ z_N-U!F^ctZ&+75${;?nLtRNe5AR}@iC$d-Ft1&h5Hazkp5Aq}*G9d%9CHpZF{p<~M z@_GE}49jpRgYqbgaw(JYDVuUCqw*@Nax1g)E4y+m!}2W4axK&HEzhl$;_@!raxe4p zFZ*&YW9;MBa3>q{3K4SkQm@ZGRMG*hC0j4#evU-#1J72ou{QEGcQAMmt21MvH&^e! zg0s(xb2)djIqT#(t8+TD^EacjJFhc5w{tkhGd<5UIoC5j-!nJw^EmUfJOi{n2edv9 z^gj#qd+P4+POq^p^D-~A-ZpeHWAZ{@VgE#1G(%%FL}N3t?!zNP)HPQ$Mu+rBe{(Y< zok`0kVvWj5A9E*j&cp$8Ob4?})AUT+bWP**P3v?{^K>ZJu-#%L=Xgg?6ZK9Tby36e zFz0YfGqssO^CdrXR9i0~e*@1>^;BmvRAaJMM|D;|^;ZKjR$Dbxi#0QYwO5BVS*!I~ zk2PDHby~Z1SGP4>(=}S#^<3ZeTj#Z0>os2cbzcKEUki3w5B6GzH6L$v$qsK}$2DO) zwqft}V>dQr|8-P@^krK!We2uoOLfqCc1kB!Q;RlUq^V9@-AO0+c1v?KW2{LZ6nI;=c6YaUdpCK1H+QFZd8;>iyLWiEH+-}Ae6M$X zzxQ~{w|(dLeV_M!`!{|Acz*}Dc@y|{n;1Sr?j9W!_{8^sH@JX9c!AS5e@nQ2JNShE zcZ5Hg}%`JBHwmdkmabNQX?xt;TQp7*(# z+xAFXZwe8)pBp-$<2j=5`Jt=%qAU8JH#(%pd7m43U0|<}V|t~dI7FOycSAQ_@L1Ay z9RajOlS}t@q$I6!dM@L5kGuMh!}_bsdW=i=jgLyK-*Af=`D*t? zB;210r3I-&1e9Y0N2xepTzaXnv`Sn0v`c%nV>`8L`?YU-N^|?SdwaNRI=GL!xO=#@ zn|rjUJGz&9yPtcull!}Od%4TSaWD7^&AYtEySlqOzw7(D!#lv|yT21WyZ^hp1N+eK zc#2J&91N}iaMX5mI{!pm0$o^wU7R=xq!@0u`gW*zu7kX;hy2Kkd?^<*$IB+kt9;3$ zxV_e!}`z~<1^Z`9+3%#ZXJ<$)nCL4XyBmL4BJ<}h3 z(?k8!OTE%ZJ=IUW(_4MkWBt}w{nqmlr6aq*@4LYle8BfR*`vMLAN<;XILy0!Uj#W_ zRJYQZ`dpkHuPfcgOD^7fy36zZ-}gG;`+eXO{@@#a-y^=@Cw}2C{^2YB<1;?wJAUL- ze%>$s$ya{kYrf=fe&%!j=X-wWPyVmJy^0CDV4S}6X+z!H#W0pilXr(DxTM$%00_tp z?Vr8cm;Jz}J^%0Pe(#U{?+d^06Myg*KkljfDl|L_}s^e?~i=l=0mzw}>! z>6boMO*~zs0L0sci{Ciw3%6K#diSIJ-m8E4V?OEo`unFp`>(k9w?F)^KmE^t{l`E4 zyZ`_VoD^Xi%X;i54|_6lqeWOPMxx`V?wZsZ*&|wHnf3 zNURaHS@rrAY*?{l$(A*HHt9mOGWQA8x3X==jBDk}r0WsyUA=bs*7cjWFW|p>2L~oB z81Z4nhW{BCcAU5|*~}0t{&d~`uOd~&;QQ;zWvqv`Sowk${&ph?qlg~c=+;AZR!;+<^xln4-(3mny zbf!fQb&*j-A9YkwCn25GQc4@ml+#Ert<+OZnF_U2Oi4Y})Ko!LbyHOTd=*xMPkvtl1)At<&;%kndO#Ue*YQf zm}Q=s=9+E38RwjJ-kIl~ef}BfpoJcq=%P>j*yyB{UYhBqoqihXsHL8o>Z+~28tbgJ z-kR&Kz5W{Pu*Dvm?6S>18|{dYPMhtv-F_SHxaFRk?z-*18}GdJ-ka~f{r(&9zy%+i z@WKrjeC@*(U!3vA9e*71$R(eg^2#m09P`XI-<V zU4I?+*kzxc_S$W~9rxUI-<@}(O79)`;DsNa_~MN}9{J>zU!M8qoqrzs=%t^YdU=1Z z9{cRI-=6#Kz5gEk@WmgW{PN8|AN};zSO5C;-G3kc_~oCU{`&2|AOHOI-~XTg{{8hGoBHRX;kAH+1N%mzOiv( zgyS6PSVueF5s!J);~x3gM?d}%kYtf#APHGWLmm>5iB#kw8QDljJ`$418)PIYSxHM? z5|f$K#?Bk!$>yz$BAaksGk4Ym z=Qzn(&REvUoat2OI@#GycfPYf$%N-T*C|eVzAYdC03rDV1qJ{D04x9i0s!6v?g9V^ z{{RID97wRB!Gj1BDqP60p~Hs|BTAe|v7*I`7&B@V;IClEjUYpc97(dI$&)Bks$9vk zrOTHvW1`$AGvT&@|7z-FnRBPlg*|@?9ZIyQ(W6L{DqYI7sne%WEz%@9HLBICShH%~ z%C&3On_k0;9ZR;X*|TWVs#V#h=(n|SGX|}=EmGXOc=PJr%a>^q0dWNW)tN%TTcmUQ zc1@geu;Ry%BTJr4S@B`R1uqlSJW^8S&!9t#9!>gT;nJwLIv$uNwd>cgW0PLp^j77M zYOl5Y%a~wq*}#JfA5OgZMzF>&B1z7?x%21Hqi>c@y}I@5*o)T++uAAT?BK(T|9>tk ztu2JOwf0VbvdP2WK537iPrv@;wgS&XuF8L4f2iLrgq%dDaTTC_2qvf?L)&O$)qp4U zCgDL78U&v~5DJu`NdH`TQH2c!wIOmIG6bS;6sBk)Py=n)5_>j%sA5GYPE?~rH%62r zL_5AW((nbtbB)b$y!1 z=c94%87YsD{>fsbY6_|;mz54GsilO1`l+XxhDz$3i>9jTs;su^>Z_~T|7MV^u-2NK zezvAXE3LUsglkH>3Sb+r!VVOyK*tt~tg*~4>#VZSCM#{T(Na6@v)5MpEJ4I>OD(qt zbqg)HvxaMKx#$)o?z-oy+b+58rVH=9-`4Bxz2n-OFTU)`t8c&Y223x$y|M)Gz}hC9 ztU?PH%<#MV(p6A{8agPzE*1-5F~tJuBG4`#3uN&%8HX%@$s=1cP{u5;?6Sx&YaDaS zFxM=z%{1Svvql#4+A~2vzwGn2LDxL=xJBQ5^wK~R?KIL)Gc9z}P**Lr(NtfpbkH{+HB|Tw%%~_|1G!QbOUa;;CO>g zbwN3AJaLN-6P5ANJLf0Bd6Z9XdF7a2E`TMLbAF!ZnrAM0=%kNsdg-X2t~%+GSKhki zuj86|>;uit`t7#ouDRr#b58s3xbGgk>%+rdyzIj3PQ3EQGmrf8$wv?U^vz3OJ@wCD zU%lkqZ|^ch|e`}D_Of9k<=pRuphI(YD_;^Nl+ z2u6?r;bu!5@yL`SLZt)}q$3TCpaRjOKnXt3fdheH1vhv>3uX|50?}XxIru>jh7g1a zG+_!!ctRD5u!JmJ;Rt64LmIX)hA+IK4P{uv9_rACJp7>$|AR=x92OCUMoc0Sm*_$! z;?RjZRALjS_(Up35sE;R;u8&0r7jjw0ETKDQNkFc5go*g7&@aG)5ylfwegE@WLz9I zv_?1D5sr71V;<=^M=;hAkAT!;Ao;jQKlTxgg+$~a4VlP43i6SJT%;l)$w)~$GLn>> zBqldm$xL3dlbqCKNXY0AS!ttNr!+_^5r@iFs?wFLe5EX7NlT!?(w4KtCE`Z1B~(si z8~$hzFmE!<5E3((+8Aask;#!`ZbKi<1Yr6!fBCv<94p^Cz& zQq`zW&FWOOYE`aQ^{ZIjs#uv7z;X2yAp^A8;no^6wyL$QaDA&>BRAKy()F%(&Few* zs>-n@#IBo6=0%gK4{RE?n}QYQK(kp`eK;1IJ6U0NR^=)v0TUz3x zwz$JhE^?Q9+~&GgxXgVnX<=H^md2F2Ij!zYt*c#}V)wf?1uu8AOWuA`lc-qHhAd){ zh*mg4WkcnNEvzAnYS_X-FfyPeED?n|$Uzfd?NxlMb5`{BDrX20rGh`X;6pO_!48ga zBl{T0jzB1^8k%S}?coe`q@x|}NJlc7VUNyoQvms}20f}#k9w@Q8v4NRW(D8}D^Q>U z8OXqmtDpxHPxr?@4l+Q6JW(P8dB{jEa*~g%d7xyza+R^X<~FPO|IJp8Gn?T&XF0ps&UC(Wo%gKgK400u8{z9+ z6LP?*YQq`L_^_hek&1R$qtF7;M>JZTk9t%(A1uZoZnR;8DpVi`IR11Ds-O)>YkI1t zPBp4mZBXyL0TJaxW!vc{ZwBE z``OI~wzH=#?P~w}+RvsowzZvYYj=Cw-sZNr!|iRfx=fUS&PZwrD-92WIK=HxM>~>H zjeVq6A1ZFKi}hWPY6!sIqxFR)Zk&No7rfw_;PSe4yYPlH{NWCdIK(F|@rqOY;ug<1 z#y76AJxC^mRg(|p(E69aj*o9#Dg<=?n z5O;qwlXa~kXf(qya5PO{RA}2^53R6hbl47w08RR*4=i?Rad&C4P;+>w33%s$gct>W zM-y;(YWnASC$xx^|JR6$7>S8Ei67*Mi3f?4h>4XbiJO>-jQEL<2#S{|ik4W4oT!PY zNQ#n3dyF`2lJE`Mpbfrfe7it{ZD0UqK$*V@Z=nq&Q-zTrdz0e^#HR#rQFv{DeA-Zp z$fj(_b_op<39nd;y8w%g;EUr1Zr1p1*jSC(NN(4tjo!$O+t`iZ_>HsHG|16Y?I(cq zmyQA0js@tB>u7)E7+`d9Z?2FIA0}@f24d;Z3IIoQwqSw##&7kOTE1Wh6`*%HR&aHo zaAY`!5c!Z28IcsZaV2+hXn%S4~-xRyPyxUfRZZN1P(cD z9~lWLnUT+wktyj2DF1np&xDf>S&=?DkwE#ALK&1qnOYX%bx3J*E#q}C!<0(tGESM4 zO{p_d`IJ++lvHVRR|%C_8I@XTm0($wVtIx*V|4=35P|0)-f$1naCT+~Z*zxv{=jx| z2X~cL54NColcx!mkavWLV|L(o{y;JUP;-Xob%$AbNtu{wX>*K;d5HOxk2#r=S(%Gz znU0B>k$IV%nVFrrnVuP%pgEd~DVn88nvIE?0^ki8(+20!n1eZd8j}RtV0^1dn7Tll zvw2^=*dVna2MuBiO0ap_pbu#ygtzDoLx_vbCwp#S7i>3;xd@r3S)HkAoz!`q+L@i) zNtvICo!)7h+y5D!s!5*UshQ{bo#Tm~>#3gI$)4}&o`%O(_{TV*$ZYAxKrgp$*U${A z0B`)*49?JS0#FUsz;6_2pbd8mRbT}Nmtz&sphG#KMOmQ~dZ82NjHi@roJE9b;|58v z3q7cjBYF!+a9=_AgN`7RDj5eUDGO~NqDv?MX<%}<&;&6^lSa5@`oNPNsgcg7kr+Cp z7Fwi4dZb2LU|Cs~Q^}-D`lN|NmQX6CQR<{sI;B=hrCOS$WjUYibTjj`F)}7i4v`ZM zaudgR6Z#+z&ES^FAY%6LlnsJ!)i7z6=3>zRO?cRH7^4TCMu;|`2XZ>7Nr|R5XQ*C> zs4}CdXa7p5hw7+_3aN`Ksf}8wl^ID3a!_wt=ZbF-g>Fu3aZ>XuHpKuks97zT}&}tj1q`vRztimA7!Y}N?9W28j+`={-!#6y`Ib6e93&AO@3o#t8ikmhK?86NVu~J*X zJKVrnTe_(0#86DSQhd5mOvO|D#8+I!SZu{yOt=}g4gWAqIib3KGQ7UayJj4`XuQT} z+{S9`#%UbKZ2ZQ+D-qUv$JCq0c)Z7Y+{b+U$9|l#pafLe%Msmc$Pfg-=KuS@j2ys? z?7xm2$&ftB08Gh`T*;Vx$(kI#5wW#Q%)p+j#DFWxTU^Roe9Bpz%3X}gtE|eV?8=MV zz@Hqwa0|pl49adh%Ulb?I*h}<+{?hs!@>N)#9YEVT+F;I%*u?+G|bG$Y|OvB%+Nf{ z(=5%&?99=O&B3f8+aShZ48~~!&a1m8Wt3r+$rr0&+I(UdIDJa z*($V*TgO|JJqgGU+0RCK&m%!hf>daU{Jq-?zV)lnlAOs6y~&pR&=MWd6z$Lz4bg*k zB-aHv9oBT*)ng6TWxWvgd|;{KAg}4qfee%aJ<#W6euaF{=ex*vt;l+9zj#f)eI34k zjn{m=*LgkIhF#c*?bn2@*oV#7i4E9`4cUfGM+U@naUCQrD_PWh&DG4z4Xn-9+{~Rl z+9*7^3vAleeAysz9=0(|-CWh*yt-Gd)wI3UwSC*Ro!hv*+q&J`y#3q09o)b@+`?Vl ztgG5Xg0TSY)+3AD$B|f!RM|JQ$O>KE?#s{@J<%4u-4M;)+W+0%;Qig`TY1rKmd6o!|Vu-}gPk_O0IMjS=TTOt1aTunpT` zOxz4^+z#I05dPp29^n)|;aff6s=_k5mD!$k3qtyk)VJJk9dWmy3mCJjJ$cIyhv65I z&vQ-4E0n#G4cU&J-8SysHy++OF5WxtztL+)O3LEd(aQoL3G6L0pq=De%Y-Sg3jjXf zQ2yjn9_3WN*(r?L0ssKCX$v4A033=dOE~31P7$nqUalS6u^rB`z2<7(<_qrT;vDB} z{^oQp=Wssfc3$UrzUOz|=X&nvc^>F|{^x`)=zy-(WB<++=V3Aqp)y9HGL>+E8!iBm zP{4N4)?#=b7_;e`y>0-la6K97$zpBkXJTC0M-o60F6)r0`M0o z>cEo&)5;DJ_q8kr?#&5~<_nJShraNIKIn$t@C^U(67TR7AMq6r@fe@y=#|#>QC6M& zaIzDW=P?PxRsyM>2I?g&k5O+a^-;BOZb zk;O*@LFfjSK+Coe2}Ka}D<1F;!QnwHUj<(8+5iAeU~9+L(DPz!C~k}6~3asSZsMIZ+$DF96lk>^nut8t7UE&#pS^t{gy zd7oIe{t>{GLfs3-yMF%*UF^di?EJs~0P#< zm{FquZ5KCw1Q}A~NRlN@oMV*>n>AYiY*~v`U|W$!*0gaH5b2svU9$w(Eb)}*Hc63g*-C;_Kv@;LtdY32txX$i zXawl8Ccw!qrG16^P5M``O{i%DXlrBk>s3is*9NvpQ}SfWl`UT;d9|Z}ZJa%C`?t*> zXwjrYpEjKu^=j3vS-*B28}@A3wf||~ww)XIZr!~@pY(VY^KjzDW9BuU+-0P@%7+W* zxJ{dM>O5^x_sMzscIw={cL)F7yDcOcuOk=GW*5(lXQQuGy9;ASA{d=$bJS$lRbBF( z=qo}100c-YJOjl$FhR8h&=0x$wqcLK{StJpLJKd%a3foEQm``*Kl4X`5JwboA%ae< z2*rsaqG-hwTZEBC8DE^yMH^$JF~=Kg#BoO*GlEVdoiZe{NF$FNDLW*O)Tv3$BoV+# zjwHEh$SQB*$Vn@;)Qn53ywpdh{rcL*Nvm=yQ>ZTmyGENamx9m9Ho465$~vXIa!YOY zY;(Ugb=uRWH}Ax9Nkb1s^#7wOqnr-JZ5|zsH%Wb?bW%$z#q?55Gvzc^e9(#*JZcel$;C--aG}9m&dkjved)b&PJH<#cwmF~Js4o6+-107kf00-tIk3csWXf|{Lo>IM@@HQk3R<4 z!dXYIwPcb{HaTUKTMfBojziK+L=Q*vOvH>Rb~$GZ|GCH~D0K!pXrW8elUO_FCA4TP zk!G6CrjK?yYHb8gy8lb4uQodCrKL7{Xs?M3ZpaWP{>b8*&n}y!b3a;pqqfZj>Ftc< z#)xhK?8ZB8z1iN|?Y`mWJ8-`R2Ye&5?-nW8uNP-L=ap54{Bg-6r~L88FDI_!`LH6F zX0s1J31`elzj@fTNJl+&)mLY|^(7%*+B2L*zxXrTKX-j}yEV_fci(>pK6uwVjyYyW zM{dDDMpK6>e=r@s18p`>$cn+?whbd7LN+j@07+dWG0&qqIf_1BL{@p3hj zPG-(1_I~;8*>^a^oKDBTfB*jnVDMlkC9)|me78ee0B$JtQ{KiBB})0EN=R(s2)CFf1YzFOxyU;p|*L)M6OL zIL7q3uXvoJ4)Pc{J2F=2fi^=5|Jpc5I@XbO*b|Jz?$xSlI z-Vp`4NJc8~hsBGZ2K}fJ`zf-KE>YrUn0QG}cG8o#k|LV!$Huc=QHGyX$q>&KB14+* zji`iWEM@5&GhUE8lKkK-U-HHf^-PY@+lMZNIn2gEY=viZAs~tP$4L@%a}xuN4P6-_ zXI9gi*Z)l1hBN}ntBhudr3_s)?PfrXED@XMM5i@F8M^}h(Ujm!=X^@DN@;>Ip7+Ej zCu@1eTb9Ooq|7HGKhjIJY_fI1{Kz)~x=@B*2zC*RSu!UHx)(BYn46hrJ)=a;5?b;y z9?hNo#t9OT^01^cIce`k`n9uI5PscEV>8LQk(9=gLzJ|cO+wgEp7ykf>tx|f>Bq+_ zE>x8aY^6PYx>Tl;u$G&9X=&!?&pk5qBK7-9Rt?(JoUL?lT)hlJBPdpd&V;NoF(yQV zYEj(Du%gcF2&AH!)Q!f{tJU-9UBS9nkhFB0XoTrE-)cl`-n5D<{AD_~8WK4$tg#=F z5C3Ie`H{tfVO)vb`lkVgT>}iBZWAn^3}Dkt)Akn1jK$K zZBlS{{kZmpX!1mr|Pa!OcYbhUK71xI1K zUG4(UueOY2Op92_cpBD#`YY%Y2h?5m3Uai1BxPH%m`~NtwO5nv;CeNpB;$Caz5hMm zQ)!#VnNhW-*1YNA^ruxMu5GvghOom3(6Y2Tx2o`*uQF2`myDifnh|bXXq&oRzJ3>~ zLG-3nQA^UoHtMiCO{_IZ3}TmECAiV0aYo)t$P2%dh}5lSeUqxq92eQh9;=0H`TvPQ zf3ESc2Nq_6aT>?Z4pXew)5Veb+FU*LSi@|cE?lpA-Dn0&yX*@9O7!anEq5@@ZEg>d zPuw~2Vs*FaG_TFj+uI&K7|wqtT>5q_yDG|enfMekYXu5uMmHKs0_LWQ)yP4sHcG)D zjIj>=%*ahUI#FvoGxaLmWr>2*tvDuTT<2+;5BKl5Q1-OiRA)C>Z`Z^F4y=k%9gU0*ZNUzGE)r9JJ-D4DiQp7d>Jnp;axIlVg^F0mPX zTw_xkWL&nIm!%8l0}9i+b1idS%{^~=?=srl6e6(gOw;nZ_`HkZbG-#VaQ~42B{1+U zv}q50&u6=m;17rRM<5MYNgLRwQZAiO0v>UW&wJGAF1382>ue53iq&TBc*^U2Yka5J zbIrapg8dC_#8z45H`j8qz07Qxp0nY%#(B^iZEb!M*tP)ewN1NSIx5fb%0h>F&d^;a zbz^wlfxPILRnzLIcm2pL2W-BF%I}z;GtZgaxYyPGUxVWd;p8-Q7Ss9jMR!o#YsY)L zCLUD{TD+$iH=xEdop-`-Ijd@YF4je^_zlZ-HC#7gxeGt}41xWnV*hbCulZ}7nUnIL z2dmDL$#c0|^XJh9ed;gn$|cv<$wIC4G6|Y?2m)F4w=dGvu@rI~qyN_So_zP?QI31! z2h{Q?u5;OO+u}>_dGN)DzBAkIm$z>(?!Pzvs;`Ub=y%`jh=fk0`+oF`FFo)K_I~<_ z`EjcAe%WE}dDb0&a(S!Y{mC3+iviriGyEUXOB>R|KL2+ELe@e(G?c>$qCoNU zJ8d(*C7it)oWnk3AKhE4FB`#KYr{(lKKjcpKg=D;Q$!)Tx3F`$o+GaqY(5$^!$!nJ z=E*?>Y^SkXK%;uYFRHstB*g#&KkyQ)Y)d*_(!d3yJ;q@~pt(Dh3Yl3fMU{xcK)kwz zvpO-GKM%{o)rm!M(j8A~o0J;HGJ3?zbGghjiB+^C&NB~TQ^aJv#nDki1$-wk%s!Lb zJ_x)<5W_FyW4&v0y$jqnd}>AB;=|FIFov#ACNXjK4x`q(cNo z6danivBs9MM zvB|ah8L*6=Rcy-(QOFLu%H-=moT5aWaz4~tN&m_KP71or#JP+&697lxB$Ax1PL!^q z3aFF}&dZ@S{PBj&WW`gQGXjgr*PBT_JUp*NE}Ga(^|2f56ae(3p$sX`aKnnAJhhX^ zo0rJTgo26l1c}Z(3H8Lm!wbPFL`nvXrKQ9|f%G5+dK><1AmV}vfFh3CY{=Doi4Z7> z+nfxqvd~X!qTJj+Zrn|0lEz@Wh~dO01zjlpj35)up=@*~xvbCX3dQ@H&KdO`!Q{I; zbWn8!&!+PohTKVvK+%#2QY0Bt`2>l`EK-+gn8w z&N}teHPy}v96#@DD4J}-Ma<8k!O|z%)23=v3Mxv_G_5JL!e5Lx)BID*@S{O6Y&P-i97S&TMdelxjJ(V0C5Wt9gaMd}q(Ib?}9L>NT z<-p)s)m^Tch8 z&KPYi3u%PYqzS8^co-&w_PWLxI)zBiC8wr2krd*o#${UOh)VjMfPh)>i~KnkZI`ttMnuR(|x? zGG)q39axfe*&+#5i*!>lES=v(oqT=S)C<=gOgM=h)ovt>Zyd#(C0dvbR6FcWN?RyH z1z9C6+BxLcWR1_CMI{0iSe+T!rzO6F%}QQV*o)~(d)3;pZHb6oK!lw;bG=KlW!vG< zSfle!VC^@0<)W+Ggj>V+A^|Y9M!I`ZlZM9jQsfLnhS;B?B zolQXNi&appOYDN&%$3OCK*fra$wCFsn$+CUjfto|*#PxWS+ZJZZI~bd8P_FUccoVS z)3wwkRs1tm5pCFYY0Z)7UH>k{5ZH}fI5S&j`&YUQTD!DWP?^ki5#Heiw6`6iU%g$0 zy|lUonyiK1o6FmyJXwo!w`M)l?ImB6Fx+dc-YCn+ZEf1}-CoIcPE(`8c@;%>~onSIjTuYo`@`c|# z^;wGjr25@q=zZ5zyhG5X*Z&>j*fm|fHDIa@;shSwB_3X`J>K+%r3&^u_F)bxjhN|GIrVS-NoF)SQ=0uZIlbe|?O`7L zVU#r2q5WgFEn?5*-=z)RLuH-cI%J4zV(*<=Af}_$o#IHgTPvR98wSCmPo`y?dSEYm`V{glUrW^naS7B1jQZag!!<83ZlPCj6HRp0+( zSg|E%8YSh4HRa?TvS)5*S7l`!RbvokV|K3R;I!oz!sV&eWpNh8zwPH$4(5tHTw-41 zIF02KvV?VeB+Y=!EW zHfEu2YColD${l3Om1jkx=c;ze{JqhnMQ0raX%p5M?PV7!_38*R>05r{ktQQd9%t$C z<+TRUgvQD%{^?RxXWivzyOu+nhEBM)BZ~#>UG3>K-fN76WwRCuw1x?9H3`B#Y+)+u zqZZAq+vT|)9TcwYX?3Y;ZBt^dYc0y*V|FH7-3UnjYz4aNalPq_-s+5|w{&f7o#AM) zF70S+WdFxTCle)s+rFH(2I#jA=apS*1)4|UE-$=>*G`UUn%m<3k%i5%P03j9%4l5X z4jI9g)p!n#Z(LjM4#&hs$FXK?YsOyni3KB3%}=3h@;;Kw?#0X=Xyk@GC#osr+=z(A zh?bOZ33}>=-0dP<-^FDc$exS>7ZuNz>;MOv*M83VOTD{DCts|ODm zMvQMFDZ~-S@I)bQ4MS~w8z^nrEOw{mJ{>~2HDj)Y66JPTQO7RJ&R9_@$uH*8{>GL}8pBvXaK9+7C4~gvt z^dSuLu5~tN_S!^u!XqEyS61&YhxA%rVUTNKqekj~RO0!dHr)8KX4rm^)Np; zGRJCW2Ja5zzEnTMHb3GdKR@689VVCcFuHU3&GXSzX;9zw8x-_sjBYX%z+r#FMb~RL zv~X}#b`_NL!ld+|#&zM*^=RLrDDS-~*X%tH#-1v5ZHHOswpJUSTi--=a#ukKmtS72 z@Y#-aI~sR($8E4aLfz(YYgS^fnK2;@G%A$|IUk8$b1-{1l3rgt7uIw94)>6}4F7^( zl6pt@ktp_rh0}!<(PXdq4rKODS6!W!Ac?<_scebh?s(;xc2}-uYj5M=@zxaRY9u)> z&rbQW&Gh!$^rOaUPp@)e&l#2m8M(cA%o+7b%+^y!?Us3^#X@-udHRod?~?E;+b(*{ zarcwdYBUeR%aH?{1Mta+`m3Kve22*mS3)?qp63;nY{v*jXbBnWG$x!%7m1AHB zcLUWSP4JWyC=QZm_lqY9igzkd&Iyj6A+}!}o3DF~`1qa=`DY*RoMCMuDGztCddu*y z$FGc)$HR}V^lLYi7j=B0DYr%SeB;KhPxvaP7 zW`1@x=l$-Z_0P3+CM11)YD@ea{+YP@_xpAEi+!PQ{B(Cf2O?x@OTbl0P`7gJ>h&wwuwuuO zEo*kH)~mL(Nd?-LX~Ke34H8@^SMJ%odf9IK=<#pKTeb8OE^PQP;{U{o7c*|$@RqHg z28RMIy0qxWxtbrsb?n)u)VrP6lGOV7H0so*IT4q|d+DKCt*!f`H+?w&e?tRf{ zN53IQM)qy|IP&Dmmotayb0p>Hn3HZ?da(2D=GqU2-po{L*6rfQlP_=n{MXpD-3HCR z8+Tmz3VEaV%ob^Iz&;1p@9+OVfC2gknPfm2s8M^<(WQ`k)(NOuch_0BR(KCucp-)v zYDkzQw$Qd-P_{|)Dp26`x>i7JZGb8SUe8E{HrH{zmC z0a+Dv6;`?_r=8ZRo}O>bCm*0vj_PSk_hqTyNL(TY0Iad1IxDTUZbcwM(wSKupnOtl zt4nQKXVq+RDi*7(z$&{evnzG@p`KJtN}`|5$~35o!?k!UvH)27Ex6$_R3n*0o%xZZ z;>L8TglZX^ShwD)J1@PqG6|xn@h!L@m8RAU5tb@yx!+>({`xP%3Db#dxsYCVE~%U; z>`O3^j4}$7wzEP6Oo4-n*tg67Q3PzZF1{Zxb*5@&Nqqz_BN?(I&o-8bn zO==o+vRSLWwsOzP2BNehO8Mv7DX$n9V^*`hH{Y(2%Qd8#*<5zt2Jt-MkU*RDjY4`C z{y5}{-5Y9qr&4P)(1Mw5yU1-taHVq-KV%=j-P%z z?sr}cvZHa2Ty4p{4sEx#hQjM|?#V0P)Xb{ayd#u2uYI`BXCG$!^4V(-)6qjEy>!HA zI^8kUoU_Va|g1LjSc9F?FrHr5T$?vm8Zmk9(71{w#;fVQNr| zPU0f?C~23MiE&^jBqlU>2+Gwds8?Zw<5VOhM=D0Mn;FC-ET=WV;MMJqDk}*By{XO& z8nR4?L|4w(w#dY-vz`fzFeQ5Sx z8M0UckAPr|SuKqR(T(Cxmkx~7%_wEcu}vjNnc`+YIjYjE8S{I53?C^|s<38CO`t2i zDc=lg8BwP6npcaX*-(npp<)f36BQ>AFFHhX-i;*bBq~(1*3ReY2%aO2**xbM)vcZk zpU2dvMU|;D5;~KUTs`Z{bh@iie*f`}u*;^KQfb3RqP4E|k|+QvD$BNFl&QrtqFn=f z$|X9liB=V9PD_fZDdG@@f_*HiS~|&OmgDVkdQ(y{(ilVr4MZ^F<4@r_te{qRzXpy`YPBo3q+YhK0s|yE4=iCN(H24P>}B7w zTG|P7SVO;^?0kir(5DsGeE(bOFp6Q+-_|J=Q*RYb4IxwD6w|mr*)`A)SzFQWIyg8G zwq=cj93b+#)4aZvr+Tf!USSHk$=iu9GUqF0zWyt-`E@du>$BoE#xS%*8*MPNEavef z7{|UGXN$f2;Bz{4%x)e}g&#P$cup_LLelD+^Zc3*%NK-V#b}Agcw#*h`Z!x=E04SU zV%*41#)W?Lo_l!IQE@lTob6YHjcK>dg7AoCFJG9&8)*ZA|OX-TnbayKPpf4&--`XziF5oV%D(Vz z3#Z|Tcf8~hp?0c;*KW-Px~#}GIm|8c?GZBsy5eFebz`n`jNI7b>+YkaHTQ17?!4#^ zp|^#N4C?ge`=pIEI@A#Y@IR|s5POs*-;+weS#HcWUVRQ$v*Ry*E)*hj&ZpI5A~k=PHB~1dl-kV z_^~6Mmmyy|zW=@B^!84k<5Q<>)%$gI<7U0{JMVho?``<7=i2l}uXy9-$KZ@(`t7bi zeMt-ixTIGV!*$pE-EXgRy;I%liJoc80WW-=51z^{#_Hka>geUeobfrvIJk)|dFsc! z@*pMLk?Y*_C4Z3n@&0^>_g;Sc7To3LH#zFR{`@cB8h?0x|M|_HM>Ag>=;ds?w%8v2 zNu1pEUdT0@-R;%@CLHmBp78};z5JbKEg%7^Q42K}%{3fJ!I<T}Um!vn>;;hQ z86oWfAZ#V#u{EIzDw4AWpCraw70%!luHn3BVd-UJsWl%K(%Ht4;q-~3siEP|?U*M< z9wdU7D#BVV;L1J(Eeg+13o?M|q7!v1Gy= zBDBS1jXC80`CPC;1l_!1MJ6FnzF95eO~aIzj&zwk{>#W6Wgb$HY~*7y?xO={jX%Pq zR63bJ+DJ`eAU|dvU69*CcBO%-1u^CkEIpr3EmbUL8d}m=B-{&DcnC2Hq*6wXsO{Ta zcG$Cc$g`c@lZ>P3{2^EVWs0Q*I~GSf<_eiG1XzM4WNzR#ik)H#*)R^t*};uUn*U-@ zGLuneW{|C8WSpinMg$X4W9FF@CX(h!3S%lg8@}k{Q?g<5O(1Ndm}xdtvE$ZW19G6E%NGGn%}r&&d)d-Y~~K4x$dCuNQ(Sa?I1prQwQ zsCX@>h5jU1Ivn zmKNiM#@^#>Wrw<{Y=J10&L?Y9MwFJQWg2G(>L;FZm5Wkkm&Pb`4(PX7WTBR+Z)T?( zN~xbRXlpK3kP_viZd8%FOP3;PhSJiK;^3y9){{yqa5m_D0;-yx;+3{usmj)t{%7w5 z=MB>kX@w%HB=O%I7LA?09I@7wo}%iMnkcJMDfA^| z&OIw<9jctdC~wGUsIs96YU^Y1s(k(_r3&YzN{BCND!F=7r*h_zR{u_tvJGP1>AMo? zU7jh?Su46$sjISHrsk`m9xJUr%3IbPjiv~jjVZx$6|X9&uRe;Z(xI^Kl(~xNs-A4CisW~W z+Rd(1y!z+7qG!1FKX%4>qH(8?yq)~2$~sJ-Uq7OL$^MXS^PtGe#&q6w-(((O>aY`W>ua|R`& zT8pFlZQVxd-AZkxmhGDUtY0E-Jq<0FCM#3aYuzO6+)D04HUI6onyAU5Y@o&?mU1pc zVQt{5PQq$nnAT_jPO9m8lh|sf*`_J5UMu7hYV1DJ&=!l^Vrb!3ncRlr?y6HHK!$J1 zr?vJd-mV^_#TdpGFD_B2krHiN$}HUCs+dBC^bVAc;?1NoucbaNkOFP@4in`%)p;_- zGOFhdD((4pljpYM^73fPLhU>XEXKrdH;DxGdTJh7C58^J{FNXi8YBO%Q_hC2kNT^F zV(PFaup{+ux8_qsg6#1AqXf57UDlxjFc$eFZCE9^mW~10 z2=}TmF$pI9x})w@74TqQ@Xm^;fee$O$^{|B5FbPl)BmtyP)Jp3Z4djM=0XQn&}4Ho z@kw0J5!=KSPh1xN#} z5nr(!=R_XQhOecrmmaMj9dHRF?+taZBp5OxAMzo)K_oD;Be#JYK(Zu9G9^#4C08;g zU$Q1=GAD1cCuedJXmT60K`2LZD4#MZ3qTU6G7^9?5+uPZCxH`u@+2cc3D9yU=Q1sq zGA{SBF8{JG2Qx4avoIGkF(0!rCo?iHvobd`Ge5I43v&|avbW5#8>n(LL$fw#vn2xn zBsW45kU%E4fdFi?IX5yoD{>+maz>VH1J_n=Ape^9{p_!iES%o6Fy6ByOz1vKf*bVn zKQHn=r*k6@v?CYvBBOIaD>Ong^gkaoL_4%ZAM_|k^eDGMBad<ILbWO{2N#C?1>vTcqv`^FYPup}*<1|ng zwNM*1Q6IHZCpA;=^iVrBQbYApOLbHCbW~gQRAY5jKlD{|byj=zR!ag#n>0Ba1S69G zB(Jgnlt3e|wEz%6StmgwtF>Iev|X$8UFS7kGqfY9@xPc}Z|CCDgoKC0XDX#b&;KnEdzHp$k)go<_{Pv|0Ws@vk;b7kNgHauPgtBM`xo@AQ8EGdVXwB$R-+q%=y8 zaskYAl#{c!r1e2avSLTMB$NOWgn%~>`6K)Ij<>mvzd4)3`H#DKoY(oB%Q>Cjxt-@Z zpX0fo@A;qWxuEwspcnd}2Rfl2x}hgJqa(VUueVf7LSIL6VV6K72zMw8z@>u#Bct>o z13;N$b4wdEsSC8JH}pcMda0xOs;l~`+jJyE0;r?3l&3OA2Y@7?v>ZqRT3_=ib9zB1 z_o@@RWWTtvlk8<@t!D2cXw!$ZTzZ)_MBmn_*x&X|wgA)l# zOL(|S3Wlwv8ekBgqjGxRM->&W$_TmyNF@?0a&mTL`-_Sk_JwF#c(I0(3BmK}P zJ<~6})9U<%;1@pP6Tadf{^A?H<0n4j zNB-mQ{aBZ}q;tBY8~;Qc!15vQ_oR!xaHBj495P$exIdfz>6?B))A;H~cIyK)>c2kJ zTfUT&0IqArlDEOyqkOk}zAB6LG{e5?n||I?`(%3vdG@igFY#4UF^RqJKM;jyCun2B ze20^^B9}H~8}jzEIrp=6_s==Pw>%;P_amP_!>jWxr*_E8K{@~Rn6rBm$aOd;w|z%K z5g^2RM>y_xFhC>$AcsVfNRkdFMCeB0K}iT9I*bVMVZ(7ObR&Qv009M1&!0hu7CoADY15}sr&f(Pvs%lR zZD~Usd$zXNw*lYPy_ffH-@SqV79O1VaO1!q>fKn;jU_%{AF<(@kwE+vcA*{}JFHI2S`q&%pQ;OiRFs)9bE-^b(4! zL+eWP(76^>3N5CXIt!v$ifF=(HZFw-1Ob{r2!JHy&<@ljQh1c1tS+_B4J7Q7BMkuB z2z9$ujVdT1_~dX@(OnVkmDgW=4Hnp8g)NrYV~tG~*=3cLRM}^ljTYKzkKM?(Kl|*{ zFvAklYOyfE{T9zSDJ!=!ty*(a-F4Y**WJ@tE7vt{_2hEPd;i*tFB199@?6b|5Z5uk}l+!WRy7ZGzzT}o$>%Mps6tBGx8kD!b z`TkpQzX=b#a6>U-R4hgr(kfGGA?J0j!v{Cqa=wWNyw;11VoWUPz0kHT||I7`jM3$;-W&`kAnEC-~}z1K@4tCgE1>uz&gl5 z5r!~pTB0A=z*aBG%!@K)%FGMRHMVr6i+we;;SEg#C&N^BJrO2b*aB3( zB&4_9=#7bab7Eee2$2c;tyq_`BBro-Mf=#N4Wg3P7Z(LZF-~cWO)O&+%}7Qyrjdk&C_LfTj;OT}&a!FFF_`kY z$i*Z`2u2#hn$>s{v;hLsN`NCFEs=RlWhRrE%dD9joY_oilCYA0IpHiaco2NWA85vG;5;Ab&4E$KQ8ML00t!-74`$);kaLLb= z_|g(cr@6rcR)?>-6IC>27Kt`whp-G8tYHf)*u)-Iv50kSV61K^lMg+a+_=RpllHWmC7~N#=}vc_!_ix@l9H6?Kq^y%QXcfc`(5#dm%QUO zZ+X#sUiGGzz3X*vd*SY{YR_Y{sSJKP%(<5g!pYF-<31I^%!7>OeOuyAA{ z980_yLoBv2jjx4c7q3{yA@(tef!yLB3pvO)=JAnpjN~0BnaN9b@{o<(WGMHz$W$is zm81ORy{I@sS)Q_zzbxe{gL%wMj`3d3Y>PCfdC8UJFjrv-OKi?hh1ztXH^oWLZtnS; z5cac!)y6h<9{6o|8lpVwIbi3`bJ2-rw4x!+XiIw3b6=T?RN9iMLPgrq^#ly38y#v; zkNVN2?zE^)jp|dAdey0BwW?wLYFWFQ)~&X6tZR+yTmR2`*ME90-TXo*7xP-z#U}Q# zbB*j?FS}1*U9MOWJg%~mOPr)>aD)GxZB)YbT=U9I*ywuU+r~M-e}Z#0p&R6vY40K0 z6;I<*Ty7)ISW7d`D7|fgZ+Y*V-~IOYzX2X_fe)PE)8!DC&s}hZFPtwi){?`^Z5wjm zmVV*RX1QE==WhO%s05QfsMvUh|#j{O2p268?<%g5(&0k+S z1?@JkD;I7ik0)WkN_DAk-<~#w2=En?A`z1*T2_$k238zBHBlz=H! zw?Fr-p8xx6pa1&D|Ni~2{~WL70zs}2hOYsqkE~wkHT3M-oUa1U39eSC z_%g0sz>V!JEZo{I1c6TkNpJ+^OvA9{LjU;ADy-t~x@OBpu;xav76hOXaN}VlK^HEg z1o5Q?W8-0Xa0G=g2#IhAjj#xj@CcPK37K#Sov;a^@Cl``2=!(2ATRc!Fbk(}3$?Hd zx6tA|@Z!YA_4<6J0k4Ve*#%#M`ahceE^(Eq40g+7oAvC#`LZ^-_z8@0kYc7x(NX2uxLHsWs= zXzm5OrY*EW7HRkS%CR1|LmRWPANlbg{V^Z`av%k=AffOC2M_XG zj361(ARQ7Q!B7r~PZ~9@43Y2nfGZ=LaU<6x&~|8@J_!!JuKK7^7@6zPurDRAZzWNZ zC4=!L`LNjVhTX8od}uBuH!&6ffCS_~Ha5{Gxs=^yQyXyq?|GoKcyV`kcZVXy-L0i9 zZpDK;B)AjY-QC^Y-QA(MljXY3f9IT;-Mz67AvZFadFS{2yv#7LRH0n5QPji;8Kl@? zx>%vI(9^%7qoauENd3Ouqg`fY)Tp7Z$DlFfU~G0^Z0BJ57&z^YW$L_U>aSs%$6y}k zU|x1$Ug!9jIc3?7WeKQWo^e3?I4^usV}YE0%%0A$ykRgaJA4gMrIK=3VW?T58RJZh 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 Date: Fri, 9 Feb 2018 13:04:57 +0100 Subject: [PATCH 0819/1761] Fix debugging extension --- getting-started/debugging.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index f1b1f1b29..40b158966 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -121,7 +121,7 @@ iex(4)> Example.double_sum(1,2) When you started the debugger, a Graphical User Interface will open in your machine. We called `:int.ni(Example)` to prepare our module for debugging and then added a breakpoint to line 3 with `:int.break(Example, 3)`. After we call our function, we can see our process with break status in the debugger: -Debugger GUI video +Debugger GUI GIF Note: the Debugger snippet above was retrieved from ["Debugging techniques in Elixir" by Plataformatec](http://blog.plataformatec.com.br/2016/04/debugging-techniques-in-elixir-lang/). From ebf459640ee0338e0a32df316b10e414e4e467d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 9 Feb 2018 13:45:34 +0100 Subject: [PATCH 0820/1761] Update generated epubs --- _epub/lib/elixir_lang_guide.ex | 110 ++++++++++++++++++++--------- getting-started/debugging.markdown | 4 +- 2 files changed, 78 insertions(+), 36 deletions(-) diff --git a/_epub/lib/elixir_lang_guide.ex b/_epub/lib/elixir_lang_guide.ex index a2cbee81b..89de0a379 100644 --- a/_epub/lib/elixir_lang_guide.ex +++ b/_epub/lib/elixir_lang_guide.ex @@ -4,17 +4,17 @@ defmodule ElixirLangGuide do """ @type config :: %{ - guide: String.t, - homepage: String.t, - output: Path.t, - root_dir: Path.t, - scripts: [Path.t], - styles: [Path.t], - images: [Path.t] - } + guide: String.t(), + homepage: String.t(), + output: Path.t(), + root_dir: Path.t(), + scripts: [Path.t()], + styles: [Path.t()], + images: [Path.t()] + } @doc "Generate all guides" - @spec run(Path.t) :: :ok + @spec run(Path.t()) :: :ok def run(source) do config = %{ guide: nil, @@ -40,10 +40,10 @@ defmodule ElixirLangGuide do end defp log(file) do - Mix.shell.info [:green, "Generated guide at #{inspect file}"] + Mix.shell().info([:green, "Generated guide at #{inspect(file)}"]) end - @spec to_epub(config) :: String.t + @spec to_epub(config) :: String.t() defp to_epub(options) do nav = options.root_dir @@ -66,19 +66,22 @@ defmodule ElixirLangGuide do _ -> raise "invalid guide, allowed: `mix_otp`, `meta` or `getting_started`" end - Enum.flat_map(List.wrap(yaml), fn(section) -> - Enum.map(section["pages"], fn(%{"slug" => slug, "title" => title}) -> - %{id: slug, label: title, content: "#{slug}.xhtml", dir: section["dir"], - scripts: List.wrap(options.scripts), styles: List.wrap(options.styles)} - end) - end) + for section <- List.wrap(yaml), + %{"slug" => slug, "title" => title} <- section["pages"] do + %{ + id: slug, + label: title, + content: slug <> ".xhtml", + dir: section["dir"], + scripts: List.wrap(options.scripts), + styles: List.wrap(options.styles) + } + end end defp convert_markdown_pages(config, options) do config - |> Enum.map(&Task.async(fn -> - to_xhtml(&1, options) - end)) + |> Enum.map(&Task.async(fn -> to_xhtml(&1, options) end)) |> Enum.map(&Task.await(&1, :infinity)) end @@ -112,10 +115,20 @@ defmodule ElixirLangGuide do end images = - if options.guide == "mix_otp" do - [options.root_dir |> Path.join("images/contents/kv-observer.png")] - else - [] + case options.guide do + "getting_started" -> + [ + Path.join(options.root_dir, "images/contents/kv-observer.png"), + Path.join(options.root_dir, "images/contents/debugger-elixir.png") + ] + + "mix_otp" -> + [ + Path.join(options.root_dir, "images/contents/kv-observer.png") + ] + + "meta" -> + [] end config = %BUPE.Config{ @@ -152,6 +165,7 @@ defmodule ElixirLangGuide do |> remove_frontmatter() |> fix_backslashes() |> fix_images() + |> fix_js() |> map_links(options) end @@ -176,24 +190,46 @@ defmodule ElixirLangGuide do end defp fix_backslashes(content) do - String.replace(content, ~r/backslashes \(`\\`\) on Windows/, ~S"backslashes (`\\\\`) on Windows") + String.replace( + content, + ~r/backslashes \(`\\`\) on Windows/, + ~S"backslashes (`\\\\`) on Windows" + ) end defp fix_images(content) do - String.replace(content, ~r{/images/contents/kv-observer.png" width="640}, "assets/kv-observer.png") + content + |> String.replace( + ~s{/images/contents/kv-observer.png" width="640}, + "assets/kv-observer.png" + ) + |> String.replace( + ~s{/images/contents/debugger-elixir.gif" width="640}, + "assets/debugger-elixir.png" + ) + end + + defp fix_js(content) do + content + |> String.replace(~r{}, "") + |> String.replace([""], "") end defp map_links(content, options) do - Regex.replace(~r/\[([^\]]+)\]\(([^\)]+)\)/, content, fn(_, text, href) -> + Regex.replace(~r/\[([^\]]+)\]\(([^\)]+)\)/, content, fn _, text, href -> case URI.parse(href) do %URI{scheme: nil, path: "/getting-started/meta/" <> path} -> map_meta_links(text, path, options) + %URI{scheme: nil, path: "/getting-started/mix-otp/" <> path} -> map_mix_otp_link(text, path, options) + %URI{scheme: nil, path: "/getting-started/" <> path} -> map_getting_started_links(text, path, options) + %URI{scheme: nil, path: "/" <> path} -> "[#{text}](#{options.homepage}/#{path})" + _ -> "[#{text}](#{href})" end @@ -201,18 +237,24 @@ defmodule ElixirLangGuide do end defp map_meta_links(text, path, %{guide: "meta"}), do: map_section_links(text, path) - defp map_meta_links(text, path, options), do: "[#{text}](#{options.homepage}/getting-started/meta/#{path})" + + defp map_meta_links(text, path, options), + do: "[#{text}](#{options.homepage}/getting-started/meta/#{path})" defp map_mix_otp_link(text, path, %{guide: "mix_otp"}), do: map_section_links(text, path) - defp map_mix_otp_link(text, path, options), do: "[#{text}](#{options.homepage}/getting-started/mix-otp/#{path})" - defp map_getting_started_links(text, path, %{guide: "getting_started"}), do: map_section_links(text, path) - defp map_getting_started_links(text, path, options), do: "[#{text}](#{options.homepage}/getting-started/#{path})" + defp map_mix_otp_link(text, path, options), + do: "[#{text}](#{options.homepage}/getting-started/mix-otp/#{path})" + + defp map_getting_started_links(text, path, %{guide: "getting_started"}), + do: map_section_links(text, path) + + defp map_getting_started_links(text, path, options), + do: "[#{text}](#{options.homepage}/getting-started/#{path})" defp map_section_links(text, path), do: "[#{text}](#{String.replace(path, "html", "xhtml")})" require EEx - EEx.function_from_file(:defp, :wrap_html, - Path.expand("templates/page.eex", __DIR__), - [:content, :config]) + page = Path.expand("templates/page.eex", __DIR__) + EEx.function_from_file(:defp, :wrap_html, page, [:content, :config]) end diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index 40b158966..d7674657a 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -89,7 +89,7 @@ Similar to `IEx.pry/0`, once a breakpoint is reached code execution stops until ## Debugger -For those who enjoy breakpoints but are rather interested on a visual debugger, Erlang/OTP ships with a graphical debugger conveniently named `:debugger`. Let's define some code: +For those who enjoy breakpoints but are rather interested on a visual debugger, Erlang/OTP ships with a graphical debugger conveniently named `:debugger`. Let's define a module: ```elixir defmodule Example do @@ -119,7 +119,7 @@ iex(3)> :int.break(Example, 3) iex(4)> Example.double_sum(1,2) ``` -When you started the debugger, a Graphical User Interface will open in your machine. We called `:int.ni(Example)` to prepare our module for debugging and then added a breakpoint to line 3 with `:int.break(Example, 3)`. After we call our function, we can see our process with break status in the debugger: +When you start the debugger, a Graphical User Interface will open in your machine. We call `:int.ni(Example)` to prepare our module for debugging and then add a breakpoint to line 3 with `:int.break(Example, 3)`. After we call our function, we can see our process with break status in the debugger: Debugger GUI GIF From 87b8bbc47db1415de448e0cbb0640fa19360253a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 9 Feb 2018 14:08:30 +0100 Subject: [PATCH 0821/1761] Push missing epub file --- images/contents/debugger-elixir.png | Bin 0 -> 119006 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/contents/debugger-elixir.png diff --git a/images/contents/debugger-elixir.png b/images/contents/debugger-elixir.png new file mode 100644 index 0000000000000000000000000000000000000000..9246ff85ff9121611ee12a0377f75967af484baf GIT binary patch literal 119006 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%0DdDC-FifFXQi*`2o6E&ZZnzx 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 TF*@Pw(YL&;%1gNPJOBR$6gA3* literal 0 HcmV?d00001 From b74e73bc14bc4246a32a7ae20a101791eb353773 Mon Sep 17 00:00:00 2001 From: Kevin Busby Date: Fri, 9 Feb 2018 20:40:17 +0000 Subject: [PATCH 0822/1761] Fix a typo (#1089) --- getting-started/debugging.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index d7674657a..dca55e1e9 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -89,7 +89,7 @@ Similar to `IEx.pry/0`, once a breakpoint is reached code execution stops until ## Debugger -For those who enjoy breakpoints but are rather interested on a visual debugger, Erlang/OTP ships with a graphical debugger conveniently named `:debugger`. Let's define a module: +For those who enjoy breakpoints but are rather interested in a visual debugger, Erlang/OTP ships with a graphical debugger conveniently named `:debugger`. Let's define a module: ```elixir defmodule Example do From cb0987997be2b463399510c6b690f7ed52913168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 12 Feb 2018 09:24:22 +0100 Subject: [PATCH 0823/1761] Use start_link/1 instead of start_link/3 --- getting-started/mix-otp/task-and-gen-tcp.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 6cad84272..dcd139bf4 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -126,7 +126,7 @@ For now, there is a more important bug we need to fix: what happens if our TCP a We have learned about agents, generic servers, and supervisors. They are all meant to work with multiple messages or manage state. But what do we use when we only need to execute some task and that is it? -[The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/3` function that receives a module, function, and arguments, allowing us to run a given function as part of a supervision tree. +[The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/1` function that receives an anonymous function and executes it inside a new process that will be of a supervision tree. Let's give it a try. Open up `lib/kv_server/application.ex`, and let's change the supervisor in the `start/2` function to the following: @@ -141,6 +141,8 @@ Let's give it a try. Open up `lib/kv_server/application.ex`, and let's change th end ``` +As usual, we've passed a two-element tuple as a child specification, which in turn will invoke `Task.start_link/1`. + With this change, we are saying that we want to run `KVServer.accept(4040)` as a task. We are hardcoding the port for now but this could be changed in a few ways, for example, by reading the port out of the system environment when starting the application: ```elixir From cd1bac749e0a08f1e5c95d03e6b9c94941d338c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C5=A1a=20Juri=C4=87?= Date: Tue, 20 Feb 2018 15:43:38 +0100 Subject: [PATCH 0824/1761] Change Elixir in Action link to 2nd edition (#1092) --- learning.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learning.markdown b/learning.markdown index 660c6bbd3..99e558010 100644 --- a/learning.markdown +++ b/learning.markdown @@ -27,7 +27,7 @@ Elixir’s pragmatic syntax and built-in support for metaprogramming will make y

      Elixir in Action

      -Elixir in Action cover Elixir in Action is a tutorial book that aims to bring developers new to Elixir and Erlang to the point where they can develop complex systems on their own. No knowledge about Elixir, Erlang, or functional programming is required, but it is assumed that a reader has a few years of production experience using mainstream OO languages, for example C#, Java, Python, or Ruby. From 16918738dc508131a2cf9998888431dd18945765 Mon Sep 17 00:00:00 2001 From: Mahyar Abbaspour Date: Wed, 21 Feb 2018 21:11:03 +0330 Subject: [PATCH 0825/1761] Add explanation for functions without body (#1093) --- getting-started/mix-otp/docs-tests-and-with.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index c6e37a680..3fcb773f6 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -331,6 +331,8 @@ end Every function clause dispatches the appropriate command to the `KV.Registry` server that we registered during the `:kv` application startup. Since our `:kv_server` depends on the `:kv` application, it is completely fine to depend on the services it provides. +You might have noticed we have a function head, `def run(command)`, without a body. In the [Modules and Functions](/getting-started/modules-and-functions#default-arguments) chapter, we learned that a bodiless function can be used to declare default arguments for a multi-clause function. Here is another use case where we use a function without a body to document what the arguments are. + Note that we have also defined a private function named `lookup/2` to help with the common functionality of looking up a bucket and returning its `pid` if it exists, `{:error, :not_found}` otherwise. By the way, since we are now returning `{:error, :not_found}`, we should amend the `write_line/2` function in `KVServer` to print such error as well: From 569eb3112a10254ffa26d6614a8298a485e824ab Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 22 Feb 2018 09:13:23 -0800 Subject: [PATCH 0826/1761] Fix a typo in agent.markdown (#1094) --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 56c192f7f..5c270ee5d 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -67,7 +67,7 @@ defmodule KV.BucketTest do end ``` -Our first test starts a new `KV.Bucket` by calling the `start_link/1` and passing an empty list of options. Then we performs some `get/2` and `put/3` operations on it, asserting the result. +Our first test starts a new `KV.Bucket` by calling the `start_link/1` and passing an empty list of options. Then we perform some `get/2` and `put/3` operations on it, asserting the result. Also note the `async: true` option passed to `ExUnit.Case`. This option makes the test case run in parallel with other `:async` test cases by using multiple cores in our machine. This is extremely useful to speed up our test suite. However, `:async` must *only* be set if the test case does not rely on or change any global values. For example, if the test requires writing to the filesystem or access a database, keep it synchronous (omit the `:async` option) to avoid race conditions between tests. From e661e557dfae128184d3716e41cfc3672a74e30a Mon Sep 17 00:00:00 2001 From: Ronald Klaus Date: Sun, 25 Feb 2018 20:05:58 +0100 Subject: [PATCH 0827/1761] Fix message after Stream.cycle call on lists (#1095) --- getting-started/enumerables-and-streams.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index f5ac5f791..9c0ce0b34 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -95,7 +95,7 @@ Many functions in the `Stream` module accept any enumerable as an argument and r ```iex iex> stream = Stream.cycle([1, 2, 3]) -#Function<15.16982430/2 in Stream.cycle/1> +#Function<15.16982430/2 in Stream.unfold/2> iex> Enum.take(stream, 10) [1, 2, 3, 1, 2, 3, 1, 2, 3, 1] ``` From 06a9813d5f39b44817f258cc33de7fde74c4cf42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 28 Feb 2018 11:00:55 +0100 Subject: [PATCH 0828/1761] Release v1.6.2 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index e6abb95f4..2e4a051a7 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -32,5 +32,5 @@ v1_5: v1_6: name: v1.6 - version: 1.6.1 + version: 1.6.2 docs_zip: true \ No newline at end of file diff --git a/elixir.csv b/elixir.csv index 45d449d5f..81de83da8 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.6.2,https://github.com/elixir-lang/elixir/releases/download/v1.6.2/Precompiled.zip,release,1,a782d3986b00459305ec4c608cbd74c7be17eb76,bffe3fb42768b381a0627cbb855f41a9aea1d5a258e4d1302189560583fec8d62133217858f8d9b0dfe4d42838e9844b840915292c228bd02047af15bd1eb60b 1.6.1,https://github.com/elixir-lang/elixir/releases/download/v1.6.1/Precompiled.zip,release,1,93ac5a729e69cb47ee672d66f7cffcb9f3e669a2,2c200f82093b841966c2b59bdc1118b3eaa1aa774087ed9c93c4debcf286785eca3a20733689e5c3b04feed9581964273d6d306aec84b4056206effbd124d7c4 1.6.0,https://github.com/elixir-lang/elixir/releases/download/v1.6.0/Precompiled.zip,release,1,ecb2db40e830c59e77f710f000c18cc002615d4b,6de9a310d8bea54bacc8682f6dd49cd7440aa4c1be3439f9af8a1edf0c3d5bdf36b4757c278e60ffaabcaea8942fe72dd6bcd36efe2fea7606f69fed6d4d8ecc 1.5.3,https://github.com/elixir-lang/elixir/releases/download/v1.5.3/Precompiled.zip,release,1,db8ad5da88751d55830a541527ef767038077625,be33c8f29e04d5367b59fc5329a8d04dfc1e9fdff0aaffe7c015a4098dbcb4eaad8395aafc5bfc1b75147c0b79a0c9a4bc28a72d9d1d4187891f4b9f025054e7 From 7d4f9bdcc87192ac84258c62781988667bdffffc Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Wed, 28 Feb 2018 20:19:14 +0000 Subject: [PATCH 0829/1761] Remove dead link to Erlang cookbook (#1096) Seems the cookbook is no more. --- crash-course.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index 1cf8b7497..7d9b323f5 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -857,11 +857,10 @@ If you are not using rebar, the easiest approach to use Elixir in your existing ## Further reading -Erlang's official documentation site has a nice [collection][4] of programming examples. It can be a good exercise to translate them into Elixir. [Erlang cookbook][5] offers even more useful code examples. +Erlang's official documentation site has a nice [collection][4] of programming examples. It can be a good exercise to translate them into Elixir. Elixir also provides a [Getting Started guide][6] and has [documentation available online][7]. [4]: http://www.erlang.org/doc/programming_examples/users_guide.html -[5]: http://schemecookbook.org/Erlang/TOC [6]: /getting-started/introduction.html [7]: /docs.html From 2e683bb83add506713410a14306f247b5de60316 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Mon, 5 Mar 2018 06:40:48 +0100 Subject: [PATCH 0830/1761] Edit pass in the umbrellas guide (#1098) --- _data/getting-started.yml | 4 +-- ...pendencies-and-umbrella-projects.markdown} | 32 ++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) rename getting-started/mix-otp/{dependencies-and-umbrella-apps.markdown => dependencies-and-umbrella-projects.markdown} (93%) diff --git a/_data/getting-started.yml b/_data/getting-started.yml index 5d14f75e9..bdba92944 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -92,8 +92,8 @@ - title: ETS slug: ets - - title: Dependencies and umbrella apps - slug: dependencies-and-umbrella-apps + - title: Dependencies and umbrella projects + slug: dependencies-and-umbrella-projects - title: Task and gen_tcp slug: task-and-gen-tcp diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown similarity index 93% rename from getting-started/mix-otp/dependencies-and-umbrella-apps.markdown rename to getting-started/mix-otp/dependencies-and-umbrella-projects.markdown index c33d3b7f1..d6978dd8f 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown @@ -1,6 +1,7 @@ --- layout: getting-started title: Dependencies and umbrella projects +redirect_from: /getting-started/mix-otp/dependencies-and-umbrella-apps.html --- # {{ page.title }} @@ -49,7 +50,7 @@ end This dependency refers to the latest version of Plug in the 1.x.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](https://hexdocs.pm/elixir/Version.html). -Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage git dependencies too: +Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage Git dependencies too: ```elixir def deps do @@ -78,9 +79,9 @@ The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, de Internal dependencies are the ones that are specific to your project. They usually don't make sense outside the scope of your project/company/organization. Most of the time, you want to keep them private, whether due to technical, economic or business reasons. -If you have an internal dependency, Mix supports two methods to work with them: git repositories or umbrella projects. +If you have an internal dependency, Mix supports two methods to work with them: Git repositories or umbrella projects. -For example, if you push the `kv` project to a git repository, you'll need to list it in your deps code in order to use it: +For example, if you push the `kv` project to a Git repository, you'll need to list it in your deps code in order to use it: ```elixir def deps do @@ -90,9 +91,9 @@ end If the repository is private though, you may need to specify the private URL `git@github.com:YOUR_ACCOUNT/kv.git`. In any case, Mix will be able to fetch it for you as long as you have the proper credentials. -Using git dependencies for internal dependencies is somewhat discouraged in Elixir. Remember that the runtime and the Elixir ecosystem already provide the concept of applications. As such, we expect you to frequently break your code into applications that can be organized logically, even within a single project. +Using Git repositories for internal dependencies is somewhat discouraged in Elixir. Remember that the runtime and the Elixir ecosystem already provide the concept of applications. As such, we expect you to frequently break your code into applications that can be organized logically, even within a single project. -However, if you push every application as a separate project to a git repository, your projects may become very hard to maintain as you will spend a lot of time managing those git repositories rather than writing your code. +However, if you push every application as a separate project to a Git repository, your projects may become very hard to maintain as you will spend a lot of time managing those Git repositories rather than writing your code. For this reason, Mix supports "umbrella projects". Umbrella projects are used to build applications that run together in a single repository. That is exactly the style we are going to explore in the next sections. @@ -113,8 +114,9 @@ Let's start a new project using `mix new`. This new project will be named `kv_um ```bash $ mix new kv_umbrella --umbrella -* creating .gitignore * creating README.md +* creating .formatter.exs +* creating .gitignore * creating mix.exs * creating apps * creating config @@ -124,13 +126,13 @@ $ mix new kv_umbrella --umbrella From the printed information, we can see far fewer files are generated. The generated `mix.exs` file is different too. Let's take a look (comments have been removed): ```elixir -defmodule KvUmbrella.Mixfile do +defmodule KvUmbrella.MixProject do use Mix.Project def project do [ apps_path: "apps", - start_permanent: Mix.env == :prod, + start_permanent: Mix.env() == :prod, deps: deps() ] end @@ -153,7 +155,7 @@ $ mix new kv_server --module KVServer --sup The generated files are similar to the ones we first generated for `kv`, with a few differences. Let's open up `mix.exs`: ```elixir -defmodule KVServer.Mixfile do +defmodule KVServer.MixProject do use Mix.Project def project do @@ -164,8 +166,8 @@ defmodule KVServer.Mixfile do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.6-dev", - start_permanent: Mix.env == :prod, + elixir: "~> 1.7-dev", + start_permanent: Mix.env() == :prod, deps: deps() ] end @@ -250,9 +252,9 @@ And it works! Since we want `kv_server` to eventually use the functionality we defined in `kv`, we need to add `kv` as a dependency to our application. -## In umbrella dependencies +## Dependencies within an umbrella project -Dependencies between applications in an umbrella project must still be explicitly defined and Mix makes it easy to do so. Open up `apps/kv_server/mix.exs` and change the `deps/0` function to the following: +Dependencies between applications in an umbrella project must still be explicitly defined and Mix makes easy to do so. Open up `apps/kv_server/mix.exs` and change the `deps/0` function to the following: ```elixir defp deps do @@ -269,7 +271,7 @@ Finally, copy the `kv` application we have built so far to the `apps` directory + kv + kv_server -We now need to modify `apps/kv/mix.exs` to contain the umbrella entries we have seen in `apps/kv_server/mix.exs`. Open up `apps/kv/mix.exs` and add to the `project` function: +We now need to modify `apps/kv/mix.exs` to contain the umbrella entries we have seen in `apps/kv_server/mix.exs`. Open up `apps/kv/mix.exs` and add to the `project/0` function: ```elixir build_path: "../../_build", @@ -296,7 +298,7 @@ In this chapter, we have learned more about Mix dependencies and umbrella projec When using umbrella applications, it is important to have a clear boundary between them. Our upcoming `kv_server` must only access public APIs defined in `kv`. Think of your umbrella apps as any other dependency or even Elixir itself: you can only access what is public and documented. Reaching into private functionality in your dependencies is a poor practice that will eventually cause your code to break when a new version is up. -Umbrella applications can also be used as a stepping stone for eventually extracting an application from your codebase. For example, imagine a web application that has to send "push notifications" to its users. The whole "push notifications system" can be developed as a separate application in the umbrella, with its own supervision tree and APIs. If you ever run into a situation where another project needs the push notifications system, the system can be moved to a private repository or a hex.pm package. +Umbrella applications can also be used as a stepping stone for eventually extracting an application from your codebase. For example, imagine a web application that has to send "push notifications" to its users. The whole "push notifications system" can be developed as a separate application in the umbrella, with its own supervision tree and APIs. If you ever run into a situation where another project needs the push notifications system, the system can be moved to a private repository or a Hex package. Developers may also use umbrella projects to break large business domains apart. The caution here is to make sure the domains don't depend on each other (also known as cyclic dependencies). If you run into such situations, it means those applications are not as isolated from each other as you originally thought, and you have architectural and design issues to solve. From 5408b296ca476dd82b996f8e21733ecad62e3497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 9 Mar 2018 09:06:16 +0100 Subject: [PATCH 0831/1761] Release v1.6.3 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 2e4a051a7..3ab5f532a 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -32,5 +32,5 @@ v1_5: v1_6: name: v1.6 - version: 1.6.2 + version: 1.6.3 docs_zip: true \ No newline at end of file diff --git a/elixir.csv b/elixir.csv index 81de83da8..7a86a7906 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.6.3,https://github.com/elixir-lang/elixir/releases/download/v1.6.3/Precompiled.zip,release,1,70b586cf5516f2562217198f140d19b3a02bf7e0,35baa39fb28bd06bc4dce68a5227752efbbeb3ee82a221060bf8e110e835feceb1d14c557a0746a7940d1b53a2b4db0e1ae74478c4ab424a47cfc0ca31453562 1.6.2,https://github.com/elixir-lang/elixir/releases/download/v1.6.2/Precompiled.zip,release,1,a782d3986b00459305ec4c608cbd74c7be17eb76,bffe3fb42768b381a0627cbb855f41a9aea1d5a258e4d1302189560583fec8d62133217858f8d9b0dfe4d42838e9844b840915292c228bd02047af15bd1eb60b 1.6.1,https://github.com/elixir-lang/elixir/releases/download/v1.6.1/Precompiled.zip,release,1,93ac5a729e69cb47ee672d66f7cffcb9f3e669a2,2c200f82093b841966c2b59bdc1118b3eaa1aa774087ed9c93c4debcf286785eca3a20733689e5c3b04feed9581964273d6d306aec84b4056206effbd124d7c4 1.6.0,https://github.com/elixir-lang/elixir/releases/download/v1.6.0/Precompiled.zip,release,1,ecb2db40e830c59e77f710f000c18cc002615d4b,6de9a310d8bea54bacc8682f6dd49cd7440aa4c1be3439f9af8a1edf0c3d5bdf36b4757c278e60ffaabcaea8942fe72dd6bcd36efe2fea7606f69fed6d4d8ecc From 2c8ff99b06bf51f9cebdc0d6a6ccf7e9f9b6dd83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 16 Mar 2018 12:43:12 +0100 Subject: [PATCH 0832/1761] Release v1.6.4 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 3ab5f532a..bfe43f0f4 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -32,5 +32,5 @@ v1_5: v1_6: name: v1.6 - version: 1.6.3 + version: 1.6.4 docs_zip: true \ No newline at end of file diff --git a/elixir.csv b/elixir.csv index 7a86a7906..2e2a06cda 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.6.4,https://github.com/elixir-lang/elixir/releases/download/v1.6.4/Precompiled.zip,release,1,3b778a203785eb70b48209b850458959d0f90495,f5bc98bac4f370b89f1abda62672b7ede8dd0147c47cc42d492f47bf155ebe7784babffdfcdb1f6a9d3b7dbb4bbd549d8ca8648d0d2b268ed049b85e372e7a6e 1.6.3,https://github.com/elixir-lang/elixir/releases/download/v1.6.3/Precompiled.zip,release,1,70b586cf5516f2562217198f140d19b3a02bf7e0,35baa39fb28bd06bc4dce68a5227752efbbeb3ee82a221060bf8e110e835feceb1d14c557a0746a7940d1b53a2b4db0e1ae74478c4ab424a47cfc0ca31453562 1.6.2,https://github.com/elixir-lang/elixir/releases/download/v1.6.2/Precompiled.zip,release,1,a782d3986b00459305ec4c608cbd74c7be17eb76,bffe3fb42768b381a0627cbb855f41a9aea1d5a258e4d1302189560583fec8d62133217858f8d9b0dfe4d42838e9844b840915292c228bd02047af15bd1eb60b 1.6.1,https://github.com/elixir-lang/elixir/releases/download/v1.6.1/Precompiled.zip,release,1,93ac5a729e69cb47ee672d66f7cffcb9f3e669a2,2c200f82093b841966c2b59bdc1118b3eaa1aa774087ed9c93c4debcf286785eca3a20733689e5c3b04feed9581964273d6d306aec84b4056206effbd124d7c4 From fa6630c094a6cd2ee1e7bfd9f59aa96b3a5c7be6 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Fri, 16 Mar 2018 21:15:58 +0100 Subject: [PATCH 0833/1761] Improve an example in the StreamData blog post --- ...ng-and-data-generation-for-elixir.markdown | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown index 75aa951a2..c122a780e 100644 --- a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown +++ b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown @@ -102,19 +102,17 @@ defmodule MyPropertyTest do use ExUnit.Case, async: true use ExUnitProperties - test "sum of positive integer is greater than both integers" do - check all a <- integer(), - b <- integer(), - a > 0 and b > 0, - sum = a + b do - assert sum > a - assert sum > b + test "the in/2 operator works with lists" do + check all list <- list_of(term()), + list != [], + elem <- member_of(list) do + assert elem in list end end end ``` -As you can see, we can filter generated data (`a > 0 and b > 0`) directly in the `check all` macro. We can also do simple assignments (`sum = a + b`). The example above uses the `check all` macro inside a regular `test`. If you want that your properties are reported as "property" at the end of an ExUnit test run, you can use the `property` macro instead: +As you can see, we can filter generated data (`list != []`) directly in the `check all` macro. We can also do simple assignments. The example above uses the `check all` macro inside a regular `test`. If you want that your properties are reported as "property" at the end of an ExUnit test run, you can use the `property` macro instead: ```elixir defmodule MyPropertyTest do @@ -122,12 +120,10 @@ defmodule MyPropertyTest do use ExUnitProperties property "sum of positive integer is greater than both integers" do - check all a <- integer(), - b <- integer(), - a > 0 and b > 0, - sum = a + b do - assert sum > a - assert sum > b + check all list <- list_of(term()), + list != [], + elem <- member_of(list) do + assert elem in list end end end From e0b88ef6a539d16ae103e429a99b107682440c74 Mon Sep 17 00:00:00 2001 From: Armand Date: Sat, 17 Mar 2018 08:45:51 +0100 Subject: [PATCH 0834/1761] Adding explanation about the naming conventions (#1100) * Added explanation about a naming convention The naming conventions are not really explained progressively, and on this page, a variable is named `_sep` while the reader has not been taught yet the meaning of this convention. This is somewhat confusing, as the newcomer might wonder whether the leading underscore is part of the syntax itself. Thus, I am proposing a short explanation about this naming convention, with a link toward the reference from hexdocs. * Added explanation about the trailing ? convention The naming conventions are not really explained progressively, and on this page, a function is named `?zero` while the reader has not been taught yet the meaning of this convention, and might wonder whether the `?` is part of the syntax. Thus, I am proposing a short explanation about this naming convention, with a link toward the reference from hexdocs. --- getting-started/modules-and-functions.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/getting-started/modules-and-functions.markdown b/getting-started/modules-and-functions.markdown index 3a610ce8d..f31b7fe65 100644 --- a/getting-started/modules-and-functions.markdown +++ b/getting-started/modules-and-functions.markdown @@ -125,6 +125,8 @@ IO.puts Math.zero?([1, 2, 3]) #=> ** (FunctionClauseError) IO.puts Math.zero?(0.0) #=> ** (FunctionClauseError) ``` +*The trailing question mark in `zero?` means that this function returns a boolean; see [Naming Conventions](https://hexdocs.pm/elixir/master/naming-conventions.html#trailing-question-mark-foo).* + Giving an argument that does not match any of the clauses raises an error. Similar to constructs like `if`, named functions support both `do:` and `do`/`end` block syntax, as [we learned `do`/`end` is a convenient syntax for the keyword list format](/getting-started/case-cond-and-if.html#doend-blocks). For example, we can edit `math.exs` to look like this: @@ -244,6 +246,8 @@ IO.puts Concat.join("Hello", "world", "_") #=> Hello_world IO.puts Concat.join("Hello") #=> Hello ``` +*The leading underscore in `_sep` means that the variable will be ignored in this function; see [Naming Conventions](https://hexdocs.pm/elixir/master/naming-conventions.html#underscore-_foo).* + When using default values, one must be careful to avoid overlapping function definitions. Consider the following example: ```elixir From 36d69f32813ed00a5c6112ced92cbe74237957ef Mon Sep 17 00:00:00 2001 From: Bertoldi Date: Sun, 18 Mar 2018 12:42:26 +0100 Subject: [PATCH 0835/1761] Right preview of next chapter in 'basic operators' (#1101) Next chapter is about pattern matching and the match operator, not type conversion and control flow. --- getting-started/basic-operators.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index e8ccc0deb..a536fbbb2 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -113,4 +113,4 @@ You don't actually need to memorize this ordering, it's enough to know that this For reference information about operators (and ordering), check the [reference page on operators](/docs/master/elixir/operators.html). -In the next chapter, we are going to discuss some basic functions, data type conversions, and a bit of control flow. +In the next chapter, we are going to discuss pattern matching through the use of `=`, the match operator, . From 0a7686df184bfb650f2861edbb45732ff708d73c Mon Sep 17 00:00:00 2001 From: Bertoldi Date: Sun, 18 Mar 2018 15:17:39 +0100 Subject: [PATCH 0836/1761] Fix typo in 'Basic operators' (#1103) --- getting-started/basic-operators.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index a536fbbb2..eac8c3e6c 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -113,4 +113,4 @@ You don't actually need to memorize this ordering, it's enough to know that this For reference information about operators (and ordering), check the [reference page on operators](/docs/master/elixir/operators.html). -In the next chapter, we are going to discuss pattern matching through the use of `=`, the match operator, . +In the next chapter, we are going to discuss pattern matching through the use of `=`, the match operator. From 21fa94cdf960d71bcc8a6ac87ddaff60b05902d4 Mon Sep 17 00:00:00 2001 From: Jori van Ee Date: Sat, 24 Mar 2018 19:13:20 +0100 Subject: [PATCH 0837/1761] Use Elixir vanity URL (#1106) --- _includes/important-links.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 2c3415f8b..9821e3863 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -15,7 +15,7 @@

      Join the Community

      Z|ITTib9nS_rD5c_N|ihADx==c%oeuVqL@vI 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 z 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

-{% include try-elixir.html %} -

Important links

From 664e1b06ec7875ae457d99bc5f21176ed466221d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 12 Jul 2018 13:27:46 +0200 Subject: [PATCH 0885/1761] Update important-links.html --- _includes/important-links.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 3ee6eb0c6..61b3099b2 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -23,8 +23,8 @@

Join the Community

From 07fffa5a0002ef6a525d37758bf985a6479e75d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 12 Jul 2018 18:44:40 +0200 Subject: [PATCH 0886/1761] Remove unused images --- images/learning/try-elixir-logo.png | Bin 5524 -> 0 bytes images/learning/try-elixir.png | Bin 59446 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/learning/try-elixir-logo.png delete mode 100644 images/learning/try-elixir.png diff --git a/images/learning/try-elixir-logo.png b/images/learning/try-elixir-logo.png deleted file mode 100644 index 302b580e75a05640d0d1af1a31cd2009de81ce53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5524 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 Date: Thu, 12 Jul 2018 19:55:24 +0200 Subject: [PATCH 0887/1761] Push link for mini docu --- _includes/important-links.html | 2 ++ _includes/mini-docu.html | 7 +++++++ _layouts/getting-started.html | 1 + css/style.css | 29 +++++++++++++++++++++++++++++ images/learning/mini-docu.png | Bin 0 -> 5884 bytes 5 files changed, 39 insertions(+) create mode 100644 _includes/mini-docu.html create mode 100644 images/learning/mini-docu.png diff --git a/_includes/important-links.html b/_includes/important-links.html index 61b3099b2..25efd819e 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -20,6 +20,8 @@

Join the Community

+{% include mini-docu.html %} +

Important links

From dcc3803da62cf86951a9734136afba7ba62b5025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=ADcero=20Pablo?= Date: Fri, 31 Aug 2018 05:11:39 -0300 Subject: [PATCH 0912/1761] Update task-and-gen-tcp.markdown (#1164) --- getting-started/mix-otp/task-and-gen-tcp.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 5b3a1148d..bc3d5b821 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -24,9 +24,9 @@ A TCP server, in broad strokes, performs the following steps: Let's implement those steps. Move to the `apps/kv_server` application, open up `lib/kv_server.ex`, and add the following functions: ```elixir -require Logger - defmodule KVServer do + require Logger + def accept(port) do # The options below mean: # From 676dc9568bbf88a0b453f66c7a5f6ad3ae2b7676 Mon Sep 17 00:00:00 2001 From: annag Date: Sat, 1 Sep 2018 01:30:09 -0700 Subject: [PATCH 0913/1761] rephrasing to avoid mis-matched pronouns. (#1165) changed from a phrase using the mis-matched pronouns "one" and "their" to a rephrasing without any such pronouns. --- getting-started/debugging.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index a044fee51..0225cdd86 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -7,7 +7,7 @@ title: Debugging {% include toc.html %} -There are a number of ways one can debug their code in Elixir. In this chapter we will cover some of the more common ways of doing so. +There are a number of ways to debug code in Elixir. In this chapter we will cover some of the more common ways of doing so. ## IO.inspect/2 From f017443873bee9dd75b81ced59dcb8790286aaf5 Mon Sep 17 00:00:00 2001 From: annag Date: Sat, 1 Sep 2018 01:33:08 -0700 Subject: [PATCH 0914/1761] change pronoun to match number, of "the community" (#1166) changed from the possessive pronoun "their", in "their own tools", referring to the tools of "the community", to the possessive pronoun "its", since "the community" is a single entity. if "the community" is to be considered as being plural, please consider changing from "has also created" to "have also created". --- getting-started/debugging.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index 0225cdd86..bfe1f0b8a 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -154,7 +154,7 @@ We have just scratched the surface of what the Erlang VM has to offer, for examp * Mix ships with many tasks under the `profile` namespace, such as `cprof` and `fprof` * And more -The community has also created their own tools, often to aid in production, other times in development: +The community has also created its own tools, often to aid in production, other times in development: * [wObserver](https://github.com/shinyscorpion/wObserver) observes production nodes through a web interface. * [visualixir](https://github.com/koudelka/visualixir) is a development-time process message visualizer. From a2aa4fef4b75740c32886783ed79304fe091e78a Mon Sep 17 00:00:00 2001 From: Alon Amster Date: Wed, 5 Sep 2018 20:34:55 +0300 Subject: [PATCH 0915/1761] Fix outdated link to `String.t` typespec note (#1168) --- getting-started/typespecs-and-behaviours.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 99e5dbc0c..2989ce703 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -47,7 +47,7 @@ defmodule LousyCalculator do end ``` -As you can see in the example, tuples are a compound type and each tuple is identified by the types inside it. To understand why `String.t` is not written as `string`, have another look at the [notes in the typespecs docs](https://hexdocs.pm/elixir/typespecs.html#notes). +As you can see in the example, tuples are a compound type and each tuple is identified by the types inside it. To understand why `String.t` is not written as `string`, have another look at the [typespecs docs](https://hexdocs.pm/elixir/typespecs.html#the-string-type). Defining function specs this way works, but it quickly becomes annoying since we're repeating the type `{number, String.t}` over and over. We can use the `@type` directive in order to declare our own custom type. From 0fa49bb1815bed34e39593086f70cf2880de9cb7 Mon Sep 17 00:00:00 2001 From: Mikko Ahlroth Date: Wed, 5 Sep 2018 21:30:22 +0300 Subject: [PATCH 0916/1761] Fix wrong stable version leading to wrong download links (#1169) Link pointed to 1.6 as latest stable, but latest stable is 1.7. --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 97d04b2d2..80a5f640b 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,4 +1,4 @@ -stable: v1_6 +stable: v1_7 v1_0: name: v1.0 From 3eeb3f0c51b3962b85e13aa9d673a5785dfd845e Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 7 Sep 2018 17:33:27 +0300 Subject: [PATCH 0917/1761] Remove unnecessary whitespace after << (#1170) --- getting-started/binaries-strings-and-char-lists.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 7fca79368..eeda78c98 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -119,7 +119,7 @@ iex> is_binary(<<1 :: size(1)>>) false iex> is_bitstring(<<1 :: size(1)>>) true -iex> bit_size(<< 1 :: size(1)>>) +iex> bit_size(<<1 :: size(1)>>) 1 ``` From 4b38173f8603ddf96ea7fd3e4aba56312e6345d7 Mon Sep 17 00:00:00 2001 From: Alexander Date: Sat, 8 Sep 2018 23:54:56 +0300 Subject: [PATCH 0918/1761] Add link to Collectable protocol documentation (#1171) --- getting-started/comprehensions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index c7bfb4c27..e7342fd09 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -89,7 +89,7 @@ iex> for <>, c != ?\s, into: "", do: <> "helloworld" ``` -Sets, maps, and other dictionaries can also be given to the `:into` option. In general, `:into` accepts any structure that implements the `Collectable` protocol. +Sets, maps, and other dictionaries can also be given to the `:into` option. In general, `:into` accepts any structure that implements the [`Collectable`](https://hexdocs.pm/elixir/Collectable.html) protocol. A common use case of `:into` can be transforming values in a map, without touching the keys: From 616d78c7118587594865b24ae23451908f98991b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 10 Sep 2018 13:28:29 +0200 Subject: [PATCH 0919/1761] Do not fail on missing port Closes #1172 --- getting-started/mix-otp/task-and-gen-tcp.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index bc3d5b821..13869dd53 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -146,12 +146,12 @@ As usual, we've passed a two-element tuple as a child specification, which in tu With this change, we are saying that we want to run `KVServer.accept(4040)` as a task. We are hardcoding the port for now but this could be changed in a few ways, for example, by reading the port out of the system environment when starting the application: ```elixir -port = String.to_integer(System.get_env("PORT") || raise "missing $PORT environment variable") +port = String.to_integer(System.get_env("PORT") || "4040") # ... {Task, fn -> KVServer.accept(port) end} ``` -Insert these changes in your code and now you may start your application using the following command `PORT=4040 mix run --no-halt`, notice how we are passing the port as a variable. +Insert these changes in your code and now you may start your application using the following command `PORT=4321 mix run --no-halt`, notice how we are passing the port as a variable, but still defaults to 4040 if none is given. Now that the server is part of the supervision tree, it should start automatically when we run the application. Start your server, now passing the port, and once again use the `telnet` client to make sure that everything still works: From f9df0ba22b46b64986573bd11c94693b3f62ca32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 12 Sep 2018 10:15:42 +0200 Subject: [PATCH 0920/1761] Update development.markdown --- development.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/development.markdown b/development.markdown index 86789c67d..a377e019a 100644 --- a/development.markdown +++ b/development.markdown @@ -16,7 +16,7 @@ Elixir's source code is under the [Apache 2 License](https://github.com/elixir-l Elixir v1.0 was released in September 2014 and a new minor version is released every 6 months, around January and July of every year. New releases are announced in the read-only [announcements mailing list](https://groups.google.com/group/elixir-lang-ann) with a link to the complete CHANGELOG. All security releases [will be tagged with "[security]"](https://groups.google.com/forum/#!searchin/elixir-lang-ann/%5Bsecurity%5D%7Csort:date). Security vulnerabilities should be disclosed to [elixir-security@googlegroups.com](mailto:elixir-security@googlegroups.com). Our [compatibility and deprecation policies](https://hexdocs.pm/elixir/compatibility-and-deprecations.html#content) are also documented. -Since v1.0, the language development has become more focused. We believe there is a limited amount of features a language can provide without hindering its learning and without causing fragmentation in the community. Therefore the Elixir team focuses on language features that: +Since v1.0, the language development has become focused to provide a compact and consistent core. The Elixir team focuses on language features that: 1. are necessary for developing the language itself 2. bring important concepts/features to the community in a way its effect can only be maximized or leveraged by making it part of the language @@ -25,7 +25,7 @@ The language development is open, both in terms of source code and of collaborat Community members are welcome to propose new features for Elixir. Before submitting a proposal, members are encouraged to gather feedback from around the community in whatever venues seem best. However, in order for a proposal to be considered for inclusion by the Elixir Core team, it must go through the Elixir mailing list. This often includes discussion and refinement of the proposal. The Elixir Core team has the final say on whether a proposal is accepted or rejected. While members are encouraged to gain support from the rest of the community, popularity does not mean that a proposal will be accepted. -To remain focused, Elixir trusts its ecosystem to bring diversity and broaden its use cases to a wider audience. Therefore the language was designed to be extensible: the constructs available to build the language are also available for developers to extend the language and bring it to different domains. Projects such as [the Phoenix web framework](http://phoenixframework.org) and [the Nerves embedded framework](http://nerves-project.org) are two of such examples. +To remain focused, Elixir trusts its ecosystem to bring diversity and broaden its use cases. Therefore the language was designed to be extensible: the constructs available to build the language are also available for developers to extend the language and bring it to different domains. Projects such as [the Phoenix web framework](http://phoenixframework.org) and [the Nerves embedded framework](http://nerves-project.org) are two of such examples. Elixir also relies on a vibrant community to support its growth. The community is behind the meetups, events, learning resources, open source projects, and more. See the sidebar, the [Learning Resources](/learning.html) and [the Hex Package Manager website](https://hex.pm/) for some examples and more information. From 260645b09c990ad98faec42ee848ea29d4ab61a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 12 Sep 2018 10:22:54 +0200 Subject: [PATCH 0921/1761] Mention recv timeout, closes #1173 --- getting-started/mix-otp/docs-tests-and-with.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 3bf3d73fc..bc43bed9a 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -444,8 +444,8 @@ In case the test crashes, you will see a report as follows: 13:44:10.035 [info] Application kv exited: :stopped ``` -With this simple integration test, we start to see why integration tests may be slow. Not only this test cannot run asynchronously, it also requires the expensive setup of stopping and starting the `:kv` application. +With this simple integration test, we start to see why integration tests may be slow. Not only this test cannot run asynchronously, it also requires the expensive setup of stopping and starting the `:kv` application. In fact, your test suite may even fail and run into timeouts. If that's the case, you can tweak the `:gen_tcp.recv(socket, 0)` call to pass a third argument, which is the timeout in milliseconds. In the next chapter we will learn about application configuration, which we could use to make the timeout configurable, if desired. At the end of the day, it is up to you and your team to figure out the best testing strategy for your applications. You need to balance code quality, confidence, and test suite runtime. For example, we may start with testing the server only with integration tests, but if the server continues to grow in future releases, or it becomes a part of the application with frequent bugs, it is important to consider breaking it apart and writing more intensive unit tests that don't have the weight of an integration test. -In the next chapter, we will finally make our system distributed by adding a bucket routing mechanism. We'll also learn about application configuration. +Let's move to the last chapter. We will finally make our system distributed by adding a bucket routing mechanism. We'll also learn about application configuration. From 959f2fe9e6cb13ad8da8a3948332461d08016811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 13 Sep 2018 11:17:01 +0200 Subject: [PATCH 0922/1761] Keep references in order closes #1175 --- .../mix-otp/introduction-to-mix.markdown | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index a223d73a5..04020d822 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -200,7 +200,7 @@ This file will be required by Mix every time before we run our tests. We can run Randomized with seed 540224 -Notice that by running `mix test`, Mix has compiled the source files and generated the application manifest once again. This happens because Mix supports multiple environments, which we will explore in the next section. +Notice that by running `mix test`, Mix has compiled the source files and generated the application manifest once again. This happens because Mix supports multiple environments, which we will discuss later in this chapter. Furthermore, you can see that ExUnit prints a dot for each successful test and automatically randomizes tests too. Let's make the test fail on purpose and see what happens. @@ -254,21 +254,23 @@ You can learn more about the code formatter by checking [the format task documen ## Environments -Mix supports the concept of "environments". They allow a developer to customize compilation and other options for specific scenarios. By default, Mix understands three environments: +Mix provides the concept of "environments". They allow a developer to customize compilation and other options for specific scenarios. By default, Mix understands three environments: * `:dev` - the one in which Mix tasks (like `compile`) run by default * `:test` - used by `mix test` * `:prod` - the one you will use to run your project in production -The environment applies only to the current project. As we will see later on, any dependency you add to your project will by default run in the `:prod` environment. +The environment applies only to the current project. As we will see in future chapters, any dependency you add to your project will by default run in the `:prod` environment. Customization per environment can be done by accessing [the `Mix.env` function](https://hexdocs.pm/mix/Mix.html#env/0) in your `mix.exs` file, which returns the current environment as an atom. That's what we have used in the `:start_permanent` options: ```elixir def project do - [..., - start_permanent: Mix.env == :prod, - ...] + [ + ..., + start_permanent: Mix.env == :prod, + ... + ] end ``` From 346e4a650822e12a57616ce3dd2d610f00da292c Mon Sep 17 00:00:00 2001 From: Rui Onodera Date: Tue, 25 Sep 2018 16:59:40 +0900 Subject: [PATCH 0923/1761] Wrap by backquote (#1178) --- getting-started/try-catch-and-rescue.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 05cab8e90..1859d84ed 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -130,7 +130,7 @@ iex> Enum.find -50..50, &(rem(&1, 13) == 0) ## Exits -All Elixir code runs inside processes that communicate with each other. When a process dies of "natural causes" (e.g., unhandled exceptions), it sends an `exit` signal. A process can also die by explicitly sending an exit signal: +All Elixir code runs inside processes that communicate with each other. When a process dies of "natural causes" (e.g., unhandled exceptions), it sends an `exit` signal. A process can also die by explicitly sending an `exit` signal: ```iex iex> spawn_link fn -> exit(1) end @@ -152,7 +152,7 @@ iex> try do Using `try/catch` is already uncommon and using it to catch exits is even rarer. -`exit` signals are an important part of the fault tolerant system provided by the Erlang VM. Processes usually run under supervision trees which are themselves processes that listen to `exit` signals from the supervised processes. Once an exit signal is received, the supervision strategy kicks in and the supervised process is restarted. +`exit` signals are an important part of the fault tolerant system provided by the Erlang VM. Processes usually run under supervision trees which are themselves processes that listen to `exit` signals from the supervised processes. Once an `exit` signal is received, the supervision strategy kicks in and the supervised process is restarted. It is exactly this supervision system that makes constructs like `try/catch` and `try/rescue` so uncommon in Elixir. Instead of rescuing an error, we'd rather "fail fast" since the supervision tree will guarantee our application will go back to a known initial state after the error. From 2b7ad7e874ce5857db479a04e42a2916ca71a4da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 3 Oct 2018 10:21:32 +0200 Subject: [PATCH 0924/1761] Add Erlang/OTP 21.1 --- erlang.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/erlang.csv b/erlang.csv index 40c6d11c7..15a525dac 100644 --- a/erlang.csv +++ b/erlang.csv @@ -1,4 +1,5 @@ version_otp,version_erts,url_win32,url_win64 +21.1,10.1,http://erlang.org/download/otp_win32_21.1.exe,http://erlang.org/download/otp_win64_21.1.exe 21.0,10.0,http://erlang.org/download/otp_win32_21.0.1.exe,http://erlang.org/download/otp_win64_21.0.1.exe 20.2,9.2,http://erlang.org/download/otp_win32_20.2.exe,http://erlang.org/download/otp_win64_20.2.exe 20.0,9.0,http://erlang.org/download/otp_win32_20.0.exe,http://erlang.org/download/otp_win64_20.0.exe From 7f8f6cea81824de6456eb79bf1ff49016f643359 Mon Sep 17 00:00:00 2001 From: Axel von Engel Date: Fri, 5 Oct 2018 10:42:37 +0200 Subject: [PATCH 0925/1761] Refine DynamicSupervisor instructions (#1180) Provide clearer instructions on how to define the DynamicSupervisor --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index aa7efabb9..8536c5935 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -52,7 +52,7 @@ We are going to solve this issue by defining a new supervisor that will spawn an ## The bucket supervisor -Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor` in `lib/kv/supervisor.ex` as follows: +Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor`. Replace the `init` function in `lib/kv/supervisor.ex` as follows: ```elixir From 69697e1d04eede326314d729ea4f09aefd357a23 Mon Sep 17 00:00:00 2001 From: chriseyre2000 Date: Sat, 6 Oct 2018 10:07:08 +0100 Subject: [PATCH 0926/1761] Added exercism.io Elixir Track (#1181) Added exercism.io Elixir Track --- learning.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/learning.markdown b/learning.markdown index 92e4e71ff..d703c6a8f 100644 --- a/learning.markdown +++ b/learning.markdown @@ -148,6 +148,15 @@ Elixir koans is a fun, easy way to get started with the Elixir programming langu
+

Exercism.io

+ + Exercism.io Elixir track + +Exercism.io provides free code practice and mentoring across a range of languages. This is the Elixir track. +The site has a guided series of exercises with varying difficultly that are mentored by volenteers. The exercises range from Hello World to some OTP examples. Once you have completed an exercise you can see other students solutions. + +
+ ## Screencasts

Elixir Sips

From 128a787698dcc16632c405fbd5d90b69be77fafd Mon Sep 17 00:00:00 2001 From: Rob Conery Date: Sun, 7 Oct 2018 10:16:13 -1000 Subject: [PATCH 0927/1761] Removing Take Off With Elixir (#1182) --- learning.markdown | 8 -------- 1 file changed, 8 deletions(-) diff --git a/learning.markdown b/learning.markdown index d703c6a8f..2b92228d4 100644 --- a/learning.markdown +++ b/learning.markdown @@ -105,14 +105,6 @@ Elixir’s straightforward syntax and this guided tour give you a clean, simple ## Video/Interactive Resources -

Take Off With Elixir

- -Red:4 - -Red:4 is a fictional aerospace startup that needs your help! Through a book, a video, or both you can learn Elixir the fun way by immersing yourself in an on-the-job style set of problems. For instance, you will set up a project to calculate escape velocity for each of the planets in our solar system, learning pattern matching and language basics along the way. You'll move on to orbital mechanics while learning how to debug and refactor your code for clarity and meaning. You'll learn list basics and data storage techniques as you build a solar flare tracking system. Finally, you'll dive into OTP using Ecto and PostgreSQL - all in an effort to overwhelm our internal systems with the power of Elixir! - -
-

Pragmatic Studio's Elixir/OTP Course

Pragmatic Studio's Elixir/OTP Course From 47f6ad1967a1661865f3950ac40258eb2aaaee97 Mon Sep 17 00:00:00 2001 From: Ryan Winchester Date: Thu, 11 Oct 2018 23:37:17 -0700 Subject: [PATCH 0928/1761] Add Ubuntu 18.04 to install instructions (#1183) --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 2e5028cc3..2dac8f51d 100644 --- a/install.markdown +++ b/install.markdown @@ -47,7 +47,7 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * From pkg: `pkg install elixir` * Solus * Run: `eopkg install elixir` - * Ubuntu 14.04/16.04/16.10/17.04 or Debian 7/8/9 + * Ubuntu 14.04/16.04/17.04/18.04 or Debian 7/8/9 * Add Erlang Solutions repo: `wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb` * Run: `sudo apt-get update` * Install the Erlang/OTP platform and all of its applications: `sudo apt-get install esl-erlang` From 4aebbabfa485b22c020094ebc64eb423285e9496 Mon Sep 17 00:00:00 2001 From: Greg Vaughn Date: Mon, 22 Oct 2018 16:04:38 -0500 Subject: [PATCH 0929/1761] Update crash-course.markdown reference on erlang strings (#1185) --- crash-course.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crash-course.markdown b/crash-course.markdown index 7d9b323f5..bf2980858 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -268,7 +268,7 @@ is_binary <<"Hello">> #=> true <<"Hello">> === "Hello" #=> true ``` -In Elixir, the word **string** means a UTF-8 binary and there is a `String` module that works on such data. Elixir also expects your source files to be UTF-8 encoded. On the other hand, **string** in Erlang refers to char lists and there is a `:string` module, that's not UTF-8 aware and works mostly with char lists. +In Elixir, the word **string** means a UTF-8 binary and there is a `String` module that works on such data. Elixir also expects your source files to be UTF-8 encoded. On the other hand, **string** in Erlang refers to char lists and there is a `:string` module that works mostly with both char lists and UTF-8 encoded binaries. Elixir also supports multiline strings (also called *heredocs*): From 0196f79249030225b38a543d44bf193e051162e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 24 Oct 2018 09:53:13 +0200 Subject: [PATCH 0930/1761] Update analytics code --- _includes/top.html | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/_includes/top.html b/_includes/top.html index 5cc1ca83c..3be29fc9d 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -15,14 +15,13 @@ + {% seo title=false %} From c4d959e0446900869c61c91f6642579fe2c0b07f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 24 Oct 2018 10:35:53 +0200 Subject: [PATCH 0931/1761] Search on all hexdocs elixir projects --- _includes/search.html | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/_includes/search.html b/_includes/search.html index 572805b85..2e4273ea4 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -5,11 +5,9 @@

From a4ba4aa96298b412cb02d3c66e48f6147877dd64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 24 Oct 2018 10:36:15 +0200 Subject: [PATCH 0932/1761] Remove ElixirConf widget --- _includes/important-links.html | 9 --------- 1 file changed, 9 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 25efd819e..e471374e1 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -1,12 +1,3 @@ -
- - - -
- ElixirConf™ US is being held in Bellevue, WA, September 4-7, 2018. - Registration is now open. -
-

Join the Community

    From 63b348e33043e6da36a69e7926f4457d2230c6bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 24 Oct 2018 20:21:02 +0200 Subject: [PATCH 0933/1761] Release v1.7.4 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 80a5f640b..758884299 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -45,5 +45,5 @@ v1_6: v1_7: name: v1.7 minimum_otp: 19.0 - version: 1.7.3 + version: 1.7.4 docs_zip: true diff --git a/elixir.csv b/elixir.csv index 99fef5bb2..297f06b6d 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.7.4,https://github.com/elixir-lang/elixir/releases/download/v1.7.4/Precompiled.zip,release,1,eb328d3b071b33d80ad4cb4b3b203c1b2d7a5186,807002481ae129fa1610a1facabe19765e2542397923d5c89e16b58f54870f2e444973e136d6b1207190b3117c03a37430860b6e3e6b7d59b3afb1b01852c6e3 1.7.3,https://github.com/elixir-lang/elixir/releases/download/v1.7.3/Precompiled.zip,release,1,9bfe816aaedeb9c5d40095b4eb4f5cb07eb33c2b,f8b0ac405531d46f4b65f459970c4b82892f8db51028f172072748269a922db65cb58e36239cd26dc39e5bdebd08a0e630ecbc267b6ff55a15d188483d78a0e5 1.7.2,https://github.com/elixir-lang/elixir/releases/download/v1.7.2/Precompiled.zip,release,1,97051389559547248d7e7f497ed3866ef11e3072,e7ebdfcd301737967d0c04df50d3ba5b5a0663d2a2e2ac771cf61b9aa8d73a8f64dd9a408890ff0e2db4e48df8f94ff4d5fb7060f25592411e54910cdfc567a0 1.7.1,https://github.com/elixir-lang/elixir/releases/download/v1.7.1/Precompiled.zip,release,1,fb06a3d238b65705a0e36fe9c308eef3d8bb5d46,75c1601d985988ecdfcd48892cde4058dd36e52a3aa1c2007290ce587d7fa131d066afc6c34ca9138cf66431de80369681c82cf6290c214853335471c1851deb From 7241bc9f24c65b0f6b2fb9a3dd6dfd2b5adc41f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 24 Oct 2018 20:22:06 +0200 Subject: [PATCH 0934/1761] Reverse elixir-versions order for less scrolling when updating files --- _data/elixir-versions.yml | 56 +++++++++++++++++++-------------------- docs.markdown | 2 +- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 758884299..e85d6d812 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,27 +1,21 @@ stable: v1_7 -v1_0: - name: v1.0 - minimum_otp: 17.0 - version: 1.0.5 - docs_zip: false - -v1_1: - name: v1.1 - minimum_otp: 17.0 - version: 1.1.1 +v1_7: + name: v1.7 + minimum_otp: 19.0 + version: 1.7.4 docs_zip: true -v1_2: - name: v1.2 - minimum_otp: 18.0 - version: 1.2.6 +v1_6: + name: v1.6 + minimum_otp: 19.0 + version: 1.6.6 docs_zip: true -v1_3: - name: v1.3 +v1_5: + name: v1.5 minimum_otp: 18.0 - version: 1.3.4 + version: 1.5.3 docs_zip: true v1_4: @@ -30,20 +24,26 @@ v1_4: version: 1.4.5 docs_zip: true -v1_5: - name: v1.5 +v1_3: + name: v1.3 minimum_otp: 18.0 - version: 1.5.3 + version: 1.3.4 docs_zip: true -v1_6: - name: v1.6 - minimum_otp: 19.0 - version: 1.6.6 +v1_2: + name: v1.2 + minimum_otp: 18.0 + version: 1.2.6 docs_zip: true -v1_7: - name: v1.7 - minimum_otp: 19.0 - version: 1.7.4 +v1_1: + name: v1.1 + minimum_otp: 17.0 + version: 1.1.1 docs_zip: true + +v1_0: + name: v1.0 + minimum_otp: 17.0 + version: 1.0.5 + docs_zip: false diff --git a/docs.markdown b/docs.markdown index 66eb1c8c5..c1526857a 100644 --- a/docs.markdown +++ b/docs.markdown @@ -32,7 +32,7 @@ Choose which version you want documentation for. * [Logger](https://hexdocs.pm/logger/master/) - built-in Logger * [Mix](https://hexdocs.pm/mix/master/) - build tool -{% for version in site.data.elixir-versions reversed %} +{% for version in site.data.elixir-versions %} {% if version[0] == 'stable' %} {% continue %} {% endif %} From b5cb4652eda17467a89ae8ef39208f72e54e3019 Mon Sep 17 00:00:00 2001 From: MichaelDimmitt Date: Sun, 4 Nov 2018 14:39:25 -0500 Subject: [PATCH 0935/1761] Tell user macro is working but with a warning (#1187) --- getting-started/meta/macros.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index ad09a925d..9955c2412 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -157,6 +157,8 @@ HygieneTest.go # => 1 ``` +The code above will work but issue a warning: `variable "a" is unused`. The macro is overriding the original value and the original value is never used. + Variable hygiene only works because Elixir annotates variables with their context. For example, a variable `x` defined on line 3 of a module would be represented as: ```elixir From a64697f469661a4e2fe6d4c77836dacb467b78e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 7 Nov 2018 08:46:17 +0100 Subject: [PATCH 0936/1761] Make a distinction between official channels and community --- _includes/important-links.html | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index e471374e1..e1c8d5f06 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -1,11 +1,17 @@
    -

    Join the Community

    +

    Official Channels

    +
    + +
    +

    Join the Community

    + From 8002cbbe756149165f6fe8fb21a3a63c8b864a7b Mon Sep 17 00:00:00 2001 From: Pedro Miguel Pereira Serrano Martins Date: Fri, 9 Nov 2018 13:59:29 +0100 Subject: [PATCH 0937/1761] Added information about @impl (#1189) --- .../typespecs-and-behaviours.markdown | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 2989ce703..55a5632c8 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -120,7 +120,10 @@ Adopting a behaviour is straightforward: defmodule JSONParser do @behaviour Parser + @impl Parser def parse(str), do: {:ok, "some json " <> str} # ... parse JSON + + @impl Parser def extensions, do: ["json"] end ``` @@ -129,13 +132,33 @@ end defmodule YAMLParser do @behaviour Parser + @impl Parser def parse(str), do: {:ok, "some yaml " <> str} # ... parse YAML + + @impl Parser def extensions, do: ["yml"] end ``` If a module adopting a given behaviour doesn't implement one of the callbacks required by that behaviour, a compile-time warning will be generated. +Furthermore, with `@impl` you can also make sure that you are implementing the **correct** callbacks from the given behaviour in an explicit manner. For example, the following parser implements both `parse` and `extensions`, however thanks to a typo, `BADParser` is implementing `parse/0` instead of `parse/1`. + +```elixir +defmodule BADParser do + @behaviour Parser + + @impl Parser + def parse, do: {:ok, "something bad"} + + @impl Parser + def extensions, do: ["bad"] +end +``` + +This code generates a warning letting you know that you are mistakenly implementing `parse/0` instead of `parse/1`. +You can read more about `@impl` in the [module documentation](https://hexdocs.pm/elixir/master/Module.html#module-impl). + ### Dynamic dispatch Behaviours are frequently used with dynamic dispatching. For example, we could add a `parse!` function to the `Parser` module that dispatches to the given implementation and returns the `:ok` result or raises in cases of `:error`: From 51fd6fa9f6358c4f6371cf2b125a444f23082f2b Mon Sep 17 00:00:00 2001 From: Christopher Eyre Date: Fri, 30 Nov 2018 10:45:15 +0000 Subject: [PATCH 0938/1761] Added some extra details on codepoints (#1192) --- getting-started/binaries-strings-and-char-lists.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index eeda78c98..ac1b7f68d 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -50,6 +50,8 @@ iex> ?ł 322 ``` +These can be used anywhere you want to refer to a characters codepoint. + You can also use the functions in [the `String` module](https://hexdocs.pm/elixir/String.html) to split a string in its individual characters, each one as a string of length 1: ```iex From a05f23766cbf97cefa2d23fc9d62317c5d08388d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 3 Dec 2018 10:41:30 +0100 Subject: [PATCH 0939/1761] Avoid going over line length, closes #1193 --- getting-started/basic-types.markdown | 6 ++++-- getting-started/introduction.markdown | 5 +++-- install.markdown | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index d72289643..5b11c82b1 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -212,9 +212,11 @@ iex> add.(1, 2) 3 iex> is_function(add) true -iex> is_function(add, 2) # check if add is a function that expects exactly 2 arguments +# check if add is a function that expects exactly 2 arguments +iex> is_function(add, 2) true -iex> is_function(add, 1) # check if add is a function that expects exactly 1 argument +# check if add is a function that expects exactly 1 argument +iex> is_function(add, 1) false ``` diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index a570e1f3b..885faa654 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -3,6 +3,7 @@ layout: getting-started title: Introduction redirect_from: /getting_started/1.html --- +{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} # {{ page.title }} @@ -40,9 +41,9 @@ For now, let's start by running `iex` (or `iex.bat` if you are on Windows) which Open up `iex` and type the following expressions: ```iex -Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace] +Erlang/OTP {{ stable.minimum_otp }} [64-bit] [smp:2:2] [...] -Interactive Elixir (1.4.0) - press Ctrl+C to exit (type h() ENTER for help) +Interactive Elixir ({{ stable.version }}) - press Ctrl+C to exit iex(1)> 40 + 2 42 iex(2)> "hello" <> " world" diff --git a/install.markdown b/install.markdown index 2dac8f51d..a0ad17c87 100644 --- a/install.markdown +++ b/install.markdown @@ -132,7 +132,7 @@ For Windows developers, we recommend the precompiled packages. Those on a Unix p After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information similar to: - Erlang/OTP {{ stable.minimum_otp }} [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false] + Erlang/OTP {{ stable.minimum_otp }} [64-bit] [smp:2:2] [...] Notice that depending on how you installed Erlang, Erlang binaries might not be available in your PATH. Be sure to have Erlang binaries in your [PATH](https://en.wikipedia.org/wiki/Environment_variable), otherwise Elixir won't work! From 113dca57b19b76721838bb7a51b6a00c8384d3cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 3 Dec 2018 10:55:59 +0100 Subject: [PATCH 0940/1761] Update deps --- Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 687fbfd83..029f61c23 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,8 +6,8 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.5.1) - public_suffix (~> 2.0, >= 2.0.2) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) coffee-script (2.4.1) coffee-script-source execjs @@ -18,7 +18,7 @@ GEM execjs (2.7.0) faraday (0.12.2) multipart-post (>= 1.2, < 3) - ffi (1.9.18) + ffi (1.9.25) forwardable-extended (2.6.0) gemoji (3.0.0) github-pages (150) @@ -146,8 +146,8 @@ GEM jekyll (~> 3.3) jekyll-titles-from-headings (0.4.0) jekyll (~> 3.3) - jekyll-watch (1.5.0) - listen (~> 3.0, < 3.1) + jekyll-watch (1.5.1) + listen (~> 3.0) jemoji (0.8.0) activesupport (~> 4.0) gemoji (~> 3.0) @@ -160,25 +160,25 @@ GEM rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9.7) mercenary (0.3.6) - mini_portile2 (2.2.0) + mini_portile2 (2.3.0) minima (2.1.1) jekyll (~> 3.3) minitest (5.10.3) multipart-post (2.0.0) net-dns (0.8.0) - nokogiri (1.8.0) - mini_portile2 (~> 2.2.0) + nokogiri (1.8.5) + mini_portile2 (~> 2.3.0) octokit (4.7.0) sawyer (~> 0.8.0, >= 0.5.3) - pathutil (0.14.0) + pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (2.0.5) - rb-fsevent (0.10.2) + rb-fsevent (0.10.3) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) rouge (1.11.1) safe_yaml (1.0.4) - sass (3.5.1) + sass (3.7.2) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) @@ -203,4 +203,4 @@ DEPENDENCIES json (>= 2.0.0) BUNDLED WITH - 1.15.3 + 1.17.1 From 31b29902b4c0d4aca4fbe80761415d659a023eae Mon Sep 17 00:00:00 2001 From: Cohen Carlisle Date: Wed, 5 Dec 2018 03:22:24 -0500 Subject: [PATCH 0941/1761] Update learning.md for exercism.io (#1194) --- learning.markdown | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/learning.markdown b/learning.markdown index 2b92228d4..dcdc31be6 100644 --- a/learning.markdown +++ b/learning.markdown @@ -109,7 +109,7 @@ Elixir’s straightforward syntax and this guided tour give you a clean, simple Pragmatic Studio's Elixir/OTP Course -Put Elixir and OTP into action as you build a concurrent, fault-tolerant application from scratch in this 6-hour video course from The Pragmatic Studio. By developing a real app with real code, you'll gain practical experience putting all the pieces together to craft applications the Elixir/OTP way. +Put Elixir and OTP into action as you build a concurrent, fault-tolerant application from scratch in this 6-hour video course from The Pragmatic Studio. By developing a real app with real code, you'll gain practical experience putting all the pieces together to craft applications the Elixir/OTP way. The first half of the course focuses on core Elixir facets, principles, and techniques. In the second half, we go beyond the basics and focus on what sets Elixir/OTP apart: concurrent processes, the actor model, OTP behaviors, and fault recovery. @@ -123,7 +123,7 @@ If you're new to Elixir, you'll get step-by-step guidance in an engaging format Elixir Flashcards -Elixir flashcards are a set of beautifully crafted, professionally printed, poker sized flashcards to help you master the Elixir language. +Elixir flashcards are a set of beautifully crafted, professionally printed, poker sized flashcards to help you master the Elixir language. Flashcards are a great way to highlight knowledge gaps, identify misconceptions or false beliefs, and help you memorise key concepts. When used in groups or teams, flashcards can help spark interesting discussions, and help bring people together to learn in a fun way by playing games. @@ -144,8 +144,9 @@ Elixir koans is a fun, easy way to get started with the Elixir programming langu Exercism.io Elixir track -Exercism.io provides free code practice and mentoring across a range of languages. This is the Elixir track. -The site has a guided series of exercises with varying difficultly that are mentored by volenteers. The exercises range from Hello World to some OTP examples. Once you have completed an exercise you can see other students solutions. +Exercism.io is an open source platform that provides free practice and mentoring in many languages, including Elixir. +It features exercises of varying difficulty, from string processing to using OTP, that are mentored by volunteers. +Once you have completed an exercise you can also view other students' solutions.
    From 89b05c9b0bef084838ef0a0bb6cb33ae1e229323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Oliveira?= Date: Tue, 11 Dec 2018 06:28:18 -0200 Subject: [PATCH 0942/1761] Update ets.markdown (#1195) GenServer doesn't provide call/3 function. I checked the documentation( https://hexdocs.pm/elixir/search.html?q=GenServer.call) and the source code, and could not find any function matching arity 2. --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 128311f73..6adb6d268 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -160,7 +160,7 @@ How can this line fail if we just created the bucket in the previous line? The reason those failures are happening is because, for didactic purposes, we have made two mistakes: 1. We are prematurely optimizing (by adding this cache layer) - 2. We are using `cast/2` (while we should be using `call/2`) + 2. We are using `cast/2` (while we should be using `call/3`) ## Race conditions? From 32f6e896302665405aef55f40d66001572835544 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 14 Dec 2018 14:49:12 -0800 Subject: [PATCH 0943/1761] Harmonize the wording of two sentences (#1198) "a list of integers representing bytes or binaries" compared to "a list of characters or strings" in two adjacent paragraphs is slightly jarring. Changing both to "or" makes the comparison/transition easier to read. --- getting-started/io-and-the-file-system.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 1b69c02d7..b6292d59e 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -163,7 +163,7 @@ hello world :ok ``` -However, using lists in IO operations requires some attention. A list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as an argument; i.e., they expect a list of integers representing bytes and binaries to be given. +However, using lists in IO operations requires some attention. A list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as an argument; i.e., they expect a list of integers representing bytes or binaries to be given. On the other hand, `:stdio` and files opened with `:utf8` encoding work with the remaining functions in the `IO` module. Those functions expect a `char_data` as an argument, that is, a list of characters or strings. From eedbef36d5af9ea5e97a3bd069aae65b73e5642e Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Mon, 17 Dec 2018 12:45:52 -0800 Subject: [PATCH 0944/1761] Reworded processes page (#1197) "in a case" -> "in case" --- getting-started/processes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 8f60a080e..5b3ece15e 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -135,7 +135,7 @@ Because processes are linked, we now see a message saying the parent process, wh Linking can also be done manually by calling `Process.link/1`. We recommend that you take a look at [the `Process` module](https://hexdocs.pm/elixir/Process.html) for other functionality provided by processes. -Processes and links play an important role when building fault-tolerant systems. Elixir processes are isolated and don't share anything by default. Therefore, a failure in a process will never crash or corrupt the state of another process. Links, however, allow processes to establish a relationship in a case of failures. We often link our processes to supervisors which will detect when a process dies and start a new process in its place. +Processes and links play an important role when building fault-tolerant systems. Elixir processes are isolated and don't share anything by default. Therefore, a failure in a process will never crash or corrupt the state of another process. Links, however, allow processes to establish a relationship in case of failure. We often link our processes to supervisors which will detect when a process dies and start a new process in its place. While other languages would require us to catch/handle exceptions, in Elixir we are actually fine with letting processes fail because we expect supervisors to properly restart our systems. "Failing fast" is a common philosophy when writing Elixir software! From 6ff22f94c86294bd0ce3cdebcf00a3b1bd869a92 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Mon, 17 Dec 2018 14:00:20 -0800 Subject: [PATCH 0945/1761] Fix a statement about the heaviness of threads in other programming languages (#1196) --- getting-started/processes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 5b3ece15e..65e5b9445 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -9,7 +9,7 @@ title: Processes In Elixir, all code runs inside processes. Processes are isolated from each other, run concurrent to one another and communicate via message passing. Processes are not only the basis for concurrency in Elixir, but they also provide the means for building distributed and fault-tolerant programs. -Elixir's processes should not be confused with operating system processes. Processes in Elixir are extremely lightweight in terms of memory and CPU (unlike threads in many other programming languages). Because of this, it is not uncommon to have tens or even hundreds of thousands of processes running simultaneously. +Elixir's processes should not be confused with operating system processes. Processes in Elixir are extremely lightweight in terms of memory and CPU (even compared to threads as used in many other programming languages). Because of this, it is not uncommon to have tens or even hundreds of thousands of processes running simultaneously. In this chapter, we will learn about the basic constructs for spawning new processes, as well as sending and receiving messages between processes. From 4eddd78b8a50e76759a67e0bf221cb583bb474dc Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 21 Dec 2018 10:31:17 -0800 Subject: [PATCH 0946/1761] Add a comma (#1200) Without the comma the sentence reads like "the last thing you will ever need to remember" versus "as the last thing in this section to do is remember this". --- getting-started/debugging.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index bfe1f0b8a..145e29c17 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -142,7 +142,7 @@ We explore the Observer in the context of an actual project [in the Dynamic Supe You can also [use Observer to introspect a remote node](http://blog.plataformatec.com.br/2016/05/tracing-and-observing-your-remote-node/). This is one of the debugging techniques [the Phoenix framework used to achieve 2 million connections on a single machine](https://phoenixframework.org/blog/the-road-to-2-million-websocket-connections). -Finally remember you can also get a mini-overview of the runtime info by calling `runtime_info/0` directly in IEx. +Finally, remember you can also get a mini-overview of the runtime info by calling `runtime_info/0` directly in IEx. ## Other tools and community From c08f893e43ca92d3cd5e0cfb823f1417de7444ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 24 Dec 2018 15:44:54 +0100 Subject: [PATCH 0947/1761] Release v1.8.0-rc.0 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 297f06b6d..ea7fe972b 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.8.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.8.0-rc.0/Precompiled.zip,prerelease,1,32fb3116f02cc3a508b295a3856c0bc4d30536d3,a6a9c21a5c681d7609eb02daa85be10a75be855cfbda211e0d1e60e54daf0fd2058b728f88c1e2b916088f0f7ab8da4518025cea597914a31b7338363e4e16dc 1.7.4,https://github.com/elixir-lang/elixir/releases/download/v1.7.4/Precompiled.zip,release,1,eb328d3b071b33d80ad4cb4b3b203c1b2d7a5186,807002481ae129fa1610a1facabe19765e2542397923d5c89e16b58f54870f2e444973e136d6b1207190b3117c03a37430860b6e3e6b7d59b3afb1b01852c6e3 1.7.3,https://github.com/elixir-lang/elixir/releases/download/v1.7.3/Precompiled.zip,release,1,9bfe816aaedeb9c5d40095b4eb4f5cb07eb33c2b,f8b0ac405531d46f4b65f459970c4b82892f8db51028f172072748269a922db65cb58e36239cd26dc39e5bdebd08a0e630ecbc267b6ff55a15d188483d78a0e5 1.7.2,https://github.com/elixir-lang/elixir/releases/download/v1.7.2/Precompiled.zip,release,1,97051389559547248d7e7f497ed3866ef11e3072,e7ebdfcd301737967d0c04df50d3ba5b5a0663d2a2e2ac771cf61b9aa8d73a8f64dd9a408890ff0e2db4e48df8f94ff4d5fb7060f25592411e54910cdfc567a0 From d26556ef5827fe21611d5c297f68f1598e9c16d9 Mon Sep 17 00:00:00 2001 From: Ashton Wiersdorf Date: Wed, 2 Jan 2019 02:17:17 -0700 Subject: [PATCH 0948/1761] Add a semicolon, remove Oxford comma (#1201) Line 81 had an [Oxford comma](https://en.wikipedia.org/wiki/Serial_comma), but the rest of the document does not use Oxford commas. The comma on line 112 would be better with a semicolon: it's delimiting two related clauses that *could* stand on their own and so should be connected with a semicolon rather than a comma. --- getting-started/basic-operators.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 7df115ba8..533977cc4 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -78,7 +78,7 @@ true As a rule of thumb, use `and`, `or` and `not` when you are expecting booleans. If any of the arguments are non-boolean, use `&&`, `||` and `!`. -Elixir also provides `==`, `!=`, `===`, `!==`, `<=`, `>=`, `<`, and `>` as comparison operators: +Elixir also provides `==`, `!=`, `===`, `!==`, `<=`, `>=`, `<` and `>` as comparison operators: ```iex iex> 1 == 1 @@ -109,7 +109,7 @@ The reason we can compare different data types is pragmatism. Sorting algorithms number < atom < reference < function < port < pid < tuple < map < list < bitstring -You don't actually need to memorize this ordering, it's enough to know that this ordering exists. +You don't actually need to memorize this ordering; it's enough to know that this ordering exists. For reference information about operators (and ordering), check the [reference page on operators](https://hexdocs.pm/elixir/operators.html). From c167a0621e65158cd86bd5a9e7db375fa4c32d43 Mon Sep 17 00:00:00 2001 From: Jan Ehrhardt Date: Wed, 2 Jan 2019 10:29:34 +0100 Subject: [PATCH 0949/1761] Fix link text for vscode-elixir (#1202) The extension is for VS Code, which is not the same as Visual Studio. --- _includes/important-links.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index e1c8d5f06..e05e2c693 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -40,7 +40,7 @@

    Code editor support

  • GtkSourceView (gedit)
  • Atom Package
  • IntelliJ Elixir
  • -
  • Visual Studio Elixir
  • +
  • Visual Studio Code Elixir
From a825cfb43b9279e20eb337db49d5e2401323723d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 2 Jan 2019 20:35:55 +0100 Subject: [PATCH 0950/1761] Release v1.8.0-rc.1 --- elixir.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index ea7fe972b..ba9c011a1 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.8.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.8.0-rc.0/Precompiled.zip,prerelease,1,32fb3116f02cc3a508b295a3856c0bc4d30536d3,a6a9c21a5c681d7609eb02daa85be10a75be855cfbda211e0d1e60e54daf0fd2058b728f88c1e2b916088f0f7ab8da4518025cea597914a31b7338363e4e16dc +1.8.0-rc.1,https://github.com/elixir-lang/elixir/releases/download/v1.8.0-rc.1/Precompiled.zip,prerelease,1,369aa12706fb70ad65597bc5017df6fc1e029cbf,6144376bcdb08ae14257b28db0cf106af0181769bff8fa5f06f3f245fdceb8a74b5e12fe44f11930ffb2cc5de1a9eb3055b673dce46716058c3ddca677a51b89 1.7.4,https://github.com/elixir-lang/elixir/releases/download/v1.7.4/Precompiled.zip,release,1,eb328d3b071b33d80ad4cb4b3b203c1b2d7a5186,807002481ae129fa1610a1facabe19765e2542397923d5c89e16b58f54870f2e444973e136d6b1207190b3117c03a37430860b6e3e6b7d59b3afb1b01852c6e3 1.7.3,https://github.com/elixir-lang/elixir/releases/download/v1.7.3/Precompiled.zip,release,1,9bfe816aaedeb9c5d40095b4eb4f5cb07eb33c2b,f8b0ac405531d46f4b65f459970c4b82892f8db51028f172072748269a922db65cb58e36239cd26dc39e5bdebd08a0e630ecbc267b6ff55a15d188483d78a0e5 1.7.2,https://github.com/elixir-lang/elixir/releases/download/v1.7.2/Precompiled.zip,release,1,97051389559547248d7e7f497ed3866ef11e3072,e7ebdfcd301737967d0c04df50d3ba5b5a0663d2a2e2ac771cf61b9aa8d73a8f64dd9a408890ff0e2db4e48df8f94ff4d5fb7060f25592411e54910cdfc567a0 From 76bd16aa02e19f79c590b5ea75d86da3d30e2148 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 4 Jan 2019 12:37:58 -0800 Subject: [PATCH 0951/1761] Drop a wayward period (#1205) --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 8536c5935..0a917306b 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -128,7 +128,7 @@ One flaw that shows up right away is the ordering issue. Since `KV.Registry` inv The second flaw is related to the supervision strategy. If `KV.Registry` dies, all information linking `KV.Bucket` names to bucket processes is lost. Therefore the `KV.BucketSupervisor` and all children must terminate too - otherwise we will have orphan processes. -In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:rest_for_one` will kill and restart child processes which were started *after* the crashed child. In this case, we would want `KV.BucketSupervisor` to terminate if `KV.Registry` terminates. This would require the bucket supervisor to be placed after the registry. Which violates the ordering constraints we have established two paragraphs above. +In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:rest_for_one` will kill and restart child processes which were started *after* the crashed child. In this case, we would want `KV.BucketSupervisor` to terminate if `KV.Registry` terminates. This would require the bucket supervisor to be placed after the registry which violates the ordering constraints we have established two paragraphs above. So our last option is to go all in and pick the `:one_for_all` strategy: the supervisor will kill and restart all of its children processes whenever any one of them dies. This is a completely reasonable approach for our application, since the registry can't work without the bucket supervisor, and the bucket supervisor should terminate without the registry. Let's reimplement `init/1` in `KV.Supervisor` to encode those properties: From 048a63556918792882ce6e63a67c1d9a639e1338 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 4 Jan 2019 16:44:26 -0800 Subject: [PATCH 0952/1761] Further tweak the ETS usability sentence (#1203) --- getting-started/erlang-libraries.markdown | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index f36dd0ceb..eed7b6fc3 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -77,7 +77,7 @@ end [The digraph module](http://erlang.org/doc/man/digraph.html) (as well as [digraph_utils](http://erlang.org/doc/man/digraph_utils.html)) contains functions for dealing with directed graphs built of vertices and edges. -After constructing the graph, the algorithms in there will help finding, +After constructing the graph, the algorithms in there will help find, for instance, the shortest path between two vertices, or loops in the graph. Given three vertices, find the shortest path from the first to the last. @@ -103,8 +103,9 @@ data structures in memory or on disk respectively. ETS lets you create a table containing tuples. By default, ETS tables are protected, which means only the owner process may write to the table -but any other process can read. ETS has some functionality to be used as -a simple database, a key-value store or as a cache mechanism. +but any other process can read. ETS has some functionality to allow a +table to be used as a simple database, a key-value store or as a cache +mechanism. The functions in the `ets` module will modify the state of the table as a side-effect. From d3c71c8e92277bc8698e2b4d31eb2bee39152a1a Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 4 Jan 2019 23:32:52 -0800 Subject: [PATCH 0953/1761] Don't use assignment pattern matching in function parameters (#1204) It doesn't seem to be covered or used anywhere in the entire Getting Started guide, so its sudden use is a bit jarring. Also add some code literal markup in one place. --- getting-started/mix-otp/genserver.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index db562e1f8..4630a3bc0 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -202,7 +202,7 @@ iex> flush() {:DOWN, #Reference<0.0.0.551>, :process, #PID<0.66.0>, :normal} ``` -Note `Process.monitor(pid)` returns a unique reference that allows us to match upcoming messages to that monitoring reference. After we stop the agent, we can `flush/0` all messages and notice a `:DOWN` message arrived, with the exact reference returned by monitor, notifying that the bucket process exited with reason `:normal`. +Note `Process.monitor(pid)` returns a unique reference that allows us to match upcoming messages to that monitoring reference. After we stop the agent, we can `flush/0` all messages and notice a `:DOWN` message arrived, with the exact reference returned by `monitor`, notifying that the bucket process exited with reason `:normal`. Let's reimplement the server callbacks to fix the bug and make the test pass. First, we will modify the GenServer state to two dictionaries: one that contains `name -> pid` and another that holds `ref -> name`. Then we need to monitor the buckets on `handle_cast/2` as well as implement a `handle_info/2` callback to handle the monitoring messages. The full server callbacks implementation is shown below: @@ -215,7 +215,8 @@ def init(:ok) do {:ok, {names, refs}} end -def handle_call({:lookup, name}, _from, {names, _} = state) do +def handle_call({:lookup, name}, _from, state) do + {names, _} = state {:reply, Map.fetch(names, name), state} end From 95671f05ac7850a7b56a4ddd978b4cfa0e59a1de Mon Sep 17 00:00:00 2001 From: David Allen Date: Sat, 5 Jan 2019 21:59:54 +1100 Subject: [PATCH 0954/1761] Update exenv URL (#1213) --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index a0ad17c87..29607627e 100644 --- a/install.markdown +++ b/install.markdown @@ -98,7 +98,7 @@ Once the release is unpacked, you are ready to run the `elixir` and `iex` comman There are many tools that allow developers to install and manage multiple Erlang and Elixir versions. They are useful if you can't install Erlang or Elixir as mentioned above or if your package manager is simply outdated. Here are some of those tools: * [asdf](https://github.com/asdf-vm/asdf) - install and manage different Elixir and Erlang versions - * [exenv](https://github.com/mururu/exenv) - install and manage different Elixir versions + * [exenv](https://github.com/exenv/exenv) - install and manage different Elixir versions * [kiex](https://github.com/taylor/kiex) - install and manage different Elixir versions * [kerl](https://github.com/yrashk/kerl) - install and manage different Erlang versions From 711bb80ba9413eba9e9d238ef64fe76f89a2264b Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Sun, 6 Jan 2019 13:34:58 -0800 Subject: [PATCH 0955/1761] Add a note about being in a defmodule to refer to a struct (#1199) If you follow the tutorial in a `.ex` or `.exs` file, then referring to a struct leads to an unexpected error about it not being defined. (This has already come up on Stack Overflow: https://stackoverflow.com/questions/39576209/elixir-cannot-access-struct.) --- getting-started/structs.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index 6e505f29d..445dd2c04 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -35,7 +35,7 @@ The keyword list used with `defstruct` defines what fields the struct will have Structs take the name of the module they're defined in. In the example above, we defined a struct named `User`. -We can now create `User` structs by using a syntax similar to the one used to create maps: +We can now create `User` structs by using a syntax similar to the one used to create maps (if you have defined the struct in a separate file, you can compile the file inside IEx before proceeding by running `c "file.exs"`; be aware you may get an error saying `the struct was not yet defined` if you try the below example in a file directly due to when definitions are resolved): ```iex iex> %User{} From cbb18378fc5155a81c059f7ecc8dfc594f5ce391 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Mon, 7 Jan 2019 02:07:59 -0800 Subject: [PATCH 0956/1761] Drop periods at the end of comments for consistency (#1214) --- .../mix-otp/dependencies-and-umbrella-projects.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown index 26b1f4ca2..37b833496 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown @@ -172,7 +172,7 @@ defmodule KVServer.MixProject do ] end - # Run "mix help compile.app" to learn about applications. + # Run "mix help compile.app" to learn about applications def application do [ extra_applications: [:logger], @@ -180,7 +180,7 @@ defmodule KVServer.MixProject do ] end - # Run "mix help deps" to learn about dependencies. + # Run "mix help deps" to learn about dependencies defp deps do [ # {:dep_from_hexpm, "~> 0.3.0"}, From d0d34cc90799997384b0146dca94b049a33206ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 7 Jan 2019 12:18:45 +0100 Subject: [PATCH 0957/1761] Use mutation instead of change Closes #1215. --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 5b11c82b1..d7e895d72 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -264,7 +264,7 @@ iex> [1, true, 2, false, 3, true] -- [true, false] [1, 2, 3, true] ``` -List operators never modify the existing list. Concatenating to or removing elements from a list returns a new list. We say that Elixir data structures are *immutable*. One advantage of immutability is that it leads to clearer code. You can freely pass the data around with the guarantee no one will change it - only transform it. +List operators never modify the existing list. Concatenating to or removing elements from a list returns a new list. We say that Elixir data structures are *immutable*. One advantage of immutability is that it leads to clearer code. You can freely pass the data around with the guarantee no one will mutate it in memory - only transform it. Throughout the tutorial, we will talk a lot about the head and tail of a list. The head is the first element of a list and the tail is the remainder of the list. They can be retrieved with the functions `hd/1` and `tl/1`. Let's assign a list to a variable and retrieve its head and tail: From f5847f642b1ec2c6fc7f21cc511f5f7557641002 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Tue, 8 Jan 2019 11:54:03 -0800 Subject: [PATCH 0958/1761] Remove periods at the end of comments for Distributed Tasks page (#1216) --- .../mix-otp/distributed-tasks-and-configuration.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown index 0c8233d20..49c4e4500 100644 --- a/getting-started/mix-otp/distributed-tasks-and-configuration.markdown +++ b/getting-started/mix-otp/distributed-tasks-and-configuration.markdown @@ -196,7 +196,7 @@ defmodule KV.Router do The routing table. """ def table do - # Replace computer-name with your local machine name. + # Replace computer-name with your local machine name [{?a..?m, :"foo@computer-name"}, {?n..?z, :"bar@computer-name"}] end end @@ -338,7 +338,7 @@ Start IEx with `iex -S mix` and you can see that the IEx prompt has changed. This means we can also configure our `:routing_table` directly in the `apps/kv/config/config.exs` file: ```elixir -# Replace computer-name with your local machine nodes. +# Replace computer-name with your local machine nodes config :kv, :routing_table, [{?a..?m, :"foo@computer-name"}, {?n..?z, :"bar@computer-name"}] ``` From c4206110c0a5e4e4c6e967d3890afc8be1990128 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Wed, 9 Jan 2019 16:23:07 -0800 Subject: [PATCH 0959/1761] Remove periods at the end of comments for doc tests page (#1217) --- getting-started/mix-otp/docs-tests-and-with.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index bc43bed9a..7dcd17a31 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -232,17 +232,17 @@ defp write_line(socket, {:ok, text}) do end defp write_line(socket, {:error, :unknown_command}) do - # Known error. Write to the client. + # Known error; write to the client :gen_tcp.send(socket, "UNKNOWN COMMAND\r\n") end defp write_line(_socket, {:error, :closed}) do - # The connection was closed, exit politely. + # The connection was closed, exit politely exit(:shutdown) end defp write_line(socket, {:error, error}) do - # Unknown error. Write to the client and exit. + # Unknown error; write to the client and exit :gen_tcp.send(socket, "ERROR\r\n") exit(error) end From c920243839398ad8f2f3ba29d6c12eb449bf78cd Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Thu, 10 Jan 2019 09:49:30 -0800 Subject: [PATCH 0960/1761] Remove period from comment on ETS page (#1218) --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 6adb6d268..6017c752f 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -263,7 +263,7 @@ Note that the purpose of the test is to check whether the registry processes the KV.Registry.create(registry, "shopping") {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - # Simulate a bucket crash by explicitly and synchronously shutting it down. + # Simulate a bucket crash by explicitly and synchronously shutting it down Agent.stop(bucket, :shutdown) # Now trying to call the dead process causes a :noproc exit From 790552b72ed500ac8d6763311bf1372a1b423237 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 11 Jan 2019 11:11:26 -0800 Subject: [PATCH 0961/1761] Remove periods from comments in mix intro page (#1219) --- getting-started/mix-otp/introduction-to-mix.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 04020d822..bd432fe86 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -97,14 +97,14 @@ defmodule KV.MixProject do ] end - # Run "mix help compile.app" to learn about applications. + # Run "mix help compile.app" to learn about applications def application do [ extra_applications: [:logger] ] end - # Run "mix help deps" to learn about dependencies. + # Run "mix help deps" to learn about dependencies defp deps do [ # {:dep_from_hexpm, "~> 0.3.0"}, From 6554a2be9cee46f6b79213fe5618a9d840a24482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 14 Jan 2019 16:21:48 +0100 Subject: [PATCH 0962/1761] Release v1.8 (#1220) --- _data/elixir-versions.yml | 8 +- _includes/search.html | 2 +- ...2019-01-14-elixir-v1-8-0-released.markdown | 82 +++++++++++++++++++ elixir.csv | 2 +- 4 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 _posts/2019-01-14-elixir-v1-8-0-released.markdown diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index e85d6d812..4e83b8a17 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,4 +1,10 @@ -stable: v1_7 +stable: v1_8 + +v1_8: + name: v1.8 + minimum_otp: 20.0 + version: 1.8.0 + docs_zip: true v1_7: name: v1.7 diff --git a/_includes/search.html b/_includes/search.html index 2e4273ea4..5cad0cdde 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ diff --git a/_posts/2019-01-14-elixir-v1-8-0-released.markdown b/_posts/2019-01-14-elixir-v1-8-0-released.markdown new file mode 100644 index 000000000..c415f2a4e --- /dev/null +++ b/_posts/2019-01-14-elixir-v1-8-0-released.markdown @@ -0,0 +1,82 @@ +--- +layout: post +title: Elixir v1.8 released +author: José Valim +category: Releases +excerpt: Elixir v1.8 comes with many improvements at the infrastructure level, improving compilation time, speeding up common patterns, and adding features around introspection of the system. +--- + +Elixir v1.8 comes with many improvements at the infrastructure level, improving compilation time, speeding up common patterns, and adding features around introspection of the system. + +## Custom struct inspections + +Elixir now provides a derivable implementation of the `Inspect` protocol. In a nutshell, this means it is really easy to filter data from your data structures whenever they are inspected. For example, imagine you have a user struct with security and privacy sensitive information: + +```elixir +defmodule User do + defstruct [:id, :name, :age, :email, :encrypted_password] +end +``` + +By default, if you inspect a user via `inspect(user)`, it will include all fields. This can cause fields such as `:email` and `:encrypted_password` to appear in logs, error reports, etc. You could always define a custom implementation of the `Inspect` protocol for such cases but Elixir v1.8 makes it simpler by allowing you to derive the `Inspect` protocol: + +```elixir +defmodule User do + @derive {Inspect, only: [:id, :name, :age]} + defstruct [:id, :name, :age, :email, :encrypted_password] +end +``` + +Now all user structs will be printed with all remaining fields collapsed: + + #User + +You can also pass `@derive {Inspect, except: [...]}` in case you want to keep all fields by default and exclude only some. + +## Time zone database support + +In Elixir v1.3, Elixir added four types, known as Calendar types, to work with dates and times: `Time`, `Date`, `NaiveDateTime` (without time zone), and `DateTime` (with time zone). Over the last versions we have added many enhancements to the Calendar types but the `DateTime` module always evolved at a slower pace since Elixir did not provide an API for time zone databases. + +Elixir v1.8 now defines a `Calendar.TimeZoneDatabase` behaviour, allowing developers to bring in their own time zone databases. By defining an explicit contract for time zone behaviours, Elixir can now extend the `DateTime` API, adding functions such as `DateTime.shift_zone/3`. By default, Elixir ships with a time zone database called `Calendar.UTCOnlyTimeZoneDatabase` that only handles UTC. + +Other Calendar related improvements include the addition of `Date.day_of_year/1`, `Date.quarter_of_year/1`, `Date.year_of_era/1`, and `Date.day_of_era/1`. + +## Faster compilation and other performance improvements + +Due to improvements to the compiler made over the last year, Elixir v1.8 should compile code about 5% faster on average. This is yet another release where we have been able to reduce compilation times and provide a more joyful development experience to everyone. + +The compiler also emits more efficient code for range checks in guards (such as `x in y..z`), for charlists with interpolation (such as `'foo #{bar} baz'`), and when working with records via the `Record` module. + +Finally, EEx templates got their own share of optimizations, emitting more compact code that runs faster. + +## Improved instrumentation and ownership with `$callers` + +The `Task` module is one of the most common ways to spawn light-weight processes to perform work concurrently. Whenever you spawn a new process, Elixir annotates the parent of that process through the `$ancestors` key. This information can be used by instrumentation tools to track the relationship between events occurring within multiple processes. However, many times, tracking only the `$ancestors` is not enough. + +For example, we recommend developers to always start tasks under a supervisor. This provides more visibility and allows us to control how those tasks are terminated when a node shuts down. In your code, this can be done by invoking something like: `Task.Supervisor.start_child(MySupervisor, task_specification)`. This means that, although your code is the one who invokes the task, the actual parent of the task would be the supervisor, as the supervisor is the one spawning it. We would list the supervisor as one of the `$ancestors` for the task, but the relationship between your code and the task is lost. + +In Elixir v1.8, we now track the relationship between your code and the task via the `$callers` key in the process dictionary, which aligns well with the existing `$ancestors` key. Therefore, assuming the `Task.Supervisor` call above, we have: + + [your code] -- calls --> [supervisor] ---- spawns --> [task] + +which means we store the following relationships: + + [your code] [supervisor] <-- ancestor -- [task] + ^ | + |--------------------- caller ---------------------| + +When a task is spawned directly from your code, without a supervisor, then the process running your code will be listed under both `$ancestors` and `$callers`. + +This small feature is very powerful. It allows instrumentation and monitoring tools to better track and relate the events happening in your system. This feature can also be used by tools like the "Ecto Sandbox". The "Ecto Sandbox" allows developers to run tests concurrently against the database, by using transactions and an ownership mechanism where each process explicitly gets a connection assigned to it. Without `$callers`, every time you spawned a task that queries the database, the task would not know its caller, and therefore it would be unable to know which connection was assigned to it. This often meant features that rely on tasks could not be tested concurrently. With `$callers`, figuring out this relationship is trivial and you have more tests using the full power of your machine. + +## Summing up + +We are really proud of this release (as usual!) which brings many improvements at the infrastructure level. Those improvements were designed with feedback from the community and from the many different companies using Elixir in production. The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.8.0). + +There is only one last major feature planned for upcoming Elixir versions, which is the addition of `mix release` to Elixir itself, streamlining the experience provided by packages like [distillery](https://github.com/bitwalker/distillery). With `mix release`, a developer can bundle the VM and all compiled code in a single directory, which can then be packaged and sent to production. We are glad to say the [work on this feature has already started](https://github.com/elixir-lang/elixir/issues/8612). + +During [my keynote at ElixirConf 2018 US](https://www.youtube.com/watch?v=suOzNeMJXl0), I talked about the next five years for Elixir and much of the emphasis is put on the community. Elixir was designed to be an extensible language and therefore the work on the language itself is meant to reduce with time, which we have seen in the last two releases. We trust the community to continue building on this solid foundation, bringing new challenges to the ecosystem and taking the language to new domains. + +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. + +Your turn. :) \ No newline at end of file diff --git a/elixir.csv b/elixir.csv index ba9c011a1..d3239beae 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.8.0-rc.1,https://github.com/elixir-lang/elixir/releases/download/v1.8.0-rc.1/Precompiled.zip,prerelease,1,369aa12706fb70ad65597bc5017df6fc1e029cbf,6144376bcdb08ae14257b28db0cf106af0181769bff8fa5f06f3f245fdceb8a74b5e12fe44f11930ffb2cc5de1a9eb3055b673dce46716058c3ddca677a51b89 +1.8.0,https://github.com/elixir-lang/elixir/releases/download/v1.8.0/Precompiled.zip,release,1,5710d486297c9aba6000d0b50ef15dba8d3effa8,2a003a34a98961dac758f51c46fc99f1fbb6e0bd9a35bb115cf0c7fb8ba11241b1636a0ca753f93d562fe705b325738ba19c6b83723c3be7ae8729a313a385f9 1.7.4,https://github.com/elixir-lang/elixir/releases/download/v1.7.4/Precompiled.zip,release,1,eb328d3b071b33d80ad4cb4b3b203c1b2d7a5186,807002481ae129fa1610a1facabe19765e2542397923d5c89e16b58f54870f2e444973e136d6b1207190b3117c03a37430860b6e3e6b7d59b3afb1b01852c6e3 1.7.3,https://github.com/elixir-lang/elixir/releases/download/v1.7.3/Precompiled.zip,release,1,9bfe816aaedeb9c5d40095b4eb4f5cb07eb33c2b,f8b0ac405531d46f4b65f459970c4b82892f8db51028f172072748269a922db65cb58e36239cd26dc39e5bdebd08a0e630ecbc267b6ff55a15d188483d78a0e5 1.7.2,https://github.com/elixir-lang/elixir/releases/download/v1.7.2/Precompiled.zip,release,1,97051389559547248d7e7f497ed3866ef11e3072,e7ebdfcd301737967d0c04df50d3ba5b5a0663d2a2e2ac771cf61b9aa8d73a8f64dd9a408890ff0e2db4e48df8f94ff4d5fb7060f25592411e54910cdfc567a0 From 3a47ff381727708813b2384c68ab1a358a277722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 14 Jan 2019 17:11:30 +0100 Subject: [PATCH 0963/1761] Update Elixir Radar link --- _includes/elixir-radar.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/elixir-radar.html b/_includes/elixir-radar.html index b4d4090c3..105354d73 100644 --- a/_includes/elixir-radar.html +++ b/_includes/elixir-radar.html @@ -11,7 +11,7 @@

Elixir Radar Newsletter

From 601b674cf7032c2fd4c28cd0b76ad4ab363a86be Mon Sep 17 00:00:00 2001 From: Jesse Cooke Date: Tue, 22 Jan 2019 11:02:29 -0800 Subject: [PATCH 0964/1761] Add links to asdf-elixir|erlang (#1221) --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 29607627e..973248614 100644 --- a/install.markdown +++ b/install.markdown @@ -97,7 +97,7 @@ Once the release is unpacked, you are ready to run the `elixir` and `iex` comman There are many tools that allow developers to install and manage multiple Erlang and Elixir versions. They are useful if you can't install Erlang or Elixir as mentioned above or if your package manager is simply outdated. Here are some of those tools: - * [asdf](https://github.com/asdf-vm/asdf) - install and manage different Elixir and Erlang versions + * [asdf](https://github.com/asdf-vm/asdf) - install and manage different [Elixir](https://github.com/asdf-vm/asdf-elixir) and [Erlang](https://github.com/asdf-vm/asdf-erlang) versions * [exenv](https://github.com/exenv/exenv) - install and manage different Elixir versions * [kiex](https://github.com/taylor/kiex) - install and manage different Elixir versions * [kerl](https://github.com/yrashk/kerl) - install and manage different Erlang versions From 7a07a1d1c31454f2eaa44409b9811f556f462bf4 Mon Sep 17 00:00:00 2001 From: Cody Fuller Date: Fri, 25 Jan 2019 12:46:02 -0600 Subject: [PATCH 0965/1761] Fix arity of alias!/1 (#1222) --- getting-started/meta/macros.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 9955c2412..28e81c9fb 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -179,7 +179,7 @@ Sample.quoted #=> {:x, [line: 3], Sample} Notice that the third element in the quoted variable is the atom `Sample`, instead of `nil`, which marks the variable as coming from the `Sample` module. Therefore, Elixir considers these two variables as coming from different contexts and handles them accordingly. -Elixir provides similar mechanisms for imports and aliases too. This guarantees that a macro will behave as specified by its source module rather than conflicting with the target module where the macro is expanded. Hygiene can be bypassed under specific situations by using macros like `var!/2` and `alias!/2`, although one must be careful when using those as they directly change the user environment. +Elixir provides similar mechanisms for imports and aliases too. This guarantees that a macro will behave as specified by its source module rather than conflicting with the target module where the macro is expanded. Hygiene can be bypassed under specific situations by using macros like `var!/2` and `alias!/1`, although one must be careful when using those as they directly change the user environment. Sometimes variable names might be dynamically created. In such cases, `Macro.var/2` can be used to define new variables: From bb04d973d002b706a5db3eddd4b52aa3ad581a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 30 Jan 2019 11:49:18 +0100 Subject: [PATCH 0966/1761] Release v1.8.1 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 4e83b8a17..2968fe89b 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_8 v1_8: name: v1.8 minimum_otp: 20.0 - version: 1.8.0 + version: 1.8.1 docs_zip: true v1_7: diff --git a/elixir.csv b/elixir.csv index d3239beae..8ea1ce5d8 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.8.1,https://github.com/elixir-lang/elixir/releases/download/v1.8.1/Precompiled.zip,release,1,9b9a15b299b15c78ec9c1c92cdcf293905290d09,17c2d07eb4bc259031e7b9f1449bc2a16745a6fb1f3685ed5153da624f87fe49cc61b304a0cb531cbda3407f041b517e2b508cf0b3aa9a998e23598c301c7886 1.8.0,https://github.com/elixir-lang/elixir/releases/download/v1.8.0/Precompiled.zip,release,1,5710d486297c9aba6000d0b50ef15dba8d3effa8,2a003a34a98961dac758f51c46fc99f1fbb6e0bd9a35bb115cf0c7fb8ba11241b1636a0ca753f93d562fe705b325738ba19c6b83723c3be7ae8729a313a385f9 1.7.4,https://github.com/elixir-lang/elixir/releases/download/v1.7.4/Precompiled.zip,release,1,eb328d3b071b33d80ad4cb4b3b203c1b2d7a5186,807002481ae129fa1610a1facabe19765e2542397923d5c89e16b58f54870f2e444973e136d6b1207190b3117c03a37430860b6e3e6b7d59b3afb1b01852c6e3 1.7.3,https://github.com/elixir-lang/elixir/releases/download/v1.7.3/Precompiled.zip,release,1,9bfe816aaedeb9c5d40095b4eb4f5cb07eb33c2b,f8b0ac405531d46f4b65f459970c4b82892f8db51028f172072748269a922db65cb58e36239cd26dc39e5bdebd08a0e630ecbc267b6ff55a15d188483d78a0e5 From 3edacf6f30ef26a63c210824f105bc07ce4531fa Mon Sep 17 00:00:00 2001 From: Marin Atanasov Nikolov Date: Mon, 11 Feb 2019 10:35:31 +0200 Subject: [PATCH 0967/1761] Minor fix - enclose function arity in code block (#1225) --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index d7e895d72..44342d5db 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -79,7 +79,7 @@ iex> trunc(3.58) ## Identifying functions -Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments that the function takes. From this point on we will use both the function name and its arity to describe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes 1 argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of `2`. +Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments that the function takes. From this point on we will use both the function name and its arity to describe functions throughout the documentation. `round/1` identifies the function which is named `round` and takes `1` argument, whereas `round/2` identifies a different (nonexistent) function with the same name but with an arity of `2`. ## Booleans From b67f0e72b6b61ad930c7e43ab3f1ed470ff43093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 13 Feb 2019 11:03:42 +0100 Subject: [PATCH 0968/1761] Link to the Protocol module --- getting-started/protocols.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 1923eca52..9c225c955 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -234,3 +234,5 @@ Those are all protocols that ship with Elixir and they are being consolidated. B However, after our project is compiled using a tool like Mix, we know all modules that have been defined, including protocols and their implementations. This way, the protocol can be consolidated into a very simple and fast dispatch module. From Elixir v1.2, protocol consolidation happens automatically for all projects. We will build our own project in the ***Mix and OTP guide***. + +You can learn more about protocols and implementations in the [`Protocol`](https://hexdocs.pm/elixir/Protocol.html) module. From b4f0c6c166a89ac1bdbe0442b84fe438ff28c67d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ton=C4=87i=20Gali=C4=87?= Date: Fri, 15 Feb 2019 15:46:48 +0100 Subject: [PATCH 0969/1761] Add parens to io snippets (#1228) --- .../io-and-the-file-system.markdown | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index b6292d59e..0c7f91dc6 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -16,10 +16,10 @@ We had originally sketched this chapter to come much earlier in the getting star The [`IO`](https://hexdocs.pm/elixir/IO.html) module is the main mechanism in Elixir for reading and writing to standard input/output (`:stdio`), standard error (`:stderr`), files, and other IO devices. Usage of the module is pretty straightforward: ```iex -iex> IO.puts "hello world" +iex> IO.puts("hello world") hello world :ok -iex> IO.gets "yes or no? " +iex> IO.gets("yes or no? ") yes or no? yes "yes\n" ``` @@ -27,7 +27,7 @@ yes or no? yes By default, functions in the `IO` module read from the standard input and write to the standard output. We can change that by passing, for example, `:stderr` as an argument (in order to write to the standard error device): ```iex -iex> IO.puts :stderr, "hello world" +iex> IO.puts(:stderr, "hello world") hello world :ok ``` @@ -37,13 +37,13 @@ hello world The [`File`](https://hexdocs.pm/elixir/File.html) module contains functions that allow us to open files as IO devices. By default, files are opened in binary mode, which requires developers to use the specific `IO.binread/2` and `IO.binwrite/2` functions from the `IO` module: ```iex -iex> {:ok, file} = File.open "hello", [:write] +iex> {:ok, file} = File.open("hello", [:write]) {:ok, #PID<0.47.0>} -iex> IO.binwrite file, "world" +iex> IO.binwrite(file, "world") :ok -iex> File.close file +iex> File.close(file) :ok -iex> File.read "hello" +iex> File.read("hello") {:ok, "world"} ``` @@ -54,13 +54,13 @@ Besides functions for opening, reading and writing files, the `File` module has You will also notice that functions in the `File` module have two variants: one "regular" variant and another variant with a trailing bang (`!`). For example, when we read the `"hello"` file in the example above, we use `File.read/1`. Alternatively, we can use `File.read!/1`: ```iex -iex> File.read "hello" +iex> File.read("hello") {:ok, "world"} -iex> File.read! "hello" +iex> File.read!("hello") "world" -iex> File.read "unknown" +iex> File.read("unknown") {:error, :enoent} -iex> File.read! "unknown" +iex> File.read!("unknown") ** (File.Error) could not read file "unknown": no such file or directory ``` @@ -105,7 +105,7 @@ With this, we have covered the main modules that Elixir provides for dealing wit You may have noticed that `File.open/2` returns a tuple like `{:ok, pid}`: ```iex -iex> {:ok, file} = File.open "hello", [:write] +iex> {:ok, file} = File.open("hello", [:write]) {:ok, #PID<0.47.0>} ``` @@ -138,10 +138,10 @@ By modeling IO devices with processes, the Erlang When you write to `:stdio`, you are actually sending a message to the group leader, which writes to the standard-output file descriptor: ```iex -iex> IO.puts :stdio, "hello" +iex> IO.puts(:stdio, "hello") hello :ok -iex> IO.puts Process.group_leader, "hello" +iex> IO.puts(Process.group_leader(), "hello") hello :ok ``` @@ -155,10 +155,10 @@ In all of the examples above, we used binaries when writing to files. In the cha The functions in `IO` and `File` also allow lists to be given as arguments. Not only that, they also allow a mixed list of lists, integers, and binaries to be given: ```iex -iex> IO.puts 'hello world' +iex> IO.puts('hello world') hello world :ok -iex> IO.puts ['hello', ?\s, "world"] +iex> IO.puts(['hello', ?\s, "world"]) hello world :ok ``` From 6568f96068c69bb5d2a0edf2dca9b50243d7639a Mon Sep 17 00:00:00 2001 From: Milton Mazzarri Date: Mon, 18 Feb 2019 23:34:31 -0600 Subject: [PATCH 0970/1761] Replace variables for Elixir/Erlang versions --- _epub/lib/elixir_lang_guide.ex | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/_epub/lib/elixir_lang_guide.ex b/_epub/lib/elixir_lang_guide.ex index 89de0a379..2f6ab2e19 100644 --- a/_epub/lib/elixir_lang_guide.ex +++ b/_epub/lib/elixir_lang_guide.ex @@ -52,6 +52,14 @@ defmodule ElixirLangGuide do |> YamlElixir.read_from_file() |> generate_nav(options) + elixir_versions = + options.root_dir + |> Path.expand() + |> Path.join("_data/elixir-versions.yml") + |> YamlElixir.read_from_file() + + options = Map.put(options, :elixir_versions, elixir_versions) + nav |> convert_markdown_pages(options) |> to_epub(nav, options) @@ -160,6 +168,7 @@ defmodule ElixirLangGuide do defp clean_markdown(content, options) do content |> remove_includes() + |> remove_variables(options) |> remove_span_hidden_hack() |> remove_raw_endraw_tags() |> remove_frontmatter() @@ -175,6 +184,16 @@ defmodule ElixirLangGuide do |> String.replace("{% include mix-otp-preface.html %}", "") end + defp remove_variables(content, options) do + %{"stable" => current_stable_version} = elixir_versions = Map.get(options, :elixir_versions) + stable = elixir_versions[current_stable_version] + + content + |> String.replace("{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %}", "") + |> String.replace("{{ stable.version }}", "#{stable["version"]}") + |> String.replace("{{ stable.minimum_otp }}", "#{stable["minimum_otp"]}") + end + # The is a hack used in pattern-matching.md defp remove_span_hidden_hack(content) do String.replace(content, ~r/# {{ page.title }}(",E={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function y(e){return e.replace(/&/g,"&").replace(//g,">")}function _(e){return e.nodeName.toLowerCase()}function w(e,n){var a=e&&e.exec(n);return a&&0===a.index}function p(e){return n.test(e)}function d(e){var n,a={},t=Array.prototype.slice.call(arguments,1);for(n in e)a[n]=e[n];return t.forEach(function(e){for(n in e)a[n]=e[n]}),a}function f(e){var i=[];return function e(n,a){for(var t=n.firstChild;t;t=t.nextSibling)3===t.nodeType?a+=t.nodeValue.length:1===t.nodeType&&(i.push({event:"start",offset:a,node:t}),a=e(t,a),_(t).match(/br|hr|img|input/)||i.push({event:"stop",offset:a,node:t}));return a}(e,0),i}function x(s){function o(e){return e&&e.source||e}function l(e,n){return new RegExp(o(e),"m"+(s.case_insensitive?"i":"")+(n?"g":""))}!function n(a,e){if(!a.compiled){if(a.compiled=!0,a.keywords=a.keywords||a.beginKeywords,a.keywords){var t={},i=function(a,e){s.case_insensitive&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var n=e.split("|");t[n[0]]=[a,n[1]?Number(n[1]):1]})};"string"==typeof a.keywords?i("keyword",a.keywords):c(a.keywords).forEach(function(e){i(e,a.keywords[e])}),a.keywords=t}a.lexemesRe=l(a.lexemes||/\w+/,!0),e&&(a.beginKeywords&&(a.begin="\\b("+a.beginKeywords.split(" ").join("|")+")\\b"),a.begin||(a.begin=/\B|\b/),a.beginRe=l(a.begin),a.end||a.endsWithParent||(a.end=/\B|\b/),a.end&&(a.endRe=l(a.end)),a.terminator_end=o(a.end)||"",a.endsWithParent&&e.terminator_end&&(a.terminator_end+=(a.end?"|":"")+e.terminator_end)),a.illegal&&(a.illegalRe=l(a.illegal)),null==a.relevance&&(a.relevance=1),a.contains||(a.contains=[]),a.contains=Array.prototype.concat.apply([],a.contains.map(function(e){return(n="self"===e?a:e).variants&&!n.cached_variants&&(n.cached_variants=n.variants.map(function(e){return d(n,{variants:null},e)})),n.cached_variants||n.endsWithParent&&[d(n)]||[n];var n})),a.contains.forEach(function(e){n(e,a)}),a.starts&&n(a.starts,e);var r=a.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([a.terminator_end,a.illegal]).map(o).filter(Boolean);a.terminators=r.length?l(r.join("|"),!0):{exec:function(){return null}}}}(s)}function N(e,n,o,a){function l(e,n,a,t){var i='')+n+(a?"":v)}function c(){m+=null!=g.subLanguage?function(){var e="string"==typeof g.subLanguage;if(e&&!h[g.subLanguage])return y(b);var n=e?N(g.subLanguage,b,!0,r[g.subLanguage]):k(b,g.subLanguage.length?g.subLanguage:void 0);return 0")+'"');return b+=n,n.length||1}var u=M(e);if(!u)throw new Error('Unknown language: "'+e+'"');x(u);var i,g=a||u,r={},m="";for(i=g;i!==u;i=i.parent)i.className&&(m=l(i.className,"",!0)+m);var b="",_=0;try{for(var s,p,f=0;g.terminators.lastIndex=f,s=g.terminators.exec(n);)p=t(n.substring(f,s.index),s[0]),f=s.index+p;for(t(n.substr(f)),i=g;i.parent;i=i.parent)i.className&&(m+=v);return{relevance:_,value:m,language:e,top:g}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:y(n)};throw e}}function k(a,e){e=e||E.languages||c(h);var t={relevance:0,value:y(a)},i=t;return e.filter(M).forEach(function(e){var n=N(e,a,!1);n.language=e,n.relevance>i.relevance&&(i=n),n.relevance>t.relevance&&(i=t,t=n)}),i.language&&(t.second_best=i),t}function O(e){return E.tabReplace||E.useBR?e.replace(a,function(e,n){return E.useBR&&"\n"===e?"
":E.tabReplace?n.replace(/\t/g,E.tabReplace):""}):e}function t(e){var n,a,t,i,r,s,o,l,c,d,u=function(e){var n,a,t,i,r=e.className+" ";if(r+=e.parentNode?e.parentNode.className:"",a=b.exec(r))return M(a[1])?a[1]:"no-highlight";for(n=0,t=(r=r.split(/\s+/)).length;n/g,"\n"):n=e,r=n.textContent,t=u?N(u,r,!0):k(r),(a=f(n)).length&&((i=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=t.value,t.value=function(e,n,a){var t=0,i="",r=[];function s(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function l(e){i+=""}function c(e){("start"===e.event?o:l)(e.node)}for(;e.length||n.length;){var d=s();if(i+=y(a.substring(t,d[0].offset)),t=d[0].offset,d===e){for(r.reverse().forEach(l);c(d.splice(0,1)[0]),(d=s())===e&&d.length&&d[0].offset===t;);r.reverse().forEach(o)}else"start"===d[0].event?r.push(d[0].node):r.pop(),c(d.splice(0,1)[0])}return i+y(a.substr(t))}(a,f(i),r)),t.value=O(t.value),e.innerHTML=t.value,e.className=(s=e.className,o=u,l=t.language,c=o?m[o]:l,d=[s.trim()],s.match(/\bhljs\b/)||d.push("hljs"),-1===s.indexOf(c)&&d.push(c),d.join(" ").trim()),e.result={language:t.language,re:t.relevance},t.second_best&&(e.second_best={language:t.second_best.language,re:t.second_best.relevance}))}function r(){if(!r.called){r.called=!0;var e=document.querySelectorAll("pre code");g.forEach.call(e,t)}}function M(e){return e=(e||"").toLowerCase(),h[e]||h[m[e]]}return i.highlight=N,i.highlightAuto=k,i.fixMarkup=O,i.highlightBlock=t,i.configure=function(e){E=d(E,e)},i.initHighlighting=r,i.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",r,!1),addEventListener("load",r,!1)},i.registerLanguage=function(n,e){var a=h[n]=e(i);a.aliases&&a.aliases.forEach(function(e){m[e]=n})},i.listLanguages=function(){return c(h)},i.getLanguage=M,i.inherit=d,i.IDENT_RE="[a-zA-Z]\\w*",i.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",i.NUMBER_RE="\\b\\d+(\\.\\d+)?",i.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",i.BINARY_NUMBER_RE="\\b(0b[01]+)",i.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",i.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},i.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[i.BACKSLASH_ESCAPE]},i.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[i.BACKSLASH_ESCAPE]},i.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},i.COMMENT=function(e,n,a){var t=i.inherit({className:"comment",begin:e,end:n,contains:[]},a||{});return t.contains.push(i.PHRASAL_WORDS_MODE),t.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),t},i.C_LINE_COMMENT_MODE=i.COMMENT("//","$"),i.C_BLOCK_COMMENT_MODE=i.COMMENT("/\\*","\\*/"),i.HASH_COMMENT_MODE=i.COMMENT("#","$"),i.NUMBER_MODE={className:"number",begin:i.NUMBER_RE,relevance:0},i.C_NUMBER_MODE={className:"number",begin:i.C_NUMBER_RE,relevance:0},i.BINARY_NUMBER_MODE={className:"number",begin:i.BINARY_NUMBER_RE,relevance:0},i.CSS_NUMBER_MODE={className:"number",begin:i.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},i.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[i.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[i.BACKSLASH_ESCAPE]}]},i.TITLE_MODE={className:"title",begin:i.IDENT_RE,relevance:0},i.UNDERSCORE_TITLE_MODE={className:"title",begin:i.UNDERSCORE_IDENT_RE,relevance:0},i.METHOD_GUARD={begin:"\\.\\s*"+i.UNDERSCORE_IDENT_RE,relevance:0},i.registerLanguage("bash",function(e){var n={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]};return{aliases:["sh","zsh"],lexemes:/\b-?[a-z\._]+\b/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,a,{className:"string",begin:/'/,end:/'/},n]}}),i.registerLanguage("css",function(e){var n={begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}),i.registerLanguage("diff",function(e){return{aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}),i.registerLanguage("elixir",function(e){var n="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",a="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",t={className:"subst",begin:"#\\{",end:"}",lexemes:n,keywords:a},i={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},r={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},s=e.inherit(r,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),o=[i,e.HASH_COMMENT_MODE,s,r,{className:"symbol",begin:":(?!\\s)",contains:[i,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:n+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return{lexemes:n,keywords:a,contains:t.contains=o}}),i.registerLanguage("erlang-repl",function(e){return{keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),i.registerLanguage("erlang",function(e){var n="[a-z'][a-zA-Z0-9_']*",a="("+n+":"+n+"|"+n+")",t={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.COMMENT("%","$"),r={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+n+"/\\d+"},o={begin:a+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:a,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:"{",end:"}",relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},d={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},u={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},g={beginKeywords:"fun receive if try case",end:"end",keywords:t};g.contains=[i,s,e.inherit(e.APOS_STRING_MODE,{className:""}),g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];var m=[i,s,g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];o.contains[1].contains=m,l.contains=m;var b={className:"params",begin:"\\(",end:"\\)",contains:u.contains[1].contains=m};return{aliases:["erl"],keywords:t,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[b,e.inherit(e.TITLE_MODE,{begin:n})],starts:{end:";|\\.",keywords:t,contains:m}},i,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[b]},r,e.QUOTE_STRING_MODE,u,c,d,l,{begin:/\.$/}]}}),i.registerLanguage("http",function(e){var n="HTTP/[0-9\\.]+";return{aliases:["https"],illegal:"\\S",contains:[{begin:"^"+n,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+n+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:n},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),i.registerLanguage("javascript",function(e){var n="[A-Za-z$_][0-9A-Za-z$_]*",a={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},t={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},r={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,t,e.REGEXP_MODE];var s=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:a,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:s}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:s}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}),i.registerLanguage("json",function(e){var n={literal:"true false null"},a=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],t={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:n},i={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(t,{begin:/:/})],illegal:"\\S"},r={begin:"\\[",end:"\\]",contains:[e.inherit(t)],illegal:"\\S"};return a.splice(a.length,0,i,r),{contains:a,keywords:n,illegal:"\\S"}}),i.registerLanguage("xml",function(e){var n={endsWithParent:!0,illegal:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"|$)",end:">",keywords:{name:"style"},contains:[n],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[n],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},n]}]}}),i.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}),i.registerLanguage("sql",function(e){var n=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n]},e.C_BLOCK_COMMENT_MODE,n]}}),i})}]); \ No newline at end of file diff --git a/_epub/priv/app-769d25bae3.css b/_epub/priv/app-769d25bae3.css deleted file mode 100644 index 583c5c649..000000000 --- a/_epub/priv/app-769d25bae3.css +++ /dev/null @@ -1 +0,0 @@ -.hljs{display:block;overflow-x:auto;padding:.5em;background:#fdf6e3;color:#657b83}.hljs-comment,.hljs-quote{color:#93a1a1}.hljs-addition,.hljs-keyword,.hljs-selector-tag{color:#859900}.hljs-doctag,.hljs-literal,.hljs-meta .hljs-meta-string,.hljs-number,.hljs-regexp,.hljs-string{color:#2aa198}.hljs-name,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-title{color:#268bd2}.hljs-attr,.hljs-attribute,.hljs-class .hljs-title,.hljs-template-variable,.hljs-type,.hljs-variable{color:#b58900}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-meta .hljs-keyword,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-subst,.hljs-symbol{color:#cb4b16}.hljs-built_in,.hljs-deletion{color:#dc322f}.hljs-formula{background:#eee8d5}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/_epub/priv/app-841ce296e9.css b/_epub/priv/app-841ce296e9.css new file mode 100644 index 000000000..1b40af453 --- /dev/null +++ b/_epub/priv/app-841ce296e9.css @@ -0,0 +1 @@ +code.inline{font-family:courier,monospace;font-style:normal;line-height:24px;font-weight:400;background-color:#f7f9fc;vertical-align:baseline;border-radius:2px;padding:.1em .2em}.hljs{display:block;overflow-x:auto;padding:.5em;background:#fdf6e3;color:#657b83}.hljs-comment,.hljs-quote{color:#93a1a1}.hljs-addition,.hljs-keyword,.hljs-selector-tag{color:#859900}.hljs-doctag,.hljs-literal,.hljs-meta .hljs-meta-string,.hljs-number,.hljs-regexp,.hljs-string{color:#2aa198}.hljs-name,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-title{color:#268bd2}.hljs-attr,.hljs-attribute,.hljs-class .hljs-title,.hljs-template-variable,.hljs-type,.hljs-variable{color:#b58900}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-meta .hljs-keyword,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-subst,.hljs-symbol{color:#cb4b16}.hljs-built_in,.hljs-deletion{color:#dc322f}.hljs-formula{background:#eee8d5}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/_epub/priv/app-990b83b456.js b/_epub/priv/app-990b83b456.js deleted file mode 100644 index ec2f90e13..000000000 --- a/_epub/priv/app-990b83b456.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){var n={};function a(t){if(n[t])return n[t].exports;var i=n[t]={i:t,l:!1,exports:{}};return e[t].call(i.exports,i,i.exports,a),i.l=!0,i.exports}a.m=e,a.c=n,a.d=function(e,n,t){a.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,"a",n),n},a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.p="",a(a.s=0)}([function(e,n,a){"use strict";var t,i=a(1),r=(t=i)&&t.__esModule?t:{default:t};r.default.configure({tabReplace:" "}),r.default.initHighlightingOnLoad()},function(e,n,a){!function(e){"object"==typeof window&&window||"object"==typeof self&&self;e(n)}(function(e){var n=[],a=Object.keys,t={},i={},r=/^(no-?highlight|plain|text)$/i,s=/\blang(?:uage)?-([\w-]+)\b/i,o=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,l="
",c={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function d(e){return e.replace(/&/g,"&").replace(//g,">")}function u(e){return e.nodeName.toLowerCase()}function g(e,n){var a=e&&e.exec(n);return a&&0===a.index}function m(e){return r.test(e)}function b(e){var n,a={},t=Array.prototype.slice.call(arguments,1);for(n in e)a[n]=e[n];return t.forEach(function(e){for(n in e)a[n]=e[n]}),a}function _(e){var n=[];return function e(a,t){for(var i=a.firstChild;i;i=i.nextSibling)3===i.nodeType?t+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:t,node:i}),t=e(i,t),u(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:t,node:i}));return t}(e,0),n}function p(e){function n(e){return e&&e.source||e}function t(a,t){return new RegExp(n(a),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}!function i(r,s){if(!r.compiled){if(r.compiled=!0,r.keywords=r.keywords||r.beginKeywords,r.keywords){var o={},l=function(n,a){e.case_insensitive&&(a=a.toLowerCase()),a.split(" ").forEach(function(e){var a=e.split("|");o[a[0]]=[n,a[1]?Number(a[1]):1]})};"string"==typeof r.keywords?l("keyword",r.keywords):a(r.keywords).forEach(function(e){l(e,r.keywords[e])}),r.keywords=o}r.lexemesRe=t(r.lexemes||/\w+/,!0),s&&(r.beginKeywords&&(r.begin="\\b("+r.beginKeywords.split(" ").join("|")+")\\b"),r.begin||(r.begin=/\B|\b/),r.beginRe=t(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=t(r.end)),r.terminator_end=n(r.end)||"",r.endsWithParent&&s.terminator_end&&(r.terminator_end+=(r.end?"|":"")+s.terminator_end)),r.illegal&&(r.illegalRe=t(r.illegal)),null==r.relevance&&(r.relevance=1),r.contains||(r.contains=[]),r.contains=Array.prototype.concat.apply([],r.contains.map(function(e){return(n="self"===e?r:e).variants&&!n.cached_variants&&(n.cached_variants=n.variants.map(function(e){return b(n,{variants:null},e)})),n.cached_variants||n.endsWithParent&&[b(n)]||[n];var n})),r.contains.forEach(function(e){i(e,r)}),r.starts&&i(r.starts,s);var c=r.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([r.terminator_end,r.illegal]).map(n).filter(Boolean);r.terminators=c.length?t(c.join("|"),!0):{exec:function(){return null}}}}(e)}function f(e,n,a,i){function r(e,n,a,t){var i='')+n+(a?"":l)}function s(){E+=null!=_.subLanguage?function(){var e="string"==typeof _.subLanguage;if(e&&!t[_.subLanguage])return d(y);var n=e?f(_.subLanguage,y,!0,v[_.subLanguage]):h(y,_.subLanguage.length?_.subLanguage:void 0);return _.relevance>0&&(x+=n.relevance),e&&(v[_.subLanguage]=n.top),r(n.language,n.value,!1,!0)}():function(){var e,n,a,t,i,s,o;if(!_.keywords)return d(y);for(t="",n=0,_.lexemesRe.lastIndex=0,a=_.lexemesRe.exec(y);a;)t+=d(y.substring(n,a.index)),i=_,s=a,o=m.case_insensitive?s[0].toLowerCase():s[0],(e=i.keywords.hasOwnProperty(o)&&i.keywords[o])?(x+=e[1],t+=r(e[0],d(a[0]))):t+=d(a[0]),n=_.lexemesRe.lastIndex,a=_.lexemesRe.exec(y);return t+d(y.substr(n))}(),y=""}function o(e){E+=e.className?r(e.className,"",!0):"",_=Object.create(e,{parent:{value:_}})}function u(e,n){if(y+=e,null==n)return s(),0;var t=function(e,n){var a,t;for(a=0,t=n.contains.length;a")+'"');return y+=n,n.length||1}var m=w(e);if(!m)throw new Error('Unknown language: "'+e+'"');p(m);var b,_=i||m,v={},E="";for(b=_;b!==m;b=b.parent)b.className&&(E=r(b.className,"",!0)+E);var y="",x=0;try{for(var N,k,O=0;_.terminators.lastIndex=O,N=_.terminators.exec(n);)k=u(n.substring(O,N.index),N[0]),O=N.index+k;for(u(n.substr(O)),b=_;b.parent;b=b.parent)b.className&&(E+=l);return{relevance:x,value:E,language:e,top:_}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:d(n)};throw e}}function h(e,n){n=n||c.languages||a(t);var i={relevance:0,value:d(e)},r=i;return n.filter(w).forEach(function(n){var a=f(n,e,!1);a.language=n,a.relevance>r.relevance&&(r=a),a.relevance>i.relevance&&(r=i,i=a)}),r.language&&(i.second_best=r),i}function v(e){return c.tabReplace||c.useBR?e.replace(o,function(e,n){return c.useBR&&"\n"===e?"
":c.tabReplace?n.replace(/\t/g,c.tabReplace):""}):e}function E(e){var a,t,r,o,l,g,b,p,E,y,x=function(e){var n,a,t,i,r=e.className+" ";if(r+=e.parentNode?e.parentNode.className:"",a=s.exec(r))return w(a[1])?a[1]:"no-highlight";for(n=0,t=(r=r.split(/\s+/)).length;n/g,"\n"):a=e,l=a.textContent,r=x?f(x,l,!0):h(l),(t=_(a)).length&&((o=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,a,t){var i=0,r="",s=[];function o(){return e.length&&a.length?e[0].offset!==a[0].offset?e[0].offset"}function c(e){r+=""}function g(e){("start"===e.event?l:c)(e.node)}for(;e.length||a.length;){var m=o();if(r+=d(t.substring(i,m[0].offset)),i=m[0].offset,m===e){s.reverse().forEach(c);do{g(m.splice(0,1)[0]),m=o()}while(m===e&&m.length&&m[0].offset===i);s.reverse().forEach(l)}else"start"===m[0].event?s.push(m[0].node):s.pop(),g(m.splice(0,1)[0])}return r+d(t.substr(i))}(t,_(o),l)),r.value=v(r.value),e.innerHTML=r.value,e.className=(g=e.className,b=x,p=r.language,E=b?i[b]:p,y=[g.trim()],g.match(/\bhljs\b/)||y.push("hljs"),-1===g.indexOf(E)&&y.push(E),y.join(" ").trim()),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function y(){if(!y.called){y.called=!0;var e=document.querySelectorAll("pre code");n.forEach.call(e,E)}}function w(e){return e=(e||"").toLowerCase(),t[e]||t[i[e]]}return e.highlight=f,e.highlightAuto=h,e.fixMarkup=v,e.highlightBlock=E,e.configure=function(e){c=b(c,e)},e.initHighlighting=y,e.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",y,!1),addEventListener("load",y,!1)},e.registerLanguage=function(n,a){var r=t[n]=a(e);r.aliases&&r.aliases.forEach(function(e){i[e]=n})},e.listLanguages=function(){return a(t)},e.getLanguage=w,e.inherit=b,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(n,a,t){var i=e.inherit({className:"comment",begin:n,end:a,contains:[]},t||{});return i.contains.push(e.PHRASAL_WORDS_MODE),i.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),i},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e.registerLanguage("bash",function(e){var n={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]};return{aliases:["sh","zsh"],lexemes:/\b-?[a-z\._]+\b/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,a,{className:"string",begin:/'/,end:/'/},n]}}),e.registerLanguage("css",function(e){var n={begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}),e.registerLanguage("diff",function(e){return{aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}}),e.registerLanguage("elixir",function(e){var n="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",a="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",t={className:"subst",begin:"#\\{",end:"}",lexemes:n,keywords:a},i={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},r={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},s=e.inherit(r,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),o=[i,e.HASH_COMMENT_MODE,s,r,{className:"symbol",begin:":(?!\\s)",contains:[i,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:n+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return t.contains=o,{lexemes:n,keywords:a,contains:o}}),e.registerLanguage("erlang-repl",function(e){return{keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),e.registerLanguage("erlang",function(e){var n="[a-z'][a-zA-Z0-9_']*",a="("+n+":"+n+"|"+n+")",t={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},i=e.COMMENT("%","$"),r={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+n+"/\\d+"},o={begin:a+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:a,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={begin:"{",end:"}",relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},d={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},u={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},g={beginKeywords:"fun receive if try case",end:"end",keywords:t};g.contains=[i,s,e.inherit(e.APOS_STRING_MODE,{className:""}),g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];var m=[i,s,g,o,e.QUOTE_STRING_MODE,r,l,c,d,u];o.contains[1].contains=m,l.contains=m,u.contains[1].contains=m;var b={className:"params",begin:"\\(",end:"\\)",contains:m};return{aliases:["erl"],keywords:t,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[b,e.inherit(e.TITLE_MODE,{begin:n})],starts:{end:";|\\.",keywords:t,contains:m}},i,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[b]},r,e.QUOTE_STRING_MODE,u,c,d,l,{begin:/\.$/}]}}),e.registerLanguage("http",function(e){var n="HTTP/[0-9\\.]+";return{aliases:["https"],illegal:"\\S",contains:[{begin:"^"+n,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+n+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:n},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),e.registerLanguage("javascript",function(e){var n="[A-Za-z$_][0-9A-Za-z$_]*",a={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},t={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},r={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,t,e.REGEXP_MODE];var s=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:a,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:s}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:s}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}),e.registerLanguage("json",function(e){var n={literal:"true false null"},a=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],t={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:n},i={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(t,{begin:/:/})],illegal:"\\S"},r={begin:"\\[",end:"\\]",contains:[e.inherit(t)],illegal:"\\S"};return a.splice(a.length,0,i,r),{contains:a,keywords:n,illegal:"\\S"}}),e.registerLanguage("xml",function(e){var n={endsWithParent:!0,illegal:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"|$)",end:">",keywords:{name:"style"},contains:[n],starts:{end:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"|$)",end:">",keywords:{name:"script"},contains:[n],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},n]}]}}),e.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}),e.registerLanguage("sql",function(e){var n=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n]},e.C_BLOCK_COMMENT_MODE,n]}}),e})}]); \ No newline at end of file From 561a2afe3f5eafd4a80f0e533878fe1a77ff3c38 Mon Sep 17 00:00:00 2001 From: Milton Mazzarri Date: Mon, 18 Feb 2019 23:47:11 -0600 Subject: [PATCH 0973/1761] Normalize code style using mix format --- _epub/.formatter.exs | 4 ++++ _epub/lib/elixir_lang_guide.ex | 5 ++++- _epub/mix.exs | 22 +++++++++++----------- 3 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 _epub/.formatter.exs diff --git a/_epub/.formatter.exs b/_epub/.formatter.exs new file mode 100644 index 000000000..d2cda26ed --- /dev/null +++ b/_epub/.formatter.exs @@ -0,0 +1,4 @@ +# Used by "mix format" +[ + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] +] diff --git a/_epub/lib/elixir_lang_guide.ex b/_epub/lib/elixir_lang_guide.ex index 2f6ab2e19..3a286e685 100644 --- a/_epub/lib/elixir_lang_guide.ex +++ b/_epub/lib/elixir_lang_guide.ex @@ -189,7 +189,10 @@ defmodule ElixirLangGuide do stable = elixir_versions[current_stable_version] content - |> String.replace("{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %}", "") + |> String.replace( + "{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %}", + "" + ) |> String.replace("{{ stable.version }}", "#{stable["version"]}") |> String.replace("{{ stable.minimum_otp }}", "#{stable["minimum_otp"]}") end diff --git a/_epub/mix.exs b/_epub/mix.exs index fa3b0f512..05dbe1b9a 100644 --- a/_epub/mix.exs +++ b/_epub/mix.exs @@ -2,13 +2,15 @@ defmodule ElixirLangGuide.Mixfile do use Mix.Project def project do - [app: :elixir_lang_guide, - version: "0.1.0", - elixir: "~> 1.4", - build_embedded: Mix.env == :prod, - start_permanent: Mix.env == :prod, - deps: deps(), - aliases: [epub: &epub/1]] + [ + app: :elixir_lang_guide, + version: "0.1.0", + elixir: "~> 1.4", + build_embedded: Mix.env() == :prod, + start_permanent: Mix.env() == :prod, + deps: deps(), + aliases: [epub: &epub/1] + ] end def application do @@ -16,13 +18,11 @@ defmodule ElixirLangGuide.Mixfile do end defp epub(_args) do - Mix.Task.run "app.start" + Mix.Task.run("app.start") ElixirLangGuide.run("..") end defp deps do - [{:yaml_elixir, "~> 1.3"}, - {:earmark, "~> 1.0"}, - {:bupe, "~> 0.3.0"}] + [{:yaml_elixir, "~> 1.3"}, {:earmark, "~> 1.0"}, {:bupe, "~> 0.3.0"}] end end From f4d309801eb4d7964d5741c5e65d507056a05ca4 Mon Sep 17 00:00:00 2001 From: roignpar <47150492+roignpar@users.noreply.github.com> Date: Sun, 24 Feb 2019 12:14:38 +0200 Subject: [PATCH 0974/1761] Fix typo in dependencies-and-umbrella-projects (#1230) --- .../mix-otp/dependencies-and-umbrella-projects.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown index 37b833496..fef5b71c9 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown @@ -254,7 +254,7 @@ Since we want `kv_server` to eventually use the functionality we defined in `kv` ## Dependencies within an umbrella project -Dependencies between applications in an umbrella project must still be explicitly defined and Mix makes easy to do so. Open up `apps/kv_server/mix.exs` and change the `deps/0` function to the following: +Dependencies between applications in an umbrella project must still be explicitly defined and Mix makes it easy to do so. Open up `apps/kv_server/mix.exs` and change the `deps/0` function to the following: ```elixir defp deps do From 9d4a5dc63b6528efe47c991dbcbdbee8eb25eaec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Meadows-J=C3=B6nsson?= Date: Mon, 25 Feb 2019 18:12:42 +0100 Subject: [PATCH 0975/1761] Add Mint blog post (#1231) --- ...int-a-new-http-library-for-elixir.markdown | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 _posts/2019-02-25-mint-a-new-http-library-for-elixir.markdown diff --git a/_posts/2019-02-25-mint-a-new-http-library-for-elixir.markdown b/_posts/2019-02-25-mint-a-new-http-library-for-elixir.markdown new file mode 100644 index 000000000..d9625bb46 --- /dev/null +++ b/_posts/2019-02-25-mint-a-new-http-library-for-elixir.markdown @@ -0,0 +1,79 @@ +--- +layout: post +title: Mint, a new HTTP library for Elixir +author: Eric Meadows-Jönsson +category: Announcements +excerpt: Mint is a new low-level HTTP library that aims to provide a small and functional core that others can build on top. +--- + +[Mint](https://github.com/ericmj/mint) is a new low-level HTTP library that aims to provide a small and functional core that others can build on top. Mint is connection based: each connection is a single struct with an associated socket belonging to the process that started the connection. Since no extra processes are started for the connection, you can choose the process architecture that better fits your application. + +To validate this we built out the library with a common API supporting both HTTP/1 and HTTP/2 with automatic version negotiation. In addition, Mint comes with a [CA certificate store](https://github.com/ericmj/castore) to do safe by default HTTPS connections. + +## Connections without processes + +Mint HTTP connections are managed directly in the process that starts the connection, which means no connection pool is used nor new processes spawned when a connection is opened. This allows the user of the library to build their own process structure that fits their application. + +With Mint each connection has a single immutable data structure that the user needs to manage. Mint uses ["active mode"](http://erlang.org/doc/man/inet.html#setopts-2) sockets. This means data and events from the socket are sent as messages to the process that started the connection. The user passes the messages to the `stream/2` function that returns the updated connection and a list of "responses". Responses are streamed back which means you won't receive a single full HTTP response back from `stream/2`, instead the response is returned in partial response chunks. A chunk can be the status line, HTTP headers, or part of the response body. + +Let's look at an example of sending a request with Mint: + +```elixir +iex(1)> {:ok, conn} = Mint.HTTP.connect(:http, "httpbin.org", 80) +iex(2)> {:ok, conn, request_ref} = Mint.HTTP.request(conn, "GET", "/", [], "") +iex(3)> receive do +...(3)> message -> +...(3)> IO.inspect(message, label: :message) +...(3)> {:ok, conn, responses} = Mint.HTTP.stream(conn, message) +...(3)> IO.inspect(responses, label: :responses) +...(3)> end +message: {:tcp, #Port<0.8>, "HTTP/1.1 200 OK\r\n" <> ...} +responses: [ + {:status, #Reference<...>, 200}, + {:headers, #Reference<...>, [{"connection", "keep-alive"}, ...}, + {:data, #Reference<...>, "" <> ...}, + {:done, #Reference<...>} +] +``` + +As we can see all calls to `Mint.HTTP` functions return an updated `conn` which holds the state for the connection. It is important to carry on the `conn` to the next function call or the state will be corrupted. + +On line 2 we send a request to the server. A reference to the request is returned: this reference is useful when sending concurrent requests, either with HTTP/1 pipelining or with HTTP/2 multiplexed streams. + +Next we start a receive block waiting for a TCP active mode message and pass it to `stream/2`. The message is parsed and the response to the request is returned. As you can see the response is split over multiple tuples: `:status`, `:headers`, `:data`, and `:done`. This is because Mint was built from the ground with streaming in mind. The parts of the response will be returned continuously as TCP messages are passed to `stream/2` so that we don't have to wait for the full response to complete before starting to process it. + +If the response body is larger than a single packet `stream/2` may return multiple `:data` tuples and if the response includes trailing headers multiple `:headers` will be returned. When the response is complete `:done` will be returned. + +Note that if you send concurrent requests on a HTTP/2 connection responses can be returned interleaved from the requests using HTTP/2's stream multiplexing. Additionally, responses can be spread over multiple messages so we may need to continually receive messages and pass them to `stream/2`. + +See more examples on how to use Mint in the [documentation](https://hexdocs.pm/mint). + +## Why process-less? + +Mint may seem more cumbersome to use than most other HTTP libraries you have used and that is true in many ways. But by providing a low-level API without a predetermined process architecture it gives more flexibility to the user of the library. + +Many times you do not need a general purpose connection pool and can avoid the additional complexity, single point of failure, and potential performance bottlenecks that it brings. For example, if you are building quick CLI scripts, you most likely don't need a pool and performing a single one-off request with Mint is good enough. + +Another good use case for Mint is [GenStage](https://github.com/elixir-lang/gen_stage). If you write GenStage pipelines, it is most likely that you have a pool of producers that fetch data from external sources via HTTP. If you are using a high-level HTTP library, that comes with its own pool, now you have two pools, one of GenStage producers and another from the HTTP library. With Mint, you can have each GenStage producer manage its own connection, reducing overhead and simplifying the code. + +Of course, none of this stops you from building a connection pool on top of Mint. The point is exactly that Mint won't impose an architecture onto you. At the end of the day, we hope Mint will be a useful building block for more complex scenario and use cases. + +## HTTP/1 and HTTP/2 + +The `Mint.HTTP` module has a single interface for both HTTP/1 and HTTP/2 connections and performs version negotation on HTTPS connections, HTTP connections default to HTTP/1. You can specify which HTTP version you want to use or use the `Mint.HTTP1` or `Mint.HTTP2` modules directly if you want to use version-specific features. + +## Safe-by-default HTTPS + +When connecting over HTTPS, Mint will perform certificate verification by default. We believe it's crucial that an HTTP library defaults to be secure out of the box. + +Mint uses an optional dependency on [CAStore](https://github.com/ericmj/castore) to provide certificates from [Mozilla's CA Certificate Store](https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/). + +You can of course tweak specific SSL settings without re-building the safe defaults yourself. + +## Current state of the library + +The first version of Mint has just been released. It is an experimental library trying a new approach to building HTTP libraries so don't expect a fully stable API yet. + +Use Mint to explore new ideas for HTTP connection management and building higher level clients on top of Mint. In the future connection pooling and a higher level API may be added to supplement the current low level API, either directly to Mint or via different libraries. + +*Note:* Mint is being announced in the official Elixir blog because it was originally being considered for inclusion in Elixir itself. However, at some point the Elixir team decided it doesn't make sense to include an HTTP client in Elixir itself, at least as long as Erlang/OTP ships with a client too. Mint is not maintained by the Elixir team, although it is maintained by Eric and Andrea, who are part of the team. From 8ae5d995d63733e1dca13ba5ff8e58de6a4e1822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Meadows-J=C3=B6nsson?= Date: Mon, 25 Feb 2019 19:49:46 +0100 Subject: [PATCH 0976/1761] Change library to client (#1232) --- .../2019-02-25-mint-a-new-http-library-for-elixir.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2019-02-25-mint-a-new-http-library-for-elixir.markdown b/_posts/2019-02-25-mint-a-new-http-library-for-elixir.markdown index d9625bb46..81511fe74 100644 --- a/_posts/2019-02-25-mint-a-new-http-library-for-elixir.markdown +++ b/_posts/2019-02-25-mint-a-new-http-library-for-elixir.markdown @@ -1,12 +1,12 @@ --- layout: post -title: Mint, a new HTTP library for Elixir +title: Mint, a new HTTP client for Elixir author: Eric Meadows-Jönsson category: Announcements -excerpt: Mint is a new low-level HTTP library that aims to provide a small and functional core that others can build on top. +excerpt: Mint is a new low-level HTTP client that aims to provide a small and functional core that others can build on top. --- -[Mint](https://github.com/ericmj/mint) is a new low-level HTTP library that aims to provide a small and functional core that others can build on top. Mint is connection based: each connection is a single struct with an associated socket belonging to the process that started the connection. Since no extra processes are started for the connection, you can choose the process architecture that better fits your application. +[Mint](https://github.com/ericmj/mint) is a new low-level HTTP client that aims to provide a small and functional core that others can build on top. Mint is connection based: each connection is a single struct with an associated socket belonging to the process that started the connection. Since no extra processes are started for the connection, you can choose the process architecture that better fits your application. To validate this we built out the library with a common API supporting both HTTP/1 and HTTP/2 with automatic version negotiation. In addition, Mint comes with a [CA certificate store](https://github.com/ericmj/castore) to do safe by default HTTPS connections. From 903cd1b320a1b2ddc64a158c94e7ebda8b5afbd7 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Mon, 25 Feb 2019 21:19:17 +0100 Subject: [PATCH 0977/1761] Use parens in the index page to adapt to modern code style (#1233) --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index c8d169789..f9ccbce2e 100644 --- a/index.html +++ b/index.html @@ -31,12 +31,12 @@

Scalability

# Spawn an Elixir process (not an operating system one!) spawn_link(fn -> - send current_process, {:msg, "hello world"} + send(current_process, {:msg, "hello world"}) end) # Block until the message is received receive do - {:msg, contents} -> IO.puts contents + {:msg, contents} -> IO.puts(contents) end {% endhighlight %} From f91de51e2dc1afe665c1be220d488985b3839ec0 Mon Sep 17 00:00:00 2001 From: Andrew Turley Date: Thu, 28 Feb 2019 23:23:39 -0500 Subject: [PATCH 0978/1761] Fix section title "Keyword lists and maps" (#1235) The title appeared in the table of contents as "Keywords lists and maps" (note the "s" at the end of "Keyword"), but on the page it appeared as "Keyword lists and maps". The table of contents version was incorrect and has been changed. --- _data/getting-started.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/getting-started.yml b/_data/getting-started.yml index 1515ae648..ec6beb116 100644 --- a/_data/getting-started.yml +++ b/_data/getting-started.yml @@ -19,7 +19,7 @@ - title: Binaries, strings, and charlists slug: binaries-strings-and-char-lists - - title: Keywords lists and maps + - title: Keyword lists and maps slug: keywords-and-maps - title: Modules and Functions From 95db3f675976e7f9b14eb43f8664383c35ea1eb9 Mon Sep 17 00:00:00 2001 From: Kenneth Larsen Date: Tue, 5 Mar 2019 12:37:40 +0100 Subject: [PATCH 0979/1761] Bring back outline styles (#1236) --- css/style.css | 3 --- 1 file changed, 3 deletions(-) diff --git a/css/style.css b/css/style.css index 2cb6e892c..dd3f9aaad 100644 --- a/css/style.css +++ b/css/style.css @@ -52,8 +52,6 @@ a:hover { text-decoration: none; color: #000; } -a:focus { outline: none; } -a:hover, a:active { outline: 0; } abbr { cursor: help } abbr[title] { border-bottom: 1px dotted; } acronym { @@ -392,7 +390,6 @@ form label { input[type="text"], input[type="password"], input[type="email"], .input-text, textarea, select { border: 1px solid #ddd; padding: 5px; - outline: none; font-size: 0.8125em; color: #888; margin: 0; From 2fa97d4e521462396a7120bfb6f1a76bc1592a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 11 Mar 2019 13:38:13 +0100 Subject: [PATCH 0980/1761] Update development.markdown --- development.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/development.markdown b/development.markdown index a377e019a..d9d8a2e39 100644 --- a/development.markdown +++ b/development.markdown @@ -12,7 +12,7 @@ In this section we outline the language's past and future development. Elixir runs on top of the Erlang Virtual Machine, which provides a scalable and fault-tolerant foundation. Elixir was designed to leverage this foundation without performance costs and aims to contribute to the wider ecosystem whenever possible. -Elixir's source code is under the [Apache 2 License](https://github.com/elixir-lang/elixir/blob/master/LICENSE) and is maintained by the Elixir Core team, composed of six members: Aleksei Magusev, Andrea Leopardi, Eric Meadows-Jönsson, James Fish, José Valim, and Michał Muskała. The Elixir team works towards an even understanding of the Elixir codebase across all members so it never depends on a single person. The source code and information for contributors can be found on [the language repository](https://github.com/elixir-lang/elixir). +Elixir's source code is under the [Apache 2 License](https://github.com/elixir-lang/elixir/blob/master/LICENSE) and is maintained by the Elixir Core team, composed of six members: Aleksei Magusev, Andrea Leopardi, Eric Meadows-Jönsson, Fernando Tapia Rico, James Fish, and José Valim. The Elixir team works towards an even understanding of the Elixir codebase across all members so it never depends on a single person. The source code and information for contributors can be found on [the language repository](https://github.com/elixir-lang/elixir). Elixir v1.0 was released in September 2014 and a new minor version is released every 6 months, around January and July of every year. New releases are announced in the read-only [announcements mailing list](https://groups.google.com/group/elixir-lang-ann) with a link to the complete CHANGELOG. All security releases [will be tagged with "[security]"](https://groups.google.com/forum/#!searchin/elixir-lang-ann/%5Bsecurity%5D%7Csort:date). Security vulnerabilities should be disclosed to [elixir-security@googlegroups.com](mailto:elixir-security@googlegroups.com). Our [compatibility and deprecation policies](https://hexdocs.pm/elixir/compatibility-and-deprecations.html#content) are also documented. From bc49040fcd6a6f64aa7cea1e48aec21e2242a9c9 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Tue, 12 Mar 2019 21:44:21 +0000 Subject: [PATCH 0981/1761] Update riak link to avoid HTTPS error (#1237) --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 973248614..db0e5ae6c 100644 --- a/install.markdown +++ b/install.markdown @@ -126,7 +126,7 @@ If the tests pass, you are ready to go. Otherwise, feel free to open an issue [i ## Installing Erlang -The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/resources/download.html). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](https://docs.basho.com/riak/latest/ops/building/installing/erlang/). +The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/resources/download.html). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/). For Windows developers, we recommend the precompiled packages. Those on a Unix platform can probably get Erlang installed via one of the many package distribution tools. From 8b6d208d95226a2802e1942f167dbb68a8ae13df Mon Sep 17 00:00:00 2001 From: Dario Maiocchi Date: Wed, 13 Mar 2019 23:23:14 +0100 Subject: [PATCH 0982/1761] Fix wrong url for opensuse distro obs://devel:languages:erlang/ url (#1238) When specified obs://devel:languages:erlang/ url, then zypper does look for current right distro version. In this way each openSUSE distro has the right erlang/elixir pkgs. --- install.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.markdown b/install.markdown index db0e5ae6c..cde6bade0 100644 --- a/install.markdown +++ b/install.markdown @@ -31,9 +31,10 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Arch Linux (Community repo) * Run: `pacman -S elixir` - * openSUSE (and SLES 11 SP3+) - * Add Erlang devel repo: `zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/erlang/openSUSE_Factory/ erlang` + * openSUSE (and SLES) + * add Elixir/Erlang repo: `zypper ar -f obs://devel:languages:erlang/ Elixir-Factory` * Run: `zypper in elixir` + * optional: if you want to use the latest Erlang, you can use this repo: `zypper ar -f obs://devel:languages:erlang:Factory Erlang-Factory` * Gentoo * Run: `emerge --ask dev-lang/elixir` * GNU Guix From c5c4daa612da8795273390a254dc7214d8ce2240 Mon Sep 17 00:00:00 2001 From: Chim Himidumage Date: Mon, 25 Mar 2019 12:30:06 +0530 Subject: [PATCH 0983/1761] The bucket supervisor; Improved instructions (#1239) Instructions were ambiguous, so wanted to those to be specific. Included what the user should do with the DynamicSupervisor and where. --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 0a917306b..d451e5e8b 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -52,7 +52,7 @@ We are going to solve this issue by defining a new supervisor that will spawn an ## The bucket supervisor -Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor`. Replace the `init` function in `lib/kv/supervisor.ex` as follows: +Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor`. This dynamic supervisor will be list as new child in our application supervisor. Replace the `init` function in `lib/kv/supervisor.ex` as follows: ```elixir From 36824944cacc45fbac0c9bbf0ff6072592b024c2 Mon Sep 17 00:00:00 2001 From: Chim Himidumage Date: Tue, 26 Mar 2019 12:09:29 +0530 Subject: [PATCH 0984/1761] The bucket supervisor - Grammar correction (#1240) Grammar correction --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index d451e5e8b..7e3ff875f 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -52,7 +52,7 @@ We are going to solve this issue by defining a new supervisor that will spawn an ## The bucket supervisor -Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor`. This dynamic supervisor will be list as new child in our application supervisor. Replace the `init` function in `lib/kv/supervisor.ex` as follows: +Let's define a DynamicSupervisor and give it a name of `KV.BucketSupervisor`. This dynamic supervisor will be listed as a child in our application supervisor. Replace the `init` function in `lib/kv/supervisor.ex` as follows: ```elixir From 0e2fb0f2afa7b25fa298ef8e5f97a6b178c2a86a Mon Sep 17 00:00:00 2001 From: Thth Date: Wed, 3 Apr 2019 22:59:54 -0700 Subject: [PATCH 0985/1761] Fix google search syntax (#1244) --- _includes/search.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/search.html b/_includes/search.html index 5cad0cdde..7e71b0767 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -5,7 +5,7 @@

From 388b5fed16e0783193cadedb35da99e7703320f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 10 Jul 2019 11:43:18 +0200 Subject: [PATCH 1051/1761] Update deps --- .gitignore | 6 +- Gemfile.lock | 296 +++++++++++++++++++++++++++++---------------------- _config.yml | 8 ++ 3 files changed, 182 insertions(+), 128 deletions(-) diff --git a/.gitignore b/.gitignore index aa808d6df..1d775852a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ /_site -.jekyll-metadata +/.jekyll-metadata /cheatsheets/*.aux -/cheatsheets/*.log \ No newline at end of file +/cheatsheets/*.log +/.bundle +/vendor \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 029f61c23..ac4b5475c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,199 +1,243 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.8) + activesupport (4.2.11.1) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.5.2) + addressable (2.6.0) public_suffix (>= 2.0.2, < 4.0) coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.12.2) + coffee-script-source (1.11.1) colorator (1.1.0) - ethon (0.10.1) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.5) + dnsruby (1.61.2) + addressable (~> 2.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.12.0) ffi (>= 1.3.0) + eventmachine (1.2.7) execjs (2.7.0) - faraday (0.12.2) + faraday (0.15.4) multipart-post (>= 1.2, < 3) - ffi (1.9.25) + ffi (1.11.1) forwardable-extended (2.6.0) - gemoji (3.0.0) - github-pages (150) - activesupport (= 4.2.8) - github-pages-health-check (= 1.3.5) - jekyll (= 3.5.1) - jekyll-avatar (= 0.4.2) - jekyll-coffeescript (= 1.0.1) + gemoji (3.0.1) + github-pages (198) + activesupport (= 4.2.11.1) + github-pages-health-check (= 1.16.1) + jekyll (= 3.8.5) + jekyll-avatar (= 0.6.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.5) jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.9.2) - jekyll-gist (= 1.4.1) - jekyll-github-metadata (= 2.6.0) - jekyll-mentions (= 1.2.0) - jekyll-optional-front-matter (= 0.2.0) + jekyll-feed (= 0.11.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.12.1) + jekyll-mentions (= 1.4.1) + jekyll-optional-front-matter (= 0.3.0) jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.1.0) - jekyll-redirect-from (= 0.12.1) - jekyll-relative-links (= 0.4.1) - jekyll-sass-converter (= 1.5.0) - jekyll-seo-tag (= 2.2.3) - jekyll-sitemap (= 1.0.0) + jekyll-readme-index (= 0.2.0) + jekyll-redirect-from (= 0.14.0) + jekyll-relative-links (= 0.6.0) + jekyll-remote-theme (= 0.3.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.5.0) + jekyll-sitemap (= 1.2.0) jekyll-swiss (= 0.4.0) - jekyll-theme-architect (= 0.0.4) - jekyll-theme-cayman (= 0.0.4) - jekyll-theme-dinky (= 0.0.4) - jekyll-theme-hacker (= 0.0.4) - jekyll-theme-leap-day (= 0.0.4) - jekyll-theme-merlot (= 0.0.4) - jekyll-theme-midnight (= 0.0.4) - jekyll-theme-minimal (= 0.0.4) - jekyll-theme-modernist (= 0.0.4) - jekyll-theme-primer (= 0.4.0) - jekyll-theme-slate (= 0.0.4) - jekyll-theme-tactile (= 0.0.4) - jekyll-theme-time-machine (= 0.0.4) - jekyll-titles-from-headings (= 0.4.0) - jemoji (= 0.8.0) - kramdown (= 1.13.2) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.3) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.1) + jemoji (= 0.10.2) + kramdown (= 1.17.0) liquid (= 4.0.0) - listen (= 3.0.6) + listen (= 3.1.5) mercenary (~> 0.3) - minima (= 2.1.1) - rouge (= 1.11.1) + minima (= 2.5.0) + nokogiri (>= 1.8.5, < 2.0) + rouge (= 2.2.1) terminal-table (~> 1.4) - github-pages-health-check (1.3.5) + github-pages-health-check (1.16.1) addressable (~> 2.3) - net-dns (~> 0.8) + dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 2.0) - typhoeus (~> 0.7) - html-pipeline (2.6.0) + public_suffix (~> 3.0) + typhoeus (~> 1.3) + html-pipeline (2.11.0) activesupport (>= 2) nokogiri (>= 1.4) - i18n (0.8.6) - jekyll (3.5.1) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.8.5) addressable (~> 2.4) colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.3) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) - rouge (~> 1.7) + rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-avatar (0.4.2) + jekyll-avatar (0.6.0) jekyll (~> 3.0) - jekyll-coffeescript (1.0.1) + jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.3.1) + commonmarker (~> 0.14) + jekyll (>= 3.7, < 5.0) + jekyll-commonmark-ghpages (0.1.5) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1) + rouge (~> 2) jekyll-default-layout (0.1.4) jekyll (~> 3.0) - jekyll-feed (0.9.2) + jekyll-feed (0.11.0) jekyll (~> 3.3) - jekyll-gist (1.4.1) + jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.6.0) - jekyll (~> 3.1) + jekyll-github-metadata (2.12.1) + jekyll (~> 3.4) octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.2.0) - activesupport (~> 4.0) + jekyll-mentions (1.4.1) html-pipeline (~> 2.3) jekyll (~> 3.0) - jekyll-optional-front-matter (0.2.0) + jekyll-optional-front-matter (0.3.0) jekyll (~> 3.0) jekyll-paginate (1.1.0) - jekyll-readme-index (0.1.0) + jekyll-readme-index (0.2.0) jekyll (~> 3.0) - jekyll-redirect-from (0.12.1) + jekyll-redirect-from (0.14.0) jekyll (~> 3.3) - jekyll-relative-links (0.4.1) + jekyll-relative-links (0.6.0) jekyll (~> 3.3) - jekyll-sass-converter (1.5.0) + jekyll-remote-theme (0.3.1) + jekyll (~> 3.5) + rubyzip (>= 1.2.1, < 3.0) + jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.2.3) + jekyll-seo-tag (2.5.0) jekyll (~> 3.3) - jekyll-sitemap (1.0.0) + jekyll-sitemap (1.2.0) jekyll (~> 3.3) jekyll-swiss (0.4.0) - jekyll-theme-architect (0.0.4) - jekyll (~> 3.3) - jekyll-theme-cayman (0.0.4) - jekyll (~> 3.3) - jekyll-theme-dinky (0.0.4) - jekyll (~> 3.3) - jekyll-theme-hacker (0.0.4) - jekyll (~> 3.3) - jekyll-theme-leap-day (0.0.4) - jekyll (~> 3.3) - jekyll-theme-merlot (0.0.4) - jekyll (~> 3.3) - jekyll-theme-midnight (0.0.4) - jekyll (~> 3.3) - jekyll-theme-minimal (0.0.4) - jekyll (~> 3.3) - jekyll-theme-modernist (0.0.4) - jekyll (~> 3.3) - jekyll-theme-primer (0.4.0) + jekyll-theme-architect (0.1.1) jekyll (~> 3.5) - jekyll-seo-tag (~> 2.2) - jekyll-theme-slate (0.0.4) - jekyll (~> 3.3) - jekyll-theme-tactile (0.0.4) - jekyll (~> 3.3) - jekyll-theme-time-machine (0.0.4) - jekyll (~> 3.3) - jekyll-titles-from-headings (0.4.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.3) + jekyll (~> 3.5) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.1) jekyll (~> 3.3) - jekyll-watch (1.5.1) + jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.8.0) - activesupport (~> 4.0) + jemoji (0.10.2) gemoji (~> 3.0) html-pipeline (~> 2.2) - jekyll (>= 3.0) + jekyll (~> 3.0) json (2.1.0) - kramdown (1.13.2) + kramdown (1.17.0) liquid (4.0.0) - listen (3.0.6) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9.7) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) mercenary (0.3.6) - mini_portile2 (2.3.0) - minima (2.1.1) - jekyll (~> 3.3) - minitest (5.10.3) - multipart-post (2.0.0) - net-dns (0.8.0) - nokogiri (1.8.5) - mini_portile2 (~> 2.3.0) - octokit (4.7.0) + mini_portile2 (2.4.0) + minima (2.5.0) + jekyll (~> 3.5) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.11.3) + multipart-post (2.1.1) + nokogiri (1.10.3) + mini_portile2 (~> 2.4.0) + octokit (4.14.0) sawyer (~> 0.8.0, >= 0.5.3) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (2.0.5) + public_suffix (3.1.1) rb-fsevent (0.10.3) - rb-inotify (0.9.10) - ffi (>= 0.5.0, < 2) - rouge (1.11.1) - safe_yaml (1.0.4) - sass (3.7.2) + rb-inotify (0.10.0) + ffi (~> 1.0) + rouge (2.2.1) + ruby-enum (0.7.2) + i18n + ruby_dep (1.5.0) + rubyzip (1.2.3) + safe_yaml (1.0.5) + sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.1) - addressable (>= 2.3.5, < 2.6) - faraday (~> 0.8, < 1.0) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) - typhoeus (0.8.0) - ethon (>= 0.8.0) - tzinfo (1.2.3) + typhoeus (1.3.1) + ethon (>= 0.9.0) + tzinfo (1.2.5) thread_safe (~> 0.1) - unicode-display_width (1.3.0) + unicode-display_width (1.6.0) PLATFORMS ruby @@ -203,4 +247,4 @@ DEPENDENCIES json (>= 2.0.0) BUNDLED WITH - 1.17.1 + 2.0.2 diff --git a/_config.yml b/_config.yml index aa0e70958..c0703f669 100644 --- a/_config.yml +++ b/_config.yml @@ -5,6 +5,14 @@ kramdown: hard_wrap: false repository: elixir-lang/elixir-lang.github.com url: https://elixir-lang.org +exclude: + - _epub/ + - vendor/ + - Gemfile + - Gemfile.lock + - CNAME + - .gitignore + - README.md plugins: - jemoji - jekyll-sitemap From 35126c70e41df591390b2a98c406549cea14187c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 10 Jul 2019 12:30:24 +0200 Subject: [PATCH 1052/1761] Add promo to the foundation --- _includes/distilled-by.html | 10 --------- _includes/eef.html | 3 +++ _includes/important-links.html | 8 +++---- .../{elixir-radar.html => plataformatec.html} | 9 ++++++++ _layouts/getting-started.html | 4 +--- css/style.css | 21 +++++------------- images/logo/eef.png | Bin 0 -> 1972 bytes index.html | 2 +- 8 files changed, 24 insertions(+), 33 deletions(-) delete mode 100644 _includes/distilled-by.html create mode 100644 _includes/eef.html rename _includes/{elixir-radar.html => plataformatec.html} (59%) create mode 100644 images/logo/eef.png diff --git a/_includes/distilled-by.html b/_includes/distilled-by.html deleted file mode 100644 index 35256a4b9..000000000 --- a/_includes/distilled-by.html +++ /dev/null @@ -1,10 +0,0 @@ -
-

Created at

-
    -
  • Plataformatec Logo
  • -
- -

- Plataformatec offers consulting and development services for companies using Elixir. -

-
diff --git a/_includes/eef.html b/_includes/eef.html new file mode 100644 index 000000000..2c8ac52cf --- /dev/null +++ b/_includes/eef.html @@ -0,0 +1,3 @@ +
+ Join the Erlang Ecosystem Foundation +
\ No newline at end of file diff --git a/_includes/important-links.html b/_includes/important-links.html index f0692000e..8f837edc9 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -11,6 +11,8 @@ Code Elixir LDN 2019Code Elixir LDN is an Elixir conference in London, taking place on 18 July. Conference and training tickets are on sale. +{% include mini-docu.html %} +

Official Channels

    @@ -30,7 +32,7 @@

    Join the Community

-{% include mini-docu.html %} +{% include eef.html %}

Important links

@@ -57,6 +59,4 @@

Code editor support

-{% include elixir-radar.html %} - -{% include distilled-by.html %} +{% include plataformatec.html %} diff --git a/_includes/elixir-radar.html b/_includes/plataformatec.html similarity index 59% rename from _includes/elixir-radar.html rename to _includes/plataformatec.html index 105354d73..2b70240a3 100644 --- a/_includes/elixir-radar.html +++ b/_includes/plataformatec.html @@ -17,3 +17,12 @@

Elixir Radar Newsletter

+ +
+

Created at

+ +

+ Plataformatec Logo + Plataformatec offers consulting and development services for companies using Elixir. +

+
diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index 39f678b5a..ee4409d57 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -6,7 +6,6 @@ {% endfor %} - {% include elixir-radar.html %} - {% include distilled-by.html %} + {% include plataformatec.html %}
diff --git a/css/style.css b/css/style.css index dd3f9aaad..26be8a6d1 100644 --- a/css/style.css +++ b/css/style.css @@ -278,7 +278,6 @@ img.alignleft, img.alignright { blockquote.alignleft, blockquote .alignright { width: 33%; } .byline abbr, .entry-meta abbr, .comment-meta abbr { border: none; } .clear { clear: both; } -.no-border { border: 0 }; /* Tables -------------------------------------------------------------- */ @@ -350,7 +349,7 @@ blockquote { font-size: 1.153846153846154em; /* 15 / 13 = 1.153846153846154 */ font-family: Georgia, 'Times New Roman', Times, serif; font-style: italic; - color: #aaa; + color: #888; margin: 0 0 20px 0; padding: 5px 0 5px 20px; } @@ -427,7 +426,6 @@ a:hover img, #slider-nav li a:hover img { opacity: 0.85; } .hentry img, .entry-content img, .widget img { height: auto; padding: 1px; - border: 1px solid #e5e5e5; } .rss-button { margin-bottom: 25px; } iframe.video { border:0; } @@ -702,23 +700,16 @@ body.learning div.menu li.learning a { float: left; width: 100%; margin-bottom: 26px; - color: #888; + color: #666; } .widget table, .widget ul, .widget ol { margin: 0 0 0 16px; } -li.image { - list-style: none; - margin-bottom: 10px; -} - -.widget li.image img { border-width: 0; } - /* Widget titles -------------------------------------------------------------- */ .sidebar .widget-title { font-size: 0.7692307692307692em; /* 10 / 13 = 0.7692307692307692 */ - color: #aaa; + color: #333; text-transform: uppercase; letter-spacing: 1px; word-spacing: 2px; @@ -730,14 +721,14 @@ li.image { .widget .search-form label { font-size: 0.8461538461538462em; line-height: 1.692307em; - color: #aaa; + color: #666; } .widget .search-form input[type="text"] { width: 91.538461%; float: left; padding: 8px 10px; font-size: 1em; - color: #aaa; + color: #666; } .search-form .search-submit { display: none; } @@ -814,7 +805,7 @@ li.image { width: 100%; clear: left; } - #distilled-by ul { + #created-by ul { margin: 0; } } diff --git a/images/logo/eef.png b/images/logo/eef.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffba654e49a32ceb14e9cccf70815cf8d562bde GIT binary patch literal 1972 zcmV;l2TS;gP)PpG zXmNf}T4^^zR6L6FI-$3MAhr;SKb!e2e?amKvjWobce(jKlE+gr5^4Y6==<-$f>Pn z!6b*IHLRI$QD?2EavT(ybEyh6#*UGq6ZX*_8lcx|MH?1=7GO!m(n{3!OGAqf=nhqi zzBrw-F^yLC^IAYn+BoG*I>tavPE%5z@~ZnsT0=;>J)}s{ebxr_>Sk#K?H`jgm)}zk zG$l%lS4oS(r}VjuS6BdgY3UWPENvxAc{AFQbOK%-z-qxAsLrJpD1cW3ua(x!>Um|e z7G9a<#rVJdVb^YO)P{j50KdlUBrdIE9Hb49?f>8Q{s*iiQq)=nb>3JqRs9`cM}Zl~ z^OmM@8!d;Q;zlXj%jVo(v|eE~i&}TNfQi=r>Wf$nE740h>-n;oBx)nhCeeGq*}|92 z1W^lyFK@D!wLieZe|Zvd_Q;gYnEQCBGCmn+=;OfmaV+)#lcA4aGJR|>Yd=Lj-v%Kc zAM*nwzK=cM22@#x3_FNhLmMQ1eB`cP1AFFk%h2cXZ0}=!d`i9sX3;Yo-UBl9dED9i zc&hpui1zX6_|MJ$0Hb046F>i>!=Jci6rC_(mA0a@9UNPB3>})LX`15V@t|__za(o1 zl@}Xa#1mOIm-u^xf8N#xQhCk7oj|nsJqa2brOlb>O$}M?z3!i$e5G0_^&SX zJ3}9L{6Zg)slr0v7teL~{P^&BSgsenSSQzwrE^_Z=iefk#ggmt zeH`quXq{kcD*76za2xRUvYC#UAS$VcVc+J$}QnS{>E zP17{@#h(s3M_j}_vh(0Py?Lv20>9GFxW3DI5U7p#9e*PZH*OLW7*X`z+wZZl*aLK; z_W@^8Hdh3}mXDSFoy`c!P-h>TZ;Xddg?;Qw*#T-5erFS}Z&3+^^06F0J{=f*I?Lq> z6;4qiSKv-j2gadn8(78%l#ik|+C$-jr|2iL4a$$t0?KDm8w$kB+hV8a7yf0M?%@>0 zSJ4_hAIr_x)4bGezaEx%8sfq7*3^pidsZ) ztKISapYsOP*3)+P0q$(3Lrlo|f4&*?^f^LaZb3Ac=B-~ui%MkC#-nBaRr*UAHosea`bLz#b=aw;p!>#wT` z71fUJ>G+R;(fb5`WOkbOW-F3Vd5>5I-=P+{>bwt)t^>);j3cwDbYIhek%=%d>hPii zov*|X$yCqTop*<(Cq!lZNt5J}M<05x;at^rSwftwaT0Xj@N1MCOq1VD8L&?%~~ z0R0z$skaFp6NB3UCIYJ@M&b^zho|iqfl?d*GBR7OSLj44=*hY5SR!hz5`$PrL)1UgB_ZPb)FMZB}^$SX%5SKz9O= z@dU8Y_Tat&SpEnQn0Lp9CVFBbN(17t?*Ks}%??m|DmknrF>McLfXYIMghRpX-!ZcR ztQo+b0DL(>^$kFVPk_tyTAT)w=Ib>~B&k@_euRd*c^m+@>(z`rOi!J*|9qily54t- ztaAAc<^Z^6@#H`v=>U*U749rL{BRR>1~6(LRq4SX8((|^sDry`KLaeE06+m)Su}&s zMWD?9(jjgr%>qz{D}c_(3eboG!C-a(3lQZ1DB?*5{{x^X3~n19O$LxA1LUxQZhH|A zfZ~8H0PYQ_SPC>MGx>)&N#J~6#|KdNRv_eTA&@eav0000 -
+
Elixir Sample
From ae8d081931522d218ea038426869b8702ea01f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 10 Jul 2019 12:31:40 +0200 Subject: [PATCH 1053/1761] Bring eef a bit closer --- _includes/eef.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/eef.html b/_includes/eef.html index 2c8ac52cf..bcdc46363 100644 --- a/_includes/eef.html +++ b/_includes/eef.html @@ -1,3 +1,3 @@
- Join the Erlang Ecosystem Foundation + Join the Erlang Ecosystem Foundation
\ No newline at end of file From befb2b01f503fa43741f53440379f5aff2584721 Mon Sep 17 00:00:00 2001 From: Asher Davidson Date: Sun, 14 Jul 2019 03:02:44 -0400 Subject: [PATCH 1054/1761] Minor typo in processes.markdown (#1304) Removed the word "a". --- getting-started/processes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 81b7aee58..19eabcd4b 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -186,7 +186,7 @@ defmodule KV do end ``` -Note that the `start_link` function starts a new process that runs the `loop/1` function, starting with an empty map. The `loop/1` (private) function then waits for messages and performs the appropriate action for each message. We made `loop/1` a private by using `defp` instead of `def`. In the case of a `:get` message, it sends a message back to the caller and calls `loop/1` again, to wait for a new message. While the `:put` message actually invokes `loop/1` with a new version of the map, with the given `key` and `value` stored. +Note that the `start_link` function starts a new process that runs the `loop/1` function, starting with an empty map. The `loop/1` (private) function then waits for messages and performs the appropriate action for each message. We made `loop/1` private by using `defp` instead of `def`. In the case of a `:get` message, it sends a message back to the caller and calls `loop/1` again, to wait for a new message. While the `:put` message actually invokes `loop/1` with a new version of the map, with the given `key` and `value` stored. Let's give it a try by running `iex kv.exs`: From 5ae676f8a7f1e2d0023ca190360dc263b08342c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 16 Jul 2019 09:08:33 +0200 Subject: [PATCH 1055/1761] Fix syntax font on EPUB docs --- _epub/lib/elixir_lang_guide.ex | 10 ++++++---- _epub/mix.exs | 1 + _epub/mix.lock | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/_epub/lib/elixir_lang_guide.ex b/_epub/lib/elixir_lang_guide.ex index 93155e72f..3f16a2584 100644 --- a/_epub/lib/elixir_lang_guide.ex +++ b/_epub/lib/elixir_lang_guide.ex @@ -282,18 +282,20 @@ defmodule ElixirLangGuide do defp apply_makeup(page) do Regex.replace( - ~r/
([^<]*)<\/code><\/pre>/,
+      ~r/
([^<]*)<\/code><\/pre>/,
       page,
-      &highlight_code_block/2
+      &highlight_code_block/3
     )
   end
 
-  defp highlight_code_block(_, code) do
+  @makeup_options [lexer: Makeup.Lexers.ElixirLexer, formatter_options: [highlight_tag: "samp"]]
+
+  defp highlight_code_block(_html, _tag, code) do
     highlighted =
       code
       |> unescape_html()
       |> IO.iodata_to_binary()
-      |> Makeup.highlight_inner_html(lexer: Makeup.Lexers.ElixirLexer)
+      |> Makeup.highlight_inner_html(@makeup_options)
 
     ~s(
#{highlighted}
) end diff --git a/_epub/mix.exs b/_epub/mix.exs index ba6aed176..0856b4541 100644 --- a/_epub/mix.exs +++ b/_epub/mix.exs @@ -27,6 +27,7 @@ defmodule ElixirLangGuide.Mixfile do {:yaml_elixir, "~> 1.3"}, {:earmark, "~> 1.0"}, {:bupe, "~> 0.3.0"}, + {:makeup, "~> 1.0", override: true}, {:makeup_elixir, ">= 0.0.0"} ] end diff --git a/_epub/mix.lock b/_epub/mix.lock index 8ee968938..4561c9c71 100644 --- a/_epub/mix.lock +++ b/_epub/mix.lock @@ -2,7 +2,7 @@ "bupe": {:hex, :bupe, "0.3.0", "3d6d02a0ea67f3441f985ecaf17acdcb56a2deedbdc0b5974ee6e87da66b69f0", [:mix], [], "hexpm"}, "earmark": {:hex, :earmark, "1.0.3", "89bdbaf2aca8bbb5c97d8b3b55c5dd0cff517ecc78d417e87f1d0982e514557b", [:mix], [], "hexpm"}, "ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, repo: "hexpm", optional: false]}], "hexpm"}, - "makeup": {:hex, :makeup, "0.8.0", "9cf32aea71c7fe0a4b2e9246c2c4978f9070257e5c9ce6d4a28ec450a839b55f", [:mix], [{:nimble_parsec, "~> 0.5.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, + "makeup": {:hex, :makeup, "1.0.0", "671df94cf5a594b739ce03b0d0316aa64312cee2574b6a44becb83cd90fb05dc", [:mix], [{:nimble_parsec, "~> 0.5.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, "makeup_elixir": {:hex, :makeup_elixir, "0.13.0", "be7a477997dcac2e48a9d695ec730b2d22418292675c75aa2d34ba0909dcdeda", [:mix], [{:makeup, "~> 0.8", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm"}, "nimble_parsec": {:hex, :nimble_parsec, "0.5.0", "90e2eca3d0266e5c53f8fbe0079694740b9c91b6747f2b7e3c5d21966bba8300", [:mix], [], "hexpm"}, "yamerl": {:hex, :yamerl, "0.3.3", "df48fe3e6aeaca05ec6c4b35418aa7c77258d0d1c32d578a2e12a14751c10d42", [:rebar3], [], "hexpm"}, From bf46a814a76aa962514ac62d954448e9cea9e3f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 17 Jul 2019 08:29:48 +0200 Subject: [PATCH 1056/1761] Update makeup_elixir --- _epub/mix.exs | 2 +- _epub/mix.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_epub/mix.exs b/_epub/mix.exs index 0856b4541..f9346629d 100644 --- a/_epub/mix.exs +++ b/_epub/mix.exs @@ -27,7 +27,7 @@ defmodule ElixirLangGuide.Mixfile do {:yaml_elixir, "~> 1.3"}, {:earmark, "~> 1.0"}, {:bupe, "~> 0.3.0"}, - {:makeup, "~> 1.0", override: true}, + {:makeup, "~> 1.0"}, {:makeup_elixir, ">= 0.0.0"} ] end diff --git a/_epub/mix.lock b/_epub/mix.lock index 4561c9c71..a4b81095d 100644 --- a/_epub/mix.lock +++ b/_epub/mix.lock @@ -3,7 +3,7 @@ "earmark": {:hex, :earmark, "1.0.3", "89bdbaf2aca8bbb5c97d8b3b55c5dd0cff517ecc78d417e87f1d0982e514557b", [:mix], [], "hexpm"}, "ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, repo: "hexpm", optional: false]}], "hexpm"}, "makeup": {:hex, :makeup, "1.0.0", "671df94cf5a594b739ce03b0d0316aa64312cee2574b6a44becb83cd90fb05dc", [:mix], [{:nimble_parsec, "~> 0.5.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm"}, - "makeup_elixir": {:hex, :makeup_elixir, "0.13.0", "be7a477997dcac2e48a9d695ec730b2d22418292675c75aa2d34ba0909dcdeda", [:mix], [{:makeup, "~> 0.8", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm"}, + "makeup_elixir": {:hex, :makeup_elixir, "0.14.0", "cf8b7c66ad1cff4c14679698d532f0b5d45a3968ffbcbfd590339cb57742f1ae", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm"}, "nimble_parsec": {:hex, :nimble_parsec, "0.5.0", "90e2eca3d0266e5c53f8fbe0079694740b9c91b6747f2b7e3c5d21966bba8300", [:mix], [], "hexpm"}, "yamerl": {:hex, :yamerl, "0.3.3", "df48fe3e6aeaca05ec6c4b35418aa7c77258d0d1c32d578a2e12a14751c10d42", [:rebar3], [], "hexpm"}, "yaml_elixir": {:hex, :yaml_elixir, "1.3.0", "5b945c235f0bc9d49c60927834576952c9e106afbc1dfa76ffcf615d7615e35f", [:mix], [{:yamerl, "~> 0.3.2", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm"}, From 9fbe34affd6ac5067435cefc99363c54ddd4cc6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 17 Jul 2019 08:31:06 +0200 Subject: [PATCH 1057/1761] Depend only on makeup elixir --- _epub/mix.exs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_epub/mix.exs b/_epub/mix.exs index f9346629d..2417d25cd 100644 --- a/_epub/mix.exs +++ b/_epub/mix.exs @@ -27,8 +27,7 @@ defmodule ElixirLangGuide.Mixfile do {:yaml_elixir, "~> 1.3"}, {:earmark, "~> 1.0"}, {:bupe, "~> 0.3.0"}, - {:makeup, "~> 1.0"}, - {:makeup_elixir, ">= 0.0.0"} + {:makeup_elixir, "~> 0.14"} ] end end From cde99b3244bdec2171dd64eaa5dffe244c401d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 18 Jul 2019 12:39:10 +0200 Subject: [PATCH 1058/1761] Release v1.9.1 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 24605ad69..87896e13f 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_9 v1_9: name: v1.9 minimum_otp: 20.0 - version: 1.9.0 + version: 1.9.1 docs_zip: true v1_8: diff --git a/elixir.csv b/elixir.csv index 3fe3befd8..8f223c1e8 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.9.1,https://github.com/elixir-lang/elixir/releases/download/v1.9.1/Precompiled.zip,release,1,51520d0edf924f3c4620739cf2009d545eab6e99,14826fe295c19c9e331f2777f70a13ae55bf107ce043d0aeb747b5235de82bd6175c915f0bea63ffe0f87136357d76522c67bdd54fc61dd1f167afb4879a3845 1.9.0,https://github.com/elixir-lang/elixir/releases/download/v1.9.0/Precompiled.zip,release,1,e9847341ca0484da0ade831bf5d714d9094629c1,89686dd150abbc3c65be373dedf60971801063537a3b32cccdcd7eda18e5a9b3b78012b11a2f06575824e0164fbf0b80178a7de943f508ec90ad9a74d8a1da05 1.8.2,https://github.com/elixir-lang/elixir/releases/download/v1.8.2/Precompiled.zip,release,1,661dbf612c4b5fdb4390ff54121d82ff9452c3f3,f110669f99f8716e71f66b74d9604edabd1ed5b041e69962c01bae5274165e86ae95773d2e117ebf7f462fb68f3a2ae7891e50df372d676c2f1d975da59aa9e5 1.8.1,https://github.com/elixir-lang/elixir/releases/download/v1.8.1/Precompiled.zip,release,1,9b9a15b299b15c78ec9c1c92cdcf293905290d09,17c2d07eb4bc259031e7b9f1449bc2a16745a6fb1f3685ed5153da624f87fe49cc61b304a0cb531cbda3407f041b517e2b508cf0b3aa9a998e23598c301c7886 From a4fdaf108597622a43a461d4fca9f212d13b2c37 Mon Sep 17 00:00:00 2001 From: Daniel Norris Date: Mon, 22 Jul 2019 14:41:43 -0700 Subject: [PATCH 1059/1761] Fix typo in OTP docs (#1306) [ci skip] --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 9fc67eda3..9a190d542 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -15,7 +15,7 @@ Before we added monitoring, if a bucket crashed, the registry would forever poin In practice, we are not expecting the processes working as buckets to fail. But, if it does happen, for whatever reason, we can rest assured that our system will continue to work as intended. -If you have prior programming experience, you may be wondering: "could we just guarantee the bucket does not crash in the first place?". As we will see, Elixir developers tend to refer to those practices as "defensive programming". That's because a live production system has dozens of different reasons why something can wrong. The disk can fail, memory can be corrupted, bugs, the network may stop working for a second, etc. If we were to write software that attempted to protect or circumvent all of those errors, we would spend more time handling failures than writing our own software! +If you have prior programming experience, you may be wondering: "could we just guarantee the bucket does not crash in the first place?". As we will see, Elixir developers tend to refer to those practices as "defensive programming". That's because a live production system has dozens of different reasons why something can go wrong. The disk can fail, memory can be corrupted, bugs, the network may stop working for a second, etc. If we were to write software that attempted to protect or circumvent all of those errors, we would spend more time handling failures than writing our own software! Therefore, an Elixir developer prefers to "let it crash" or "fail fast". And one of the most common ways we can recover from a failure is by restarting whatever part of the system crashed. From b0eeddee7ec4bd19110b82a5e1b871b5b3fe193d Mon Sep 17 00:00:00 2001 From: Sebisnow Date: Tue, 23 Jul 2019 10:44:32 +0200 Subject: [PATCH 1060/1761] Fix a typo (#1307) From 9882b9e82f0724b1ca24a1dde0e76e1b7a833660 Mon Sep 17 00:00:00 2001 From: Martin Gausby Date: Thu, 25 Jul 2019 15:56:32 +0100 Subject: [PATCH 1061/1761] The Code Elixir LDN 2019 conference is over (#1308) --- _includes/important-links.html | 4 ---- 1 file changed, 4 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 8f837edc9..f305561f8 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -7,10 +7,6 @@ Advance Tickets are available until July 14, 2019!.
-
- Code Elixir LDN 2019Code Elixir LDN is an Elixir conference in London, taking place on 18 July. Conference and training tickets are on sale. -
- {% include mini-docu.html %}
From e13c9038d861fae9ae51bbb7c993b367d72f1fc6 Mon Sep 17 00:00:00 2001 From: Jim Freeze Date: Fri, 26 Jul 2019 13:53:38 -0500 Subject: [PATCH 1062/1761] Updates for ElixirConf (#1309) --- _includes/important-links.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index f305561f8..2ed3ed10f 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -3,8 +3,9 @@
- ElixirConf® is at the Gaylord Rockies Resort, Aurora CO, August 27-30 this year! - Advance Tickets are available until July 14, 2019!. + Meet core team and other Elixir developers at ElixirConf,® Aurora CO, Aug 27-30! + Standard Tickets are available until Aug 11, 2019!. + Discount rooms at the venue hotel (Gaylord Rockies Resort) have been extended until Aug 4!
{% include mini-docu.html %} From 6eb698f4564d828f11bba50c20bf76e268307b8d Mon Sep 17 00:00:00 2001 From: Francesco Date: Wed, 31 Jul 2019 18:55:34 +0200 Subject: [PATCH 1063/1761] Update keywords-and-maps.markdown (#1310) --- getting-started/keywords-and-maps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 3cdc67f6a..7f9ac09f9 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -63,7 +63,7 @@ iex> if false, do: :this, else: :that :that ``` -The `do:` and `else:` pairs are keyword lists! In fact, the call above is equivalent to: +The `do:` and `else:` pairs form a keyword list! In fact, the call above is equivalent to: ```iex iex> if(false, [do: :this, else: :that]) From a6c71191ce46513bc04c64ff64c93c17b8853825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 9 Aug 2019 12:19:59 +0200 Subject: [PATCH 1064/1761] Update important-links.html --- _includes/important-links.html | 1 - 1 file changed, 1 deletion(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 2ed3ed10f..60a25b280 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -5,7 +5,6 @@
Meet core team and other Elixir developers at ElixirConf,® Aurora CO, Aug 27-30! Standard Tickets are available until Aug 11, 2019!. - Discount rooms at the venue hotel (Gaylord Rockies Resort) have been extended until Aug 4!
{% include mini-docu.html %} From 41a164f11edfed7e6ce3e224832332117600b1e6 Mon Sep 17 00:00:00 2001 From: Valentin Syrovatskiy Date: Sat, 10 Aug 2019 18:18:43 +1000 Subject: [PATCH 1065/1761] Add forgotten impl keyword to GenServer callbacks (#1312) --- getting-started/mix-otp/genserver.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 48308ce12..aca47c6a9 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -272,17 +272,20 @@ Let's reimplement the server callbacks to fix the bug and make the test pass. Fi ```elixir ## Server callbacks +@impl true def init(:ok) do names = %{} refs = %{} {:ok, {names, refs}} end +@impl true def handle_call({:lookup, name}, _from, state) do {names, _} = state {:reply, Map.fetch(names, name), state} end +@impl true def handle_cast({:create, name}, {names, refs}) do if Map.has_key?(names, name) do {:noreply, {names, refs}} @@ -295,6 +298,7 @@ def handle_cast({:create, name}, {names, refs}) do end end +@impl true def handle_info({:DOWN, ref, :process, _pid, _reason}, {names, refs}) do {name, refs} = Map.pop(refs, ref) names = Map.delete(names, name) From f5f1c0693f36bdf4353b20b7d90a15db6ca118d5 Mon Sep 17 00:00:00 2001 From: Valentin Syrovatskiy Date: Sun, 11 Aug 2019 07:10:03 +1000 Subject: [PATCH 1066/1761] Add @impl to callbacks in examples (#1313) --- getting-started/mix-otp/genserver.markdown | 1 + getting-started/mix-otp/supervisor-and-application.markdown | 1 + 2 files changed, 2 insertions(+) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index aca47c6a9..186a23b83 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -305,6 +305,7 @@ def handle_info({:DOWN, ref, :process, _pid, _reason}, {names, refs}) do {:noreply, {names, refs}} end +@impl true def handle_info(_msg, state) do {:noreply, state} end diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 9a190d542..666c78311 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -41,6 +41,7 @@ defmodule KV.Supervisor do Supervisor.start_link(__MODULE__, :ok, opts) end + @impl true def init(:ok) do children = [ KV.Registry From 0af219374eb61e35f23b925bfa0a121ca09a7c0b Mon Sep 17 00:00:00 2001 From: Valentin Syrovatskiy Date: Mon, 12 Aug 2019 03:08:24 +1000 Subject: [PATCH 1067/1761] Update supervisor-and-application.markdown (#1314) --- getting-started/mix-otp/supervisor-and-application.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 666c78311..e5fc7a728 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -236,6 +236,7 @@ Since we have specified `KV` as the module callback, let's change the `KV` modul defmodule KV do use Application + @impl true def start(_type, _args) do # Although we don't use the supervisor name below directly, # it can be useful when debugging or introspecting the system. From e6699476d6601a21ac66247b1d6e36e98e46bbfc Mon Sep 17 00:00:00 2001 From: Jim Freeze Date: Mon, 12 Aug 2019 15:20:59 -0500 Subject: [PATCH 1068/1761] Update for ElixirConf link (#1315) --- _includes/important-links.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 60a25b280..2c69b256f 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -3,8 +3,8 @@
- Meet core team and other Elixir developers at ElixirConf,® Aurora CO, Aug 27-30! - Standard Tickets are available until Aug 11, 2019!. + Meet core team and other Elixir developers at ElixirConf,® in Aurora CO, Aug 27-30! + Extended Tickets now available!.
{% include mini-docu.html %} From cb3177a42903a6c98262c7ffed5642d9f2bd0974 Mon Sep 17 00:00:00 2001 From: Valentin Date: Sun, 18 Aug 2019 10:06:35 +0300 Subject: [PATCH 1069/1761] Update example in Enumerables and Streams docs (#1317) --- getting-started/enumerables-and-streams.markdown | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 23522bf89..41b76ce2e 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -113,7 +113,12 @@ Another interesting function is `Stream.resource/3` which can be used to wrap ar ```iex iex> stream = File.stream!("path/to/file") -#Function<18.16982430/2 in Stream.resource/3> +%File.Stream{ + line_or_bytes: :line, + modes: [:raw, :read_ahead, :binary], + path: "path/to/file", + raw: true +} iex> Enum.take(stream, 10) ``` From fc56d0e28891c8a31a4442ffd092f3eb56182a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 19 Aug 2019 10:27:32 +0200 Subject: [PATCH 1070/1761] Document the optional return keyword, closes #1318 --- getting-started/basic-types.markdown | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 400e50748..13c816ced 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -228,26 +228,24 @@ iex> String.upcase("hellö") ## Anonymous functions -Anonymous functions can be created inline and are delimited by the keywords `fn` and `end`: +Elixir also provides anonymous functions. Anonymous functions allows us to store and pass executable code around as if it was an integer or a string. They are delimited by the keywords `fn` and `end`: ```iex -iex> fn a, b -> a + b end +iex> add = fn a, b -> a + b end #Function<12.71889879/2 in :erl_eval.expr/5> -iex> (fn a, b -> a + b end).(1, 2) +iex> add.(1, 2) 3 -iex> is_function(fn a, b -> a + b end) +iex> is_function(add) true ``` -Anonymous functions are "first class citizens" in Elixir, meaning they can be assigned to variables, and passed as arguments to other functions in the same way as integers and strings. In the example above, we have passed an anonymous function definition to the `is_function/1` function which correctly returned `true`. Let's assign it to a variable next: +In the example above, we defined an anonymous function that receives two arguments, `a` and `b`, and returns the result of `a + b`. The arguments are always on the left-hand side of `->` and the code to be executed on the right-hand side. The anonymous function is stored in the variable `add`. + +Parenthesised arguments after the anonymous function indicate that we want the function to be evaluated, not just its definition returned. Note that a dot (`.`) between the variable and parentheses is required to invoke an anonymous function. The dot ensures there is no ambiguity between calling the anonymous function matched to a variable `add` and a named function `add/2`. We will explore named functions when dealing with [Modules and Functions](/getting-started/modules-and-functions.html), since named functions can only be defined within a module. For now, just remember that Elixir makes a clear distinction between anonymous functions and named functions. + +Anonymous functions in Elixir are also identified by the number of arguments they receive. We can check if a function is of any given arity by using `is_function/2`: ```iex -iex> add = fn a, b -> a + b end -#Function<13.91303403/2 in :erl_eval.expr/5> -iex> add -#Function<13.91303403/2 in :erl_eval.expr/5> -iex> add.(1, 2) -3 # check if add is a function that expects exactly 2 arguments iex> is_function(add, 2) true @@ -256,11 +254,7 @@ iex> is_function(add, 1) false ``` -Parenthesised arguments after the anonymous function indicate that we want the function to be evaluated, not just its definition returned. Note that a dot (`.`) between the variable and parentheses is required to invoke an anonymous function. The dot ensures there is no ambiguity between calling the anonymous function matched to a variable `add` and a named function `add/2`. In this sense, Elixir makes a clear distinction between anonymous functions and named functions. - -We will explore named functions when dealing with [Modules and Functions](/getting-started/modules-and-functions.html), since named functions can only be defined within a module. - -Anonymous functions are closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anonymous function we have previously defined: +Finally, anonymous functions are also closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anonymous function we have previously defined: ```iex iex> double = fn a -> add.(a, a) end @@ -269,7 +263,7 @@ iex> double.(2) 4 ``` -Keep in mind a variable assigned inside a function does not affect its surrounding environment: +A variable assigned inside a function does not affect its surrounding environment: ```iex iex> x = 42 From 796997e3bd72d5e31ce93e7f4484e4816ed08b94 Mon Sep 17 00:00:00 2001 From: Fernando Tapia Rico Date: Mon, 19 Aug 2019 10:34:16 +0200 Subject: [PATCH 1071/1761] Minor grammar fix --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 13c816ced..0b22e7e3c 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -228,7 +228,7 @@ iex> String.upcase("hellö") ## Anonymous functions -Elixir also provides anonymous functions. Anonymous functions allows us to store and pass executable code around as if it was an integer or a string. They are delimited by the keywords `fn` and `end`: +Elixir also provides anonymous functions. Anonymous functions allow us to store and pass executable code around as if it was an integer or a string. They are delimited by the keywords `fn` and `end`: ```iex iex> add = fn a, b -> a + b end From 18bbc73c69d9dc0bf360ba3fb8c7110d753a1842 Mon Sep 17 00:00:00 2001 From: Vais Salikhov Date: Thu, 22 Aug 2019 12:12:10 -0400 Subject: [PATCH 1072/1761] Update the Configuration section now that mix no longer creates config.exs (#1319) --- getting-started/mix-otp/config-and-releases.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index 38e5f0be2..2d307e0fe 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -59,9 +59,10 @@ We need a way to configure the application environment. That's when we use confi Configuration files provide a mechanism for us to configure the environment of any application. Such configuration is done by the `config/config.exs` file. -For example, we can configure IEx default prompt to another value. Just open `config/config.exs` and add the following to the end: +For example, we can configure IEx default prompt to another value. Let's create the `config/config.exs` file with the following content: ```elixir +import Config config :iex, default_prompt: ">>>" ``` From a3f2aeb0dcd3ba7b547ca7dbb2595427dd47fa31 Mon Sep 17 00:00:00 2001 From: Vais Salikhov Date: Thu, 22 Aug 2019 16:31:41 -0400 Subject: [PATCH 1073/1761] Fix a couple of typos (#1320) --- getting-started/mix-otp/config-and-releases.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index 2d307e0fe..db4ac08cf 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -112,11 +112,11 @@ At this point, you may be wondering, how can we make two nodes start with two di $ elixir --sname foo -S mix run --config config/foo.exs $ elixir --sname bar -S mix run --config config/bar.exs -There are two concerns in this approach. +There are two concerns with this approach. First, if the routing tables are the opposite of each other, such as `[{?a..?m, :"foo@computer-name"}, {?n..?z, :"bar@computer-name"}]` in one node and `[{?a..?m, :"bar@computer-name"}, {?n..?z, :"foo@computer-name"}]` in the other, you can have a routing request that will run recursively in the cluster infinitely. This can be tackled at the application level by making sure you pass a list of seen nodes when we route, such as `KV.Router.route(bucket, mod, fun, args, seen_nodes)`. Then by checking if the node being dispatched to was already visited, we can avoid the cycle. Implementing and testing this functionality will be left as an exercise. -The second concern is that, while using `mix run` is completely fine to run our software in production, the command we use to start our services is getting increasingly more complex. For example, imagine we also want to `--preload-modules`, to all code is loaded upfront, as well as set the `MIX_ENV=prod` environment variable: +The second concern is that, while using `mix run` is completely fine to run our software in production, the command we use to start our services is getting increasingly more complex. For example, imagine we also want to `--preload-modules`, so all code is loaded upfront, as well as set the `MIX_ENV=prod` environment variable: $ MIX_ENV=prod elixir --sname foo -S mix run --preload-modules --config config/foo.exs @@ -159,7 +159,7 @@ As a starting point, let's define a release that includes both `:kv_server` and ] ] -That defines a release named `foo` with both `kv_server` and `kv` applications. Their mode is set to `:permanent`, which means that, if those applications crash, the whole node terminates. That's reasonable since those applications are essential to our system. With the configuration in place, let's give another try at assembling the release: +That defines a release named `foo` with both `kv_server` and `kv` applications. Their mode is set to `:permanent`, which means that, if those applications crash, the whole node terminates. That's reasonable since those applications are essential to our system. With the configuration in place, let's give assembling the release another try: $ MIX_ENV=prod mix release foo * assembling foo-0.0.1 on MIX_ENV=prod @@ -204,7 +204,7 @@ Releases allow developers to precompile and package all of their code and the ru * Configuration and customization. Releases give developers fine grained control over system configuration and the VM flags used to start the system. - * Self-contained. A release does not require the source code to be included in your production artifacts. All of the code is precompiled and packaged. Releases do not even require Erlang or Elixir in your servers, as they include the Erlang VM and its runtime by default. Furthermore, both Erlang and Elixir standard libraries are stripped to bring only the parts you are actually using. + * Self-contained. A release does not require the source code to be included in your production artifacts. All of the code is precompiled and packaged. Releases do not even require Erlang or Elixir on your servers, as they include the Erlang VM and its runtime by default. Furthermore, both Erlang and Elixir standard libraries are stripped to bring only the parts you are actually using. * Multiple releases. You can assemble different releases with different configuration per application or even with different applications altogether. @@ -375,7 +375,7 @@ import Config config :kv_server, :port, System.fetch_env!("PORT") ``` -`config/releases.exs` files work very similar to a regular `config/config.exs` but it may have some restrictions. You can [read the documentation](https://hexdocs.pm/mix/1.9.0-rc.0/Mix.Tasks.Release.html#module-runtime-configuration) for more information. +`config/releases.exs` files work very similar to regular `config/config.exs` files, but they may have some restrictions. You can [read the documentation](https://hexdocs.pm/mix/1.9.0-rc.0/Mix.Tasks.Release.html#module-runtime-configuration) for more information. ## Summing up @@ -383,6 +383,6 @@ Throughout the guide, we have built a very simple distributed key-value store as If you are looking for a distributed key-value store to use in production, you should definitely look into [Riak](http://basho.com/products/riak-kv/), which also runs in the Erlang VM. In Riak, the buckets are replicated, to avoid data loss, and instead of a router, they use [consistent hashing](https://en.wikipedia.org/wiki/Consistent_hashing) to map a bucket to a node. A consistent hashing algorithm helps reduce the amount of data that needs to be migrated when new storage nodes are added to your live system. -Of course, Elixir can be used for much more than distributed key-value stores. Embedded systems, data-processing and data-ingestion, web applications, streaming system, and others are many of the different domains Elixir excels at. We hope this guide has prepared you to explore any of those domains or any future domain you may desire to bring Elixir into. +Of course, Elixir can be used for much more than distributed key-value stores. Embedded systems, data-processing and data-ingestion, web applications, streaming systems, and others are many of the different domains Elixir excels at. We hope this guide has prepared you to explore any of those domains or any future domain you may desire to bring Elixir into. Happy coding! From ae7f02eb4a8c8d64fdc20535b16b3c63d8edcd10 Mon Sep 17 00:00:00 2001 From: Esquith Allen Date: Thu, 29 Aug 2019 23:42:34 -0400 Subject: [PATCH 1074/1761] Update pattern-matching.markdown (#1321) A better word to use, in my opinion --- getting-started/pattern-matching.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index d944e0461..963d712d5 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -38,7 +38,7 @@ iex> 1 = unknown ** (CompileError) iex:1: undefined function unknown/0 ``` -Since there is no variable `unknown` previously defined, Elixir imagined you were trying to call a function named `unknown/0`, but such a function does not exist. +Since there is no variable `unknown` previously defined, Elixir assumed you were trying to call a function named `unknown/0`, but such a function does not exist. ## Pattern matching From 834cea530a2990a23046f356b577e98daa0465df Mon Sep 17 00:00:00 2001 From: Esquith Allen Date: Sat, 31 Aug 2019 12:32:16 -0400 Subject: [PATCH 1075/1761] Update recursion.markdown (#1322) Better wording --- getting-started/recursion.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index f6cfd417d..c9073b61e 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -127,4 +127,4 @@ iex> Enum.map([1, 2, 3], &(&1 * 2)) [2, 4, 6] ``` -Let's take a deeper look at `Enumerable`s and, while we're at it, their lazy counterpart, `Stream`s. +Let's take a deeper look at `Enumerable` and, while we're at it, its lazy counterpart, `Stream`. From ce91c5bcc513322ba9de209db5e51534191e8474 Mon Sep 17 00:00:00 2001 From: Daniel <47275680+danrdev@users.noreply.github.com> Date: Sat, 31 Aug 2019 23:46:31 +0200 Subject: [PATCH 1076/1761] chore(manual): fix typo in `supervisor` (#1323) --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index e5fc7a728..a9bb8df31 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -69,7 +69,7 @@ We will learn those details as we move forward on this guide. If you would rathe After the supervisor retrieves all child specifications, it proceeds to start its children one by one, in the order they were defined, using the information in the `:start` key in the child specification. For our current specification, it will call `KV.Registry.start_link([])`. -Let's take the supervior for a spin: +Let's take the supervisor for a spin: ```iex iex(1)> {:ok, sup} = KV.Supervisor.start_link([]) From 26174bfa6519a643a5a136df33f8b1032c845f80 Mon Sep 17 00:00:00 2001 From: Ryan Bigg Date: Sun, 1 Sep 2019 11:47:15 +1000 Subject: [PATCH 1077/1761] Add Toy Robot book to learning (#1324) --- images/learning/toy-robot.png | Bin 0 -> 523356 bytes learning.markdown | 10 ++++++++++ 2 files changed, 10 insertions(+) create mode 100644 images/learning/toy-robot.png diff --git a/images/learning/toy-robot.png b/images/learning/toy-robot.png new file mode 100644 index 0000000000000000000000000000000000000000..f87cff542ff4f0bfa8ca1e36804bc3451120b340 GIT binary patch literal 523356 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 H(ZD`H!|1GM#yMXTpAaJ47L+$gMsGbHeDgJwQ~ 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¨p9JEdps! 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%0Dqv%Cm=Q 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
+

The Toy Robot Walkthrough

+ +
Toy Robot + +The Toy Robot is a common interview exercise for new programmers. This short book will take you through how to implement it in Elixir in a BDD-style, with some great explanations and imagery along the way. + +If you're a new Elixir developer who's gone through some basic Elixir tutorials and you're looking for the next thing to build your skills, this book is a great start. It covers the Toy Robot exercise from start to finish, testing with Elixir features such as ExUnit and Doctests along the way. + +
+ ## Video/Interactive Resources

Pragmatic Studio's Elixir/OTP Course

From 76253eba5a1f16b9fe37a2585796bec46799fd12 Mon Sep 17 00:00:00 2001 From: Esquith Allen Date: Sat, 31 Aug 2019 22:36:22 -0400 Subject: [PATCH 1078/1761] Update io-and-the-file-system.markdown (#1325) Nothing on this page mentions StringIO, unless I am going insane :) --- getting-started/io-and-the-file-system.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index aaf45bd00..c73ed4c42 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -156,4 +156,4 @@ On the other hand, `:stdio` and files opened with `:utf8` encoding work with the Although this is a subtle difference, you only need to worry about these details if you intend to pass lists to those functions. Binaries are already represented by the underlying bytes and as such their representation is always "raw". -This finishes our tour of IO devices and IO related functionality. We have learned about four Elixir modules - [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html), [`Path`](https://hexdocs.pm/elixir/Path.html) and [`StringIO`](https://hexdocs.pm/elixir/StringIO.html) - as well as how the VM uses processes for the underlying IO mechanisms and how to use `chardata` and `iodata` for IO operations. +This finishes our tour of IO devices and IO related functionality. We have learned about three Elixir modules - [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html), and [`Path`](https://hexdocs.pm/elixir/Path.html) - as well as how the VM uses processes for the underlying IO mechanisms and how to use `chardata` and `iodata` for IO operations. From 5ad377adc0b9ce5ba40c5bf5ee475546328e6e83 Mon Sep 17 00:00:00 2001 From: Arup Rakshit Date: Fri, 6 Sep 2019 00:36:14 +0530 Subject: [PATCH 1079/1761] Update alias-require-and-import.markdown (#1326) Replace outdated error message with new error message text while using macro without require. --- getting-started/alias-require-and-import.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index ba75aa114..dae54153e 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -79,7 +79,8 @@ Public functions in modules are globally available, but in order to use macros, ```iex iex> Integer.is_odd(3) -** (UndefinedFunctionError) function Integer.is_odd/1 is undefined or private. However there is a macro with the same name and arity. Be sure to require Integer if you intend to invoke this macro +** (CompileError) iex:1: you must require Integer before invoking the macro Integer.is_odd/1 + (elixir) src/elixir_dispatch.erl:97: :elixir_dispatch.dispatch_require/6 iex> require Integer Integer iex> Integer.is_odd(3) From c1956b5faf4e7f13298f1787bd88105ea9b5c8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 17 Sep 2019 11:58:21 +0200 Subject: [PATCH 1080/1761] Move Code Editor Support to the wiki --- _includes/important-links.html | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 2c69b256f..b9a703182 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -1,12 +1,3 @@ -
- - - -
- Meet core team and other Elixir developers at ElixirConf,® in Aurora CO, Aug 27-30! - Extended Tickets now available!. -
- {% include mini-docu.html %} - - - -{% include plataformatec.html %} From 6f1a9eb606959712d5f4f3434ae7a8aa83bfbef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 17 Sep 2019 11:59:04 +0200 Subject: [PATCH 1081/1761] Distribute images --- _includes/important-links.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index b9a703182..c2ed5cacb 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -1,5 +1,3 @@ -{% include mini-docu.html %} -

Official Channels

    @@ -8,6 +6,8 @@

    Official Channels

+{% include mini-docu.html %} +

Join the Community

    From 1acc2d61810e3dce9c98497d238a1b27eaaa6f2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 17 Sep 2019 11:59:38 +0200 Subject: [PATCH 1082/1761] Add back Plataformatec links --- _includes/important-links.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_includes/important-links.html b/_includes/important-links.html index c2ed5cacb..96c38f6fb 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -30,3 +30,5 @@

    Important links

  • Crash course for Erlang developers
+ +{% include plataformatec.html %} \ No newline at end of file From c914d197c43be2f5bd9dc7b2c4574aff4aac67e0 Mon Sep 17 00:00:00 2001 From: Geoffrey Lessel Date: Tue, 24 Sep 2019 00:16:42 -0700 Subject: [PATCH 1083/1761] Remove the README page for jekyll-table-of-contents (#1327) If you navigate to https://elixir-lang.org/js/toc/, you can see that the README for the jekyll-table-of-contents javascript library is displayed. This probably does not belong on the Elixir language site. Add the README to the list of files ignored during site build. --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index c0703f669..b271f22a6 100644 --- a/_config.yml +++ b/_config.yml @@ -13,6 +13,7 @@ exclude: - CNAME - .gitignore - README.md + - js/toc/README.md plugins: - jemoji - jekyll-sitemap From ab4c43a06cedaafd30b0f9df8b1d248a82b516eb Mon Sep 17 00:00:00 2001 From: Diogo Baracho Date: Sun, 6 Oct 2019 15:58:00 -0300 Subject: [PATCH 1084/1761] Fix warning that "msg" is unused (#1329) --- getting-started/processes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 19eabcd4b..02a26feca 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -55,7 +55,7 @@ iex> send self(), {:hello, "world"} {:hello, "world"} iex> receive do ...> {:hello, msg} -> msg -...> {:world, msg} -> "won't match" +...> {:world, _msg} -> "won't match" ...> end "world" ``` From bee86a3aae83552a1d1271e46f88cad969d740f7 Mon Sep 17 00:00:00 2001 From: Jakub Godawa Date: Mon, 7 Oct 2019 20:07:52 +0200 Subject: [PATCH 1085/1761] Update ets.markdown with accessibility example (#1328) While playing with ETS I was getting a generic ArgumentError. I thought I'm passing the arguments to the `:ets.insert` incorrectly, while the real cause was the access setting of the ETS table. --- getting-started/mix-otp/ets.markdown | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 6017c752f..8d3eb9019 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -28,7 +28,13 @@ iex> :ets.lookup(table, "foo") [{"foo", #PID<0.41.0>}] ``` -When creating an ETS table, two arguments are required: the table name and a set of options. From the available options, we passed the table type and its access rules. We have chosen the `:set` type, which means that keys cannot be duplicated. We've also set the table's access to `:protected`, meaning only the process that created the table can write to it, but all processes can read from it. Those are actually the default values, so we will skip them from now on. +When creating an ETS table, two arguments are required: the table name and a set of options. From the available options, we passed the table type and its access rules. We have chosen the `:set` type, which means that keys cannot be duplicated. We've also set the table's access to `:protected`, meaning only the process that created the table can write to it, but all processes can read from it. The possible access controls: + + `:public` — Read/Write available to all processes. + `:protected` — Read available to all processes. Only writable by owner process. This is the default. + `:private` — Read/Write limited to owner process. + +Be aware that if your Read/Write call violates the access control, the operation will raise `ArgumentError`. Finally, since `:set` and `:protected` are the default values, we will skip them from now on. ETS tables can also be named, allowing us to access them by a given name: From b8ba041c6c20846ce58517d18f1be2c86ec3d9e1 Mon Sep 17 00:00:00 2001 From: Greg Kostin Date: Tue, 8 Oct 2019 21:40:27 -0400 Subject: [PATCH 1086/1761] Update introduction-to-mix.markdown (#1330) Consistent with other examples. --- .../mix-otp/introduction-to-mix.markdown | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index cf3f54a28..64596ddc5 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -206,16 +206,19 @@ Mix also generated a file named `test/test_helper.exs` which is responsible for ExUnit.start() ``` -This file will be required by Mix every time before we run our tests. We can run tests with `mix test`: +This file will be required by Mix every time before we run our tests. We can run tests with: - Compiled lib/kv.ex - Generated kv app - .. +```console +$ mix test +Compiled lib/kv.ex +Generated kv app +.. - Finished in 0.04 seconds - 1 doctest, 1 test, 0 failures +Finished in 0.04 seconds +1 doctest, 1 test, 0 failures - Randomized with seed 540224 +Randomized with seed 540224 +``` Notice that by running `mix test`, Mix has compiled the source files and generated the application manifest once again. This happens because Mix supports multiple environments, which we will discuss later in this chapter. From eb61d7137faf3508b2d0e6921014bf7b426f2d3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2019 12:44:09 -0300 Subject: [PATCH 1087/1761] Bump lodash.merge from 4.6.1 to 4.6.2 in /_epub (#1333) Bumps [lodash.merge](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/commits) Signed-off-by: dependabot[bot] --- _epub/package-lock.json | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index 316c423da..ba400e0a6 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -403,6 +403,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, + "optional": true, "requires": { "hoek": "2.x.x" } @@ -699,6 +700,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "optional": true, "requires": { "delayed-stream": "~1.0.0" } @@ -932,7 +934,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "dev": true, + "optional": true }, "deprecated": { "version": "0.0.1", @@ -1449,7 +1452,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "dev": true, + "optional": true }, "fancy-log": { "version": "1.3.3", @@ -2626,7 +2630,8 @@ "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true + "dev": true, + "optional": true }, "homedir-polyfill": { "version": "1.0.3", @@ -3058,7 +3063,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "dev": true, + "optional": true }, "json-schema": { "version": "0.2.3", @@ -3357,9 +3363,9 @@ } }, "lodash.merge": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", - "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.partialright": { @@ -3521,13 +3527,15 @@ "version": "1.40.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true + "dev": true, + "optional": true }, "mime-types": { "version": "2.1.24", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, + "optional": true, "requires": { "mime-db": "1.40.0" } @@ -5089,7 +5097,8 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "dev": true, + "optional": true }, "type": { "version": "1.0.1", From 117d4a003c569dcf5517b0761c7f94a870841808 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2019 12:44:38 -0300 Subject: [PATCH 1088/1761] Bump nokogiri from 1.10.3 to 1.10.4 (#1331) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.3 to 1.10.4. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.3...v1.10.4) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index ac4b5475c..c4e99edcc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -206,7 +206,7 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.11.3) multipart-post (2.1.1) - nokogiri (1.10.3) + nokogiri (1.10.4) mini_portile2 (~> 2.4.0) octokit (4.14.0) sawyer (~> 0.8.0, >= 0.5.3) From 4ac72ca9e59a0b36a1d8243d9b3ccb197c904091 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2019 12:45:10 -0300 Subject: [PATCH 1089/1761] Bump rubyzip from 1.2.3 to 2.0.0 (#1332) Bumps [rubyzip](https://github.com/rubyzip/rubyzip) from 1.2.3 to 2.0.0. - [Release notes](https://github.com/rubyzip/rubyzip/releases) - [Changelog](https://github.com/rubyzip/rubyzip/blob/master/Changelog.md) - [Commits](https://github.com/rubyzip/rubyzip/compare/v1.2.3...v2.0.0) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c4e99edcc..825505a96 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -220,7 +220,7 @@ GEM ruby-enum (0.7.2) i18n ruby_dep (1.5.0) - rubyzip (1.2.3) + rubyzip (2.0.0) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) From 821d0a0e46c5d7120d5d1c2013ae356e46d7a53d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 12 Oct 2019 00:29:32 +0200 Subject: [PATCH 1090/1761] Release v1.9.2 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 8f223c1e8..338ad8e77 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.9.2,https://github.com/elixir-lang/elixir/releases/download/v1.9.2/Precompiled.zip,release,1,d638cbc2a30a3ffd9b842e19c2cad62e9c3f303b,21f5fd086ec68b180857a839fdf0edfb594f33c85ce3fd9bdf5ec9122ee5513244bb3dd2d6c20ba3f162705cf26e89a79033e7938c370c6b7393bfe5aff288c9 1.9.1,https://github.com/elixir-lang/elixir/releases/download/v1.9.1/Precompiled.zip,release,1,51520d0edf924f3c4620739cf2009d545eab6e99,14826fe295c19c9e331f2777f70a13ae55bf107ce043d0aeb747b5235de82bd6175c915f0bea63ffe0f87136357d76522c67bdd54fc61dd1f167afb4879a3845 1.9.0,https://github.com/elixir-lang/elixir/releases/download/v1.9.0/Precompiled.zip,release,1,e9847341ca0484da0ade831bf5d714d9094629c1,89686dd150abbc3c65be373dedf60971801063537a3b32cccdcd7eda18e5a9b3b78012b11a2f06575824e0164fbf0b80178a7de943f508ec90ad9a74d8a1da05 1.8.2,https://github.com/elixir-lang/elixir/releases/download/v1.8.2/Precompiled.zip,release,1,661dbf612c4b5fdb4390ff54121d82ff9452c3f3,f110669f99f8716e71f66b74d9604edabd1ed5b041e69962c01bae5274165e86ae95773d2e117ebf7f462fb68f3a2ae7891e50df372d676c2f1d975da59aa9e5 From 64e4ae99922bf7b6c68e9d37f6333ae40919bec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Juli=C3=A1n=20Merelo=20Guerv=C3=B3s?= Date: Sun, 13 Oct 2019 17:41:56 +0200 Subject: [PATCH 1091/1761] The name of the file was mentioned that way before (#1334) It's not a script, so it makes sense to use it that way too. --- getting-started/modules-and-functions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/modules-and-functions.markdown b/getting-started/modules-and-functions.markdown index afd4d85d8..25562e819 100644 --- a/getting-started/modules-and-functions.markdown +++ b/getting-started/modules-and-functions.markdown @@ -276,7 +276,7 @@ If we save the code above in a file named "concat.ex" and compile it, Elixir wil The compiler is telling us that invoking the `join` function with two arguments will always choose the first definition of `join` whereas the second one will only be invoked when three arguments are passed: ```console -$ iex concat.exs +$ iex concat.ex ``` ```iex From d4bacf4ca98e244b8491115290aad1976453e74c Mon Sep 17 00:00:00 2001 From: Jon Carstens Date: Tue, 22 Oct 2019 23:19:13 -0600 Subject: [PATCH 1092/1761] Update install.markdown for ubuntu and raspbian (#1335) * Update `ubuntu` and `Debian` instructions to use `erlang-solutions_2.0_all.deb` as recommended on Erlang Solutions website * Update `Raspbian` to reference `buster` since that is now the latest OS --- install.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install.markdown b/install.markdown index 07b10f447..1780c1184 100644 --- a/install.markdown +++ b/install.markdown @@ -49,7 +49,7 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Solus * Run: `eopkg install elixir` * Ubuntu 14.04/16.04/17.04/18.04/19.04 or Debian 7/8/9 - * Add Erlang Solutions repo: `wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb` + * Add Erlang Solutions repo: `wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb` * Run: `sudo apt-get update` * Install the Erlang/OTP platform and all of its applications: `sudo apt-get install esl-erlang` * Install Elixir: `sudo apt-get install elixir` @@ -70,11 +70,11 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel ### Raspberry Pi -If necessary, replace "stretch" with the name of your Raspbian release. +If necessary, replace "buster" with the name of your Raspbian release. * The Erlang Solutions repository has a prebuilt package for armhf. This saves a significant amount of time in comparison to recompiling natively * Get Erlang key - * `echo "deb https://packages.erlang-solutions.com/debian stretch contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` + * `echo "deb https://packages.erlang-solutions.com/debian buster contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` * Run: `wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc` * Add to keychain: `sudo apt-key add erlang_solutions.asc` * Install Elixir From f46c1ff239b6ef2af0cd63c3eb6f361a7e808d10 Mon Sep 17 00:00:00 2001 From: gainhad Date: Thu, 31 Oct 2019 09:30:21 -0400 Subject: [PATCH 1093/1761] Update agent.markdown (#1337) --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 032187c9b..e2efa9e47 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -53,7 +53,7 @@ iex> Agent.stop(agent) We started an agent with an initial state of an empty list. We updated the agent's state, adding our new item to the head of the list. The second argument of [`Agent.update/3`](https://hexdocs.pm/elixir/Agent.html#update/3) is a function that takes the agent's current state as input and returns its desired new state. Finally, we retrieved the whole list. The second argument of [`Agent.get/3`](https://hexdocs.pm/elixir/Agent.html#get/3) is a function that takes the state as input and returns the value that [`Agent.get/3`](https://hexdocs.pm/elixir/Agent.html#get/3) itself will return. Once we are done with the agent, we can call [`Agent.stop/3`](https://hexdocs.pm/elixir/Agent.html#stop/3) to terminate the agent process. -The `Agent.update/3` function accepts as second argument any function that receives one argument and returns a value: +The `Agent.update/3` function accepts as a second argument any function that receives one argument and returns a value: ```iex iex> {:ok, agent} = Agent.start_link fn -> [] end From a479ec070bc1f1afc3352cb75e42d8d8395423e7 Mon Sep 17 00:00:00 2001 From: SANCHIT BANSAL Date: Fri, 1 Nov 2019 20:20:39 +0530 Subject: [PATCH 1094/1761] x=1 declaration not clear in pattern-match readme (#1338) The code is assuming that x = 1 is declared and then match is checked. For a new user it's not very clear. I read it for the first time (completely new to Elixir) and thought that 1 = x is the declaration. --- getting-started/pattern-matching.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 963d712d5..203759477 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -23,6 +23,8 @@ iex> x In Elixir, the `=` operator is actually called *the match operator*. Let's see why: ```iex +iex> x = 1 +1 iex> 1 = x 1 iex> 2 = x From e0a9e52dd45e3df4c5502d2770ee0143ebcfd01e Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sat, 2 Nov 2019 23:29:41 +0700 Subject: [PATCH 1095/1761] Replace quotes (#1339) --- _posts/2013-05-02-elixir-on-xen.markdown | 2 +- .../2019-06-24-elixir-v1-9-0-released.markdown | 2 +- .../mix-otp/config-and-releases.markdown | 2 +- index.html | 8 ++++---- learning.markdown | 16 ++++++++-------- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/_posts/2013-05-02-elixir-on-xen.markdown b/_posts/2013-05-02-elixir-on-xen.markdown index a41c5a3de..2d48567d1 100644 --- a/_posts/2013-05-02-elixir-on-xen.markdown +++ b/_posts/2013-05-02-elixir-on-xen.markdown @@ -6,7 +6,7 @@ category: Announcements excerpt: The Erlang on Xen team has added support for Elixir and we will tell you how you can use it! --- -Elixir uses Erlang underneath, all the way down. Thanks to this, an Elixir project can run on the recently revealed “OS-less” Erlang VM called LING VM. LING VM is the core technology of [Erlang on Xen](http://erlangonxen.org). +Elixir uses Erlang underneath, all the way down. Thanks to this, an Elixir project can run on the recently revealed "OS-less" Erlang VM called LING VM. LING VM is the core technology of [Erlang on Xen](http://erlangonxen.org). ## Why Xen? diff --git a/_posts/2019-06-24-elixir-v1-9-0-released.markdown b/_posts/2019-06-24-elixir-v1-9-0-released.markdown index 55872d9e2..f70efb76c 100644 --- a/_posts/2019-06-24-elixir-v1-9-0-released.markdown +++ b/_posts/2019-06-24-elixir-v1-9-0-released.markdown @@ -28,7 +28,7 @@ Enough background, let's see why you would want to use releases and how to assem Releases allow developers to precompile and package all of their code and the runtime into a single unit. The benefits of releases are: - * Code preloading. The VM has two mechanisms for loading code: interactive and embedded. By default, it runs in the interactive mode which dynamically loads modules when they are used for the first time. The first time your application calls `Enum.map/2`, the VM will find the `Enum` module and load it. There’s a downside. When you start a new server in production, it may need to load many other modules, causing the first requests to have an unusual spike in response time. Releases run in embedded mode, which loads all available modules upfront, guaranteeing your system is ready to handle requests after booting. + * Code preloading. The VM has two mechanisms for loading code: interactive and embedded. By default, it runs in the interactive mode which dynamically loads modules when they are used for the first time. The first time your application calls `Enum.map/2`, the VM will find the `Enum` module and load it. There's a downside. When you start a new server in production, it may need to load many other modules, causing the first requests to have an unusual spike in response time. Releases run in embedded mode, which loads all available modules upfront, guaranteeing your system is ready to handle requests after booting. * Configuration and customization. Releases give developers fine grained control over system configuration and the VM flags used to start the system. diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index db4ac08cf..b00b7b162 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -200,7 +200,7 @@ If you run `bin/foo start`, it will start the system using a short name (`--snam Releases allow developers to precompile and package all of their code and the runtime into a single unit. The benefits of releases are: - * Code preloading. The VM has two mechanisms for loading code: interactive and embedded. By default, it runs in the interactive mode which dynamically loads modules when they are used for the first time. The first time your application calls `Enum.map/2`, the VM will find the `Enum` module and load it. There’s a downside. When you start a new server in production, it may need to load many other modules, causing the first requests to have an unusual spike in response time. Releases run in embedded mode, which loads all available modules upfront, guaranteeing your system is ready to handle requests after booting. + * Code preloading. The VM has two mechanisms for loading code: interactive and embedded. By default, it runs in the interactive mode which dynamically loads modules when they are used for the first time. The first time your application calls `Enum.map/2`, the VM will find the `Enum` module and load it. There's a downside. When you start a new server in production, it may need to load many other modules, causing the first requests to have an unusual spike in response time. Releases run in embedded mode, which loads all available modules upfront, guaranteeing your system is ready to handle requests after booting. * Configuration and customization. Releases give developers fine grained control over system configuration and the VM flags used to start the system. diff --git a/index.html b/index.html index 25ec1f77f..de633ef5b 100644 --- a/index.html +++ b/index.html @@ -93,7 +93,7 @@

Functional programming

#=> Fails if the user is under 16 {% endhighlight %} -

Elixir relies heavily on those features to ensure your software is working under the expected constraints. And when it is not, don’t worry, supervisors have your back!

+

Elixir relies heavily on those features to ensure your software is working under the expected constraints. And when it is not, don't worry, supervisors have your back!

@@ -103,7 +103,7 @@

Extensibility and DSLs

Elixir has been designed to be extensible, letting developers naturally extend the language to particular domains, in order to increase their productivity.

-

As an example, let’s write a simple test case using Elixir’s test framework called ExUnit:

+

As an example, let's write a simple test case using Elixir's test framework called ExUnit:

{% highlight elixir %} defmodule MathTest do @@ -147,7 +147,7 @@

A growing ecosystem

Interactive development

-

Tools like IEx (Elixir’s interactive shell) are able to leverage many aspects of the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation:

+

Tools like IEx (Elixir's interactive shell) are able to leverage many aspects of the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation:

{% highlight text %} $ iex @@ -164,7 +164,7 @@

Interactive development

Erlang compatible

-

Elixir runs on the Erlang VM giving developers complete access to Erlang’s ecosystem, used by companies like Heroku, WhatsApp, Klarna and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

+

Elixir runs on the Erlang VM giving developers complete access to Erlang's ecosystem, used by companies like Heroku, WhatsApp, Klarna and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

{% highlight iex %} iex> :crypto.hash(:md5, "Using crypto from Erlang OTP") diff --git a/learning.markdown b/learning.markdown index a689a8c06..0e21092ee 100644 --- a/learning.markdown +++ b/learning.markdown @@ -21,7 +21,7 @@ The Elixir Community has also produced plenty of resources to explore Elixir fro This book is the introduction to Elixir for experienced programmers, completely updated for Elixir 1.6 and beyond. Explore functional programming without the academic overtones (tell me about monads just one more time). Create concurrent applications, but get them right without all the locking and consistency headaches. -Meet Elixir, a modern, functional, concurrent language built on the rock-solid Erlang VM. Elixir’s pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. Maybe the time is right for the Next Big Thing. Maybe it’s Elixir. +Meet Elixir, a modern, functional, concurrent language built on the rock-solid Erlang VM. Elixir's pragmatic syntax and built-in support for metaprogramming will make you productive and keep you interested for the long haul. Maybe the time is right for the Next Big Thing. Maybe it's Elixir.
@@ -41,7 +41,7 @@ The book starts with a basic introduction to the Elixir language and functional Programming Elixir cover -Adoption is more than programming. Elixir is an exciting new language, but to successfully get your application from start to finish, you’re going to need to know more than just the language. You need the case studies and strategies in this book. +Adoption is more than programming. Elixir is an exciting new language, but to successfully get your application from start to finish, you're going to need to know more than just the language. You need the case studies and strategies in this book. Learn the best practices for the whole life of your application, from design and team-building, to managing stakeholders, to deployment and monitoring. Go beyond the syntax and the tools to learn the techniques you need to develop your Elixir application from concept to production. @@ -52,9 +52,9 @@ Learn the best practices for the whole life of your application, from design and Introducing Elixir cover -Elixir is an excellent language if you want to learn about functional programming, and with this hands-on introduction, you’ll discover just how powerful and fun Elixir can be. This language combines the robust functional programming of Erlang with a syntax similar to Ruby, and includes powerful features for metaprogramming. +Elixir is an excellent language if you want to learn about functional programming, and with this hands-on introduction, you'll discover just how powerful and fun Elixir can be. This language combines the robust functional programming of Erlang with a syntax similar to Ruby, and includes powerful features for metaprogramming. -This book shows you how to write simple Elixir programs by teaching one skill at a time. Once you pick up pattern matching, process-oriented programming, and other concepts, you’ll understand why Elixir makes it easier to build concurrent and resilient programs that scale up and down with ease. +This book shows you how to write simple Elixir programs by teaching one skill at a time. Once you pick up pattern matching, process-oriented programming, and other concepts, you'll understand why Elixir makes it easier to build concurrent and resilient programs that scale up and down with ease.
@@ -80,7 +80,7 @@ This book is a set of recipes grouped by topic that acts as a reference to get i Elixir School -Elixir-School is an open and community driven effort inspired by Twitter’s Scala School. The site’s content consists of peer-reviewed lessons on various Elixir topics that range in difficulty. The lessons are currently available in over 10 languages to help make programming Elixir more accessible to non-English speakers. +Elixir-School is an open and community driven effort inspired by Twitter's Scala School. The site's content consists of peer-reviewed lessons on various Elixir topics that range in difficulty. The lessons are currently available in over 10 languages to help make programming Elixir more accessible to non-English speakers.
@@ -99,7 +99,7 @@ This book will teach you the core concepts of the Elixir programming language in Learn Functional Programming with Elixir cover -Elixir’s straightforward syntax and this guided tour give you a clean, simple path to learn modern functional programming techniques. No previous functional programming experience required! This book walks you through the right concepts at the right pace, as you explore immutable values and explicit data transformation, functions, modules, recursive functions, pattern matching, high-order functions, polymorphism, and failure handling, all while avoiding side effects. Don’t board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally. This book will get you there. +Elixir's straightforward syntax and this guided tour give you a clean, simple path to learn modern functional programming techniques. No previous functional programming experience required! This book walks you through the right concepts at the right pace, as you explore immutable values and explicit data transformation, functions, modules, recursive functions, pattern matching, high-order functions, polymorphism, and failure handling, all while avoiding side effects. Don't board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally. This book will get you there.
@@ -213,7 +213,7 @@ Alchemist Camp is aimed at people who have some web development experience and w Metaprogramming Elixir cover -Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages. +Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you'll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You'll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages.
@@ -230,6 +230,6 @@ This book intends to be a little guide about how to be the Erlang medic in a tim Designing Elixir Systems with OTP cover -You know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that’s kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what’s happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus. +You know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that's kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what's happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus.
From 4362e33f81a82b9d10d43dc3b2186b9cd656517e Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sat, 2 Nov 2019 23:30:04 +0700 Subject: [PATCH 1096/1761] Rename h and t vars to head and tail (#1340) --- _posts/2013-05-23-elixir-v0-9-0-released.markdown | 4 ++-- crash-course.markdown | 12 ++++++------ getting-started/pattern-matching.markdown | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index cd319e93a..d7fe3888f 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -77,8 +77,8 @@ defimpl Enumerable, for: List do do_reduce(list, acc, fun) end - defp do_reduce([h | t], acc, fun) do - do_reduce(t, fun.(h, acc), fun) + defp do_reduce([head | tail], acc, fun) do + do_reduce(tail, fun.(head, acc), fun) end defp do_reduce([], acc, fun) do diff --git a/crash-course.markdown b/crash-course.markdown index bf2980858..3b4d111e3 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -454,9 +454,9 @@ Pattern matching in Elixir is based on Erlang's implementation and in general is **Erlang** ```erlang -loop_through([H | T]) -> - io:format('~p~n', [H]), - loop_through(T); +loop_through([Head | Tail]) -> + io:format('~p~n', [Head]), + loop_through(Tail); loop_through([]) -> ok. @@ -465,9 +465,9 @@ loop_through([]) -> **Elixir** ```elixir -def loop_through([h | t]) do - IO.inspect h - loop_through t +def loop_through([head | tail]) do + IO.inspect head + loop_through tail end def loop_through([]) do diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 203759477..7881eea71 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -104,7 +104,7 @@ iex> tail Similar to the `hd/1` and `tl/1` functions, we can't match an empty list with a head and tail pattern: ```iex -iex> [h | t] = [] +iex> [head | tail] = [] ** (MatchError) no match of right hand side value: [] ``` @@ -164,9 +164,9 @@ iex> {x, x} = {1, 2} In some cases, you don't care about a particular value in a pattern. It is a common practice to bind those values to the underscore, `_`. For example, if only the head of the list matters to us, we can assign the tail to underscore: ```iex -iex> [h | _] = [1, 2, 3] +iex> [head | _] = [1, 2, 3] [1, 2, 3] -iex> h +iex> head 1 ``` From 6778df323a4ffc0b76fcf232dbe7187895fb2ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 Nov 2019 14:06:45 +0100 Subject: [PATCH 1097/1761] Release v1.9.3 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 87896e13f..1729fe947 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_9 v1_9: name: v1.9 minimum_otp: 20.0 - version: 1.9.1 + version: 1.9.3 docs_zip: true v1_8: diff --git a/elixir.csv b/elixir.csv index 338ad8e77..17303b067 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.9.3,https://github.com/elixir-lang/elixir/releases/download/v1.9.3/Precompiled.zip,release,1,8bcf1cca9a946db02af570a78b007e9424cd933f,e5252721b5a08f48c5988027cb765f9317e7e271e52f3f4a3ebcb77581eb584c9aa0cdb216e12a3d626f725964fde2af84ce2241ac8b04d034dd461206c17f54 1.9.2,https://github.com/elixir-lang/elixir/releases/download/v1.9.2/Precompiled.zip,release,1,d638cbc2a30a3ffd9b842e19c2cad62e9c3f303b,21f5fd086ec68b180857a839fdf0edfb594f33c85ce3fd9bdf5ec9122ee5513244bb3dd2d6c20ba3f162705cf26e89a79033e7938c370c6b7393bfe5aff288c9 1.9.1,https://github.com/elixir-lang/elixir/releases/download/v1.9.1/Precompiled.zip,release,1,51520d0edf924f3c4620739cf2009d545eab6e99,14826fe295c19c9e331f2777f70a13ae55bf107ce043d0aeb747b5235de82bd6175c915f0bea63ffe0f87136357d76522c67bdd54fc61dd1f167afb4879a3845 1.9.0,https://github.com/elixir-lang/elixir/releases/download/v1.9.0/Precompiled.zip,release,1,e9847341ca0484da0ade831bf5d714d9094629c1,89686dd150abbc3c65be373dedf60971801063537a3b32cccdcd7eda18e5a9b3b78012b11a2f06575824e0164fbf0b80178a7de943f508ec90ad9a74d8a1da05 From cfe2a6be9b603fc29f364014a3f6cee5c32fd93f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 Nov 2019 16:38:53 +0100 Subject: [PATCH 1098/1761] Release v1.9.4 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 1729fe947..f2b359ee2 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_9 v1_9: name: v1.9 minimum_otp: 20.0 - version: 1.9.3 + version: 1.9.4 docs_zip: true v1_8: diff --git a/elixir.csv b/elixir.csv index 17303b067..f67b45da1 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.9.4,https://github.com/elixir-lang/elixir/releases/download/v1.9.4/Precompiled.zip,release,1,ec4c7d15b28373b8fd7025b4502b7f2036229f20,f86170bde3b3ad3d1365f34f77ab9cb424c4638a4067fd7d509787c03dea0d40061ef1a2c8d1d9e42bec65b8cda8c1bf32801e4712531eeaef50e0cd53ac2369 1.9.3,https://github.com/elixir-lang/elixir/releases/download/v1.9.3/Precompiled.zip,release,1,8bcf1cca9a946db02af570a78b007e9424cd933f,e5252721b5a08f48c5988027cb765f9317e7e271e52f3f4a3ebcb77581eb584c9aa0cdb216e12a3d626f725964fde2af84ce2241ac8b04d034dd461206c17f54 1.9.2,https://github.com/elixir-lang/elixir/releases/download/v1.9.2/Precompiled.zip,release,1,d638cbc2a30a3ffd9b842e19c2cad62e9c3f303b,21f5fd086ec68b180857a839fdf0edfb594f33c85ce3fd9bdf5ec9122ee5513244bb3dd2d6c20ba3f162705cf26e89a79033e7938c370c6b7393bfe5aff288c9 1.9.1,https://github.com/elixir-lang/elixir/releases/download/v1.9.1/Precompiled.zip,release,1,51520d0edf924f3c4620739cf2009d545eab6e99,14826fe295c19c9e331f2777f70a13ae55bf107ce043d0aeb747b5235de82bd6175c915f0bea63ffe0f87136357d76522c67bdd54fc61dd1f167afb4879a3845 From 95e46314d543dc4dceb0c37231e38a9ed9190712 Mon Sep 17 00:00:00 2001 From: Kim Shrier Date: Sun, 17 Nov 2019 14:37:58 -0700 Subject: [PATCH 1099/1761] Fix minor typos in the supervisor-and-application page (#1341) --- getting-started/mix-otp/supervisor-and-application.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index a9bb8df31..ed44c33b1 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -247,7 +247,7 @@ end > Please note that by doing this, we are breaking the boilerplate test case which tested the `hello` function in `KV`. You can simply remove that test case. -When we `use Application`, we may define a couple functions, similar to when we used `Supervisor` or `GenServer`. This time we only had to define a `start/2` function. The `Application` behaviour also has a `stop/1` callback, but it is rarely used in practice, you can check the documentation for more information. +When we `use Application`, we may define a couple of functions, similar to when we used `Supervisor` or `GenServer`. This time we only had to define a `start/2` function. The `Application` behaviour also has a `stop/1` callback, but it is rarely used in practice, you can check the documentation for more information. Now that you have defined an application callback which starts our supervisor, we expect the `KV.Registry` process to be up and running as soon we start `iex -S mix`. Let's give it another try: @@ -258,7 +258,7 @@ iex(2)> KV.Registry.lookup(KV.Registry, "shopping") {:ok, #PID<0.88.0>} ``` -Let's recap what is happening. Whenever we invoke `iex -S mix`, it automatically starts our application by calling `Application.start(:kv)`, which then invokes the application callback. The application callback job is to start a **supervision tree**. Right now, we only have a single supervisor, but sometimes a supervisor is also supervised, giving it a shape of a tree. So far, our supervisor has a single child, a `KV.Registry`, which is started with name `KV.Registry`. +Let's recap what is happening. Whenever we invoke `iex -S mix`, it automatically starts our application by calling `Application.start(:kv)`, which then invokes the application callback. The application callback's job is to start a **supervision tree**. Right now, we only have a single supervisor, but sometimes a supervisor is also supervised, giving it a shape of a tree. So far, our supervisor has a single child, a `KV.Registry`, which is started with name `KV.Registry`. ## Projects or applications? From ff0273073f2857d7d4a32cd3fb59184994b0af98 Mon Sep 17 00:00:00 2001 From: Martin Gausby Date: Thu, 28 Nov 2019 17:13:50 +0100 Subject: [PATCH 1100/1761] Add upcoming conferences section and add CodeBeam SF & ElixirConf EU (#1342) --- _includes/conferences.html | 18 ++++++++++++++++++ _includes/important-links.html | 2 ++ 2 files changed, 20 insertions(+) create mode 100644 _includes/conferences.html diff --git a/_includes/conferences.html b/_includes/conferences.html new file mode 100644 index 000000000..0c2d01594 --- /dev/null +++ b/_includes/conferences.html @@ -0,0 +1,18 @@ + diff --git a/_includes/important-links.html b/_includes/important-links.html index 96c38f6fb..180e81329 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -8,6 +8,8 @@

Official Channels

{% include mini-docu.html %} +{% include conferences.html %} +

Join the Community

+

Running in Production Podcast

+ +
Running in Production Podcast + +Running in Production is a podcast where developers and engineers talk about +running small and large Elixir / Phoenix web apps in production. + +Topics include tech stacks, success stories, lessons learned and deployment tips. + +
+ ## Screencasts

Elixir Sips

From 9b621c0d7ca39d1e7b03625c2e3f2c43edb31921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 27 Jan 2020 10:16:02 +0100 Subject: [PATCH 1124/1761] Release v1.10 (#1357) --- _includes/search.html | 2 +- ...020-01-27-elixir-v1-10-0-released.markdown | 170 ++++++++++++++++++ 2 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 _posts/2020-01-27-elixir-v1-10-0-released.markdown diff --git a/_includes/search.html b/_includes/search.html index 63f56a63d..e1a91bdaf 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ diff --git a/_posts/2020-01-27-elixir-v1-10-0-released.markdown b/_posts/2020-01-27-elixir-v1-10-0-released.markdown new file mode 100644 index 000000000..7c7d40ea7 --- /dev/null +++ b/_posts/2020-01-27-elixir-v1-10-0-released.markdown @@ -0,0 +1,170 @@ +--- +layout: post +title: Elixir v1.10 released +author: José Valim +category: Releases +excerpt: Elixir v1.10 is out with standard library, compiler, and releases improvements +--- + +Elixir v1.10 comes with improvements to the standard library, the compiler, as well as several additions to the [`mix release` feature added in v1.9](/blog/2019/06/24/elixir-v1-9-0-released/). In particular, this version adds a lot of polish to existing features, such as our configuration system and our sorting APIs. + +Also note Elixir v1.10 requires Erlang/OTP 21+. This allows us to provide tighter integration with Erlang/OTP's new logger. This means that the logger level, logger metadata, as well as all log messages are now shared between Erlang and Elixir APIs. + +Let's take a look at what else is new. + +## Releases improvements + +Elixir v1.9 introduced releases as a mechanism to package self-contained applications. Elixir v1.10 further improves releases with bug fixes and new enhancements based on feedback we got from the community. The highlights are: + + * Allow the dual boot system of releases to be disabled on environments that are boot-time sensitive, such as embedded devices + + * Track and raise if compile-time configuration is set or changes at runtime (more in the next section) + + * Support overlays to easily add extra files to a packaged releases + + * Allow `RELEASE_DISTRIBUTION` to be set to `none` in order to fully disable distribution + + * Add a built-in `:tar` step that automatically packages releases + +See the [full release notes for more improvements](https://github.com/elixir-lang/elixir/releases/tag/v1.10.0). + +## Improvements to sort-based APIs in Enum + +[`Enum.sort/1`](https://hexdocs.pm/elixir/Enum.html#sort/1) in Elixir by default sorts from lowest to highest: + +```elixir +iex> Enum.sort(["banana", "apple", "pineapple"]) +["apple", "banana", "pineapple"] +``` + +If you want to sort from highest to lowest, you need to call `Enum.sort/2` with a custom sorting function, such as `Enum.sort(collection, &>=/2)`, which is not immediately obvious to someone reading the code: + +```elixir +iex> Enum.sort(["banana", "apple", "pineapple"], &>=/2) +["pineapple", "banana", "apple"] +``` + +Furthermore, comparison operators, such as `<=` and `>=`, perform structural sorting, instead of a semantic one. For example, using `>=` to sort dates descendingly won't yield the correct result: + +```elixir +iex> Enum.sort([~D[2019-12-31], ~D[2020-01-01]]) +[~D[2020-01-01], ~D[2019-12-31]] +``` + +To perform proper semantic comparison for dates, one would also need to pass a custom sorting function: + +```elixir +iex> Enum.sort([~D[2019-12-31], ~D[2020-01-01]], &(Date.compare(&1, &2) != :lt)) +[~D[2019-12-31], ~D[2020-01-01]] +``` + +Elixir v1.10 streamlines the sorting functions by introducing both `:asc` and `:desc` shortcuts: + +```elixir +iex> Enum.sort(["banana", "apple", "pineapple"], :asc) +["apple", "banana", "pineapple"] +iex> Enum.sort(["banana", "apple", "pineapple"], :desc) +["pineapple", "banana", "apple"] +``` + +As well as adding the possibility to pass a module to perform semantic comparisons. For example, to sort dates, one now only needs to pass the `Date` module or even `{:desc, Date}` for descending semantical sort: + +```elixir +iex> Enum.sort([~D[2019-12-31], ~D[2020-01-01]], Date) +[~D[2019-12-31], ~D[2020-01-01]] +iex> Enum.sort([~D[2019-12-31], ~D[2020-01-01]], {:desc, Date}) +[~D[2020-01-01], ~D[2019-12-31]] +``` + +These API improvements make the code more concise and readable and they have also been added to `Enum.sort_by`, `Enum.min_by`, `Enum.max_by`, and friends. + +### Tracking of compile-time configuration + +In Elixir, we organize our code in applications. Libraries, your dependencies, and your own project are all separate applications. All applications in Elixir also come with an application environment. + +The application environment is a key-value store that allows us to configure said application. While reading the application environment at runtime is the preferred approach, in some rare occasions you may want to use the application environment to configure the compilation of a certain project. This is often done by calling `Application.get_env/3` outside of a function: + +```elixir +defmodule MyApp.DBClient do + @db_host Application.get_env(:my_app, :db_host, "db.local") + + def start_link() do + SomeLib.DBClient.start_link(host: @db_host) + end +end +``` + +This approach has one big limitation: if you change the value of the application environment after the code is compiled, the value used at runtime is not going to change! For example, if you are using `mix release` and your `config/releases.exs` has: + + config :my_app, :db_host, "db.production" + +Because `config/releases.exs` is read after the code is compiled, the new value will have no effect as the code was compiled to connect to "db.local". + +Of course, the obvious solution to this mismatch is to not read the application environment at compilation time in the first place, and instead move the code to inside a function: + +```elixir +defmodule MyApp.DBClient do + def start_link() do + SomeLib.DBClient.start_link(host: db_host()) + end + + defp db_host() do + Application.get_env(:my_app, :db_host, "db.local") + end +end +``` + +While this is the preferred approach, there are still two scenarios we need to address: + + 1. Not everyone may be aware of this pitfall, so they will mistakenly read the application environemnt at compile-time, until they are bitten by this behaviour + + 2. In rare occasions, you trully need to read the application environment at compile-time, and you want to be warned when you try to configure at runtime something that is valid only at compilation time + +Elixir v1.10 aims to solve these two scenarios by introducing a `Application.compile_env/3` function. For example, to read the value at compile time, you can now do: + +```elixir +@db_host Application.compile_env(:my_app, :db_host, "db.local") +``` + +By using `compile_env/3`, Elixir will store the values used during compilation and compare them with the runtime values whenever your system starts, raising an error in case they differ. This helps developers ensure they are running their production systems with the configuration they intend to. + +In future versions, we will deprecate the use `Application.get_env/3` at compile-time with a clear message pointing users to configuration best practices, effectively addressing the scenario where users read from the application environment at compile time unaware of its pitfalls. + +### Compiler tracing + +This release brings enhancements to the Elixir compiler and adds new capabilities for developers to listen to compilation events. + +In previous Elixir versions, Elixir would compile a database of cross references between modules (such as function calls, references, structs, etc) for each project in order to perform all kinds of checks, such as deprecations and undefined functions. + +Although this database was not public, developers would still use it to run their own checks against their projects. With time, developers would request more data to be included in the database, which was problematic as Elixir itself did not have a use for the additional data, and the database was not meant to be used externally in the first place. + +In Elixir v1.10, we have addressed these problems by [introducing compiler tracing](https://hexdocs.pm/elixir/Code.html#module-compilation-tracers). The compiler tracing allows developers to listen to events as they are emitted by the compiler, so they can store all of the information they need - and only the information they need. + +Elixir itself is using the new compiler tracing to provide new functionality. One advantage of this approach is that developers can now disable undefined function warnings directly on the callsite. For example, imagine you have an optional dependency which may not be available in some cases. You can tell the compiler to skip warning on calls to optional modules with: + + @compile {:no_warn_undefined, OptionalDependency} + defdelegate my_function_call(arg), to: OptionalDependency + +Previously, this information had to be added to the overall project configuration, which was far away from where the optional call effectively happened. + +### Other enhancements + +Elixir's calendar data types got many improvements, such as sigil support for third-party calendars, as well as the additions of [`DateTime.now!/2`](https://hexdocs.pm/elixir/DateTime.html#now!/2), [`DateTime.shift_zone!/3`](https://hexdocs.pm/elixir/DateTime.html#shift_zone!/3), and [`NaiveDateTime.local_now/0`](https://hexdocs.pm/elixir/NaiveDateTime.html#local_now/0). + +There are many improvements related to Elixir's AST in this release too. [`Code.string_to_quoted/2`](https://hexdocs.pm/elixir/Code.html#string_to_quoted/2) has two new options, `:token_metadata` and `:literal_encoder`, that give more control over Elixir's parser. This information was already available to the Elixir code formatter and has now been made public. These changes alongside compiler tracing means tools like [Credo](https://github.com/rrrene/credo), [Boundary](https://github.com/sasa1977/boundary), and IDE integrations have an even better foundation to analyze the source code. + +[ExUnit](https://hexdocs.pm/ex_unit), our test framework, ships two small but important improvements: `ExUnit.CaptureIO` can now be used by tests that run concurrently and we have added "pattern-matching diffing". To understand the last feature, take this code: + +```elixir +assert %{"status" => 200, "body" => %{"key" => "foo"}} = json_payload +``` + +Now imagine that `json_payload` is a large JSON blob and the `"key"` inside the `"body"` did not have value of `"foo"`. In previous Elixir versions, if the assertion failed, Elixir would print the right side and let you up to your own devices to figure out what went wrong. In Elixir v1.10, we diff the data structure against the pattern so you can see exactly which parts of the data matched the pattern and which ones did not. Note ExUnit already performed diffing when comparing data types, this new version adds diffing when matching data agaainst a pattern. + +Finally, this release also adds two new guards, `is_struct/1` and `is_map_key/2`, thanks to the strict requirement on Erlang/OTP 21+. + +To learn what else is new, you can read the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.10.0). + +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. + +Have fun! From 536f1c4539a214de833ff9129f63c27c8990a2b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 27 Jan 2020 10:20:10 +0100 Subject: [PATCH 1125/1761] Add release info --- _data/elixir-versions.yml | 8 +++++++- elixir.csv | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index f2b359ee2..c889e8a83 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,4 +1,10 @@ -stable: v1_9 +stable: v1_10 + +v1_10: + name: v1.10 + minimum_otp: 21.0 + version: 1.10.0 + docs_zip: true v1_9: name: v1.9 diff --git a/elixir.csv b/elixir.csv index 17c37332f..f54f960bb 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.10.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0-rc.0/Precompiled.zip,prerelease,1,ed80d00c3d805da50787f8dd9d0d02acf6ae5668,b878d802c9ad9d9d8ee2493c653d4e5335f68fce2c237e0e5c13c2af0c8855eb6219842b480b794fc3076606a4832c90932bed8262ce4c0164f5af6756f26997 +1.10.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 1.9.4,https://github.com/elixir-lang/elixir/releases/download/v1.9.4/Precompiled.zip,release,1,ec4c7d15b28373b8fd7025b4502b7f2036229f20,f86170bde3b3ad3d1365f34f77ab9cb424c4638a4067fd7d509787c03dea0d40061ef1a2c8d1d9e42bec65b8cda8c1bf32801e4712531eeaef50e0cd53ac2369 1.9.3,https://github.com/elixir-lang/elixir/releases/download/v1.9.3/Precompiled.zip,release,1,8bcf1cca9a946db02af570a78b007e9424cd933f,e5252721b5a08f48c5988027cb765f9317e7e271e52f3f4a3ebcb77581eb584c9aa0cdb216e12a3d626f725964fde2af84ce2241ac8b04d034dd461206c17f54 1.9.2,https://github.com/elixir-lang/elixir/releases/download/v1.9.2/Precompiled.zip,release,1,d638cbc2a30a3ffd9b842e19c2cad62e9c3f303b,21f5fd086ec68b180857a839fdf0edfb594f33c85ce3fd9bdf5ec9122ee5513244bb3dd2d6c20ba3f162705cf26e89a79033e7938c370c6b7393bfe5aff288c9 From 86e6960baff4c70c14b2357269c4b7c4a7ea720b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=81=C4=99picki?= Date: Mon, 27 Jan 2020 10:56:51 +0100 Subject: [PATCH 1126/1761] Fix typo in v1.10 release post (#1359) --- _posts/2020-01-27-elixir-v1-10-0-released.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2020-01-27-elixir-v1-10-0-released.markdown b/_posts/2020-01-27-elixir-v1-10-0-released.markdown index 7c7d40ea7..409be7bb6 100644 --- a/_posts/2020-01-27-elixir-v1-10-0-released.markdown +++ b/_posts/2020-01-27-elixir-v1-10-0-released.markdown @@ -159,7 +159,7 @@ There are many improvements related to Elixir's AST in this release too. [`Code. assert %{"status" => 200, "body" => %{"key" => "foo"}} = json_payload ``` -Now imagine that `json_payload` is a large JSON blob and the `"key"` inside the `"body"` did not have value of `"foo"`. In previous Elixir versions, if the assertion failed, Elixir would print the right side and let you up to your own devices to figure out what went wrong. In Elixir v1.10, we diff the data structure against the pattern so you can see exactly which parts of the data matched the pattern and which ones did not. Note ExUnit already performed diffing when comparing data types, this new version adds diffing when matching data agaainst a pattern. +Now imagine that `json_payload` is a large JSON blob and the `"key"` inside the `"body"` did not have value of `"foo"`. In previous Elixir versions, if the assertion failed, Elixir would print the right side and let you up to your own devices to figure out what went wrong. In Elixir v1.10, we diff the data structure against the pattern so you can see exactly which parts of the data matched the pattern and which ones did not. Note ExUnit already performed diffing when comparing data types, this new version adds diffing when matching data against a pattern. Finally, this release also adds two new guards, `is_struct/1` and `is_map_key/2`, thanks to the strict requirement on Erlang/OTP 21+. From 6126d50784f60a28254c22db5548ef057479399c Mon Sep 17 00:00:00 2001 From: Damian Senn Date: Mon, 27 Jan 2020 14:03:45 +0100 Subject: [PATCH 1127/1761] Fix typo in 1.10 release post (#1360) Fixes a tiny typo: environemnt -> environment --- _posts/2020-01-27-elixir-v1-10-0-released.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2020-01-27-elixir-v1-10-0-released.markdown b/_posts/2020-01-27-elixir-v1-10-0-released.markdown index 409be7bb6..2f7fa303f 100644 --- a/_posts/2020-01-27-elixir-v1-10-0-released.markdown +++ b/_posts/2020-01-27-elixir-v1-10-0-released.markdown @@ -116,7 +116,7 @@ end While this is the preferred approach, there are still two scenarios we need to address: - 1. Not everyone may be aware of this pitfall, so they will mistakenly read the application environemnt at compile-time, until they are bitten by this behaviour + 1. Not everyone may be aware of this pitfall, so they will mistakenly read the application environment at compile-time, until they are bitten by this behaviour 2. In rare occasions, you trully need to read the application environment at compile-time, and you want to be warned when you try to configure at runtime something that is valid only at compilation time From fab2a02bb26779da4643400ea6d6d9e63e9b4635 Mon Sep 17 00:00:00 2001 From: Martin Gausby Date: Mon, 3 Feb 2020 11:29:53 +0000 Subject: [PATCH 1128/1761] Update the URI to the ElixirConf EU logo (#1362) The image file for the ElixirConf EU logo in the upcoming conferences section had gone awol. I've updated the uri to one that will hopefully stay up *forever*! --- _includes/conferences.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/conferences.html b/_includes/conferences.html index 3993c1f26..94154ce65 100644 --- a/_includes/conferences.html +++ b/_includes/conferences.html @@ -7,7 +7,7 @@

Upcoming conferences

- ElixirConf EU 2020
+ ElixirConf EU 2020
Warsaw, Poland | Conference 29–30 April | Training 28 April
From 797d1d06e29f1e94ce5c5352e717b62740bd7715 Mon Sep 17 00:00:00 2001 From: Steve Johnson Date: Wed, 5 Feb 2020 17:48:56 -0600 Subject: [PATCH 1129/1761] Fix typo in supervisor-and-application.markdown (#1363) --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index ccc8758a8..102f1affa 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -19,7 +19,7 @@ If you have prior programming experience, you may be wondering: "could we just g Therefore, an Elixir developer prefers to "let it crash" or "fail fast". And one of the most common ways we can recover from a failure is by restarting whatever part of the system crashed. -For example, imagine your computer, router, printer, or whatever device is not working properly. How do you often fix it by restarting it? Once we restart the device, we reset the device back to its initial state, which is well-tested and guaranteed to work. In Elixir, we apply this same approach to software: whenever a process crashes, we start a new process to perform the same job as the crashed process. +For example, imagine your computer, router, printer, or whatever device is not working properly. How often do you fix it by restarting it? Once we restart the device, we reset the device back to its initial state, which is well-tested and guaranteed to work. In Elixir, we apply this same approach to software: whenever a process crashes, we start a new process to perform the same job as the crashed process. In Elixir, this is done by a Supervisor. A Supervisor is a process that supervises other processes and restarts them whenever they crash. To do so, Supervisors manage the whole life-cycle of any supervised processes, including startup and shutdown. From 6a2807f281d1361fdb9c4011f8979ffb8f5aa2a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 10 Feb 2020 12:55:47 +0100 Subject: [PATCH 1130/1761] Release v1.10.1 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index c889e8a83..67fd0b80e 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_10 v1_10: name: v1.10 minimum_otp: 21.0 - version: 1.10.0 + version: 1.10.1 docs_zip: true v1_9: diff --git a/elixir.csv b/elixir.csv index f54f960bb..cb2db9ef0 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.10.1,https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d 1.10.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 1.9.4,https://github.com/elixir-lang/elixir/releases/download/v1.9.4/Precompiled.zip,release,1,ec4c7d15b28373b8fd7025b4502b7f2036229f20,f86170bde3b3ad3d1365f34f77ab9cb424c4638a4067fd7d509787c03dea0d40061ef1a2c8d1d9e42bec65b8cda8c1bf32801e4712531eeaef50e0cd53ac2369 1.9.3,https://github.com/elixir-lang/elixir/releases/download/v1.9.3/Precompiled.zip,release,1,8bcf1cca9a946db02af570a78b007e9424cd933f,e5252721b5a08f48c5988027cb765f9317e7e271e52f3f4a3ebcb77581eb584c9aa0cdb216e12a3d626f725964fde2af84ce2241ac8b04d034dd461206c17f54 From 74bf17d08d529670977ddfc36ed58000af3caa91 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Mon, 10 Feb 2020 18:04:38 -0500 Subject: [PATCH 1131/1761] Fix a run-on sentence in Supervisor/Application guide (#1364) --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 102f1affa..1c5c0b324 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -247,7 +247,7 @@ end > Please note that by doing this, we are breaking the boilerplate test case which tested the `hello` function in `KV`. You can simply remove that test case. -When we `use Application`, we may define a couple of functions, similar to when we used `Supervisor` or `GenServer`. This time we only had to define a `start/2` function. The `Application` behaviour also has a `stop/1` callback, but it is rarely used in practice, you can check the documentation for more information. +When we `use Application`, we may define a couple of functions, similar to when we used `Supervisor` or `GenServer`. This time we only had to define a `start/2` function. The `Application` behaviour also has a `stop/1` callback, but it is rarely used in practice. You can check the documentation for more information. Now that you have defined an application callback which starts our supervisor, we expect the `KV.Registry` process to be up and running as soon we start `iex -S mix`. Let's give it another try: From 7097c341b191878209a3edf8a100761f41fe3e23 Mon Sep 17 00:00:00 2001 From: Everett Griffiths Date: Mon, 10 Feb 2020 17:48:35 -0800 Subject: [PATCH 1132/1761] Update protocols.markdown Includes an overview with an explanation of the problem. This is more or less the type of explanation that I've given fellow co-workers who have not followed the existing docs. --- getting-started/protocols.markdown | 50 +++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 9c225c955..e17dc5d33 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -7,7 +7,55 @@ title: Protocols {% include toc.html %} -Protocols are a mechanism to achieve polymorphism in Elixir. Dispatching on a protocol is available to any data type as long as it implements the protocol. Let's see an example. +## Overview + +Protocols are a mechanism to achieve polymorphism in Elixir when you want behavior to vary depending on the data type. We are already familiar with one way of solving this type of problem: via pattern matching and guard clauses. Consider a simple utility module that would tell us the type of input variable: + +```elixir +defmodule Utility do + def type(value) when is_binary(value), do: "string" + def type(value) when is_integer(value), do: "integer" + # ... other implementations ... +end +``` + +If the use of this module were confined to your own project, you would be able to keep defining new `type/1` functions for each new data type, but this code could be problematic if it were shared as a dependency by multiple apps because there would be no easy way to extend its functionality. + +This is where protocols can help us: protocols allow us to extend the original behavior for as many data types as we need to support because **dispatching on a protocol is available to any data type that has implemented the protocol**. + +Here's how we could write the same `Utility.type/1` functionality as a protocol: + +```elixir +defprotocol Utilty do + @spec type(t) :: String.t() + def type(value) +end + +defimpl Utility, for: BitString do + def type(_value), do: "string" +end + +defimpl Utility, for: Integer do + def mask(_value), do: "integer" +end +``` + +We define the protocol using `defprotocol` -- its functions and specs may look similar to interfaces or abstract base classes in other languages. We can add as many implementations as we like using `defimpl`. The output is exactly the same as if we had a single module with multiple functions: + +```iex +iex> Utility.type("foo") +"string" +iex> Utility.type(123) +"integer" +``` + +With protocols, however, we are no longer stuck having to continuously modify the same module to support more and more data types because Elixir will dispatch the execution to the appriate implementation based on the data type. Functions defined in a protocol may have more than one input, but the **dispatching will always be based on the data type of the first input**. + +One of the most common protocols you may encounter is the [`String.Chars`](https://hexdocs.pm/elixir/String.Chars.html) protocol: implementing its `to_string/1` function for your custom structs will tell the Elixir kernel how to represent them as strings. + +## Example + +Now that you have seen an example of the type of problem protocols help solve and how they solve them, let's look at a more in-depth example. In Elixir, we have two idioms for checking how many items there are in a data structure: `length` and `size`. `length` means the information must be computed. For example, `length(list)` needs to traverse the whole list to calculate its length. On the other hand, `tuple_size(tuple)` and `byte_size(binary)` do not depend on the tuple and binary size as the size information is pre-computed in the data structure. From 759c685724e687e9125d70d24b47502c95781533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 13 Feb 2020 10:57:27 +0100 Subject: [PATCH 1133/1761] Update protocols.markdown --- getting-started/protocols.markdown | 37 ++++++------------------------ 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index e17dc5d33..340975f92 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -7,8 +7,6 @@ title: Protocols {% include toc.html %} -## Overview - Protocols are a mechanism to achieve polymorphism in Elixir when you want behavior to vary depending on the data type. We are already familiar with one way of solving this type of problem: via pattern matching and guard clauses. Consider a simple utility module that would tell us the type of input variable: ```elixir @@ -19,9 +17,9 @@ defmodule Utility do end ``` -If the use of this module were confined to your own project, you would be able to keep defining new `type/1` functions for each new data type, but this code could be problematic if it were shared as a dependency by multiple apps because there would be no easy way to extend its functionality. +If the use of this module were confined to your own project, you would be able to keep defining new `type/1` functions for each new data type. However, this code could be problematic if it were shared as a dependency by multiple apps because there would be no easy way to extend its functionality. -This is where protocols can help us: protocols allow us to extend the original behavior for as many data types as we need to support because **dispatching on a protocol is available to any data type that has implemented the protocol**. +This is where protocols can help us: protocols allow us to extend the original behavior for as many data types as we need. That's because **dispatching on a protocol is available to any data type that has implemented the protocol** and a protocol can be implemented by anyone, at any time. Here's how we could write the same `Utility.type/1` functionality as a protocol: @@ -40,7 +38,7 @@ defimpl Utility, for: Integer do end ``` -We define the protocol using `defprotocol` -- its functions and specs may look similar to interfaces or abstract base classes in other languages. We can add as many implementations as we like using `defimpl`. The output is exactly the same as if we had a single module with multiple functions: +We define the protocol using `defprotocol` - its functions and specs may look similar to interfaces or abstract base classes in other languages. We can add as many implementations as we like using `defimpl`. The output is exactly the same as if we had a single module with multiple functions: ```iex iex> Utility.type("foo") @@ -49,9 +47,9 @@ iex> Utility.type(123) "integer" ``` -With protocols, however, we are no longer stuck having to continuously modify the same module to support more and more data types because Elixir will dispatch the execution to the appriate implementation based on the data type. Functions defined in a protocol may have more than one input, but the **dispatching will always be based on the data type of the first input**. +With protocols, however, we are no longer stuck having to continuously modify the same module to support more and more data types. For example, we could get the `defimpl` calls above and spread them over multiple files and Elixir will dispatch the execution to the appropriate implementation based on the data type. Functions defined in a protocol may have more than one input, but the **dispatching will always be based on the data type of the first input**. -One of the most common protocols you may encounter is the [`String.Chars`](https://hexdocs.pm/elixir/String.Chars.html) protocol: implementing its `to_string/1` function for your custom structs will tell the Elixir kernel how to represent them as strings. +One of the most common protocols you may encounter is the [`String.Chars`](https://hexdocs.pm/elixir/String.Chars.html) protocol: implementing its `to_string/1` function for your custom structs will tell the Elixir kernel how to represent them as strings. We will explore all built-in protocols later. For now, let's implement our own. ## Example @@ -120,7 +118,6 @@ It's possible to implement protocols for all Elixir data types: * `Reference` * `Tuple` - ## Protocols and structs The power of Elixir's extensibility comes when protocols and structs are used together. @@ -216,6 +213,7 @@ iex> Enum.map [1, 2, 3], fn(x) -> x * 2 end iex> Enum.reduce 1..3, 0, fn(x, acc) -> x + acc end 6 ``` + Another useful example is the `String.Chars` protocol, which specifies how to convert a data structure with characters to a string. It's exposed via the `to_string` function: ```iex @@ -262,25 +260,4 @@ iex> inspect &(&1+2) "#Function<6.71889879/1 in :erl_eval.expr/5>" ``` -There are other protocols in Elixir but this covers the most common ones. - -## Protocol consolidation - -When working with Elixir projects, using the Mix build tool, you may see the output as follows: - -``` -Consolidated String.Chars -Consolidated Collectable -Consolidated List.Chars -Consolidated IEx.Info -Consolidated Enumerable -Consolidated Inspect -``` - -Those are all protocols that ship with Elixir and they are being consolidated. Because a protocol can dispatch to any data type, the protocol must check on every call if an implementation for the given type exists. This may be expensive. - -However, after our project is compiled using a tool like Mix, we know all modules that have been defined, including protocols and their implementations. This way, the protocol can be consolidated into a very simple and fast dispatch module. - -From Elixir v1.2, protocol consolidation happens automatically for all projects. We will build our own project in the ***Mix and OTP guide***. - -You can learn more about protocols and implementations in the [`Protocol`](https://hexdocs.pm/elixir/Protocol.html) module. +There are other protocols in Elixir but this covers the most common ones. You can learn more about protocols and implementations in the [`Protocol`](https://hexdocs.pm/elixir/Protocol.html) module. From e4328bc73c158b800e43bbe602fbb71fb4764bea Mon Sep 17 00:00:00 2001 From: Everett Griffiths Date: Thu, 13 Feb 2020 05:08:26 -0800 Subject: [PATCH 1134/1761] Update protocols.markdown (#1366) Fix wrong function name. --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 340975f92..8a26f52c6 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -34,7 +34,7 @@ defimpl Utility, for: BitString do end defimpl Utility, for: Integer do - def mask(_value), do: "integer" + def type(_value), do: "integer" end ``` From be1471be68eaca263d781a0cec110d13723df2e1 Mon Sep 17 00:00:00 2001 From: Ignas Maslinskas <5737899+Hoffs@users.noreply.github.com> Date: Sun, 16 Feb 2020 14:31:13 +0200 Subject: [PATCH 1135/1761] Fix inconsistency regarding default port env var (#1367) Very similar to #1172 which missed last rewrite part that still raised error if env variable was not present. --- getting-started/mix-otp/task-and-gen-tcp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 13869dd53..4c550e9c7 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -297,7 +297,7 @@ We could fix this by defining our own module that calls `use Task, restart: :per ```elixir def start(_type, _args) do - port = String.to_integer(System.get_env("PORT") || raise "missing $PORT environment variable") + port = String.to_integer(System.get_env("PORT") || "4040") children = [ {Task.Supervisor, name: KVServer.TaskSupervisor}, From 063d5d250d1cdc20c54e391aa5a724d425f60876 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Sun, 16 Feb 2020 11:36:44 -0500 Subject: [PATCH 1136/1761] Correct the arity of 'call' in the ETS guide (#1368) --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 8d3eb9019..5aacca096 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -166,7 +166,7 @@ How can this line fail if we just created the bucket in the previous line? The reason those failures are happening is because, for didactic purposes, we have made two mistakes: 1. We are prematurely optimizing (by adding this cache layer) - 2. We are using `cast/2` (while we should be using `call/3`) + 2. We are using `cast/2` (while we should be using `call/2`) ## Race conditions? From dd5aa2d438d43a99527963a0f6ec22833cdccc6e Mon Sep 17 00:00:00 2001 From: joehua87 Date: Mon, 17 Feb 2020 20:49:42 +0700 Subject: [PATCH 1137/1761] Fix typo in protocols.markdown (#1369) --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 8a26f52c6..ff33aa98e 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -24,7 +24,7 @@ This is where protocols can help us: protocols allow us to extend the original b Here's how we could write the same `Utility.type/1` functionality as a protocol: ```elixir -defprotocol Utilty do +defprotocol Utility do @spec type(t) :: String.t() def type(value) end From 69db9682a66c4e8ea396bf1fdf3800981b90a9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 18 Feb 2020 10:40:54 +0100 Subject: [PATCH 1138/1761] Tidy up runtime config docs, closes #1370 --- getting-started/mix-otp/config-and-releases.markdown | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index 0b7f694f0..ac968b6cb 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -347,22 +347,14 @@ Once again, uncomment the last two lines by removing the leading `rem ` to enabl Another common need in releases is to compute configuration when the release runs, not when the release is assembled. The `config/config.exs` file we defined at the beginning of this chapter runs on every Mix command, when we build, test and run our application. This is great, because it provides a unified configuration for dev, test, and prod. -However, your production environments may have specific needs. For example, right now we are hardcoding the routing table, but in production, you may need to read the routing table from disk, from another service, or even reach out to your orchestration tool, like Kubernetes. This can be done by adding a `config/releases.exs`. As the name says, this file runs every time the release starts. For instance, you could do: - -```elixir -import Config -{table, _} = Code.eval_file("routing_table_from_disk.exs") -config :kv, :routing_table, table -``` - -Or perhaps you want to make the `KVServer` port configurable, and the value for the port is only given at runtime: +However, your production environments may have specific needs. For example, right now we are hardcoding the routing table, but in production, you may need to read the routing table from disk, from another service, or even reach out to your orchestration tool, like Kubernetes. This can be done by adding a `config/releases.exs`. As the name says, this file runs every time the release starts. For instance, you could make the `KVServer` port configurable, and the value for the port is only given at runtime: ```elixir import Config config :kv_server, :port, System.fetch_env!("PORT") ``` -`config/releases.exs` files work very similar to regular `config/config.exs` files, but they may have some restrictions. You can [read the documentation](https://hexdocs.pm/mix/1.9.0-rc.0/Mix.Tasks.Release.html#module-runtime-configuration) for more information. +`config/releases.exs` files work very similar to regular `config/config.exs` files, but they may have some restrictions. You can [read the documentation](https://hexdocs.pm/mix/1.9.0/Mix.Tasks.Release.html#module-runtime-configuration) for more information. ## Summing up From c5dce07d338890007e2b45a81db3a25240d08cf4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2020 08:52:17 +0100 Subject: [PATCH 1139/1761] Bump nokogiri from 1.10.4 to 1.10.8 (#1371) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.4 to 1.10.8. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.4...v1.10.8) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 825505a96..04495537f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -206,7 +206,7 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.11.3) multipart-post (2.1.1) - nokogiri (1.10.4) + nokogiri (1.10.8) mini_portile2 (~> 2.4.0) octokit (4.14.0) sawyer (~> 0.8.0, >= 0.5.3) From 9341d29f88c7f6766a9b801e94512977c148f21f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 26 Feb 2020 13:03:27 +0100 Subject: [PATCH 1140/1761] Release v1.10.2 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 67fd0b80e..0ef7d0abd 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_10 v1_10: name: v1.10 minimum_otp: 21.0 - version: 1.10.1 + version: 1.10.2 docs_zip: true v1_9: diff --git a/elixir.csv b/elixir.csv index cb2db9ef0..0023ee3c5 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.10.2,https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9 1.10.1,https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d 1.10.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 1.9.4,https://github.com/elixir-lang/elixir/releases/download/v1.9.4/Precompiled.zip,release,1,ec4c7d15b28373b8fd7025b4502b7f2036229f20,f86170bde3b3ad3d1365f34f77ab9cb424c4638a4067fd7d509787c03dea0d40061ef1a2c8d1d9e42bec65b8cda8c1bf32801e4712531eeaef50e0cd53ac2369 From 4a9369570953a1b3782541a474e0cce8e779f1b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 28 Feb 2020 09:56:43 +0100 Subject: [PATCH 1141/1761] Clarify File.stream builds on top of resource Closes #1372. --- getting-started/enumerables-and-streams.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 41b76ce2e..7c422fba4 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -109,7 +109,7 @@ iex> Enum.take(stream, 3) ["h", "e", "ł"] ``` -Another interesting function is `Stream.resource/3` which can be used to wrap around resources, guaranteeing they are opened right before enumeration and closed afterwards, even in the case of failures. For example, we can use it to stream a file: +Another interesting function is `Stream.resource/3` which can be used to wrap around resources, guaranteeing they are opened right before enumeration and closed afterwards, even in the case of failures. For example, `File.stream!/1` builds on top of `Stream.resource/3` to stream files: ```iex iex> stream = File.stream!("path/to/file") From 7bbcfeffa2c4fb9b088216bee8e9c319c4f04e00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 29 Feb 2020 23:51:54 +0100 Subject: [PATCH 1142/1761] Better structure erlang installation docs --- install.markdown | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/install.markdown b/install.markdown index c6abb0f05..8c3cb25cf 100644 --- a/install.markdown +++ b/install.markdown @@ -90,7 +90,7 @@ If you are familiar with Docker you can use the official Docker image to get sta * Enter bash within container with installed `elixir` * Run: `docker run -it --rm elixir bash` -Those distributions will likely install Erlang automatically for you too. In case they don't, check the [Installing Erlang](/install.html#installing-erlang) section below. +Those distributions will likely install Erlang automatically for you too. In case they don't, check the [Installing Erlang](#installing-erlang) section below. If you need to programmatically fetch the list of Elixir precompiled packages alongside their checksums, access [https://elixir-lang.org/elixir.csv](https://elixir-lang.org/elixir.csv). @@ -133,9 +133,11 @@ If the tests pass, you are ready to go. Otherwise, feel free to open an issue [i ## Installing Erlang -The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or later, which can be easily installed with [Precompiled packages](https://www.erlang-solutions.com/resources/download.html). In case you want to install it directly from source, it can be found on [the Erlang website](http://www.erlang.org/download.html) or by following the excellent tutorial available in the [Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/). +The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or later. When installing Elixir, Erlang is generally installed automatically for you. However, if you want to install Erlang manually, you might check: -For Windows developers, we recommend the precompiled packages. Those on a Unix platform can probably get Erlang installed via one of the many package distribution tools. + * [Source code distribution and Windows installers from Erlang's official website](http://www.erlang.org/download.html) + * [Precompiled packages for some Unix-like installations](https://www.erlang-solutions.com/resources/download.html) + * [A general list of installatino methods from the Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/). After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information similar to: From 19b40d0f0bdf8572e817662d14682eb3dd1b665b Mon Sep 17 00:00:00 2001 From: Everett Griffiths Date: Wed, 4 Mar 2020 00:54:25 -0800 Subject: [PATCH 1143/1761] Update basic-types.markdown (#1373) --- getting-started/basic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 0b22e7e3c..39a444c35 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -198,7 +198,7 @@ world Notice that the `IO.puts/1` function returns the atom `:ok` after printing. -Strings in Elixir are represented internally by binaries which are sequences of bytes: +Strings in Elixir are represented internally by contiguous sequences of bytes known as binaries: ```iex iex> is_binary("hellö") From f7c1cce6732ac7b7f2a4ae3e8ff5f8c8c8f91cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 4 Mar 2020 20:29:57 +0100 Subject: [PATCH 1144/1761] Update binaries-strings-and-char-lists.markdown (#1374) This represents a substantial rewrite of this page that seeks to address some of the frequent misunderstandings that arise when discussing strings and binaries. Many of the explanations were initially given in this forum post: https://elixirforum.com/t/where-did-the-name-binaries-come-from-and-how-does-this-relate-to-base2/29490/16 -- many thanks to the wise input shared by contributors there. This change: - normalizes the spelling of "code point" (per Wikipedia), using a space (and not "codepoint") - organizes the explanations to sensibly move from Unicode, to code points, to encodings, to bitstrings, to binaries, to strings (in that order) - adds explanations and examples of the `::size(n)`, `::binary-size(n)` and `::utf8` modifiers - adds more examples - provides an explanation as to why Elixir refers to strings as "binaries" --- .../binaries-strings-and-char-lists.markdown | 220 +++++++++++------- 1 file changed, 139 insertions(+), 81 deletions(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 6e60347ee..97f7e0c1d 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -7,7 +7,7 @@ title: Binaries, strings, and charlists {% include toc.html %} -In "Basic types", we learned about strings and used the `is_binary/1` function for checks: +In "Basic types", we learned a little bit about strings and we used the `is_binary/1` function for checks: ```iex iex> string = "hello" @@ -16,132 +16,142 @@ iex> is_binary(string) true ``` -In this chapter, we will understand what binaries are, how they associate with strings, and what a single-quoted value, `'like this'`, means in Elixir. +In this chapter, we will gain clarity on what exactly binaries are, how they relate to strings, and what single-quoted values, `'like this'`, mean in Elixir. Although strings are one of the most common data types in computer languages, they are subtly complex and are often misunderstood. To understand strings in Elixir, we have to educate ourselves about [Unicode](https://en.wikipedia.org/wiki/Unicode) and character encodings, specifically the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) encoding. -## UTF-8 and Unicode +## Unicode and Code Points -A string is a UTF-8 encoded binary. In order to understand exactly what we mean by that, we need to understand the difference between bytes and code points. +In order to facilitate meaningful communication between computers across multiple languages, a standard is required so that the ones and zeros on one machine mean the same thing when they are transmitted to another. The [Unicode Standard](https://unicode.org/standard/standard.html) acts as an official registry of virtually all the characters we know: this includes characters from classical and historical texts, emoji, and formatting and control characters as well. -The Unicode standard assigns code points to many of the characters we know. For example, the letter `a` has code point `97` while the letter `ł` has code point `322`. When writing the string `"hełło"` to disk, we need to convert this sequence of characters to bytes. If we adopted a rule that said one byte represents one code point, we wouldn't be able to write `"hełło"`, because it uses the code point `322` for `ł`, and one byte can only represent a number from `0` to `255`. But of course, given you can actually read `"hełło"` on your screen, it must be represented *somehow*. That's where encodings come in. +Unicode organizes all of the characters in its repertoire into code charts, and each character is given a unique numerical index. This numerical index is known as a [Code Point](https://en.wikipedia.org/wiki/Code_point). -When representing code points in bytes, we need to encode them somehow. Elixir chose the UTF-8 encoding as its main and default encoding. When we say a string is a UTF-8 encoded binary, we mean a string is a bunch of bytes organized in a way to represent certain code points, as specified by the UTF-8 encoding. +In Elixir you can use a `?` in front of a character to reveal its code point: -Since we have characters like `ł` assigned to the code point `322`, we actually need more than one byte to represent them. That's why we see a difference when we calculate the `byte_size/1` of a string compared to its `String.length/1`: +```iex +iex> ?a +97 +iex> ?ł +322 +``` + +Note that most Unicode code charts will refer to a code point by its hexadecimal representation, e.g. `97` translates to `0061` in hex, and we can represent any Unicode character in an Elixir string by using the `\u` notation and the hex representation of its code point number: + +```iex +iex> "\u0061" === "a" +true +``` + +The hex representation will also help you look up information about a code point, e.g. [https://codepoints.net/U+0061](https://codepoints.net/U+0061) has a data sheet all about the lower case `a`, a.k.a. code point 97. + +## UTF-8 and Encodings + +Now that we understand what the Unicode standard is and what code points are, we can finally talk about encodings. Whereas the code point is **what** we store, an encoding deals with **how** we store it. For example, a single byte would allow us to represent 256 different codepoints. However, Unicode has many more code points than 256, so we need a mechanism to convert the code point into bytes so they can be stored in memory, written to disk, etc. + +Elixir uses UTF-8 to encode its strings, which means that code points are encoded as a series of bytes. UTF-8 is a **variable width** character encoding capable of encoding all valid Unicode code points using one to four bytes. + +Because UTF-8 is a variable width encoding, the number of characters (i.e. code points) and the number of bytes in a string may not be 1:1. Consider the following: ```iex iex> string = "hełło" "hełło" -iex> byte_size(string) -7 iex> String.length(string) 5 +iex> byte_size(string) +7 ``` -There, `byte_size/1` counts the underlying raw bytes, and `String.length/1` counts characters. +`String.length/1` counts characters, but `byte_size/1` reveals the number of underlying raw bytes needed to store the string when using UTF-8 encoding. UTF-8 requires one byte to represent the characters `h`, `e`, and `o`, but two bytes to represent `ł`. Some of the genius of UTF-8 is how it reserves certain bits to declare how many bytes are needed to represent a code point. > Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering `iex` (`iex.bat`). -UTF-8 requires one byte to represent the characters `h`, `e`, and `o`, but two bytes to represent `ł`. In Elixir, you can get a character's code point by using `?`: +A common trick in Elixir when you want to see the inner binary representation of a string is to concatenate the null byte `<<0>>` to it: ```iex -iex> ?a -97 -iex> ?ł -322 +iex> "hełło" <> <<0>> +<<104, 101, 197, 130, 197, 130, 111, 0>> ``` -These can be used anywhere you want to refer to a characters codepoint. - -You can also use the functions in [the `String` module](https://hexdocs.pm/elixir/String.html) to split a string in its individual characters, each one as a string of length 1: +Alternatively, you can view a string's binary representation by using [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2): ```iex -iex> String.codepoints("hełło") -["h", "e", "ł", "ł", "o"] +iex> IO.inspect("hełło", binaries: :as_binaries) +<<104, 101, 197, 130, 197, 130, 111>> ``` -You will see that Elixir has excellent support for working with strings. It also supports many of the Unicode operations. In fact, Elixir passes all the tests showcased in the article ["The string type is broken"](http://mortoray.com/2013/11/27/the-string-type-is-broken/). - -However, strings are just part of the story. If a string is a binary, and we have used the `is_binary/1` function, Elixir must have an underlying type empowering strings. And it does! Let's talk about binaries. +We are getting a little bit ahead of ourselves. Let's talk about bitstrings to learn about what exactly the `<<>>` constructor means. -## Binaries (and bitstrings) +## Bitstrings -In Elixir, you can define a binary using `<<>>`: +Although we have covered code points and UTF-8 encoding, we still need to go a bit deeper into how exactly we store the encoded bytes, and this is where we introduce the **bitstring**. A bitstring is a fundamental data type in Elixir, denoted with the `<<>>` syntax. **A bitstring is a contiguous sequence of bits in memory.** -```iex -iex> <<0, 1, 2, 3>> -<<0, 1, 2, 3>> -iex> byte_size(<<0, 1, 2, 3>>) -4 -``` +A complete reference about the binary / bitstring constructor `<<>>` can be found [in the Elixir documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1). -A binary is a sequence of bytes. Those bytes can be organized in any way, even in a sequence that does not make them a valid string: +By default, 8 bits (i.e. 1 byte) is used to store each number in a bitstring, but you can manually specify the number of bits via a `::n` modifier to denote the size in `n` bits, or you can use the more verbose declaration `::size(n)`: ```iex -iex> String.valid?(<<239, 191, 19>>) -false +iex> <<42>> === <<42::8>> +true +iex> <<3::4>> +<<3::size(4)>> ``` -The string concatenation operation is actually a binary concatenation operator: +For example, the decimal number `3` when represented with 4 bits in base 2 would be `0011`, which is equivalent to the values `0`, `0`, `1`, `1`, each stored using 1 bit: ```iex -iex> <<0, 1>> <> <<2, 3>> -<<0, 1, 2, 3>> +iex> <<0::1, 0::1, 1::1, 1::1>> == <<3::4>> +true ``` -A common trick in Elixir is to concatenate the null byte `<<0>>` to a string to see its inner binary representation: +Any value that exceeds what can be stored by the number of bits provisioned is truncated: ```iex -iex> "hełło" <> <<0>> -<<104, 101, 197, 130, 197, 130, 111, 0>> +iex> <<1>> === <<257>> +true ``` +Here, 257 in base 2 would be represented as `100000001`, but since we have reserved only 8 bits for its representation (by default), the left-most bit is ignored and the value becomes truncated to `00000001`, or simply `1` in decimal. -Alternatively, you can view a string's binary representation by using [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2): +## Binaries + +**A binary is a bitstring where the number of bits is divisible by 8.** That means that every binary is a bitstring, but not every bitstring is a binary. We can use the `is_bitstring/1` and `is_binary/1` functions to demonstrate this. ```iex -iex> IO.inspect("hełło", binaries: :as_binaries) -<<104, 101, 197, 130, 197, 130, 111>> +iex> is_bitstring(<<3::4>>) +true +iex> is_binary(<<3::4>>) +false +iex> is_bitstring(<<0, 255, 42>>) +true +iex> is_binary(<<0, 255, 42>>) +true +iex> is_binary(<<42::16>>) +true ``` -Each number given to a binary is meant to represent a byte and therefore must go up to 255. Binaries allow modifiers to be given to store numbers bigger than 255 or to convert a code point to its UTF-8 representation: +**A string is a UTF-8 encoded binary**, where the code point for each character is encoded using 1 to 4 bytes. Thus every string is a binary, but due to the rules in the UTF-8 encoding standard, not every binary is a valid string. ```iex -iex> <<255>> -<<255>> -iex> <<256>> # truncated -<<0>> -iex> <<256 :: size(16)>> # use 16 bits (2 bytes) to store the number -<<1, 0>> -iex> <<256 :: utf8>> # the number is a code point -"Ā" -iex> <<256 :: utf8, 0>> -<<196, 128, 0>> +iex> is_binary(<<239, 191, 19>>) +true +iex> String.valid?(<<239, 191, 19>>) +false ``` -If a byte has 8 bits, what happens if we pass a size of 1 bit? +When you use double-quotes, you are telling Elixir to store the UTF-8 encoded code points in a binary. ```iex -iex> <<1 :: size(1)>> -<<1::size(1)>> -iex> <<2 :: size(1)>> # truncated -<<0::size(1)>> -iex> is_binary(<<1 :: size(1)>>) -false -iex> is_bitstring(<<1 :: size(1)>>) +iex> <<99, 97, 116>> === "cat" true -iex> bit_size(<<1 :: size(1)>>) -1 ``` -The value is no longer a binary, but a bitstring -- a bunch of bits! So a binary is a bitstring where the number of bits is divisible by 8. +The string concatenation operator `<>` is actually a binary concatenation operator: ```iex -iex> is_binary(<<1 :: size(16)>>) -true -iex> is_binary(<<1 :: size(15)>>) -false +iex> <<0, 1>> <> <<2, 3>> +<<0, 1, 2, 3>> +iex> "a" <> "ha" +"aha" ``` -We can also pattern match on binaries / bitstrings: +We can pattern match on binaries / bitstrings: ```iex iex> <<0, 1, x>> = <<0, 1, 2>> @@ -152,7 +162,7 @@ iex> <<0, 1, x>> = <<0, 1, 2, 3>> ** (MatchError) no match of right hand side value: <<0, 1, 2, 3>> ``` -Note each entry in the binary pattern is expected to match exactly 8 bits. If we want to match on a binary of unknown size, it is possible by using the binary modifier at the end of the pattern: +Note that each entry in the binary pattern is expected to match exactly 8 bits. If we want to match on a binary of unknown size, we can use the `binary` modifier at the end of the pattern: ```iex iex> <<0, 1, x :: binary>> = <<0, 1, 2, 3>> @@ -161,20 +171,40 @@ iex> x <<2, 3>> ``` -Similar results can be achieved with the string concatenation operator `<>`: +There are a couple other modifiers that can be useful when doing pattern matches on binaries. The `binary-size(n)` modifier will match `n` characters in a binary: ```iex -iex> "he" <> rest = "hello" -"hello" +iex> <> = "banana" +"banana" +iex> x +"ba" iex> rest -"llo" +"nana" ``` -A complete reference about the binary / bitstring constructor `<<>>` can be found [in the Elixir documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1). This concludes our tour of bitstrings, binaries and strings. A string is a UTF-8 encoded binary and a binary is a bitstring where the number of bits is divisible by 8. Although this shows the flexibility Elixir provides for working with bits and bytes, 99% of the time you will be working with binaries and using the `is_binary/1` and `byte_size/1` functions. +You can use the `utf8` modifier to match on a character's integer code point: + +```iex +iex> <> = "über" +"über" +iex> x +252 +iex> rest +"ber" +``` + +You will see that Elixir has excellent support for working with strings. It also supports many of the Unicode operations. In fact, Elixir passes all the tests showcased in the article ["The string type is broken"](http://mortoray.com/2013/11/27/the-string-type-is-broken/). + +Although Elixir provides a lot of flexibility for working with bits and bytes, 99% of the time you will be working with binaries and using the `is_binary/1` and `byte_size/1` functions. + ## Charlists -A charlist is nothing more than a list of code points. Char lists may be created with single-quoted literals: +Our tour of our bitstrings, binaries, and strings is nearly complete, but we have one more data type to explain: the charlist. + +**A charlist is a list of integers where all the integers are valid code points.** In practice, you will not come across them often, except perhaps when interfacing with Erlang, in particular when using older libraries that do not accept binaries as arguments. + +Whereas strings (i.e. binaries) are created using double-quotes, charlists are created with single-quoted literals: ```iex iex> 'hełło' @@ -187,9 +217,31 @@ iex> List.first('hello') 104 ``` -You can see that, instead of containing bytes, a charlist contains the code points of the characters between single-quotes (note that by default IEx will only output code points if any of the integers is outside the ASCII range). So while double-quotes represent a string (i.e. a binary), single-quotes represent a charlist (i.e. a list). +You can see that instead of containing bytes, a charlist contains integer code points. By default, IEx will only output code points if any of the integers falls outside the ASCII range of 0 to 127. + +```iex +iex> 'hello' +'hello' +iex> 'hełło' +[104, 101, 322, 322, 111] +``` -In practice, charlists are used mostly when interfacing with Erlang, in particular old libraries that do not accept binaries as arguments. You can convert a charlist to a string and back by using the `to_string/1` and `to_charlist/1` functions: +If you wish to inspect the code points in a single-quoted literal, you can force this by passing the `charlists` option to `IO.inspect/2`: + +```iex +iex> IO.inspect('hello', charlists: :as_lists) +[104, 101, 108, 108, 111] +'hello' +``` + +Interpreting integers as codepoints may lead to some surprising behavior. For example, if you are storing a list of integers that happen to range between 0 and 127, by default IEx will interpret this as a charlist and it will display the corresponding ASCII characters. + +```iex +iex> heartbeats_per_minute = [99, 97, 116] +'cat' +``` + +You can convert a charlist to a string and back by using the `to_string/1` and `to_charlist/1` functions: ```iex iex> to_charlist "hełło" @@ -202,9 +254,9 @@ iex> to_string 1 "1" ``` -Note that those functions are polymorphic. They not only convert charlists to strings, but also integers to strings, atoms to strings, and so on. +Note that those functions are polymorphic: not only do they convert charlists to strings, they also operate on integers, atoms, and so on. -String (binary) concatenation uses the `<>` operator but charlists use the lists concatenation operator `++`: +String (binary) concatenation uses the `<>` operator but charlists, being lists, use the list concatenation operator `++`: ```iex iex> 'this ' <> 'fails' @@ -222,4 +274,10 @@ iex> "he" <> "llo" "hello" ``` +## Where did the name "binaries" come from? + +When your average computer-savvy person hears the word "binary", they think of ones and zeros, so why does Elixir refer to its strings as "binaries"? + +The short answer is that Elixir inherited the name "binaries" from Erlang. A more meaningful answer requires that we understand how Erlang historically stored its strings: not as contiguous bits in memory, but as _lists_ (see "Charlists" above), where each element contained a value and a pointer to the next item in the list. When a new data type was introduced, the bitstring, developers had to distinguish between variables stored as character lists and those stored as contiguous sequences of bits. Even though a computer always ends up storing data as ones and zeroes eventually, the name "binaries" was used to refer to strings stored as these contiguous sequence of bits, presumably because storing data in a way that exposes the underlying bits and their ones and zeros reminds one of "binary" in its original sense. + With binaries, strings, and charlists out of the way, it is time to talk about key-value data structures. From 5d037e5044b3b26c01097279f77fe6885fd9f6b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 5 Mar 2020 13:01:09 +0100 Subject: [PATCH 1145/1761] Reduce back and forth between binaries and strings --- .../binaries-strings-and-char-lists.markdown | 88 ++++++++++--------- 1 file changed, 48 insertions(+), 40 deletions(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 97f7e0c1d..9f9ff28e2 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -126,78 +126,92 @@ iex> is_binary(<<42::16>>) true ``` -**A string is a UTF-8 encoded binary**, where the code point for each character is encoded using 1 to 4 bytes. Thus every string is a binary, but due to the rules in the UTF-8 encoding standard, not every binary is a valid string. +We can pattern match on binaries / bitstrings: ```iex -iex> is_binary(<<239, 191, 19>>) -true -iex> String.valid?(<<239, 191, 19>>) -false +iex> <<0, 1, x>> = <<0, 1, 2>> +<<0, 1, 2>> +iex> x +2 +iex> <<0, 1, x>> = <<0, 1, 2, 3>> +** (MatchError) no match of right hand side value: <<0, 1, 2, 3>> ``` -When you use double-quotes, you are telling Elixir to store the UTF-8 encoded code points in a binary. +Note that each entry in the binary pattern is expected to match a single byte (exactly 8 bits). If we want to match on a binary of unknown size, we can use the `binary` modifier at the end of the pattern: ```iex -iex> <<99, 97, 116>> === "cat" -true +iex> <<0, 1, x :: binary>> = <<0, 1, 2, 3>> +<<0, 1, 2, 3>> +iex> x +<<2, 3>> ``` -The string concatenation operator `<>` is actually a binary concatenation operator: +There are a couple other modifiers that can be useful when doing pattern matches on binaries. The `binary-size(n)` modifier will match `n` bytes in a binary: ```iex -iex> <<0, 1>> <> <<2, 3>> +iex> <> = <<0, 1, 2, 3>> <<0, 1, 2, 3>> -iex> "a" <> "ha" -"aha" +iex> head +<<0, 1>> +iex> rest +<<2, 3>> ``` -We can pattern match on binaries / bitstrings: +**A string is a UTF-8 encoded binary**, where the code point for each character is encoded using 1 to 4 bytes. Thus every string is a binary, but due to the rules in the UTF-8 encoding standard, not every binary is a valid string. ```iex -iex> <<0, 1, x>> = <<0, 1, 2>> -<<0, 1, 2>> -iex> x -2 -iex> <<0, 1, x>> = <<0, 1, 2, 3>> -** (MatchError) no match of right hand side value: <<0, 1, 2, 3>> +iex> is_binary("hello") +true +iex> is_binary(<<239, 191, 19>>) +true +iex> String.valid?(<<239, 191, 19>>) +false ``` -Note that each entry in the binary pattern is expected to match exactly 8 bits. If we want to match on a binary of unknown size, we can use the `binary` modifier at the end of the pattern: +The string concatenation operator `<>` is actually a binary concatenation operator: ```iex -iex> <<0, 1, x :: binary>> = <<0, 1, 2, 3>> +iex> "a" <> "ha" +"aha" +iex> <<0, 1>> <> <<2, 3>> <<0, 1, 2, 3>> -iex> x -<<2, 3>> ``` -There are a couple other modifiers that can be useful when doing pattern matches on binaries. The `binary-size(n)` modifier will match `n` characters in a binary: +Given strings are binaries, we can also pattern match on strings: ```iex -iex> <> = "banana" +iex> <> = "banana" "banana" -iex> x -"ba" +iex> head == ?b +true iex> rest -"nana" +"anana" ``` -You can use the `utf8` modifier to match on a character's integer code point: +However, remember binary pattern matching works on *bytes*, so matching on the string "über" won't return "ü": + +```iex +iex> <> = "über" +"über" +iex> x == ?u +false +iex> rest +<<188, 98, 101, 114>> +``` + +Therefore, when pattern matching on strings, it is important to use the `utf8` modifier: ```iex iex> <> = "über" "über" -iex> x -252 +iex> x == ?ü +true iex> rest "ber" ``` You will see that Elixir has excellent support for working with strings. It also supports many of the Unicode operations. In fact, Elixir passes all the tests showcased in the article ["The string type is broken"](http://mortoray.com/2013/11/27/the-string-type-is-broken/). -Although Elixir provides a lot of flexibility for working with bits and bytes, 99% of the time you will be working with binaries and using the `is_binary/1` and `byte_size/1` functions. - - ## Charlists Our tour of our bitstrings, binaries, and strings is nearly complete, but we have one more data type to explain: the charlist. @@ -274,10 +288,4 @@ iex> "he" <> "llo" "hello" ``` -## Where did the name "binaries" come from? - -When your average computer-savvy person hears the word "binary", they think of ones and zeros, so why does Elixir refer to its strings as "binaries"? - -The short answer is that Elixir inherited the name "binaries" from Erlang. A more meaningful answer requires that we understand how Erlang historically stored its strings: not as contiguous bits in memory, but as _lists_ (see "Charlists" above), where each element contained a value and a pointer to the next item in the list. When a new data type was introduced, the bitstring, developers had to distinguish between variables stored as character lists and those stored as contiguous sequences of bits. Even though a computer always ends up storing data as ones and zeroes eventually, the name "binaries" was used to refer to strings stored as these contiguous sequence of bits, presumably because storing data in a way that exposes the underlying bits and their ones and zeros reminds one of "binary" in its original sense. - With binaries, strings, and charlists out of the way, it is time to talk about key-value data structures. From e4608400a1609070a287bc78229427b232924a37 Mon Sep 17 00:00:00 2001 From: Everett Griffiths Date: Fri, 6 Mar 2020 09:24:38 -0800 Subject: [PATCH 1146/1761] Update binaries-strings-and-char-lists.markdown (#1375) A few general cleanups -- better demo of what happens when you match the first byte of a multibyte character --- .../binaries-strings-and-char-lists.markdown | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 9f9ff28e2..2458f1dc5 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -24,7 +24,7 @@ In order to facilitate meaningful communication between computers across multipl Unicode organizes all of the characters in its repertoire into code charts, and each character is given a unique numerical index. This numerical index is known as a [Code Point](https://en.wikipedia.org/wiki/Code_point). -In Elixir you can use a `?` in front of a character to reveal its code point: +In Elixir you can use a `?` in front of a character literal to reveal its code point: ```iex iex> ?a @@ -38,15 +38,17 @@ Note that most Unicode code charts will refer to a code point by its hexadecimal ```iex iex> "\u0061" === "a" true +iex> 0x0061 = 97 = ?a +97 ``` The hex representation will also help you look up information about a code point, e.g. [https://codepoints.net/U+0061](https://codepoints.net/U+0061) has a data sheet all about the lower case `a`, a.k.a. code point 97. ## UTF-8 and Encodings -Now that we understand what the Unicode standard is and what code points are, we can finally talk about encodings. Whereas the code point is **what** we store, an encoding deals with **how** we store it. For example, a single byte would allow us to represent 256 different codepoints. However, Unicode has many more code points than 256, so we need a mechanism to convert the code point into bytes so they can be stored in memory, written to disk, etc. +Now that we understand what the Unicode standard is and what code points are, we can finally talk about encodings. Whereas the code point is **what** we store, an encoding deals with **how** we store it: encoding is an implementation. In other words, we need a mechanism to convert the code point numbers into bytes so they can be stored in memory, written to disk, etc. -Elixir uses UTF-8 to encode its strings, which means that code points are encoded as a series of bytes. UTF-8 is a **variable width** character encoding capable of encoding all valid Unicode code points using one to four bytes. +Elixir uses UTF-8 to encode its strings, which means that code points are encoded as a series of 8-bit bytes. UTF-8 is a **variable width** character encoding that uses one to four bytes to store each code point; it is capable of encoding all valid Unicode code points. Because UTF-8 is a variable width encoding, the number of characters (i.e. code points) and the number of bytes in a string may not be 1:1. Consider the following: @@ -137,7 +139,7 @@ iex> <<0, 1, x>> = <<0, 1, 2, 3>> ** (MatchError) no match of right hand side value: <<0, 1, 2, 3>> ``` -Note that each entry in the binary pattern is expected to match a single byte (exactly 8 bits). If we want to match on a binary of unknown size, we can use the `binary` modifier at the end of the pattern: +Note that unless you explicitly use `::` modifiers, each entry in the binary pattern is expected to match a single byte (exactly 8 bits). If we want to match on a binary of unknown size, we can use the `binary` modifier at the end of the pattern: ```iex iex> <<0, 1, x :: binary>> = <<0, 1, 2, 3>> @@ -157,7 +159,7 @@ iex> rest <<2, 3>> ``` -**A string is a UTF-8 encoded binary**, where the code point for each character is encoded using 1 to 4 bytes. Thus every string is a binary, but due to the rules in the UTF-8 encoding standard, not every binary is a valid string. +**A string is a UTF-8 encoded binary**, where the code point for each character is encoded using 1 to 4 bytes. Thus every string is a binary, but due to the UTF-8 standard encoding rules, not every binary is a valid string. ```iex iex> is_binary("hello") @@ -188,16 +190,20 @@ iex> rest "anana" ``` -However, remember binary pattern matching works on *bytes*, so matching on the string "über" won't return "ü": +However, remember binary pattern matching works on *bytes*, so matching on the string like "über" with multibyte characters won't match on the _character_, it will match on the _first byte of that character_: ```iex +iex> "ü" <> <<0>> +<<195, 188, 0>> iex> <> = "über" "über" -iex> x == ?u +iex> x == ?ü false iex> rest <<188, 98, 101, 114>> ``` +Above, `x` matched on only the first byte of the multibyte `ü` character. + Therefore, when pattern matching on strings, it is important to use the `utf8` modifier: From f6523e7d304323fe134cd024c5e9deab48723f6e Mon Sep 17 00:00:00 2001 From: lawrenced Date: Fri, 13 Mar 2020 12:30:47 +0000 Subject: [PATCH 1147/1761] Update events (#1376) --- _includes/conferences.html | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/_includes/conferences.html b/_includes/conferences.html index 94154ce65..62099d70e 100644 --- a/_includes/conferences.html +++ b/_includes/conferences.html @@ -1,13 +1,10 @@ From 3afcdb19c4ea865bc14e7417be3b4a23fc4e7dd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 7 Apr 2020 13:30:51 +0200 Subject: [PATCH 1148/1761] We no longer host docs --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index aab272030..dffd94264 100644 --- a/README.md +++ b/README.md @@ -68,5 +68,3 @@ guide](https://github.com/elixir-lang/elixir/#contributing). * The Social Icons are copyrighted to [Xeloader](http://xeloader.deviantart.com/art/Socialis-2-Freebie-213292616). * The written textual contents available in the guides and blog are licensed under [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). - -* The available docs are licensed under the same license as their projects. From 3e4216fe327f97c2240d7d00b1bd7c2d4f1a1970 Mon Sep 17 00:00:00 2001 From: timothywalsh Date: Sun, 12 Apr 2020 16:34:55 +0800 Subject: [PATCH 1149/1761] Clarify how agent passes state to anonymous func (#1380) When encountering Agents for the first time, it is not clear that they pass their state to anonymous functions in this way. This problem stumped me for a whole day yesterday, when I couldn't figure out what was going on with that `&1`. It finally made sense when someone on the ElixirForum gave me this crucial piece of information, that the Agent calls the anonymous function and passes its state to it via the placeholder argument `&1`. --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index e2efa9e47..4ac2789a2 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -134,7 +134,7 @@ The first step in our implementation is to call `use Agent`. Then we define a `start_link/1` function, which will effectively start the agent. It is a convention to define a `start_link/1` function that always accepts a list of options. We don't plan on using any options right now, but we might later on. We then proceed to call `Agent.start_link/1`, which receives an anonymous function that returns the Agent's initial state. -We are keeping a map inside the agent to store our keys and values. Getting and putting values on the map is done with the Agent API and the capture operator `&`, introduced in [the Getting Started guide](/getting-started/modules-and-functions.html#function-capturing). +We are keeping a map inside the agent to store our keys and values. Getting and putting values on the map is done with the Agent API and the capture operator `&`, introduced in [the Getting Started guide](/getting-started/modules-and-functions.html#function-capturing). The agent passes its state to the anonymous function via the `&1` argument when `Agent.get/2` and `Agent.update/3` are called. Now that the `KV.Bucket` module has been defined, our test should pass! You can try it yourself by running: `mix test`. From f9727eab046de3b91b32c9222a0ad77c58644424 Mon Sep 17 00:00:00 2001 From: Anant Jain Date: Sun, 12 Apr 2020 13:07:56 -0700 Subject: [PATCH 1150/1761] Remove broken link to protocol consolidation (#1381) --- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 64596ddc5..d77ade566 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -155,7 +155,7 @@ Will output: Compiling 1 file (.ex) Generated kv app -The `lib/kv.ex` file was compiled, an application manifest named `kv.app` was generated and [all protocols were consolidated as described in the Getting Started guide](/getting-started/protocols.html#protocol-consolidation). All compilation artifacts are placed inside the `_build` directory using the options defined in the `mix.exs` file. +The `lib/kv.ex` file was compiled, an application manifest named `kv.app` was generated. All compilation artifacts are placed inside the `_build` directory using the options defined in the `mix.exs` file. Once the project is compiled, you can start an `iex` session inside the project by running: From 4c81c0fb708fdb22db67ca23c5af9f7e98c17de0 Mon Sep 17 00:00:00 2001 From: Kevin Greene Date: Wed, 15 Apr 2020 01:51:49 -0500 Subject: [PATCH 1151/1761] Fixed typo: installitino -> installation (#1382) --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 8c3cb25cf..d19df60e6 100644 --- a/install.markdown +++ b/install.markdown @@ -137,7 +137,7 @@ The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or * [Source code distribution and Windows installers from Erlang's official website](http://www.erlang.org/download.html) * [Precompiled packages for some Unix-like installations](https://www.erlang-solutions.com/resources/download.html) - * [A general list of installatino methods from the Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/). + * [A general list of installation methods from the Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/). After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information similar to: From 9be26599ecf3004225a85305df715ee7825cfb31 Mon Sep 17 00:00:00 2001 From: LiquidSolid <43530070+LiquidSolid@users.noreply.github.com> Date: Wed, 22 Apr 2020 12:25:02 +0300 Subject: [PATCH 1152/1761] Update agent.markdown (#1383) --- getting-started/mix-otp/agent.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 4ac2789a2..7dca66ba7 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -134,7 +134,7 @@ The first step in our implementation is to call `use Agent`. Then we define a `start_link/1` function, which will effectively start the agent. It is a convention to define a `start_link/1` function that always accepts a list of options. We don't plan on using any options right now, but we might later on. We then proceed to call `Agent.start_link/1`, which receives an anonymous function that returns the Agent's initial state. -We are keeping a map inside the agent to store our keys and values. Getting and putting values on the map is done with the Agent API and the capture operator `&`, introduced in [the Getting Started guide](/getting-started/modules-and-functions.html#function-capturing). The agent passes its state to the anonymous function via the `&1` argument when `Agent.get/2` and `Agent.update/3` are called. +We are keeping a map inside the agent to store our keys and values. Getting and putting values on the map is done with the Agent API and the capture operator `&`, introduced in [the Getting Started guide](/getting-started/modules-and-functions.html#function-capturing). The agent passes its state to the anonymous function via the `&1` argument when `Agent.get/2` and `Agent.update/2` are called. Now that the `KV.Bucket` module has been defined, our test should pass! You can try it yourself by running: `mix test`. From 47a54ec71b8bc586dbd9dedbda5e7836153ee89a Mon Sep 17 00:00:00 2001 From: Daniel Lima Date: Wed, 22 Apr 2020 10:04:29 -0300 Subject: [PATCH 1153/1761] Update genserver.markdown (#1384) --- getting-started/mix-otp/genserver.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 186a23b83..bed41958b 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -83,8 +83,8 @@ end # Server callback -def handle_call({:put, key, value}, from, state) do - {:noreply, Map.put(state, key, value)} +def handle_call({:put, key, value}, _from, state) do + {:reply, :ok, Map.put(state, key, value)} end ``` From 833d9d744dd0eb0df89b0b58c384fd6d72dadc96 Mon Sep 17 00:00:00 2001 From: Tom Gurion Date: Wed, 22 Apr 2020 18:26:09 +0300 Subject: [PATCH 1154/1761] Simplify example in enumerables-and-streams.markdown (#1385) --- getting-started/enumerables-and-streams.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 7c422fba4..c76a7ed0f 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -47,7 +47,7 @@ iex> Enum.filter(1..3, odd?) This means that when performing multiple operations with `Enum`, each operation is going to generate an intermediate list until we reach the result: ```iex -iex> total_sum = 1..100_000 |> Enum.map(&(&1 * 3)) |> Enum.filter(odd?) |> Enum.sum +iex> 1..100_000 |> Enum.map(&(&1 * 3)) |> Enum.filter(odd?) |> Enum.sum 7500000000 ``` From 1172b99b19cf354ac3f42de36546b6ff152aca0c Mon Sep 17 00:00:00 2001 From: Stel Abrego Date: Fri, 24 Apr 2020 07:41:06 -0400 Subject: [PATCH 1155/1761] add {max-width: 100%} css rule to all img tags to improve mobile UX (#1386) --- css/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/css/style.css b/css/style.css index 614720c71..0062198c0 100644 --- a/css/style.css +++ b/css/style.css @@ -192,6 +192,7 @@ img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; + max-width: 100%; } svg:not(:root) { overflow: hidden; } form { margin: 0; } From 6345befecd3432d77a9a70c6625bc2f3a618ca8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 25 Apr 2020 10:39:24 +0200 Subject: [PATCH 1156/1761] Release v1.10.3 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 0ef7d0abd..5b7855752 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_10 v1_10: name: v1.10 minimum_otp: 21.0 - version: 1.10.2 + version: 1.10.3 docs_zip: true v1_9: diff --git a/elixir.csv b/elixir.csv index 0023ee3c5..8978e9729 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.10.3,https://github.com/elixir-lang/elixir/releases/download/v1.10.3/Precompiled.zip,release,1,382fa22e6f184c0cc87fcfbfa0053c349d85f6f1,fc6d06ad4cc596b2b6e4f01712f718200c69f3b9c49c7d3b787f9a67b36482658490cf01109b0b0842fc9d88a27f64a9aba817231498d99fa01fa99688263d55 1.10.2,https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9 1.10.1,https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d 1.10.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 From b062848f42138604dc9489d54c8aa4cebb34893e Mon Sep 17 00:00:00 2001 From: Tom Gurion Date: Sun, 26 Apr 2020 13:51:11 +0300 Subject: [PATCH 1157/1761] Correct GenServer cheatsheet some 'client' blocks to 'callback's (#1388) --- cheatsheets/gen-server.pdf | Bin 69188 -> 69211 bytes cheatsheets/gen-server.tex | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cheatsheets/gen-server.pdf b/cheatsheets/gen-server.pdf index c5fcbadb4f01703e64d4885908cfa5b38c3bdd2e..e67c6125f0ae83fef24d98be995f7a4b87b2a6bf 100644 GIT binary patch delta 4215 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 KK<9xj?f(E`Y3v&S delta 4209 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 HMNdWwv|-1d diff --git a/cheatsheets/gen-server.tex b/cheatsheets/gen-server.tex index fec9ae2fe..ded26e9b4 100644 --- a/cheatsheets/gen-server.tex +++ b/cheatsheets/gen-server.tex @@ -329,7 +329,7 @@ \section*{GenServer - a cheat sheet} \begin{parchment}[handling messages: $\rightarrow$ \bf\texttt{handle\_info/2}] \begin{tikzpicture} - \node (client) [main-block] { + \node (callback) [main-block] { \vspace*{-\baselineskip} \begin{verbatim} def handle_info(match_this, state) do @@ -338,9 +338,9 @@ \section*{GenServer - a cheat sheet} end \end{verbatim} }; - \path (client.north west)+(-2pt,0) node [left-title] {\rotatebox{90}{client}}; + \path (callback.north west)+(-2pt,0) node [left-title] {\rotatebox{90}{callback}}; - \path (client.south west)+(0,-1em) node (result) [main-block,anchor=north west] { + \path (callback.south west)+(0,-1em) node (result) [main-block,anchor=north west] { \vspace*{-\baselineskip} \begin{verbatim} {:noreply, state} @@ -360,7 +360,7 @@ \section*{GenServer - a cheat sheet} \begin{parchment}[\bf\texttt{\^{}then\_what = \{:continue, match\_this\}} $\rightarrow$ \bf\texttt{handle\_continue/2}] \begin{tikzpicture} - \node (client) [main-block] { + \node (callback) [main-block] { \vspace*{-\baselineskip} \begin{verbatim} def handle_continue(match_this, state) do @@ -369,9 +369,9 @@ \section*{GenServer - a cheat sheet} end \end{verbatim} }; - \path (client.north west)+(-2pt,0) node [left-title] {\rotatebox{90}{client}}; + \path (callback.north west)+(-2pt,0) node [left-title] {\rotatebox{90}{callback}}; - \path (client.south west)+(0,-1em) node (result) [main-block,anchor=north west] { + \path (callback.south west)+(0,-1em) node (result) [main-block,anchor=north west] { \vspace*{-\baselineskip} \begin{verbatim} {:noreply, state} From 9a54284bb9fc90c346c7c378cf994d3b101d76b2 Mon Sep 17 00:00:00 2001 From: Ryan Zidago <46972947+ryanzidago@users.noreply.github.com> Date: Tue, 28 Apr 2020 15:20:23 +0200 Subject: [PATCH 1158/1761] Add missing word to task-and-gen-tcp.markdown (#1389) --- getting-started/mix-otp/task-and-gen-tcp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 4c550e9c7..f6ecd11dc 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -126,7 +126,7 @@ For now, there is a more important bug we need to fix: what happens if our TCP a We have learned about agents, generic servers, and supervisors. They are all meant to work with multiple messages or manage state. But what do we use when we only need to execute some task and that is it? -[The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/1` function that receives an anonymous function and executes it inside a new process that will be of a supervision tree. +[The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/1` function that receives an anonymous function and executes it inside a new process that will be part of a supervision tree. Let's give it a try. Open up `lib/kv_server/application.ex`, and let's change the supervisor in the `start/2` function to the following: From 828ab7b094a399193dd8d5a663144ef54c3ac522 Mon Sep 17 00:00:00 2001 From: Jakob Pupke Date: Tue, 28 Apr 2020 21:14:03 +0200 Subject: [PATCH 1159/1761] MIX/OTP Guide: Route bucket create command to appropriate node (#1390) --- getting-started/mix-otp/distributed-tasks.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/getting-started/mix-otp/distributed-tasks.markdown b/getting-started/mix-otp/distributed-tasks.markdown index afbc8fb23..59a29f61f 100644 --- a/getting-started/mix-otp/distributed-tasks.markdown +++ b/getting-started/mix-otp/distributed-tasks.markdown @@ -298,6 +298,17 @@ defp lookup(bucket, callback) do end ``` +Good! Now `GET`, `PUT` and `DELETE` requests are all routed to the approriate node. Let's also make sure that when a new bucket is created it ends up on the correct node. Replace the `run/1` function in `KVServer.Command`, the one that matches the `:create` command, with the following: + +```elixir +def run({:create, bucket}) do + case KV.Router.route(bucket, KV.Registry, :create, [KV.Registry, bucket]) do + pid when is_pid(pid) -> {:ok, "OK\r\n"} + _ -> {:error, "FAILED TO CREATE BUCKET"} + end +end +``` + Now if you run the tests, you will see the test that checks the server interaction will fail, as it will attempt to use the routing table. To address this failure, add `@tag :distributed` to this test too: ```elixir From 18dd5d2becdae2a9f47007e460ee34877d73b267 Mon Sep 17 00:00:00 2001 From: Everett Griffiths Date: Fri, 1 May 2020 11:11:52 -0700 Subject: [PATCH 1160/1761] Update pattern-matching.markdown (#1379) --- getting-started/pattern-matching.markdown | 38 +++++++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 7881eea71..821b6d661 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -129,14 +129,33 @@ iex> x = 1 iex> x = 2 2 ``` +However, there are times when we don't want variables to be rebound. -Use the pin operator `^` when you want to pattern match against an existing variable's value rather than rebinding the variable: +Use the pin operator `^` when you want to pattern match against a variable's _existing value_ rather than rebinding the variable. ```iex iex> x = 1 1 iex> ^x = 2 ** (MatchError) no match of right hand side value: 2 +``` + +Because we have pinned `x` when it was bound to the value of `1`, it is equivalent to the following: + +```iex +iex> 1 = 2 +** (MatchError) no match of right hand side value: 2 +``` + +Notice that we even see the exact same error message. + +We can use the pin operator inside other pattern matches, such as tuples or lists: + +```iex +iex> x = 1 +1 +iex> [^x, 2, 3] = [1, 2, 3] +[1, 2, 3] iex> {y, ^x} = {2, 1} {2, 1} iex> y @@ -145,13 +164,26 @@ iex> {y, ^x} = {2, 2} ** (MatchError) no match of right hand side value: {2, 2} ``` -Because we have assigned the value of 1 to the variable x, this last example could also have been written as: +Because `x` was bound to the value of `1` when it was pinned, this last example could have been written as: -``` +```iex iex> {y, 1} = {2, 2} ** (MatchError) no match of right hand side value: {2, 2} ``` +When using the pin operator in maps you must use the `=>` syntax when pinning a map's key, even when the value being pinned is an atom: + +```iex +iex> k = :foo +:foo +iex> %{^k: v} = %{foo: "bar"} +** (SyntaxError) iex:11: syntax error before: k +iex> %{^k => v} = %{foo: "bar"} +%{foo: "bar"} +iex> v +"bar" +``` + If a variable is mentioned more than once in a pattern, all references should bind to the same pattern: ```iex From e1fe55485286b7abb1b025f049ffc3e979e2a933 Mon Sep 17 00:00:00 2001 From: wirelyre Date: Sat, 2 May 2020 03:02:51 -0500 Subject: [PATCH 1161/1761] Fix inconsistency in task-and-gen-tcp.markdown (#1393) 616d78c changed the example to use a default port if none was provided. be1471b updated another code block to match that change. This change fixes the remaining copy of that code. --- getting-started/mix-otp/task-and-gen-tcp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index f6ecd11dc..167e255db 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -216,7 +216,7 @@ Let's change `start/2` once again, to add a supervisor to our tree: ```elixir def start(_type, _args) do - port = String.to_integer(System.get_env("PORT") || raise "missing $PORT environment variable") + port = String.to_integer(System.get_env("PORT") || "4040") children = [ {Task.Supervisor, name: KVServer.TaskSupervisor}, From 7fac1aeceeacb2e41ea55d90b0ce13ed2ee5d3e6 Mon Sep 17 00:00:00 2001 From: CJ Date: Wed, 6 May 2020 17:54:55 +0800 Subject: [PATCH 1162/1761] MIX/OTP Guide: Fix :nonode@nohost error (#1395) --- .../mix-otp/config-and-releases.markdown | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index ac968b6cb..32f4264f5 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -57,7 +57,7 @@ We need a way to configure the application environment. That's when we use confi ## Configuration -Configuration files provide a mechanism for us to configure the environment of any application. Such configuration is done by the `config/config.exs` file. +Configuration files provide a mechanism for us to configure the environment of any application. Such configuration is done by the `config/config.exs` file. This config file is read at build time, when we compile our application. For example, we can configure IEx default prompt to another value. Let's create the `config/config.exs` file with the following content: @@ -144,7 +144,17 @@ As a starting point, let's define a release that includes both `:kv_server` and ] ] -That defines a release named `foo` with both `kv_server` and `kv` applications. Their mode is set to `:permanent`, which means that, if those applications crash, the whole node terminates. That's reasonable since those applications are essential to our system. With the configuration in place, let's give assembling the release another try: +That defines a release named `foo` with both `kv_server` and `kv` applications. Their mode is set to `:permanent`, which means that, if those applications crash, the whole node terminates. That's reasonable since those applications are essential to our system. + +There is one thing we need to pay attention to. Our routing table config `config :kv, :routing_table, [{?a..?z, node()}]` in `config/config.exs` evaluates the `node()` to `:nonode@nohost`. However, releases start in distributed mode by default. A release named `foo` will use the name `:"foo@computer_name"`. Therefore we have to adjust the routing table to use the proper node name. For now, let's hardcode the node name under `config/config.exs` if the environment is production: + + if Mix.env() == :prod do + config :kv, :routing_table, [{?a..?z, :"foo@computer-name"}] + end + +While this will suffice for now, the computer name is usually not known upfront when deploying to production. For this purpose, we will later introduce [`config/releases.exs`](#runtime-configuration), which is a configuration file that is executed in the production machine before the system starts, giving you an opportunity to set the proper node name at the right time. + +With the configuration in place, let's give assembling the release another try: $ MIX_ENV=prod mix release foo * assembling foo-0.0.1 on MIX_ENV=prod From d0c2e4e60ec59718ce67daabda31ff99842ef5ee Mon Sep 17 00:00:00 2001 From: chailatte Date: Tue, 12 May 2020 00:46:13 +0200 Subject: [PATCH 1163/1761] Remove reference to maps before they are introduced (#1396) --- getting-started/pattern-matching.markdown | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 821b6d661..85c4d2f65 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -171,20 +171,7 @@ iex> {y, 1} = {2, 2} ** (MatchError) no match of right hand side value: {2, 2} ``` -When using the pin operator in maps you must use the `=>` syntax when pinning a map's key, even when the value being pinned is an atom: - -```iex -iex> k = :foo -:foo -iex> %{^k: v} = %{foo: "bar"} -** (SyntaxError) iex:11: syntax error before: k -iex> %{^k => v} = %{foo: "bar"} -%{foo: "bar"} -iex> v -"bar" -``` - -If a variable is mentioned more than once in a pattern, all references should bind to the same pattern: +If a variable is mentioned more than once in a pattern, all references should bind to the same value: ```iex iex> {x, x} = {1, 1} From 0fe2b67316206b74b8f09091e21c47709ed15e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=E1=BA=A9m=20Hu=E1=BB=B3nh?= Date: Mon, 18 May 2020 20:28:06 +0200 Subject: [PATCH 1164/1761] Typo fix on code example (#1398) --- ...2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown index 05d678a0e..f0aae22d7 100644 --- a/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown +++ b/_posts/2012-04-24-a-peek-inside-elixir-s-parallel-compiler.markdown @@ -156,7 +156,7 @@ Notice we added an extra clause to `spawn_compilers` so we can properly handle t :erlang.raise(:error, reason, where) after 10_000 -> - raise "dependency on unexesting module or possible deadlock" + raise "dependency on nonexistent module or possible deadlock" end end From 5f0f2da44c71da37dffa0cdbca3b013f455cfd32 Mon Sep 17 00:00:00 2001 From: D S Date: Wed, 20 May 2020 17:35:17 +1000 Subject: [PATCH 1165/1761] Interactive Elixir is only aliased on PowerShell (#1399) --- getting-started/introduction.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 777f84411..bf559b286 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -36,7 +36,7 @@ If you haven't yet installed Elixir, visit our [installation page](/install.html When you install Elixir, you will have three new executables: `iex`, `elixir` and `elixirc`. If you compiled Elixir from source or are using a packaged version, you can find these inside the `bin` directory. -For now, let's start by running `iex` (or `iex.bat` if you are on Windows) which stands for Interactive Elixir. In interactive mode, we can type any Elixir expression and get its result. Let's warm up with some basic expressions. +For now, let's start by running `iex` (or `iex.bat` if you are on Windows PowerShell, where `iex` is a PowerShell command) which stands for Interactive Elixir. In interactive mode, we can type any Elixir expression and get its result. Let's warm up with some basic expressions. Open up `iex` and type the following expressions: @@ -54,7 +54,7 @@ Please note that some details like version numbers may differ a bit in your sess It seems we are ready to go! We will use the interactive shell quite a lot in the next chapters to get a bit more familiar with the language constructs and basic types, starting in the next chapter. -> Note: if you are on Windows, you can also try `iex.bat --werl` which may provide a better experience depending on which console you are using. +> Note: if you are on Windows, you can also try `iex --werl` (`iex.bat --werl` on PowerShell) which may provide a better experience depending on which console you are using. > Note: if you want to find and execute a given script in PATH so it will be loaded in `iex` use: `iex -S SCRIPTNAME`. Later you'll learn about [Mix](/getting-started/mix-otp/introduction-to-mix.html), Elixir's build tool, and how you can compile and load entire applications with `iex -S mix run`. See [Supervisor and application](/getting-started/mix-otp/supervisor-and-application.html) for more details. From 02381fb04ba64dbc4016ce2b79db416f08771634 Mon Sep 17 00:00:00 2001 From: Martin Gausby Date: Wed, 20 May 2020 19:32:43 +0100 Subject: [PATCH 1166/1761] Add ElixirConf EU Virtual to upcoming conferences (#1400) --- _includes/conferences.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_includes/conferences.html b/_includes/conferences.html index 62099d70e..eb57bee1c 100644 --- a/_includes/conferences.html +++ b/_includes/conferences.html @@ -1,7 +1,11 @@ From 0e4302f0176a666916b0c1bfc51e243a4b0e0d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 31 May 2020 12:58:14 +0200 Subject: [PATCH 1169/1761] Mention data and multimedia --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index de633ef5b..1b8afa09b 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@

Elixir is a dynamic, functional language designed for building scalable and maintainable applications.

-

Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.

+

Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development, embedded software, data ingestion, and multimedia processing domains.

To learn more about Elixir, check our getting started guide and our learning page for other resources. Or keep reading to get an overview of the platform, language and tools.

From 5793c5027fd41bc8bd3892d8ecb68093bb2ea9af Mon Sep 17 00:00:00 2001 From: Przemek Date: Tue, 16 Jun 2020 17:07:35 +0200 Subject: [PATCH 1170/1761] Add survey link banner (#1403) --- _includes/bottom.html | 4 ++++ _includes/top.html | 15 +++++++++++++++ css/style.css | 25 +++++++++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/_includes/bottom.html b/_includes/bottom.html index 89cbcbea9..5751c3e0e 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -25,6 +25,10 @@ }); $('.jekyll-toc-header a.jekyll-toc-link-here span.jekyll-toc-icon').addClass('icon icon-link'); $('.jekyll-toc-header a.jekyll-toc-back-to-top span.jekyll-toc-icon').addClass('icon icon-chevron-up'); + $('#top-banner .close').click(function() { + $(this).parent().slideUp(200); + document.cookie = 'topBannerDisabled=true'; + }) }); diff --git a/_includes/top.html b/_includes/top.html index d01365e01..bcf545026 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -19,6 +19,21 @@ +
+ Please participate in the 2020 Elixir Ecosystem Survey! +
×
+
+ +
diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index ee4409d57..6f3c0e23f 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -18,8 +18,6 @@

{{guide.title}}

{% endfor %} - - {% include plataformatec.html %}
diff --git a/_posts/2016-07-14-announcing-genstage.markdown b/_posts/2016-07-14-announcing-genstage.markdown index 0ae4ec388..185a9a54c 100644 --- a/_posts/2016-07-14-announcing-genstage.markdown +++ b/_posts/2016-07-14-announcing-genstage.markdown @@ -45,7 +45,7 @@ File.stream!("path/to/some/file") |> Enum.to_list() ``` -By using `File.stream!` and `Stream.flat_map`, we build a lazy computation that will emit a single line, break that line into words, and emit such words one by one without building huge lists in memory when enumerated. The functions in the [Stream module](https://hexdocs.pm/elixir/Stream.html) just express the computation we want to perform. The computation itself, like traversing the file or breaking into words in `flat_map`, only happens when we call a function in the `Enum` module. We have covered [the foundation for Enum and Streams](http://blog.plataformatec.com.br/2015/05/introducing-reducees/) in another article. +By using `File.stream!` and `Stream.flat_map`, we build a lazy computation that will emit a single line, break that line into words, and emit such words one by one without building huge lists in memory when enumerated. The functions in the [Stream module](https://hexdocs.pm/elixir/Stream.html) just express the computation we want to perform. The computation itself, like traversing the file or breaking into words in `flat_map`, only happens when we call a function in the `Enum` module. We have covered [the foundation for Enum and Streams](https://dashbit.co/blog/introducing-reducees) in another article. The solution above allows us to work with large datasets without loading them all into memory. For large files, it is going to provide much better performance than the eager version. However, the solution above still does not leverage concurrency. For a machine with more than one core, which is the huge majority of machines we have available today, it is a suboptimal solution. diff --git a/_posts/2019-06-24-elixir-v1-9-0-released.markdown b/_posts/2019-06-24-elixir-v1-9-0-released.markdown index f70efb76c..e4bab9c37 100644 --- a/_posts/2019-06-24-elixir-v1-9-0-released.markdown +++ b/_posts/2019-06-24-elixir-v1-9-0-released.markdown @@ -20,7 +20,7 @@ Releases have always been part of the Elixir community thanks to Paul Schoenfeld At the beginning of this year, thanks to [Plataformatec](http://plataformatec.com.br/), I was able to prioritize the work on bringing releases directly into Elixir. Paul was aware that we wanted to have releases in Elixir itself and during [ElixirConf 2018](https://elixirconf.com) I announced that releases was the last planned feature for Elixir. -The goal of Elixir releases was to double down on the most important concepts provided by Distillery and provide extensions points for the other bits the community may find important. [Paul](http://github.com/bitwalker/) and [Tristan](https://github.com/tsloughter) (who maintains [Erlang's relx](https://github.com/erlware/relx)) provided excellent feedback on Elixir's implementation, which we are very thankful for. [The Hex package manager is already using releases in production](http://blog.plataformatec.com.br/2019/05/updating-hex-pm-to-use-elixir-releases/) and we also got feedback from other companies doing the same. +The goal of Elixir releases was to double down on the most important concepts provided by Distillery and provide extensions points for the other bits the community may find important. [Paul](http://github.com/bitwalker/) and [Tristan](https://github.com/tsloughter) (who maintains [Erlang's relx](https://github.com/erlware/relx)) provided excellent feedback on Elixir's implementation, which we are very thankful for. [The Hex package manager is already using releases in production](https://dashbit.co/blog/updating-hex-pm-to-use-elixir-releases) and we also got feedback from other companies doing the same. Enough background, let's see why you would want to use releases and how to assemble one. diff --git a/docs.markdown b/docs.markdown index c1526857a..332ecb280 100644 --- a/docs.markdown +++ b/docs.markdown @@ -23,7 +23,7 @@ Choose which version you want documentation for. * [Logger](https://hexdocs.pm/logger/) - built-in Logger * [Mix](https://hexdocs.pm/mix/) - build tool -#### Master +#### Development * [Elixir](https://hexdocs.pm/elixir/master/) - standard library * [EEx](https://hexdocs.pm/eex/master/) - templating library diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index 06389f6e6..3f0fecae8 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -125,8 +125,6 @@ When you start the debugger, a Graphical User Interface will open in your machin Debugger GUI GIF -Note: the Debugger snippet above was retrieved from ["Debugging techniques in Elixir" by Plataformatec](http://blog.plataformatec.com.br/2016/04/debugging-techniques-in-elixir-lang/). - ## Observer For debugging complex systems, jumping at the code is not enough. It is necessary to have an understanding of the whole virtual machine, processes, applications, as well as set up tracing mechanisms. Luckily this can be achieved in Erlang with `:observer`. In your application: @@ -142,9 +140,7 @@ The above will open another Graphical User Interface that provides many panes to Observer GUI screenshot -We explore the Observer in the context of an actual project [in the Dynamic Supervisor chapter of the Mix & OTP guide](/getting-started/mix-otp/dynamic-supervisor.html). - -You can also [use Observer to introspect a remote node](http://blog.plataformatec.com.br/2016/05/tracing-and-observing-your-remote-node/). This is one of the debugging techniques [the Phoenix framework used to achieve 2 million connections on a single machine](https://phoenixframework.org/blog/the-road-to-2-million-websocket-connections). +We explore the Observer in the context of an actual project [in the Dynamic Supervisor chapter of the Mix & OTP guide](/getting-started/mix-otp/dynamic-supervisor.html). This is one of the debugging techniques [the Phoenix framework used to achieve 2 million connections on a single machine](https://phoenixframework.org/blog/the-road-to-2-million-websocket-connections). Finally, remember you can also get a mini-overview of the runtime info by calling `runtime_info/0` directly in IEx. diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 7f9ac09f9..b1f4bef3c 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -186,9 +186,7 @@ iex> map.c ** (KeyError) key :c not found in: %{2 => :b, :a => 1} ``` -Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post](http://blog.plataformatec.com.br/2014/09/writing-assertive-code-with-elixir/) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. - -> Note: Maps were recently introduced into the Erlang VM and only from Elixir v1.2 are they capable of holding millions of keys efficiently. Therefore, if you are working with previous Elixir versions (v1.0 or v1.1) and you need to support at least hundreds of keys, you may consider using [the `HashDict` module](https://hexdocs.pm/elixir/HashDict.html). +Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post by José Valim](https://dashbit.co/blog/writing-assertive-code-with-elixir) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. ## Nested data structures diff --git a/learning.markdown b/learning.markdown index 0db53f47c..6f946dff6 100644 --- a/learning.markdown +++ b/learning.markdown @@ -8,9 +8,9 @@ layout: default {% include toc.html %} -Our website provides a [Getting Started guide](/getting-started/introduction.html) to learn more about Elixir's foundation and explore how to build projects with [Mix and OTP](getting-started/mix-otp/introduction-to-mix.html). +Our website provides a [Getting Started guide](/getting-started/introduction.html) to learn more about Elixir's foundations and explore how to build projects with [Mix and OTP](/getting-started/mix-otp/introduction-to-mix.html). Elixir also includes [extensive API documentation](/docs.html). If you already know Erlang and you want to know Elixir (or vice-versa), check out our [Crash Course for Erlang developers](/crash-course.html). -The Elixir Community has also produced plenty of resources to explore Elixir from different backgrounds and other perspectives. We are sure you will find a resource that follows your pace and interests. +Outside of our website, the Elixir Community has also produced plenty of resources to explore Elixir from different backgrounds and other perspectives. We are sure you will find a resource that suits your pace and goals. ## Books @@ -47,17 +47,6 @@ Learn the best practices for the whole life of your application, from design and
-

Introducing Elixir

- -Introducing Elixir cover - -Elixir is an excellent language if you want to learn about functional programming, and with this hands-on introduction, you'll discover just how powerful and fun Elixir can be. This language combines the robust functional programming of Erlang with a syntax similar to Ruby, and includes powerful features for metaprogramming. - -This book shows you how to write simple Elixir programs by teaching one skill at a time. Once you pick up pattern matching, process-oriented programming, and other concepts, you'll understand why Elixir makes it easier to build concurrent and resilient programs that scale up and down with ease. - -
-

The Little Elixir and OTP Guidebook

-

Elixir Cookbook

- -
Elixir Cookbook cover - -This book is a set of recipes grouped by topic that acts as a reference to get ideas from or to quickly search for a solution to a problem. You will begin by launching an IEx session and using it to test some ideas. Next, you will perform various operations like loading and compiling modules, inspecting your system, generating a supervised app, and so on. Furthermore, you will be introduced to immutability, working with data structures, performing pattern matching, and using stream modules to generate infinite data sequences. You will learn about everything from joining strings to determining the word frequency in text. With respect to modules and functions, you will also discover how to load code from other modules and use guards and pattern matching in functions. - -
-

Elixir School

Elixir School @@ -172,16 +152,6 @@ Topics include tech stacks, success stories, lessons learned and deployment tips
## Screencasts -

Elixir Sips

- -ElixirSips cover - -Elixir Sips is a screencast series that provides 2 short videos - typically from 2 to 7 minutes, but occasionally much longer - each week. The videos consist of various topics, ranging from exploring a module in the standard library to trying out a new project to building a web-based Tetris game from scratch. - -The intended audience ranges from someone entirely new to the Elixir language, to experienced developers that want to get a broad range of topics to think about from time to time. - -

LearnElixir.tv

From 1e934bc869639251f48c7b35f2b1249749c37877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 18 Jun 2020 01:23:14 +0200 Subject: [PATCH 1172/1761] Remove unused CSS --- css/style.css | 69 --------------------------------------------------- 1 file changed, 69 deletions(-) diff --git a/css/style.css b/css/style.css index 305a01072..7f2679a6a 100644 --- a/css/style.css +++ b/css/style.css @@ -977,75 +977,6 @@ ol.jekyll-toc li a { color: black; } -/* elixir radar */ -.elixir-radar-cta { - padding: 10px 0; - display: table; - width: 100%; - border-top: 1px dashed #e5e5e5; - border-bottom: 1px dashed #e5e5e5; -} - -.cta-copy { - display: table-cell; - margin-right: 10px; - vertical-align: middle; -} - -.cta-copy .cta-title { - font-size: 21px; - font-family: 'Bree Serif'; - color: #14485b; -} - -.cta-copy .cta-subtitle { - font-size: 14px; - font-family: Georgia; - color: #14485b; -} - -.cta-button-container { - display: table-cell; - vertical-align: middle; -} - -a.cta-button, a.cta-button:visited{ - color: white; - text-decoration: none; -} - -a.cta-button { - padding: 5px 10px; - display: inline-block; - - font-size: 1.1em; - text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); - text-align: center; - - background-color: #17678a; - background-image: linear-gradient(#1e88b6, #17678a); - - border: 1px solid #14485b; - border-radius: 3px; - - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4); -} - -a.cta-button:hover { - background-color: #10465e; - background-image: linear-gradient(#17678a, #10465e); - border-color: #0b2731; -} - -a.cta-button:active { - position: relative; - top: 1px; - left: 1px; - - background-image: none; - box-shadow: inset 0 2px 4px rgba(0, 0, 0, .15); -} - /* Top banner */ #top-banner { background: #fff8ed; From 9f6b4fe933438006de379bd64d34338061d9c7f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 18 Jun 2020 01:31:58 +0200 Subject: [PATCH 1173/1761] Clarify intro --- getting-started/introduction.markdown | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index bf559b286..e8813d37b 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -56,8 +56,6 @@ It seems we are ready to go! We will use the interactive shell quite a lot in th > Note: if you are on Windows, you can also try `iex --werl` (`iex.bat --werl` on PowerShell) which may provide a better experience depending on which console you are using. -> Note: if you want to find and execute a given script in PATH so it will be loaded in `iex` use: `iex -S SCRIPTNAME`. Later you'll learn about [Mix](/getting-started/mix-otp/introduction-to-mix.html), Elixir's build tool, and how you can compile and load entire applications with `iex -S mix run`. See [Supervisor and application](/getting-started/mix-otp/supervisor-and-application.html) for more details. - ## Running scripts After getting familiar with the basics of the language you may want to try writing simple programs. This can be accomplished by putting the following Elixir code into a file: @@ -77,7 +75,7 @@ Later on we will learn how to compile Elixir code (in [Chapter 8](/getting-start ## Asking questions -When going through this getting started guide, it is common to have questions; after all, that is part of the learning process! There are many places maintained by the community where you can ask questions, here are some of them: +When going through this getting started guide, it is common to have questions; after all, that is part of the learning process! There are many places where you can ask questions, here are some of them: * [Official #elixir-lang on freenode IRC](irc://irc.freenode.net/elixir-lang) * [Elixir Forum](http://elixirforum.com) From 15b6fd9c6322d538eb37aa12ec7f72080ee3ee75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 18 Jun 2020 01:40:38 +0200 Subject: [PATCH 1174/1761] Attempt highlighting all snippets as elixir --- ...014-04-21-elixir-v0-13-0-released.markdown | 26 +++---- ...2016-01-03-elixir-v1-2-0-released.markdown | 2 +- ...2016-06-21-elixir-v1-3-0-released.markdown | 2 +- ...2017-01-05-elixir-v1-4-0-released.markdown | 2 +- crash-course.markdown | 4 +- .../alias-require-and-import.markdown | 8 +- getting-started/basic-operators.markdown | 18 ++--- getting-started/basic-types.markdown | 78 +++++++++---------- .../binaries-strings-and-char-lists.markdown | 48 ++++++------ getting-started/case-cond-and-if.markdown | 36 ++++----- getting-started/comprehensions.markdown | 18 ++--- getting-started/debugging.markdown | 4 +- .../enumerables-and-streams.markdown | 22 +++--- getting-started/erlang-libraries.markdown | 20 ++--- getting-started/introduction.markdown | 2 +- .../io-and-the-file-system.markdown | 18 ++--- getting-started/keywords-and-maps.markdown | 36 ++++----- .../meta/domain-specific-languages.markdown | 6 +- getting-started/meta/macros.markdown | 8 +- .../meta/quote-and-unquote.markdown | 26 +++---- getting-started/mix-otp/agent.markdown | 4 +- .../mix-otp/distributed-tasks.markdown | 12 +-- .../mix-otp/docs-tests-and-with.markdown | 4 +- .../mix-otp/dynamic-supervisor.markdown | 6 +- getting-started/mix-otp/ets.markdown | 4 +- getting-started/mix-otp/genserver.markdown | 4 +- .../mix-otp/introduction-to-mix.markdown | 2 +- .../supervisor-and-application.markdown | 20 ++--- .../mix-otp/task-and-gen-tcp.markdown | 2 +- getting-started/module-attributes.markdown | 2 +- .../modules-and-functions.markdown | 20 ++--- getting-started/pattern-matching.markdown | 40 +++++----- getting-started/processes.markdown | 28 +++---- getting-started/protocols.markdown | 22 +++--- getting-started/recursion.markdown | 6 +- getting-started/sigils.markdown | 30 +++---- getting-started/structs.markdown | 24 +++--- getting-started/try-catch-and-rescue.markdown | 36 ++++----- 38 files changed, 325 insertions(+), 325 deletions(-) diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index 554029398..8b94501f2 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -42,7 +42,7 @@ Even with all those improvements, Elixir v0.13.0 is backwards compatible with El Maps are key-value data structures: -```iex +```elixir iex> map = %{"hello" => :world} %{"hello" => :world} iex> map["hello"] @@ -55,7 +55,7 @@ Maps do not have a explicit ordering and keys and values can be any term. Maps can be pattern matched on: -```iex +```elixir iex> %{"hello" => world} = map %{"hello" => :world} iex> world @@ -72,7 +72,7 @@ Developers can use the functions in the [`Map` module](https://hexdocs.pm/elixir Maps also provide special syntax for creating, accessing and updating maps with atom keys: -```iex +```elixir iex> user = %{name: "john", age: 27} %{name: "john", age: 27} iex> user.name @@ -85,7 +85,7 @@ iex> user.name Both access and update syntax above expect the given keys to exist. Trying to access or update a key that does not exist raises an error: -```iex +```elixir iex> %{ user | address: [] } ** (ArgumentError) argument error :maps.update(:address, [], %{}) @@ -110,7 +110,7 @@ Internally, this record is represented as the following tuple: Records can also be created and pattern matched on: -```iex +```elixir iex> user = User[name: "john"] User[name: "john", age: 0] iex> user.name @@ -156,21 +156,21 @@ end Now a `User` struct can be created without a need to explicitly list all necessary fields: -```iex +```elixir iex> user = %User{name: "john"} %User{name: "john", age: 0} ``` Trying to create a struct with an unknown key raises an error during compilation: -```iex +```elixir iex> user = %User{address: []} ** (CompileError) unknown key :address for struct User ``` Furthermore, every struct has a `__struct__` field which contains the struct name: -```iex +```elixir iex> user.__struct__ User ``` @@ -195,21 +195,21 @@ Erlang R17 also introduced recursion to anonymous functions. This feature, while The most common use case of a comprehension are [list comprehensions](https://en.wikipedia.org/wiki/List_comprehension). For example, we can get all the square values of elements in a list as follows: -```iex +```elixir iex> for n <- [1, 2, 3, 4], do: n * n [1, 4, 9, 16] ``` We say the `n <- [1, 2, 3, 4]` part is a comprehension generator. In previous Elixir versions, Elixir supported only lists in generators. In Elixir v0.13.0, any Enumerable is supported (ranges, maps, etc): -```iex +```elixir iex> for n <- 1..4, do: n * n [1, 4, 9, 16] ``` As in previous Elixir versions, there is also support for a bitstring generator. In the example below, we receive a stream of RGB pixels as a binary and break it down into triplets: -```iex +```elixir iex> pixels = <<213, 45, 132, 64, 76, 32, 76, 0, 0, 234, 32, 15>> iex> for <>, do: {r, g, b} [{213, 45, 132}, {64, 76, 32}, {76, 0, 0}, {234, 32, 15}] @@ -217,7 +217,7 @@ iex> for <>, do: {r, g, b} By default, a comprehension returns a list as a result. However the result of a comprehension can be inserted into different data structures by passing the `:into` option. For example, we can use bitstring generators with the `:into` option to easily remove all spaces in a string: -```iex +```elixir iex> for <>, c != ?\s, into: "", do: <> "helloworld" ``` @@ -226,7 +226,7 @@ Sets, maps and other dictionaries can also be given with the `:into` option. In For example, the `IO` module provides streams, that are both `Enumerable` and `Collectable`. You can implement an echo terminal that returns whatever is typed into the shell, but in upcase, using comprehensions: -```iex +```elixir iex> stream = IO.stream(:stdio, :line) iex> for line <- stream, into: stream do ...> String.upcase(line) <> "\n" diff --git a/_posts/2016-01-03-elixir-v1-2-0-released.markdown b/_posts/2016-01-03-elixir-v1-2-0-released.markdown index 0019743ab..374156362 100644 --- a/_posts/2016-01-03-elixir-v1-2-0-released.markdown +++ b/_posts/2016-01-03-elixir-v1-2-0-released.markdown @@ -38,7 +38,7 @@ alias MyApp.{Foo, Bar, Baz} We have also added support for variables in map keys. Now you can write: -```iex +```elixir iex> key = :hello iex> value = "world" iex> %{key => value} diff --git a/_posts/2016-06-21-elixir-v1-3-0-released.markdown b/_posts/2016-06-21-elixir-v1-3-0-released.markdown index 6d4437747..be1fb29fc 100644 --- a/_posts/2016-06-21-elixir-v1-3-0-released.markdown +++ b/_posts/2016-06-21-elixir-v1-3-0-released.markdown @@ -71,7 +71,7 @@ Elixir v1.3 also introduces 3 new sigils related to the types above: This release introduces new accessors to make it simpler for developers to traverse nested data structures, traversing and updating data in different ways. For instance, given a user with a list of languages, here is how to deeply traverse the map and convert all language names to uppercase: -```iex +```elixir iex> user = %{name: "john", ...> languages: [%{name: "elixir", type: :functional}, ...> %{name: "c", type: :procedural}]} diff --git a/_posts/2017-01-05-elixir-v1-4-0-released.markdown b/_posts/2017-01-05-elixir-v1-4-0-released.markdown index 948e76cd1..7c963a54d 100644 --- a/_posts/2017-01-05-elixir-v1-4-0-released.markdown +++ b/_posts/2017-01-05-elixir-v1-4-0-released.markdown @@ -22,7 +22,7 @@ Broadly speaking, the Registry is a local, decentralized and scalable key-value A registry may have unique or duplicate keys. Every key-value pair is associated to the process registering the key. Keys are automatically removed once the owner process terminates. Starting, registering and looking up keys is quite straight-forward: -```iex +```elixir iex> Registry.start_link(:unique, MyRegistry) iex> {:ok, _} = Registry.register(MyRegistry, "hello", 1) iex> Registry.lookup(MyRegistry, "hello") diff --git a/crash-course.markdown b/crash-course.markdown index 3b4d111e3..d56a5ed4e 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -53,7 +53,7 @@ end And compiled from `iex`: -```iex +```elixir Interactive Elixir iex> c("module_name.ex") [ModuleName] @@ -141,7 +141,7 @@ ok **Elixir** -```iex +```elixir iex> a = 1 1 iex> a = 2 diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 1f4eba505..633d864fb 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -77,7 +77,7 @@ Elixir provides macros as a mechanism for meta-programming (writing code that ge Public functions in modules are globally available, but in order to use macros, you need to opt-in by requiring the module they are defined in. -```iex +```elixir iex> Integer.is_odd(3) ** (CompileError) iex:1: you must require Integer before invoking the macro Integer.is_odd/1 (elixir) src/elixir_dispatch.erl:97: :elixir_dispatch.dispatch_require/6 @@ -97,7 +97,7 @@ We use `import` whenever we want to access functions or macros from other module For example, if we want to use the `duplicate/2` function from the `List` module several times, we can import it: -```iex +```elixir iex> import List, only: [duplicate: 2] List iex> duplicate :ok, 3 @@ -164,7 +164,7 @@ At this point, you may be wondering: what exactly is an Elixir alias and how is An alias in Elixir is a capitalized identifier (like `String`, `Keyword`, etc) which is converted to an atom during compilation. For instance, the `String` alias translates by default to the atom `:"Elixir.String"`: -```iex +```elixir iex> is_atom(String) true iex> to_string(String) @@ -177,7 +177,7 @@ By using the `alias/2` directive, we are changing the atom the alias expands to. Aliases expand to atoms because in the Erlang VM (and consequently Elixir) modules are always represented by atoms. For example, that's the mechanism we use to call Erlang modules: -```iex +```elixir iex> :lists.flatten([1, [2], 3]) [1, 2, 3] ``` diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 550acc9d7..656202b3f 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -11,7 +11,7 @@ In the [previous chapter](/getting-started/basic-types.html), we saw Elixir prov Elixir also provides `++` and `--` to manipulate lists: -```iex +```elixir iex> [1, 2, 3] ++ [4, 5, 6] [1, 2, 3, 4, 5, 6] iex> [1, 2, 3] -- [2] @@ -20,14 +20,14 @@ iex> [1, 2, 3] -- [2] String concatenation is done with `<>`: -```iex +```elixir iex> "foo" <> "bar" "foobar" ``` Elixir also provides three boolean operators: `or`, `and` and `not`. These operators are strict in the sense that they expect something that evaluates to a boolean (`true` or `false`) as their first argument: -```iex +```elixir iex> true and true true iex> false or is_atom(:example) @@ -36,14 +36,14 @@ true Providing a non-boolean will raise an exception: -```iex +```elixir iex> 1 and true ** (BadBooleanError) expected a boolean on left-side of "and", got: 1 ``` `or` and `and` are short-circuit operators. They only execute the right side if the left side is not enough to determine the result: -```iex +```elixir iex> false and raise("This error will never be raised") false iex> true or raise("This error will never be raised") @@ -54,7 +54,7 @@ true Besides these boolean operators, Elixir also provides `||`, `&&` and `!` which accept arguments of any type. For these operators, all values except `false` and `nil` will evaluate to true: -```iex +```elixir # or iex> 1 || true 1 @@ -80,7 +80,7 @@ As a rule of thumb, use `and`, `or` and `not` when you are expecting booleans. I Elixir also provides `==`, `!=`, `===`, `!==`, `<=`, `>=`, `<` and `>` as comparison operators: -```iex +```elixir iex> 1 == 1 true iex> 1 != 2 @@ -91,7 +91,7 @@ true The difference between `==` and `===` is that the latter is more strict when comparing integers and floats: -```iex +```elixir iex> 1 == 1.0 true iex> 1 === 1.0 @@ -100,7 +100,7 @@ false In Elixir, we can compare two different data types: -```iex +```elixir iex> 1 < :atom true ``` diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index 39a444c35..a29516a51 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -9,7 +9,7 @@ title: Basic types In this chapter we will learn more about Elixir basic types: integers, floats, booleans, atoms, strings, lists and tuples. Some basic types are: -```iex +```elixir iex> 1 # integer iex> 0x1F # integer iex> 1.0 # float @@ -24,7 +24,7 @@ iex> {1, 2, 3} # tuple Open up `iex` and type the following expressions: -```iex +```elixir iex> 1 + 2 3 iex> 5 * 5 @@ -35,7 +35,7 @@ iex> 10 / 2 Notice that `10 / 2` returned a float `5.0` instead of an integer `5`. This is expected. In Elixir, the operator `/` always returns a float. If you want to do integer division or get the division remainder, you can invoke the `div` and `rem` functions: -```iex +```elixir iex> div(10, 2) 5 iex> div 10, 2 @@ -48,7 +48,7 @@ Notice that Elixir allows you to drop the parentheses when invoking named functi Elixir also supports shortcut notations for entering binary, octal, and hexadecimal numbers: -```iex +```elixir iex> 0b1010 10 iex> 0o777 @@ -59,7 +59,7 @@ iex> 0x1F Float numbers require a dot followed by at least one digit and also support `e` for scientific notation: -```iex +```elixir iex> 1.0 1.0 iex> 1.0e-10 @@ -70,7 +70,7 @@ Floats in Elixir are 64-bit double precision. You can invoke the `round` function to get the closest integer to a given float, or the `trunc` function to get the integer part of a float. -```iex +```elixir iex> round(3.58) 4 iex> trunc(3.58) @@ -83,7 +83,7 @@ Functions in Elixir are identified by both their name and their arity. The arity We can also use this syntax to access documentation. The Elixir shell defines the `h` function, which you can use to access documentation for any function. For example, typing `h round/1` is going to print the documentation for the `round/1` function: -```iex +```elixir iex> h round/1 def round() @@ -96,7 +96,7 @@ It also works with operators and other constructs (try `h +/2`). Invoking `h` wi Elixir supports `true` and `false` as booleans: -```iex +```elixir iex> true true iex> true == false @@ -105,7 +105,7 @@ false Elixir provides a bunch of predicate functions to check for a value type. For example, the `is_boolean/1` function can be used to check if a value is a boolean or not: -```iex +```elixir iex> is_boolean(true) true iex> is_boolean(1) @@ -118,7 +118,7 @@ You can also use `is_integer/1`, `is_float/1` or `is_number/1` to check, respect An atom is a constant whose value is its own name. Some other languages call these symbols. They are often useful to enumerate over distinct values, such as: -```iex +```elixir iex> :apple :apple iex> :orange @@ -129,7 +129,7 @@ iex> :watermelon Atoms are equal if their names are equal. -```iex +```elixir iex> :apple == :apple true iex> :apple == :orange @@ -140,7 +140,7 @@ Often they are used to express the state of an operation, by using values such a The booleans `true` and `false` are also atoms: -```iex +```elixir iex> true == :true true iex> is_atom(false) @@ -154,7 +154,7 @@ Elixir allows you to skip the leading `:` for the atoms `false`, `true` and `nil Finally, Elixir has a construct called aliases which we will explore later. Aliases start in upper case and are also atoms: -```iex +```elixir iex> is_atom(Hello) true ``` @@ -163,7 +163,7 @@ true Strings in Elixir are delimited by double quotes, and they are encoded in UTF-8: -```iex +```elixir iex> "hellö" "hellö" ``` @@ -172,14 +172,14 @@ iex> "hellö" Elixir also supports string interpolation: -```iex +```elixir iex> "hellö #{:world}" "hellö world" ``` Strings can have line breaks in them. You can introduce them using escape sequences: -```iex +```elixir iex> "hello ...> world" "hello\nworld" @@ -189,7 +189,7 @@ iex> "hello\nworld" You can print a string using the `IO.puts/1` function from the `IO` module: -```iex +```elixir iex> IO.puts "hello\nworld" hello world @@ -200,28 +200,28 @@ Notice that the `IO.puts/1` function returns the atom `:ok` after printing. Strings in Elixir are represented internally by contiguous sequences of bytes known as binaries: -```iex +```elixir iex> is_binary("hellö") true ``` We can also get the number of bytes in a string: -```iex +```elixir iex> byte_size("hellö") 6 ``` Notice that the number of bytes in that string is 6, even though it has 5 characters. That's because the character "ö" takes 2 bytes to be represented in UTF-8. We can get the actual length of the string, based on the number of characters, by using the `String.length/1` function: -```iex +```elixir iex> String.length("hellö") 5 ``` The [String module](https://hexdocs.pm/elixir/String.html) contains a bunch of functions that operate on strings as defined in the Unicode standard: -```iex +```elixir iex> String.upcase("hellö") "HELLÖ" ``` @@ -230,7 +230,7 @@ iex> String.upcase("hellö") Elixir also provides anonymous functions. Anonymous functions allow us to store and pass executable code around as if it was an integer or a string. They are delimited by the keywords `fn` and `end`: -```iex +```elixir iex> add = fn a, b -> a + b end #Function<12.71889879/2 in :erl_eval.expr/5> iex> add.(1, 2) @@ -245,7 +245,7 @@ Parenthesised arguments after the anonymous function indicate that we want the f Anonymous functions in Elixir are also identified by the number of arguments they receive. We can check if a function is of any given arity by using `is_function/2`: -```iex +```elixir # check if add is a function that expects exactly 2 arguments iex> is_function(add, 2) true @@ -256,7 +256,7 @@ false Finally, anonymous functions are also closures and as such they can access variables that are in scope when the function is defined. Let's define a new anonymous function that uses the `add` anonymous function we have previously defined: -```iex +```elixir iex> double = fn a -> add.(a, a) end #Function<6.71889879/1 in :erl_eval.expr/5> iex> double.(2) @@ -265,7 +265,7 @@ iex> double.(2) A variable assigned inside a function does not affect its surrounding environment: -```iex +```elixir iex> x = 42 42 iex> (fn -> x = 0 end).() @@ -278,7 +278,7 @@ iex> x Elixir uses square brackets to specify a list of values. Values can be of any type: -```iex +```elixir iex> [1, 2, true, 3] [1, 2, true, 3] iex> length [1, 2, 3] @@ -287,7 +287,7 @@ iex> length [1, 2, 3] Two lists can be concatenated or subtracted using the `++/2` and `--/2` operators respectively: -```iex +```elixir iex> [1, 2, 3] ++ [4, 5, 6] [1, 2, 3, 4, 5, 6] iex> [1, true, 2, false, 3, true] -- [true, false] @@ -298,7 +298,7 @@ List operators never modify the existing list. Concatenating to or removing elem Throughout the tutorial, we will talk a lot about the head and tail of a list. The head is the first element of a list and the tail is the remainder of the list. They can be retrieved with the functions `hd/1` and `tl/1`. Let's assign a list to a variable and retrieve its head and tail: -```iex +```elixir iex> list = [1, 2, 3] iex> hd(list) 1 @@ -308,14 +308,14 @@ iex> tl(list) Getting the head or the tail of an empty list throws an error: -```iex +```elixir iex> hd [] ** (ArgumentError) argument error ``` Sometimes you will create a list and it will return a value in single quotes. For example: -```iex +```elixir iex> [11, 12, 13] '\v\f\r' iex> [104, 101, 108, 108, 111] @@ -324,7 +324,7 @@ iex> [104, 101, 108, 108, 111] When Elixir sees a list of printable ASCII numbers, Elixir will print that as a charlist (literally a list of characters). Charlists are quite common when interfacing with existing Erlang code. Whenever you see a value in IEx and you are not quite sure what it is, you can use the `i/1` to retrieve information about it: -```iex +```elixir iex> i 'hello' Term 'hello' @@ -342,7 +342,7 @@ Implemented protocols Keep in mind single-quoted and double-quoted representations are not equivalent in Elixir as they are represented by different types: -```iex +```elixir iex> 'hello' == "hello" false ``` @@ -353,7 +353,7 @@ Single quotes are charlists, double quotes are strings. We will talk more about Elixir uses curly brackets to define tuples. Like lists, tuples can hold any value: -```iex +```elixir iex> {:ok, "hello"} {:ok, "hello"} iex> tuple_size {:ok, "hello"} @@ -362,7 +362,7 @@ iex> tuple_size {:ok, "hello"} Tuples store elements contiguously in memory. This means accessing a tuple element by index or getting the tuple size is a fast operation. Indexes start from zero: -```iex +```elixir iex> tuple = {:ok, "hello"} {:ok, "hello"} iex> elem(tuple, 1) @@ -373,7 +373,7 @@ iex> tuple_size(tuple) It is also possible to put an element at a particular index in a tuple with `put_elem/3`: -```iex +```elixir iex> tuple = {:ok, "hello"} {:ok, "hello"} iex> put_elem(tuple, 1, "world") @@ -392,7 +392,7 @@ Lists are stored in memory as linked lists, meaning that each element in a list Similarly, the performance of list concatenation depends on the length of the left-hand list: -```iex +```elixir iex> list = [1, 2, 3] # This is fast as we only need to traverse `[0]` to prepend to `list` @@ -406,7 +406,7 @@ iex> list ++ [4] Tuples, on the other hand, are stored contiguously in memory. This means getting the tuple size or accessing an element by index is fast. However, updating or adding elements to tuples is expensive because it requires creating a new tuple in memory: -```iex +```elixir iex> tuple = {:a, :b, :c, :d} iex> put_elem(tuple, 2, :e) {:a, :b, :e, :d} @@ -416,7 +416,7 @@ Note that this applies only to the tuple itself, not its contents. For instance, Those performance characteristics dictate the usage of those data structures. One very common use case for tuples is to use them to return extra information from a function. For example, `File.read/1` is a function that can be used to read file contents. It returns a tuple: -```iex +```elixir iex> File.read("path/to/existing/file") {:ok, "... contents ..."} iex> File.read("path/to/unknown/file") @@ -427,7 +427,7 @@ If the path given to `File.read/1` exists, it returns a tuple with the atom `:ok Most of the time, Elixir is going to guide you to do the right thing. For example, there is an `elem/2` function to access a tuple item but there is no built-in equivalent for lists: -```iex +```elixir iex> tuple = {:ok, "hello"} {:ok, "hello"} iex> elem(tuple, 1) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 2458f1dc5..eb894fc4e 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -9,7 +9,7 @@ title: Binaries, strings, and charlists In "Basic types", we learned a little bit about strings and we used the `is_binary/1` function for checks: -```iex +```elixir iex> string = "hello" "hello" iex> is_binary(string) @@ -26,7 +26,7 @@ Unicode organizes all of the characters in its repertoire into code charts, and In Elixir you can use a `?` in front of a character literal to reveal its code point: -```iex +```elixir iex> ?a 97 iex> ?ł @@ -35,7 +35,7 @@ iex> ?ł Note that most Unicode code charts will refer to a code point by its hexadecimal representation, e.g. `97` translates to `0061` in hex, and we can represent any Unicode character in an Elixir string by using the `\u` notation and the hex representation of its code point number: -```iex +```elixir iex> "\u0061" === "a" true iex> 0x0061 = 97 = ?a @@ -52,7 +52,7 @@ Elixir uses UTF-8 to encode its strings, which means that code points are encode Because UTF-8 is a variable width encoding, the number of characters (i.e. code points) and the number of bytes in a string may not be 1:1. Consider the following: -```iex +```elixir iex> string = "hełło" "hełło" iex> String.length(string) @@ -67,14 +67,14 @@ iex> byte_size(string) A common trick in Elixir when you want to see the inner binary representation of a string is to concatenate the null byte `<<0>>` to it: -```iex +```elixir iex> "hełło" <> <<0>> <<104, 101, 197, 130, 197, 130, 111, 0>> ``` Alternatively, you can view a string's binary representation by using [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2): -```iex +```elixir iex> IO.inspect("hełło", binaries: :as_binaries) <<104, 101, 197, 130, 197, 130, 111>> ``` @@ -89,7 +89,7 @@ A complete reference about the binary / bitstring constructor `<<>>` can be foun By default, 8 bits (i.e. 1 byte) is used to store each number in a bitstring, but you can manually specify the number of bits via a `::n` modifier to denote the size in `n` bits, or you can use the more verbose declaration `::size(n)`: -```iex +```elixir iex> <<42>> === <<42::8>> true iex> <<3::4>> @@ -98,14 +98,14 @@ iex> <<3::4>> For example, the decimal number `3` when represented with 4 bits in base 2 would be `0011`, which is equivalent to the values `0`, `0`, `1`, `1`, each stored using 1 bit: -```iex +```elixir iex> <<0::1, 0::1, 1::1, 1::1>> == <<3::4>> true ``` Any value that exceeds what can be stored by the number of bits provisioned is truncated: -```iex +```elixir iex> <<1>> === <<257>> true ``` @@ -115,7 +115,7 @@ Here, 257 in base 2 would be represented as `100000001`, but since we have reser **A binary is a bitstring where the number of bits is divisible by 8.** That means that every binary is a bitstring, but not every bitstring is a binary. We can use the `is_bitstring/1` and `is_binary/1` functions to demonstrate this. -```iex +```elixir iex> is_bitstring(<<3::4>>) true iex> is_binary(<<3::4>>) @@ -130,7 +130,7 @@ true We can pattern match on binaries / bitstrings: -```iex +```elixir iex> <<0, 1, x>> = <<0, 1, 2>> <<0, 1, 2>> iex> x @@ -141,7 +141,7 @@ iex> <<0, 1, x>> = <<0, 1, 2, 3>> Note that unless you explicitly use `::` modifiers, each entry in the binary pattern is expected to match a single byte (exactly 8 bits). If we want to match on a binary of unknown size, we can use the `binary` modifier at the end of the pattern: -```iex +```elixir iex> <<0, 1, x :: binary>> = <<0, 1, 2, 3>> <<0, 1, 2, 3>> iex> x @@ -150,7 +150,7 @@ iex> x There are a couple other modifiers that can be useful when doing pattern matches on binaries. The `binary-size(n)` modifier will match `n` bytes in a binary: -```iex +```elixir iex> <> = <<0, 1, 2, 3>> <<0, 1, 2, 3>> iex> head @@ -161,7 +161,7 @@ iex> rest **A string is a UTF-8 encoded binary**, where the code point for each character is encoded using 1 to 4 bytes. Thus every string is a binary, but due to the UTF-8 standard encoding rules, not every binary is a valid string. -```iex +```elixir iex> is_binary("hello") true iex> is_binary(<<239, 191, 19>>) @@ -172,7 +172,7 @@ false The string concatenation operator `<>` is actually a binary concatenation operator: -```iex +```elixir iex> "a" <> "ha" "aha" iex> <<0, 1>> <> <<2, 3>> @@ -181,7 +181,7 @@ iex> <<0, 1>> <> <<2, 3>> Given strings are binaries, we can also pattern match on strings: -```iex +```elixir iex> <> = "banana" "banana" iex> head == ?b @@ -192,7 +192,7 @@ iex> rest However, remember binary pattern matching works on *bytes*, so matching on the string like "über" with multibyte characters won't match on the _character_, it will match on the _first byte of that character_: -```iex +```elixir iex> "ü" <> <<0>> <<195, 188, 0>> iex> <> = "über" @@ -207,7 +207,7 @@ Above, `x` matched on only the first byte of the multibyte `ü` character. Therefore, when pattern matching on strings, it is important to use the `utf8` modifier: -```iex +```elixir iex> <> = "über" "über" iex> x == ?ü @@ -226,7 +226,7 @@ Our tour of our bitstrings, binaries, and strings is nearly complete, but we hav Whereas strings (i.e. binaries) are created using double-quotes, charlists are created with single-quoted literals: -```iex +```elixir iex> 'hełło' [104, 101, 322, 322, 111] iex> is_list 'hełło' @@ -239,7 +239,7 @@ iex> List.first('hello') You can see that instead of containing bytes, a charlist contains integer code points. By default, IEx will only output code points if any of the integers falls outside the ASCII range of 0 to 127. -```iex +```elixir iex> 'hello' 'hello' iex> 'hełło' @@ -248,7 +248,7 @@ iex> 'hełło' If you wish to inspect the code points in a single-quoted literal, you can force this by passing the `charlists` option to `IO.inspect/2`: -```iex +```elixir iex> IO.inspect('hello', charlists: :as_lists) [104, 101, 108, 108, 111] 'hello' @@ -256,14 +256,14 @@ iex> IO.inspect('hello', charlists: :as_lists) Interpreting integers as codepoints may lead to some surprising behavior. For example, if you are storing a list of integers that happen to range between 0 and 127, by default IEx will interpret this as a charlist and it will display the corresponding ASCII characters. -```iex +```elixir iex> heartbeats_per_minute = [99, 97, 116] 'cat' ``` You can convert a charlist to a string and back by using the `to_string/1` and `to_charlist/1` functions: -```iex +```elixir iex> to_charlist "hełło" [104, 101, 322, 322, 111] iex> to_string 'hełło' @@ -278,7 +278,7 @@ Note that those functions are polymorphic: not only do they convert charlists to String (binary) concatenation uses the `<>` operator but charlists, being lists, use the list concatenation operator `++`: -```iex +```elixir iex> 'this ' <> 'fails' ** (CompileError) iex:2: invalid literal 'this ' in <<>> (elixir) src/elixir_bitstring.erl:19: :elixir_bitstring.expand/6 diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 17fb87236..58dc413cf 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -13,7 +13,7 @@ In this chapter, we will learn about the `case`, `cond`, and `if` control flow s `case` allows us to compare a value against many patterns until we find a matching one: -```iex +```elixir iex> case {1, 2, 3} do ...> {4, 5, 6} -> ...> "This clause won't match" @@ -27,7 +27,7 @@ iex> case {1, 2, 3} do If you want to pattern match against an existing variable, you need to use the `^` operator: -```iex +```elixir iex> x = 1 1 iex> case 10 do @@ -39,7 +39,7 @@ iex> case 10 do Clauses also allow extra conditions to be specified via guards: -```iex +```elixir iex> case {1, 2, 3} do ...> {1, x, 3} when x > 0 -> ...> "Will match" @@ -53,7 +53,7 @@ The first clause above will only match when `x` is positive. Keep in mind errors in guards do not leak but simply make the guard fail: -```iex +```elixir iex> hd(1) ** (ArgumentError) argument error iex> case 1 do @@ -65,7 +65,7 @@ iex> case 1 do If none of the clauses match, an error is raised: -```iex +```elixir iex> case :ok do ...> :error -> "Won't match" ...> end @@ -76,7 +76,7 @@ Consult [the full documentation for guards](https://hexdocs.pm/elixir/guards.htm Note anonymous functions can also have multiple clauses and guards: -```iex +```elixir iex> f = fn ...> x, y when x > 0 -> x + y ...> x, y -> x * y @@ -90,7 +90,7 @@ iex> f.(-1, 3) The number of arguments in each anonymous function clause needs to be the same, otherwise an error is raised. -```iex +```elixir iex> f2 = fn ...> x, y when x > 0 -> x + y ...> x, y, z -> x * y + z @@ -102,7 +102,7 @@ iex> f2 = fn `case` is useful when you need to match against different values. However, in many circumstances, we want to check different conditions and find the first one that does not evaluate to `nil` or `false`. In such cases, one may use `cond`: -```iex +```elixir iex> cond do ...> 2 + 2 == 5 -> ...> "This will not be true" @@ -118,7 +118,7 @@ This is equivalent to `else if` clauses in many imperative languages (although u If all of the conditions return `nil` or `false`, an error (`CondClauseError`) is raised. For this reason, it may be necessary to add a final condition, equal to `true`, which will always match: -```iex +```elixir iex> cond do ...> 2 + 2 == 5 -> ...> "This is never true" @@ -132,7 +132,7 @@ iex> cond do Finally, note `cond` considers any value besides `nil` and `false` to be true: -```iex +```elixir iex> cond do ...> hd([1, 2, 3]) -> ...> "1 is considered as true" @@ -144,7 +144,7 @@ iex> cond do Besides `case` and `cond`, Elixir also provides the macros `if/2` and `unless/2` which are useful when you need to check for only one condition: -```iex +```elixir iex> if true do ...> "This works!" ...> end @@ -159,7 +159,7 @@ If the condition given to `if/2` returns `false` or `nil`, the body given betwee They also support `else` blocks: -```iex +```elixir iex> if nil do ...> "This won't be seen" ...> else @@ -174,21 +174,21 @@ iex> if nil do At this point, we have learned four control structures: `case`, `cond`, `if`, and `unless`, and they were all wrapped in `do/end` blocks. It happens we could also write `if` as follows: -```iex +```elixir iex> if true, do: 1 + 2 3 ``` Notice how the example above has a comma between `true` and `do:`, that's because it is using Elixir's regular syntax where each argument is separated by a comma. We say this syntax is using *keyword lists*. We can pass `else` using keywords too: -```iex +```elixir iex> if false, do: :this, else: :that :that ``` `do/end` blocks are a syntactic convenience built on top of the keywords one. That's why `do/end` blocks do not require a comma between the previous argument and the block. They are useful exactly because they remove the verbosity when writing blocks of code. These are equivalent: -```iex +```elixir iex> if true do ...> a = 1 + 2 ...> a + 10 @@ -203,7 +203,7 @@ iex> if true, do: ( One thing to keep in mind when using `do/end` blocks is they are always bound to the outermost function call. For example, the following expression: -```iex +```elixir iex> is_number if true do ...> 1 + 2 ...> end @@ -212,7 +212,7 @@ iex> is_number if true do Would be parsed as: -```iex +```elixir iex> is_number(if true) do ...> 1 + 2 ...> end @@ -223,7 +223,7 @@ which leads to an undefined function error because that invocation passes two ar Adding explicit parentheses is enough to bind the block to `if`: -```iex +```elixir iex> is_number(if true do ...> 1 + 2 ...> end) diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index e7342fd09..ef09d9e36 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -11,7 +11,7 @@ In Elixir, it is common to loop over an Enumerable, often filtering out some res For example, we can map a list of integers into their squared values: -```iex +```elixir iex> for n <- [1, 2, 3, 4], do: n * n [1, 4, 9, 16] ``` @@ -22,14 +22,14 @@ A comprehension is made of three parts: generators, filters, and collectables. In the expression above, `n <- [1, 2, 3, 4]` is the **generator**. It is literally generating values to be used in the comprehension. Any enumerable can be passed on the right-hand side of the generator expression: -```iex +```elixir iex> for n <- 1..4, do: n * n [1, 4, 9, 16] ``` Generator expressions also support pattern matching on their left-hand side; all non-matching patterns are *ignored*. Imagine that, instead of a range, we have a keyword list where the key is the atom `:good` or `:bad` and we only want to compute the square of the `:good` values: -```iex +```elixir iex> values = [good: 1, good: 2, bad: 3, good: 4] iex> for {:good, n} <- values, do: n * n [1, 4, 16] @@ -37,7 +37,7 @@ iex> for {:good, n} <- values, do: n * n Alternatively to pattern matching, filters can be used to select some particular elements. For example, we can select the multiples of 3 and discard all others: -```iex +```elixir iex> multiple_of_3? = fn(n) -> rem(n, 3) == 0 end iex> for n <- 0..5, multiple_of_3?.(n), do: n * n [0, 9] @@ -59,7 +59,7 @@ end Multiple generators can also be used to calculate the cartesian product of two lists: -```iex +```elixir iex> for i <- [:a, :b, :c], j <- [1, 2], do: {i, j} [a: 1, a: 2, b: 1, b: 2, c: 1, c: 2] ``` @@ -70,7 +70,7 @@ Finally, keep in mind that variable assignments inside the comprehension, be it Bitstring generators are also supported and are very useful when you need to comprehend over bitstring streams. The example below receives a list of pixels from a binary with their respective red, green and blue values and converts them into tuples of three elements each: -```iex +```elixir iex> pixels = <<213, 45, 132, 64, 76, 32, 76, 0, 0, 234, 32, 15>> iex> for <>, do: {r, g, b} [{213, 45, 132}, {64, 76, 32}, {76, 0, 0}, {234, 32, 15}] @@ -84,7 +84,7 @@ In the examples above, all the comprehensions returned lists as their result. Ho For example, a bitstring generator can be used with the `:into` option in order to easily remove all spaces in a string: -```iex +```elixir iex> for <>, c != ?\s, into: "", do: <> "helloworld" ``` @@ -93,14 +93,14 @@ Sets, maps, and other dictionaries can also be given to the `:into` option. In g A common use case of `:into` can be transforming values in a map, without touching the keys: -```iex +```elixir iex> for {key, val} <- %{"a" => 1, "b" => 2}, into: %{}, do: {key, val * val} %{"a" => 1, "b" => 4} ``` Let's make another example using streams. Since the `IO` module provides streams (that are both `Enumerable`s and `Collectable`s), an echo terminal that echoes back the upcased version of whatever is typed can be implemented using comprehensions: -```iex +```elixir iex> stream = IO.stream(:stdio, :line) iex> for line <- stream, into: stream do ...> String.upcase(line) <> "\n" diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index 3f0fecae8..05771b315 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -110,7 +110,7 @@ end Now we can start our debugger: -```iex +```elixir $ iex -S mix iex(1)> :debugger.start() {:ok, #PID<0.87.0>} @@ -129,7 +129,7 @@ When you start the debugger, a Graphical User Interface will open in your machin For debugging complex systems, jumping at the code is not enough. It is necessary to have an understanding of the whole virtual machine, processes, applications, as well as set up tracing mechanisms. Luckily this can be achieved in Erlang with `:observer`. In your application: -```iex +```elixir $ iex -S mix iex(1)> :observer.start() ``` diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index c76a7ed0f..772e34216 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -11,7 +11,7 @@ title: Enumerables and Streams Elixir provides the concept of enumerables and [the `Enum` module](https://hexdocs.pm/elixir/Enum.html) to work with them. We have already learned two enumerables: lists and maps. -```iex +```elixir iex> Enum.map([1, 2, 3], fn x -> x * 2 end) [2, 4, 6] iex> Enum.map(%{1 => 2, 3 => 4}, fn {k, v} -> k * v end) @@ -22,7 +22,7 @@ The `Enum` module provides a huge range of functions to transform, sort, group, Elixir also provides ranges: -```iex +```elixir iex> Enum.map(1..3, fn x -> x * 2 end) [2, 4, 6] iex> Enum.reduce(1..3, 0, &+/2) @@ -37,7 +37,7 @@ We say the functions in the `Enum` module are polymorphic because they can work All the functions in the `Enum` module are eager. Many functions expect an enumerable and return a list back: -```iex +```elixir iex> odd? = &(rem(&1, 2) != 0) #Function<6.80484245/1 in :erl_eval.expr/5> iex> Enum.filter(1..3, odd?) @@ -46,7 +46,7 @@ iex> Enum.filter(1..3, odd?) This means that when performing multiple operations with `Enum`, each operation is going to generate an intermediate list until we reach the result: -```iex +```elixir iex> 1..100_000 |> Enum.map(&(&1 * 3)) |> Enum.filter(odd?) |> Enum.sum 7500000000 ``` @@ -57,7 +57,7 @@ The example above has a pipeline of operations. We start with a range and then m The `|>` symbol used in the snippet above is the **pipe operator**: it takes the output from the expression on its left side and passes it as the first argument to the function call on its right side. It's similar to the Unix `|` operator. Its purpose is to highlight the data being transformed by a series of functions. To see how it can make the code cleaner, have a look at the example above rewritten without using the `|>` operator: -```iex +```elixir iex> Enum.sum(Enum.filter(Enum.map(1..100_000, &(&1 * 3)), odd?)) 7500000000 ``` @@ -68,7 +68,7 @@ Find more about the pipe operator [by reading its documentation](https://hexdocs As an alternative to `Enum`, Elixir provides [the `Stream` module](https://hexdocs.pm/elixir/Stream.html) which supports lazy operations: -```iex +```elixir iex> 1..100_000 |> Stream.map(&(&1 * 3)) |> Stream.filter(odd?) |> Enum.sum 7500000000 ``` @@ -77,14 +77,14 @@ Streams are lazy, composable enumerables. In the example above, `1..100_000 |> Stream.map(&(&1 * 3))` returns a data type, an actual stream, that represents the `map` computation over the range `1..100_000`: -```iex +```elixir iex> 1..100_000 |> Stream.map(&(&1 * 3)) #Stream<[enum: 1..100000, funs: [#Function<34.16982430/1 in Stream.map/2>]]> ``` Furthermore, they are composable because we can pipe many stream operations: -```iex +```elixir iex> 1..100_000 |> Stream.map(&(&1 * 3)) |> Stream.filter(odd?) #Stream<[enum: 1..100000, funs: [...]]> ``` @@ -93,7 +93,7 @@ Instead of generating intermediate lists, streams build a series of computations Many functions in the `Stream` module accept any enumerable as an argument and return a stream as a result. It also provides functions for creating streams. For example, `Stream.cycle/1` can be used to create a stream that cycles a given enumerable infinitely. Be careful to not call a function like `Enum.map/2` on such streams, as they would cycle forever: -```iex +```elixir iex> stream = Stream.cycle([1, 2, 3]) #Function<15.16982430/2 in Stream.unfold/2> iex> Enum.take(stream, 10) @@ -102,7 +102,7 @@ iex> Enum.take(stream, 10) On the other hand, `Stream.unfold/2` can be used to generate values from a given initial value: -```iex +```elixir iex> stream = Stream.unfold("hełło", &String.next_codepoint/1) #Function<39.75994740/2 in Stream.unfold/2> iex> Enum.take(stream, 3) @@ -111,7 +111,7 @@ iex> Enum.take(stream, 3) Another interesting function is `Stream.resource/3` which can be used to wrap around resources, guaranteeing they are opened right before enumeration and closed afterwards, even in the case of failures. For example, `File.stream!/1` builds on top of `Stream.resource/3` to stream files: -```iex +```elixir iex> stream = File.stream!("path/to/file") %File.Stream{ line_or_bytes: :line, diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index eed7b6fc3..2da2590e6 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -22,7 +22,7 @@ The built-in Elixir String module handles binaries that are UTF-8 encoded. [The binary module](http://erlang.org/doc/man/binary.html) is useful when you are dealing with binary data that is not necessarily UTF-8 encoded. -```iex +```elixir iex> String.to_charlist "Ø" [216] iex> :binary.bin_to_list "Ø" @@ -40,7 +40,7 @@ languages. Luckily, the Erlang standard library functions `:io.format/2` and the second formats to an iolist. The format specifiers differ from `printf`, [refer to the Erlang documentation for details](http://erlang.org/doc/man/io.html#format-1). -```iex +```elixir iex> :io.format("Pi is approximately given by:~10.3f~n", [:math.pi]) Pi is approximately given by: 3.142 :ok @@ -56,7 +56,7 @@ Unicode handling. [The crypto module](http://erlang.org/doc/man/crypto.html) contains hashing functions, digital signatures, encryption and more: -```iex +```elixir iex> Base.encode16(:crypto.hash(:sha256, "Elixir")) "3315715A7A3AD57428298676C5AE465DADA38D951BDFAC9348A8A31E9C7401CB" ``` @@ -82,7 +82,7 @@ for instance, the shortest path between two vertices, or loops in the graph. Given three vertices, find the shortest path from the first to the last. -```iex +```elixir iex> digraph = :digraph.new() iex> coords = [{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}] iex> [v0, v1, v2] = (for c <- coords, do: :digraph.add_vertex(digraph, c)) @@ -110,7 +110,7 @@ mechanism. The functions in the `ets` module will modify the state of the table as a side-effect. -```iex +```elixir iex> table = :ets.new(:ets_test, []) # Store as tuples with {name, population} iex> :ets.insert(table, {"China", 1_374_000_000}) @@ -128,7 +128,7 @@ iex> :ets.i(table) mathematical operations covering trigonometry, exponential, and logarithmic functions. -```iex +```elixir iex> angle_45_deg = :math.pi() * 45.0 / 180.0 iex> :math.sin(angle_45_deg) 0.7071067811865475 @@ -143,7 +143,7 @@ iex> :math.log(7.694785265142018e23) The [`queue` is a data structure](http://erlang.org/doc/man/queue.html) that implements (double-ended) FIFO (first-in first-out) queues efficiently: -```iex +```elixir iex> q = :queue.new iex> q = :queue.in("A", q) iex> q = :queue.in("B", q) @@ -163,7 +163,7 @@ iex> value [`rand` has functions](http://erlang.org/doc/man/rand.html) for returning random values and setting the random seed. -```iex +```elixir iex> :rand.uniform() 0.8175669086010815 iex> _ = :rand.seed(:exs1024, {123, 123534, 345345}) @@ -180,7 +180,7 @@ ZIP files to and from disk or memory, as well as extracting file information. This code counts the number of files in a ZIP file: -```iex +```elixir iex> :zip.foldl(fn _, _, _, acc -> acc + 1 end, 0, :binary.bin_to_list("file.zip")) {:ok, 633} ``` @@ -188,7 +188,7 @@ iex> :zip.foldl(fn _, _, _, acc -> acc + 1 end, 0, :binary.bin_to_list("file.zip [The `zlib` module](http://erlang.org/doc/man/zlib.html) deals with data compression in zlib format, as found in the `gzip` command. -```iex +```elixir iex> song = " ...> Mary had a little lamb, ...> His fleece was white as snow, diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index e8813d37b..63f51a1d1 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -40,7 +40,7 @@ For now, let's start by running `iex` (or `iex.bat` if you are on Windows PowerS Open up `iex` and type the following expressions: -```iex +```elixir Erlang/OTP {{ stable.minimum_otp }} [64-bit] [smp:2:2] [...] Interactive Elixir ({{ stable.version }}) - press Ctrl+C to exit diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 11f5403fb..363f2e7f7 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -15,7 +15,7 @@ We had originally sketched this chapter to come much earlier in the getting star The [`IO`](https://hexdocs.pm/elixir/IO.html) module is the main mechanism in Elixir for reading and writing to standard input/output (`:stdio`), standard error (`:stderr`), files, and other IO devices. Usage of the module is pretty straightforward: -```iex +```elixir iex> IO.puts("hello world") hello world :ok @@ -26,7 +26,7 @@ yes or no? yes By default, functions in the `IO` module read from the standard input and write to the standard output. We can change that by passing, for example, `:stderr` as an argument (in order to write to the standard error device): -```iex +```elixir iex> IO.puts(:stderr, "hello world") hello world :ok @@ -36,7 +36,7 @@ hello world The [`File`](https://hexdocs.pm/elixir/File.html) module contains functions that allow us to open files as IO devices. By default, files are opened in binary mode, which requires developers to use the specific `IO.binread/2` and `IO.binwrite/2` functions from the `IO` module: -```iex +```elixir iex> {:ok, file} = File.open("hello", [:write]) {:ok, #PID<0.47.0>} iex> IO.binwrite(file, "world") @@ -53,7 +53,7 @@ Besides functions for opening, reading and writing files, the `File` module has You will also notice that functions in the `File` module have two variants: one "regular" variant and another variant with a trailing bang (`!`). For example, when we read the `"hello"` file in the example above, we use `File.read/1`. Alternatively, we can use `File.read!/1`: -```iex +```elixir iex> File.read("hello") {:ok, "world"} iex> File.read!("hello") @@ -89,7 +89,7 @@ Therefore, if you don't want to handle the error outcomes, prefer using `File.re The majority of the functions in the `File` module expect paths as arguments. Most commonly, those paths will be regular binaries. The [`Path`](https://hexdocs.pm/elixir/Path.html) module provides facilities for working with such paths: -```iex +```elixir iex> Path.join("foo", "bar") "foo/bar" iex> Path.expand("~/hello") @@ -104,14 +104,14 @@ With this, we have covered the main modules that Elixir provides for dealing wit You may have noticed that `File.open/2` returns a tuple like `{:ok, pid}`: -```iex +```elixir iex> {:ok, file} = File.open("hello", [:write]) {:ok, #PID<0.47.0>} ``` That happens because the `IO` module actually works with processes (see [chapter 11](/getting-started/processes.html)). Given a file is a process, when you write to a file that has been closed, you are actually sending a message to a process which has been terminated: -```iex +```elixir iex> File.close(file) :ok iex> IO.write(file, "is anybody out there") @@ -120,7 +120,7 @@ iex> IO.write(file, "is anybody out there") Let's see in more detail what happens when you request `IO.write(pid, binary)`. The `IO` module sends a message to the process identified by `pid` with the desired operation. A small ad-hoc process can help us see it: -```iex +```elixir iex> pid = spawn fn -> ...> receive do: (msg -> IO.inspect msg) ...> end @@ -141,7 +141,7 @@ In all of the examples above, we used binaries when writing to files. In the cha The functions in `IO` and `File` also allow lists to be given as arguments. Not only that, they also allow a mixed list of lists, integers, and binaries to be given: -```iex +```elixir iex> IO.puts('hello world') hello world :ok diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index b1f4bef3c..70b774e1e 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -16,7 +16,7 @@ In Elixir, we have two main associative data structures: keyword lists and maps. In many functional programming languages, it is common to use a list of 2-item tuples as the representation of a key-value data structure. In Elixir, when we have a list of tuples and the first item of the tuple (i.e. the key) is an atom, we call it a keyword list: -```iex +```elixir iex> list = [{:a, 1}, {:b, 2}] [a: 1, b: 2] iex> list == [a: 1, b: 2] @@ -25,7 +25,7 @@ true As you can see above, Elixir supports a special syntax for defining such lists: `[key: value]`. Underneath it maps to the same list of tuples as above. Since keyword lists are lists, we can use all operations available to lists. For example, we can use `++` to add new values to a keyword list: -```iex +```elixir iex> list ++ [c: 3] [a: 1, b: 2, c: 3] iex> [a: 0] ++ list @@ -34,7 +34,7 @@ iex> [a: 0] ++ list Note that values added to the front are the ones fetched on lookup: -```iex +```elixir iex> new_list = [a: 0] ++ list [a: 0, a: 1, b: 2] iex> new_list[:a] @@ -58,21 +58,21 @@ query = from w in Weather, These characteristics are what prompted keyword lists to be the default mechanism for passing options to functions in Elixir. In chapter 5, when we discussed the `if/2` macro, we mentioned the following syntax is supported: -```iex +```elixir iex> if false, do: :this, else: :that :that ``` The `do:` and `else:` pairs form a keyword list! In fact, the call above is equivalent to: -```iex +```elixir iex> if(false, [do: :this, else: :that]) :that ``` Which, as we have seen above, is the same as: -```iex +```elixir iex> if(false, [{:do, :this}, {:else, :that}]) :that ``` @@ -81,7 +81,7 @@ In general, when the keyword list is the last argument of a function, the square Although we can pattern match on keyword lists, it is rarely done in practice since pattern matching on lists requires the number of items and their order to match: -```iex +```elixir iex> [a: a] = [a: 1] [a: 1] iex> a @@ -98,7 +98,7 @@ In order to manipulate keyword lists, Elixir provides [the `Keyword` module](htt Whenever you need a key-value store, maps are the "go to" data structure in Elixir. A map is created using the `%{}` syntax: -```iex +```elixir iex> map = %{:a => 1, 2 => :b} %{2 => :b, :a => 1} iex> map[:a] @@ -116,7 +116,7 @@ Compared to keyword lists, we can already see two differences: In contrast to keyword lists, maps are very useful with pattern matching. When a map is used in a pattern, it will always match on a subset of the given value: -```iex +```elixir iex> %{} = %{:a => 1, 2 => :b} %{2 => :b, :a => 1} iex> %{:a => a} = %{:a => 1, 2 => :b} @@ -131,7 +131,7 @@ As shown above, a map matches as long as the keys in the pattern exist in the gi Variables can be used when accessing, matching and adding map keys: -```iex +```elixir iex> n = 1 1 iex> map = %{n => :one} @@ -144,7 +144,7 @@ iex> %{^n => :one} = %{1 => :one, 2 => :two, 3 => :three} [The `Map` module](https://hexdocs.pm/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to manipulate maps: -```iex +```elixir iex> Map.get(%{:a => 1, 2 => :b}, :a) 1 iex> Map.put(%{:a => 1, 2 => :b}, :c, 3) @@ -155,7 +155,7 @@ iex> Map.to_list(%{:a => 1, 2 => :b}) Maps have the following syntax for updating a key's value: -```iex +```elixir iex> map = %{:a => 1, 2 => :b} %{2 => :b, :a => 1} @@ -169,14 +169,14 @@ The syntax above requires the given key to exist. It cannot be used to add new k When all the keys in a map are atoms, you can use the keyword syntax for convenience: -```iex +```elixir iex> map = %{a: 1, b: 2} %{a: 1, b: 2} ``` Another interesting property of maps is that they provide their own syntax for accessing atom keys: -```iex +```elixir iex> map = %{:a => 1, 2 => :b} %{2 => :b, :a => 1} @@ -194,7 +194,7 @@ Often we will have maps inside maps, or even keywords lists inside maps, and so Imagine you have the following structure: -```iex +```elixir iex> users = [ john: %{name: "John", age: 27, languages: ["Erlang", "Ruby", "Elixir"]}, mary: %{name: "Mary", age: 29, languages: ["Elixir", "F#", "Clojure"]} @@ -205,14 +205,14 @@ iex> users = [ We have a keyword list of users where each value is a map containing the name, age and a list of programming languages each user likes. If we wanted to access the age for john, we could write: -```iex +```elixir iex> users[:john].age 27 ``` It happens we can also use this same syntax for updating the value: -```iex +```elixir iex> users = put_in users[:john].age, 31 [john: %{age: 31, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, mary: %{age: 29, languages: ["Elixir", "F#", "Clojure"], name: "Mary"}] @@ -220,7 +220,7 @@ iex> users = put_in users[:john].age, 31 The `update_in/2` macro is similar but allows us to pass a function that controls how the value changes. For example, let's remove "Clojure" from Mary's list of languages: -```iex +```elixir iex> users = update_in users[:mary].languages, fn languages -> List.delete(languages, "Clojure") end [john: %{age: 31, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, mary: %{age: 29, languages: ["Elixir", "F#"], name: "Mary"}] diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index 314b00d39..69acf9ba9 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -109,7 +109,7 @@ end Assuming we defined `TestCase` in a file named `tests.exs`, we can open it up by running `iex tests.exs` and define our first tests: -```iex +```elixir iex> defmodule MyTest do ...> use TestCase ...> @@ -121,7 +121,7 @@ iex> defmodule MyTest do For now, we don't have a mechanism to run tests, but we know that a function named "test hello" was defined behind the scenes. When we invoke it, it should fail: -```iex +```elixir iex> MyTest."test hello"() ** (MatchError) no match of right hand side value: "world" ``` @@ -188,7 +188,7 @@ end By starting a new IEx session, we can now define our tests and run them: -```iex +```elixir iex> defmodule MyTest do ...> use TestCase ...> diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 4f971b132..313afeb8a 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -45,7 +45,7 @@ $ iex macros.exs And play with those definitions: -```iex +```elixir iex> require Unless iex> Unless.macro_unless true, do: IO.puts "this should never be printed" nil @@ -85,7 +85,7 @@ And it then returned a quoted expression as follows: We can actually verify that this is the case by using `Macro.expand_once/2`: -```iex +```elixir iex> expr = quote do: Unless.macro_unless(true, do: IO.puts "this should never be printed") iex> res = Macro.expand_once(expr, __ENV__) iex> IO.puts Macro.to_string(res) @@ -212,7 +212,7 @@ When calling `Macro.expand_once/2` earlier in this chapter, we used the special `__ENV__` returns an instance of the `Macro.Env` struct which contains useful information about the compilation environment, including the current module, file, and line, all variables defined in the current scope, as well as imports, requires and so on: -```iex +```elixir iex> __ENV__.module nil iex> __ENV__.file @@ -233,7 +233,7 @@ Elixir also supports private macros via `defmacrop`. As private functions, these It is important that a macro is defined before its usage. Failing to define a macro before its invocation will raise an error at runtime, since the macro won't be expanded and will be translated to a function call: -```iex +```elixir iex> defmodule Sample do ...> def four, do: two + two ...> defmacrop two, do: 2 diff --git a/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown index 35b65fc51..48b0f312d 100644 --- a/getting-started/meta/quote-and-unquote.markdown +++ b/getting-started/meta/quote-and-unquote.markdown @@ -25,7 +25,7 @@ The building block of an Elixir program is a tuple with three elements. For exam You can get the representation of any expression by using the `quote` macro: -```iex +```elixir iex> quote do: sum(1, 2, 3) {:sum, [], [1, 2, 3]} ``` @@ -34,35 +34,35 @@ The first element is the function name, the second is a keyword list containing Operators are also represented as such tuples: -```iex +```elixir iex> quote do: 1 + 2 {:+, [context: Elixir, import: Kernel], [1, 2]} ``` Even a map is represented as a call to `%{}`: -```iex +```elixir iex> quote do: %{1 => 2} {:%{}, [], [{1, 2}]} ``` Variables are also represented using such triplets, except the last element is an atom, instead of a list: -```iex +```elixir iex> quote do: x {:x, [], Elixir} ``` When quoting more complex expressions, we can see that the code is represented in such tuples, which are often nested inside each other in a structure resembling a tree. Many languages would call such representations an Abstract Syntax Tree (AST). Elixir calls them quoted expressions: -```iex +```elixir iex> quote do: sum(1, 2 + 3, 4) {:sum, [], [1, {:+, [context: Elixir, import: Kernel], [2, 3]}, 4]} ``` Sometimes when working with quoted expressions, it may be useful to get the textual code representation back. This can be done with `Macro.to_string/1`: -```iex +```elixir iex> Macro.to_string(quote do: sum(1, 2 + 3, 4)) "sum(1, 2 + 3, 4)" ``` @@ -95,7 +95,7 @@ Quote is about retrieving the inner representation of some particular chunk of c For example, imagine you have a variable `number` which contains the number you want to inject inside a quoted expression. -```iex +```elixir iex> number = 13 iex> Macro.to_string(quote do: 11 + number) "11 + number" @@ -103,7 +103,7 @@ iex> Macro.to_string(quote do: 11 + number) That's not what we wanted, since the value of the `number` variable has not been injected and `number` has been quoted in the expression. In order to inject the *value* of the `number` variable, `unquote` has to be used inside the quoted representation: -```iex +```elixir iex> number = 13 iex> Macro.to_string(quote do: 11 + unquote(number)) "11 + 13" @@ -111,7 +111,7 @@ iex> Macro.to_string(quote do: 11 + unquote(number)) `unquote` can even be used to inject function names: -```iex +```elixir iex> fun = :hello iex> Macro.to_string(quote do: unquote(fun)(:world)) "hello(:world)" @@ -119,7 +119,7 @@ iex> Macro.to_string(quote do: unquote(fun)(:world)) In some cases, it may be necessary to inject many values inside a list. For example, imagine you have a list containing `[1, 2, 6]` and we want to inject `[3, 4, 5]` into it. Using `unquote` won't yield the desired result: -```iex +```elixir iex> inner = [3, 4, 5] iex> Macro.to_string(quote do: [1, 2, unquote(inner), 6]) "[1, 2, [3, 4, 5], 6]" @@ -127,7 +127,7 @@ iex> Macro.to_string(quote do: [1, 2, unquote(inner), 6]) That's when `unquote_splicing` becomes handy: -```iex +```elixir iex> inner = [3, 4, 5] iex> Macro.to_string(quote do: [1, 2, unquote_splicing(inner), 6]) "[1, 2, 3, 4, 5, 6]" @@ -139,14 +139,14 @@ Unquoting is very useful when working with macros. When writing macros, develope As we saw at the beginning of this chapter, only some values are valid quoted expressions in Elixir. For example, a map is not a valid quoted expression. Neither is a tuple with four elements. However, such values *can* be expressed as a quoted expression: -```iex +```elixir iex> quote do: %{1 => 2} {:%{}, [], [{1, 2}]} ``` In some cases, you may need to inject such *values* into *quoted expressions*. To do that, we need to first escape those values into quoted expressions with the help of `Macro.escape/1`: -```iex +```elixir iex> map = %{hello: :world} iex> Macro.escape(map) {:%{}, [], [hello: :world]} diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 7dca66ba7..80777c00f 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -40,7 +40,7 @@ $ iex -S mix And play a bit with agents: -```iex +```elixir iex> {:ok, agent} = Agent.start_link fn -> [] end {:ok, #PID<0.57.0>} iex> Agent.update(agent, fn list -> ["eggs" | list] end) @@ -55,7 +55,7 @@ We started an agent with an initial state of an empty list. We updated the agent The `Agent.update/3` function accepts as a second argument any function that receives one argument and returns a value: -```iex +```elixir iex> {:ok, agent} = Agent.start_link fn -> [] end {:ok, #PID<0.338.0>} iex> Agent.update(agent, fn _list -> 123 end) diff --git a/getting-started/mix-otp/distributed-tasks.markdown b/getting-started/mix-otp/distributed-tasks.markdown index 59a29f61f..adc93c2b1 100644 --- a/getting-started/mix-otp/distributed-tasks.markdown +++ b/getting-started/mix-otp/distributed-tasks.markdown @@ -45,7 +45,7 @@ My computer is named `jv`, so I see `foo@jv` in the example above, but you will Let's define a module named `Hello` in this shell: -```iex +```elixir iex> defmodule Hello do ...> def world, do: IO.puts "hello world" ...> end @@ -59,7 +59,7 @@ $ iex --sname bar Note that inside this new IEx session, we cannot access `Hello.world/0`: -```iex +```elixir iex> Hello.world ** (UndefinedFunctionError) undefined function: Hello.world/0 Hello.world() @@ -67,7 +67,7 @@ iex> Hello.world However, we can spawn a new process on `foo@computer-name` from `bar@computer-name`! Let's give it a try (where `@computer-name` is the one you see locally): -```iex +```elixir iex> Node.spawn_link :"foo@computer-name", fn -> Hello.world end #PID<9014.59.0> hello world @@ -77,7 +77,7 @@ Elixir spawned a process on another node and returned its pid. The code then exe We can send and receive messages from the pid returned by `Node.spawn_link/2` as usual. Let's try a quick ping-pong example: -```iex +```elixir iex> pid = Node.spawn_link :"foo@computer-name", fn -> ...> receive do ...> {:ping, client} -> send client, :pong @@ -134,7 +134,7 @@ $ iex --sname bar -S mix From inside `bar@computer-name`, we can now spawn a task directly on the other node via the supervisor: -```iex +```elixir iex> task = Task.Supervisor.async {KV.RouterTasks, :"foo@computer-name"}, fn -> ...> {:ok, node()} ...> end @@ -145,7 +145,7 @@ iex> Task.await(task) Our first distributed task retrieves the name of the node the task is running on. Notice we have given an anonymous function to `Task.Supervisor.async/2` but, in distributed cases, it is preferable to give the module, function, and arguments explicitly: -```iex +```elixir iex> task = Task.Supervisor.async {KV.RouterTasks, :"foo@computer-name"}, Kernel, :node, [] %Task{owner: #PID<0.122.0>, pid: #PID<12467.89.0>, ref: #Reference<0.0.0.404>} iex> Task.await(task) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 14814f100..19b044872 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -147,7 +147,7 @@ Notice how we were able to elegantly parse the commands without adding a bunch o Finally, you may have observed that each doctest corresponds to a different test in our suite, which now reports a total of 7 doctests. That is because ExUnit considers the following to define two different doctests: -```iex +```elixir iex> KVServer.Command.parse("UNKNOWN shopping eggs\r\n") {:error, :unknown_command} @@ -157,7 +157,7 @@ iex> KVServer.Command.parse("GET shopping\r\n") Without new lines, as seen below, ExUnit compiles it into a single doctest: -```iex +```elixir iex> KVServer.Command.parse("UNKNOWN shopping eggs\r\n") {:error, :unknown_command} iex> KVServer.Command.parse("GET shopping\r\n") diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 6df2857f9..e9159dca0 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -74,7 +74,7 @@ In this case, there is no module, so we picked the name `KV.BucketSupervisor`. I Run `iex -S mix` so we can give our dynamic supervisor a try: -```iex +```elixir iex> {:ok, bucket} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) {:ok, #PID<0.72.0>} iex> KV.Bucket.put(bucket, "eggs", 3) @@ -170,7 +170,7 @@ Since we have relied only on a non-shared partition of the bucket supervisor so Now that we have defined our supervision tree, it is a great opportunity to introduce the Observer tool that ships with Erlang. Start your application with `iex -S mix` and key this in: -```iex +```elixir iex> :observer.start ``` @@ -184,7 +184,7 @@ In the Applications tab, you will see all applications currently running in your Not only that, as you create new buckets on the terminal, you should see new processes spawned in the supervision tree shown in Observer: -```iex +```elixir iex> KV.Registry.create(KV.Registry, "shopping") :ok ``` diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 5aacca096..1e60b5890 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -19,7 +19,7 @@ In this chapter, we will learn about ETS (Erlang Term Storage) and how to use it ETS allows us to store any Elixir term in an in-memory table. Working with ETS tables is done via [Erlang's `:ets` module](http://www.erlang.org/doc/man/ets.html): -```iex +```elixir iex> table = :ets.new(:buckets_registry, [:set, :protected]) #Reference<0.1885502827.460455937.234656> iex> :ets.insert(table, {"foo", self()}) @@ -38,7 +38,7 @@ Be aware that if your Read/Write call violates the access control, the operation ETS tables can also be named, allowing us to access them by a given name: -```iex +```elixir iex> :ets.new(:buckets_registry, [:named_table]) :buckets_registry iex> :ets.insert(:buckets_registry, {"foo", self()}) diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index bed41958b..c1d36a99c 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -27,7 +27,7 @@ In the session above we interacted with the "shopping" bucket. Since agents are processes, each bucket has a process identifier (pid), but buckets do not have a name. Back [in the Process chapter](/getting-started/processes.html), we have learned that we can register processes in Elixir by giving them atom names: -```iex +```elixir iex> Agent.start_link(fn -> %{} end, name: :shopping) {:ok, #PID<0.43.0>} iex> KV.Bucket.put(:shopping, "milk", 1) @@ -254,7 +254,7 @@ In order to fix this bug, we need the registry to monitor every bucket it spawns Let's first play with monitors by starting a new console with `iex -S mix`: -```iex +```elixir iex> {:ok, pid} = KV.Bucket.start_link([]) {:ok, #PID<0.66.0>} iex> Process.monitor(pid) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index d77ade566..147322b1b 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -165,7 +165,7 @@ $ iex -S mix We are going to work on this `kv` project, making modifications and trying out the latest changes from an `iex` session. While you may start a new session whenever there are changes to the project source code, you can also recompile the project from within `iex` with the `recompile` helper, like this: -```iex +```elixir iex> recompile() Compiling 1 file (.ex) :ok diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 1c5c0b324..65ca1ef1b 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -60,7 +60,7 @@ Once the supervisor starts, it will traverse the list of children and it will in The `child_spec/1` function returns the child specification which describes how to start the process, if the process is a worker or a supervisor, if the process is temporary, transient or permanent and so on. The `child_spec/1` function is automatically defined when we `use Agent`, `use GenServer`, `use Supervisor`, etc. Let's give it a try in the terminal with `iex -S mix`: -```iex +```elixir iex(1)> KV.Registry.child_spec([]) %{id: KV.Registry, start: {KV.Registry, :start_link, [[]]}} ``` @@ -71,7 +71,7 @@ After the supervisor retrieves all child specifications, it proceeds to start it Let's take the supervisor for a spin: -```iex +```elixir iex(1)> {:ok, sup} = KV.Supervisor.start_link([]) {:ok, #PID<0.148.0>} iex(2)> Supervisor.which_children(sup) @@ -82,7 +82,7 @@ So far we have started the supervisor and listed its children. Once the supervis What happens if we intentionally crash the registry started by the supervisor? Let's do so by sending it a bad input on `call`: -```iex +```elixir iex(3)> [{_, registry, _, _}] = Supervisor.which_children(sup) [{KV.Registry, #PID<0.150.0>, :worker, [KV.Registry]}] iex(4) GenServer.call(registry, :bad_input) @@ -125,7 +125,7 @@ which in turn will register the process with the given name. The `:name` option Let's give the updated supervisor a try inside `iex -S mix`: -```iex +```elixir iex> KV.Supervisor.start_link([]) {:ok, #PID<0.66.0>} iex> KV.Registry.create(KV.Registry, "shopping") @@ -170,7 +170,7 @@ Each application in our system can be started and stopped. The rules for startin Let's see this in practice. Start a console with `iex -S mix` and try: -```iex +```elixir iex> Application.start(:kv) {:error, {:already_started, :kv}} ``` @@ -179,14 +179,14 @@ Oops, it's already started. Mix normally starts the whole hierarchy of applicati We can pass an option to Mix to ask it to not start our application. Let's give it a try by running `iex -S mix run --no-start`: -```iex +```elixir iex> Application.start(:kv) :ok ``` We can stop our `:kv` application as well as the `:logger` application, which is started by default with Elixir: -```iex +```elixir iex> Application.stop(:kv) :ok iex> Application.stop(:logger) @@ -195,14 +195,14 @@ iex> Application.stop(:logger) And let's try to start our application again: -```iex +```elixir iex> Application.start(:kv) {:error, {:not_started, :logger}} ``` Now we get an error because an application that `:kv` depends on (`:logger` in this case) isn't started. We need to either start each application manually in the correct order or call `Application.ensure_all_started` as follows: -```iex +```elixir iex> Application.ensure_all_started(:kv) {:ok, [:logger, :kv]} ``` @@ -251,7 +251,7 @@ When we `use Application`, we may define a couple of functions, similar to when Now that you have defined an application callback which starts our supervisor, we expect the `KV.Registry` process to be up and running as soon we start `iex -S mix`. Let's give it another try: -```iex +```elixir iex(1)> KV.Registry.create(KV.Registry, "shopping") :ok iex(2)> KV.Registry.lookup(KV.Registry, "shopping") diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 167e255db..055bb3192 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -88,7 +88,7 @@ This is pretty much all we need to implement our echo server. Let's give it a tr Start an IEx session inside the `kv_server` application with `iex -S mix`. Inside IEx, run: -```iex +```elixir iex> KVServer.accept(4040) ``` diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 53b4b2185..133141c4f 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -64,7 +64,7 @@ $ elixirc math.ex $ iex ``` -```iex +```elixir iex> h Math # Access the docs for the module Math ... iex> h Math.sum # Access the docs for the sum function diff --git a/getting-started/modules-and-functions.markdown b/getting-started/modules-and-functions.markdown index 25562e819..a959f7e69 100644 --- a/getting-started/modules-and-functions.markdown +++ b/getting-started/modules-and-functions.markdown @@ -10,14 +10,14 @@ redirect_from: /getting-started/modules.html In Elixir we group several functions into modules. We've already used many different modules in the previous chapters such as [the `String` module](https://hexdocs.pm/elixir/String.html): -```iex +```elixir iex> String.length("hello") 5 ``` In order to create our own modules in Elixir, we use the `defmodule` macro. We use the `def` macro to define functions in that module: -```iex +```elixir iex> defmodule Math do ...> def sum(a, b) do ...> a + b @@ -50,7 +50,7 @@ $ elixirc math.ex This will generate a file named `Elixir.Math.beam` containing the bytecode for the defined module. If we start `iex` again, our module definition will be available (provided that `iex` is started in the same directory the bytecode file is in): -```iex +```elixir iex> Math.sum(1, 2) 3 ``` @@ -148,7 +148,7 @@ Throughout this tutorial, we have been using the notation `name/arity` to refer $ iex math.exs ``` -```iex +```elixir iex> Math.zero?(0) true iex> fun = &Math.zero?/1 @@ -163,7 +163,7 @@ Remember Elixir makes a distinction between anonymous functions and named functi Local or imported functions, like `is_function/1`, can be captured without the module: -```iex +```elixir iex> &is_function/1 &:erlang.is_function/1 iex> (&is_function/1).(fun) @@ -172,7 +172,7 @@ true Note the capture syntax can also be used as a shortcut for creating functions: -```iex +```elixir iex> fun = &(&1 + 1) #Function<6.71889879/1 in :erl_eval.expr/5> iex> fun.(1) @@ -188,7 +188,7 @@ The `&1` represents the first argument passed into the function. `&(&1 + 1)` abo If you want to capture a function from a module, you can do `&Module.function()`: -```iex +```elixir iex> fun = &List.flatten(&1, &2) &List.flatten/2 iex> fun.([1, [[2], 3]], [4, 5]) @@ -222,7 +222,7 @@ defmodule DefaultTest do end ``` -```iex +```elixir iex> DefaultTest.dowork "hello" iex> DefaultTest.dowork 123 @@ -279,13 +279,13 @@ The compiler is telling us that invoking the `join` function with two arguments $ iex concat.ex ``` -```iex +```elixir iex> Concat.join "Hello", "world" ***First join "Helloworld" ``` -```iex +```elixir iex> Concat.join "Hello", "world", "_" ***Second join "Hello_world" diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 85c4d2f65..ba872bc4f 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -13,7 +13,7 @@ In this chapter, we will show how the `=` operator in Elixir is actually a match We have used the `=` operator a couple times to assign variables in Elixir: -```iex +```elixir iex> x = 1 1 iex> x @@ -22,7 +22,7 @@ iex> x In Elixir, the `=` operator is actually called *the match operator*. Let's see why: -```iex +```elixir iex> x = 1 1 iex> 1 = x @@ -35,7 +35,7 @@ Notice that `1 = x` is a valid expression, and it matched because both the left A variable can only be assigned on the left side of `=`: -```iex +```elixir iex> 1 = unknown ** (CompileError) iex:1: undefined function unknown/0 ``` @@ -46,7 +46,7 @@ Since there is no variable `unknown` previously defined, Elixir assumed you were The match operator is not only used to match against simple values, but it is also useful for destructuring more complex data types. For example, we can pattern match on tuples: -```iex +```elixir iex> {a, b, c} = {:hello, "world", 42} {:hello, "world", 42} iex> a @@ -57,21 +57,21 @@ iex> b A pattern match error will occur if the sides can't be matched, for example if the tuples have different sizes: -```iex +```elixir iex> {a, b, c} = {:hello, "world"} ** (MatchError) no match of right hand side value: {:hello, "world"} ``` And also when comparing different types: -```iex +```elixir iex> {a, b, c} = [:hello, "world", 42] ** (MatchError) no match of right hand side value: [:hello, "world", 42] ``` More interestingly, we can match on specific values. The example below asserts that the left side will only match the right side when the right side is a tuple that starts with the atom `:ok`: -```iex +```elixir iex> {:ok, result} = {:ok, 13} {:ok, 13} iex> result @@ -83,7 +83,7 @@ iex> {:ok, result} = {:error, :oops} We can pattern match on lists: -```iex +```elixir iex> [a, b, c] = [1, 2, 3] [1, 2, 3] iex> a @@ -92,7 +92,7 @@ iex> a A list also supports matching on its own head and tail: -```iex +```elixir iex> [head | tail] = [1, 2, 3] [1, 2, 3] iex> head @@ -103,14 +103,14 @@ iex> tail Similar to the `hd/1` and `tl/1` functions, we can't match an empty list with a head and tail pattern: -```iex +```elixir iex> [head | tail] = [] ** (MatchError) no match of right hand side value: [] ``` The `[head | tail]` format is not only used on pattern matching but also for prepending items to a list: -```iex +```elixir iex> list = [1, 2, 3] [1, 2, 3] iex> [0 | list] @@ -123,7 +123,7 @@ Pattern matching allows developers to easily destructure data types such as tupl Variables in Elixir can be rebound: -```iex +```elixir iex> x = 1 1 iex> x = 2 @@ -133,7 +133,7 @@ However, there are times when we don't want variables to be rebound. Use the pin operator `^` when you want to pattern match against a variable's _existing value_ rather than rebinding the variable. -```iex +```elixir iex> x = 1 1 iex> ^x = 2 @@ -142,7 +142,7 @@ iex> ^x = 2 Because we have pinned `x` when it was bound to the value of `1`, it is equivalent to the following: -```iex +```elixir iex> 1 = 2 ** (MatchError) no match of right hand side value: 2 ``` @@ -151,7 +151,7 @@ Notice that we even see the exact same error message. We can use the pin operator inside other pattern matches, such as tuples or lists: -```iex +```elixir iex> x = 1 1 iex> [^x, 2, 3] = [1, 2, 3] @@ -166,14 +166,14 @@ iex> {y, ^x} = {2, 2} Because `x` was bound to the value of `1` when it was pinned, this last example could have been written as: -```iex +```elixir iex> {y, 1} = {2, 2} ** (MatchError) no match of right hand side value: {2, 2} ``` If a variable is mentioned more than once in a pattern, all references should bind to the same value: -```iex +```elixir iex> {x, x} = {1, 1} {1, 1} iex> {x, x} = {1, 2} @@ -182,7 +182,7 @@ iex> {x, x} = {1, 2} In some cases, you don't care about a particular value in a pattern. It is a common practice to bind those values to the underscore, `_`. For example, if only the head of the list matters to us, we can assign the tail to underscore: -```iex +```elixir iex> [head | _] = [1, 2, 3] [1, 2, 3] iex> head @@ -191,14 +191,14 @@ iex> head The variable `_` is special in that it can never be read from. Trying to read from it gives a compile error: -```iex +```elixir iex> _ ** (CompileError) iex:1: invalid use of _. "_" represents a value to be ignored in a pattern and cannot be used in expressions ``` Although pattern matching allows us to build powerful constructs, its usage is limited. For instance, you cannot make function calls on the left side of a match. The following example is invalid: -```iex +```elixir iex> length([1, [2], 3]) = 3 ** (CompileError) iex:1: cannot invoke remote function :erlang.length/1 inside match ``` diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 02a26feca..b27692bc5 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -17,7 +17,7 @@ In this chapter, we will learn about the basic constructs for spawning new proce The basic mechanism for spawning new processes is the auto-imported `spawn/1` function: -```iex +```elixir iex> spawn fn -> 1 + 2 end #PID<0.43.0> ``` @@ -26,7 +26,7 @@ iex> spawn fn -> 1 + 2 end Notice `spawn/1` returns a PID (process identifier). At this point, the process you spawned is very likely dead. The spawned process will execute the given function and exit after the function is done: -```iex +```elixir iex> pid = spawn fn -> 1 + 2 end #PID<0.44.0> iex> Process.alive?(pid) @@ -37,7 +37,7 @@ false We can retrieve the PID of the current process by calling `self/0`: -```iex +```elixir iex> self() #PID<0.41.0> iex> Process.alive?(self()) @@ -50,7 +50,7 @@ Processes get much more interesting when we are able to send and receive message We can send messages to a process with `send/2` and receive them with `receive/1`: -```iex +```elixir iex> send self(), {:hello, "world"} {:hello, "world"} iex> receive do @@ -66,7 +66,7 @@ The process that sends the message does not block on `send/2`, it puts the messa If there is no message in the mailbox matching any of the patterns, the current process will wait until a matching message arrives. A timeout can also be specified: -```iex +```elixir iex> receive do ...> {:hello, msg} -> msg ...> after @@ -79,7 +79,7 @@ A timeout of 0 can be given when you already expect the message to be in the mai Let's put it all together and send messages between processes: -```iex +```elixir iex> parent = self() #PID<0.41.0> iex> spawn fn -> send(parent, {:hello, self()}) end @@ -94,7 +94,7 @@ The `inspect/1` function is used to convert a data structure's internal represen While in the shell, you may find the helper `flush/0` quite useful. It flushes and prints all the messages in the mailbox. -```iex +```elixir iex> send self(), :hello :hello iex> flush() @@ -106,7 +106,7 @@ iex> flush() The majority of times we spawn processes in Elixir, we spawn them as linked processes. Before we show an example with `spawn_link/1`, let's see what happens when a process started with `spawn/1` fails: -```iex +```elixir iex> spawn fn -> raise "oops" end #PID<0.58.0> @@ -117,7 +117,7 @@ iex> spawn fn -> raise "oops" end It merely logged an error but the parent process is still running. That's because processes are isolated. If we want the failure in one process to propagate to another one, we should link them. This can be done with `spawn_link/1`: -```iex +```elixir iex> self() #PID<0.41.0> iex> spawn_link fn -> raise "oops" end @@ -145,7 +145,7 @@ While other languages would require us to catch/handle exceptions, in Elixir we Tasks build on top of the spawn functions to provide better error reports and introspection: -```iex +```elixir iex(1)> Task.start fn -> raise "oops" end {:ok, #PID<0.55.0>} @@ -190,7 +190,7 @@ Note that the `start_link` function starts a new process that runs the `loop/1` Let's give it a try by running `iex kv.exs`: -```iex +```elixir iex> {:ok, pid} = KV.start_link {:ok, #PID<0.62.0>} iex> send pid, {:get, :hello, self()} @@ -202,7 +202,7 @@ nil At first, the process map has no keys, so sending a `:get` message and then flushing the current process inbox returns `nil`. Let's send a `:put` message and try it again: -```iex +```elixir iex> send pid, {:put, :hello, :world} {:put, :hello, :world} iex> send pid, {:get, :hello, self()} @@ -216,7 +216,7 @@ Notice how the process is keeping a state and we can get and update this state b It is also possible to register the `pid`, giving it a name, and allowing everyone that knows the name to send it messages: -```iex +```elixir iex> Process.register(pid, :kv) true iex> send :kv, {:get, :hello, self()} @@ -228,7 +228,7 @@ iex> flush() Using processes to maintain state and name registration are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ship with Elixir. For example, Elixir provides [agents](https://hexdocs.pm/elixir/Agent.html), which are simple abstractions around state: -```iex +```elixir iex> {:ok, pid} = Agent.start_link(fn -> %{} end) {:ok, #PID<0.72.0>} iex> Agent.update(pid, fn map -> Map.put(map, :hello, :world) end) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index ff33aa98e..543552d53 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -40,7 +40,7 @@ end We define the protocol using `defprotocol` - its functions and specs may look similar to interfaces or abstract base classes in other languages. We can add as many implementations as we like using `defimpl`. The output is exactly the same as if we had a single module with multiple functions: -```iex +```elixir iex> Utility.type("foo") "string" iex> Utility.type(123) @@ -88,7 +88,7 @@ We didn't implement the `Size` protocol for lists as there is no "size" informat Now with the protocol defined and implementations in hand, we can start using it: -```iex +```elixir iex> Size.size("foo") 3 iex> Size.size({:ok, "hello"}) @@ -99,7 +99,7 @@ iex> Size.size(%{label: "some label"}) Passing a data type that doesn't implement the protocol raises an error: -```iex +```elixir iex> Size.size([1, 2, 3]) ** (Protocol.UndefinedError) protocol Size not implemented for [1, 2, 3] ``` @@ -124,7 +124,7 @@ The power of Elixir's extensibility comes when protocols and structs are used to In the [previous chapter](/getting-started/structs.html), we have learned that although structs are maps, they do not share protocol implementations with maps. For example, [`MapSet`](https://hexdocs.pm/elixir/MapSet.html)s (sets based on maps) are implemented as structs. Let's try to use the `Size` protocol with a `MapSet`: -```iex +```elixir iex> Size.size(%{}) 0 iex> set = %MapSet{} = MapSet.new @@ -207,7 +207,7 @@ Which technique is best between deriving and falling back to any depends on the Elixir ships with some built-in protocols. In previous chapters, we have discussed the `Enum` module which provides many functions that work with any data structure that implements the `Enumerable` protocol: -```iex +```elixir iex> Enum.map [1, 2, 3], fn(x) -> x * 2 end [2, 4, 6] iex> Enum.reduce 1..3, 0, fn(x, acc) -> x + acc end @@ -216,21 +216,21 @@ iex> Enum.reduce 1..3, 0, fn(x, acc) -> x + acc end Another useful example is the `String.Chars` protocol, which specifies how to convert a data structure with characters to a string. It's exposed via the `to_string` function: -```iex +```elixir iex> to_string :hello "hello" ``` Notice that string interpolation in Elixir calls the `to_string` function: -```iex +```elixir iex> "age: #{25}" "age: 25" ``` The snippet above only works because numbers implement the `String.Chars` protocol. Passing a tuple, for example, will lead to an error: -```iex +```elixir iex> tuple = {1, 2, 3} {1, 2, 3} iex> "tuple: #{tuple}" @@ -239,14 +239,14 @@ iex> "tuple: #{tuple}" When there is a need to "print" a more complex data structure, one can use the `inspect` function, based on the `Inspect` protocol: -```iex +```elixir iex> "tuple: #{inspect tuple}" "tuple: {1, 2, 3}" ``` The `Inspect` protocol is the protocol used to transform any data structure into a readable textual representation. This is what tools like IEx use to print results: -```iex +```elixir iex> {1, 2, 3} {1, 2, 3} iex> %User{} @@ -255,7 +255,7 @@ iex> %User{} Keep in mind that, by convention, whenever the inspected value starts with `#`, it is representing a data structure in non-valid Elixir syntax. This means the inspect protocol is not reversible as information may be lost along the way: -```iex +```elixir iex> inspect &(&1+2) "#Function<6.71889879/1 in :erl_eval.expr/5>" ``` diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index c9073b61e..892fbe405 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -101,7 +101,7 @@ end $ iex math.exs ``` -```iex +```elixir iex> Math.double_each([1, 2, 3]) #=> [2, 4, 6] ``` @@ -111,7 +111,7 @@ Recursion and [tail call](https://en.wikipedia.org/wiki/Tail_call) optimization The [`Enum` module](https://hexdocs.pm/elixir/Enum.html), which we're going to see in the next chapter, already provides many conveniences for working with lists. For instance, the examples above could be written as: -```iex +```elixir iex> Enum.reduce([1, 2, 3], 0, fn(x, acc) -> x + acc end) 6 iex> Enum.map([1, 2, 3], fn(x) -> x * 2 end) @@ -120,7 +120,7 @@ iex> Enum.map([1, 2, 3], fn(x) -> x * 2 end) Or, using the capture syntax: -```iex +```elixir iex> Enum.reduce([1, 2, 3], 0, &+/2) 6 iex> Enum.map([1, 2, 3], &(&1 * 2)) diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index b49e32447..262239e5d 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -17,7 +17,7 @@ In this chapter, we are going to explore sigils, which are one of the mechanisms The most common sigil in Elixir is `~r`, which is used to create [regular expressions](https://en.wikipedia.org/wiki/Regular_Expressions): -```iex +```elixir # A regular expression that matches strings which contain "foo" or "bar": iex> regex = ~r/foo|bar/ ~r/foo|bar/ @@ -29,7 +29,7 @@ false Elixir provides Perl-compatible regular expressions (regexes), as implemented by the [PCRE](http://www.pcre.org/) library. Regexes also support modifiers. For example, the `i` modifier makes a regular expression case insensitive: -```iex +```elixir iex> "HELLO" =~ ~r/hello/ false iex> "HELLO" =~ ~r/hello/i @@ -61,7 +61,7 @@ Besides regular expressions, Elixir ships with three other sigils. The `~s` sigil is used to generate strings, like double quotes are. The `~s` sigil is useful when a string contains double quotes: -```iex +```elixir iex> ~s(this is a string with "double" quotes, not 'single' ones) "this is a string with \"double\" quotes, not 'single' ones" ``` @@ -70,7 +70,7 @@ iex> ~s(this is a string with "double" quotes, not 'single' ones) The `~c` sigil is useful for generating char lists that contain single quotes: -```iex +```elixir iex> ~c(this is a char list containing 'single quotes') 'this is a char list containing \'single quotes\'' ``` @@ -79,14 +79,14 @@ iex> ~c(this is a char list containing 'single quotes') The `~w` sigil is used to generate lists of words (*words* are just regular strings). Inside the `~w` sigil, words are separated by whitespace. -```iex +```elixir iex> ~w(foo bar bat) ["foo", "bar", "bat"] ``` The `~w` sigil also accepts the `c`, `s` and `a` modifiers (for char lists, strings, and atoms, respectively), which specify the data type of the elements of the resulting list: -```iex +```elixir iex> ~w(foo bar bat)a [:foo, :bar, :bat] ``` @@ -95,7 +95,7 @@ iex> ~w(foo bar bat)a Elixir supports some sigil variants to deal with escaping characters and interpolation. In particular, uppercase letters sigils do not perform interpolation nor escaping. For example, although both `~s` and `~S` will return strings, the former allows escape codes and interpolation while the latter does not: -```iex +```elixir iex> ~s(String with escape codes \x26 #{"inter" <> "polation"}) "String with escape codes & interpolation" iex> ~S(String without escape codes \x26 without #{interpolation}) @@ -123,7 +123,7 @@ In addition to those, a double quote inside a double-quoted string needs to be e Sigils also support heredocs, that is, triple double- or single-quotes as separators: -```iex +```elixir iex> ~s""" ...> this is ...> a heredoc string @@ -168,7 +168,7 @@ Elixir offers several sigils to deal with various flavors of times and dates. A [%Date{}](https://hexdocs.pm/elixir/Date.html) struct contains the fields `year`, `month`, `day`, and `calendar`. You can create one using the `~D` sigil: -```iex +```elixir iex> d = ~D[2019-10-31] ~D[2019-10-31] iex> d.day @@ -179,7 +179,7 @@ iex> d.day The [%Time{}](https://hexdocs.pm/elixir/Time.html) struct contains the fields `hour`, `minute`, `second`, `microsecond`, and `calendar`. You can create one using the `~T` sigil: -```iex +```elixir iex> t = ~T[23:00:07.0] ~T[23:00:07.0] iex> t.second @@ -190,7 +190,7 @@ iex> t.second The [%NaiveDateTime{}](https://hexdocs.pm/elixir/NaiveDateTime.html) struct contains fields from both `Date` and `Time`. You can create one using the `~N` sigil: -```iex +```elixir iex> ndt = ~N[2019-10-31 23:00:07] ~N[2019-10-31 23:00:07] ``` @@ -201,7 +201,7 @@ Why is it called naive? Because it does not contain timezone information. Theref A [%DateTime{}](https://hexdocs.pm/elixir/DateTime.html) struct contains the same fields as a `NaiveDateTime` with the addition of fields to track timezones. The `~U` sigil allows developers to create a DateTime in the UTC timezone: -```iex +```elixir iex> dt = ~U[2019-10-31 19:59:03Z] ~U[2019-10-31 19:59:03Z] iex> %DateTime{minute: minute, time_zone: time_zone} = dt @@ -216,21 +216,21 @@ iex> time_zone As hinted at the beginning of this chapter, sigils in Elixir are extensible. In fact, using the sigil `~r/foo/i` is equivalent to calling `sigil_r` with a binary and a char list as the argument: -```iex +```elixir iex> sigil_r(<<"foo">>, 'i') ~r"foo"i ``` We can access the documentation for the `~r` sigil via `sigil_r`: -```iex +```elixir iex> h sigil_r ... ``` We can also provide our own sigils by implementing functions that follow the `sigil_{identifier}` pattern. For example, let's implement the `~i` sigil that returns an integer (with the optional `n` modifier to make it negative): -```iex +```elixir iex> defmodule MySigils do ...> def sigil_i(string, []), do: String.to_integer(string) ...> def sigil_i(string, [?n]), do: -String.to_integer(string) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index 7b6785f2b..b0c7ca03a 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -10,7 +10,7 @@ redirect_from: /getting-started/struct.html In [chapter 7](/getting-started/keywords-and-maps.html) we learned about maps: -```iex +```elixir iex> map = %{a: 1, b: 2} %{a: 1, b: 2} iex> map[:a] @@ -25,7 +25,7 @@ Structs are extensions built on top of maps that provide compile-time checks and To define a struct, the `defstruct` construct is used: -```iex +```elixir iex> defmodule User do ...> defstruct name: "John", age: 27 ...> end @@ -37,7 +37,7 @@ Structs take the name of the module they're defined in. In the example above, we We can now create `User` structs by using a syntax similar to the one used to create maps (if you have defined the struct in a separate file, you can compile the file inside IEx before proceeding by running `c "file.exs"`; be aware you may get an error saying `the struct was not yet defined` if you try the below example in a file directly due to when definitions are resolved): -```iex +```elixir iex> %User{} %User{age: 27, name: "John"} iex> %User{name: "Jane"} @@ -46,7 +46,7 @@ iex> %User{name: "Jane"} Structs provide *compile-time* guarantees that only the fields (and *all* of them) defined through `defstruct` will be allowed to exist in a struct: -```iex +```elixir iex> %User{oops: :field} ** (KeyError) key :oops not found in: %User{age: 27, name: "John"} ``` @@ -55,7 +55,7 @@ iex> %User{oops: :field} When we discussed maps, we showed how we can access and update the fields of a map. The same techniques (and the same syntax) apply to structs as well: -```iex +```elixir iex> john = %User{} %User{age: 27, name: "John"} iex> john.name @@ -70,7 +70,7 @@ When using the update syntax (`|`), the VM Structs can also be used in pattern matching, both for matching on the value of specific keys as well as for ensuring that the matching value is a struct of the same type as the matched value. -```iex +```elixir iex> %User{name: name} = john %User{age: 27, name: "John"} iex> name @@ -83,7 +83,7 @@ iex> %User{} = %{} In the example above, pattern matching works because underneath structs are bare maps with a fixed set of fields. As maps, structs store a "special" field named `__struct__` that holds the name of the struct: -```iex +```elixir iex> is_map(john) true iex> john.__struct__ @@ -92,7 +92,7 @@ User Notice that we referred to structs as **bare** maps because none of the protocols implemented for maps are available for structs. For example, you can neither enumerate nor access a struct: -```iex +```elixir iex> john = %User{} %User{age: 27, name: "John"} iex> john[:name] @@ -104,7 +104,7 @@ iex> Enum.each john, fn({field, value}) -> IO.puts(value) end However, since structs are just maps, they work with the functions from the `Map` module: -```iex +```elixir iex> jane = Map.put(%User{}, :name, "Jane") %User{age: 27, name: "Jane"} iex> Map.merge(jane, %User{name: "John"}) @@ -119,7 +119,7 @@ Structs alongside protocols provide one of the most important features for Elixi If you don't specify a default key value when defining a struct, `nil` will be assumed: -```iex +```elixir iex> defmodule Product do ...> defstruct [:name] ...> end @@ -129,7 +129,7 @@ iex> %Product{} You can define a structure combining both fields with explicit default values, and implicit `nil` values. In this case you must first specify the fields which implicitly default to nil: -```iex +```elixir iex> defmodule User do ...> defstruct [:email, name: "John", age: 27] ...> end @@ -148,7 +148,7 @@ iex> defmodule User do You can also enforce that certain keys have to be specified when creating the struct: -```iex +```elixir iex> defmodule Car do ...> @enforce_keys [:make] ...> defstruct [:model, :make] diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 1859d84ed..7b7f2eb6f 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -13,7 +13,7 @@ Elixir has three error mechanisms: errors, throws, and exits. In this chapter, w Errors (or *exceptions*) are used when exceptional things happen in the code. A sample error can be retrieved by trying to add a number into an atom: -```iex +```elixir iex> :foo + 1 ** (ArithmeticError) bad argument in arithmetic expression :erlang.+(:foo, 1) @@ -21,21 +21,21 @@ iex> :foo + 1 A runtime error can be raised any time by using `raise/1`: -```iex +```elixir iex> raise "oops" ** (RuntimeError) oops ``` Other errors can be raised with `raise/2` passing the error name and a list of keyword arguments: -```iex +```elixir iex> raise ArgumentError, message: "invalid argument foo" ** (ArgumentError) invalid argument foo ``` You can also define your own errors by creating a module and using the `defexception` construct inside it; this way, you'll create an error with the same name as the module it's defined in. The most common case is to define a custom exception with a message field: -```iex +```elixir iex> defmodule MyError do iex> defexception message: "default message" iex> end @@ -47,7 +47,7 @@ iex> raise MyError, message: "custom message" Errors can be **rescued** using the `try/rescue` construct: -```iex +```elixir iex> try do ...> raise "oops" ...> rescue @@ -60,7 +60,7 @@ The example above rescues the runtime error and returns the error itself which i If you don't have any use for the error, you don't have to provide it: -```iex +```elixir iex> try do ...> raise "oops" ...> rescue @@ -71,7 +71,7 @@ iex> try do In practice, however, Elixir developers rarely use the `try/rescue` construct. For example, many languages would force you to rescue an error when a file cannot be opened successfully. Elixir instead provides a `File.read/1` function which returns a tuple containing information about whether the file was opened successfully: -```iex +```elixir iex> File.read "hello" {:error, :enoent} iex> File.write "hello", "world" @@ -82,7 +82,7 @@ iex> File.read "hello" There is no `try/rescue` here. In case you want to handle multiple outcomes of opening a file, you can use pattern matching within the `case` construct: -```iex +```elixir iex> case File.read "hello" do ...> {:ok, body} -> IO.puts "Success: #{body}" ...> {:error, reason} -> IO.puts "Error: #{reason}" @@ -93,7 +93,7 @@ At the end of the day, it's up to your application to decide if an error while o For the cases where you do expect a file to exist (and the lack of that file is truly an *error*) you may use `File.read!/1`: -```iex +```elixir iex> File.read! "unknown" ** (File.Error) could not read file unknown: no such file or directory (elixir) lib/file.ex:272: File.read!/1 @@ -109,7 +109,7 @@ In Elixir, a value can be thrown and later be caught. `throw` and `catch` are re Those situations are quite uncommon in practice except when interfacing with libraries that do not provide a proper API. For example, let's imagine the `Enum` module did not provide any API for finding a value and that we needed to find the first multiple of 13 in a list of numbers: -```iex +```elixir iex> try do ...> Enum.each -50..50, fn(x) -> ...> if rem(x, 13) == 0, do: throw(x) @@ -123,7 +123,7 @@ iex> try do Since `Enum` *does* provide a proper API, in practice `Enum.find/2` is the way to go: -```iex +```elixir iex> Enum.find -50..50, &(rem(&1, 13) == 0) -39 ``` @@ -132,7 +132,7 @@ iex> Enum.find -50..50, &(rem(&1, 13) == 0) All Elixir code runs inside processes that communicate with each other. When a process dies of "natural causes" (e.g., unhandled exceptions), it sends an `exit` signal. A process can also die by explicitly sending an `exit` signal: -```iex +```elixir iex> spawn_link fn -> exit(1) end ** (EXIT from #PID<0.56.0>) evaluator process exited with reason: 1 ``` @@ -141,7 +141,7 @@ In the example above, the linked process died by sending an `exit` signal with a `exit` can also be "caught" using `try/catch`: -```iex +```elixir iex> try do ...> exit "I am exiting" ...> catch @@ -160,7 +160,7 @@ It is exactly this supervision system that makes constructs like `try/catch` and Sometimes it's necessary to ensure that a resource is cleaned up after some action that could potentially raise an error. The `try/after` construct allows you to do that. For example, we can open a file and use an `after` clause to close it--even if something goes wrong: -```iex +```elixir iex> {:ok, file} = File.open "sample", [:utf8, :write] iex> try do ...> IO.write file, "olá" @@ -177,7 +177,7 @@ this process will exit and the `after` clause will not get run. Thus `after` pro Sometimes you may want to wrap the entire body of a function in a `try` construct, often to guarantee some code will be executed afterwards. In such cases, Elixir allows you to omit the `try` line: -```iex +```elixir iex> defmodule RunAfter do ...> def without_even_trying do ...> raise "oops" @@ -196,7 +196,7 @@ Elixir will automatically wrap the function body in a `try` whenever one of `aft If an `else` block is present, it will match on the results of the `try` block whenever the `try` block finishes without a throw or an error. -```iex +```elixir iex> x = 2 2 iex> try do @@ -219,7 +219,7 @@ Exceptions in the `else` block are not caught. If no pattern inside the `else` b It is important to bear in mind that variables defined inside `try/catch/rescue/after` blocks do not leak to the outer context. This is because the `try` block may fail and as such the variables may never be bound in the first place. In other words, this code is invalid: -```iex +```elixir iex> try do ...> raise "fail" ...> what_happened = :did_not_raise @@ -232,7 +232,7 @@ iex> what_happened Instead, you can store the value of the `try` expression: -```iex +```elixir iex> what_happened = ...> try do ...> raise "fail" From 75c0ebd30288b1e47eeec798850d6f2ec22a3a54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 18 Jun 2020 01:43:01 +0200 Subject: [PATCH 1175/1761] Fix another instance --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 1b8afa09b..ddc0d67dc 100644 --- a/index.html +++ b/index.html @@ -166,7 +166,7 @@

Erlang compatible

Elixir runs on the Erlang VM giving developers complete access to Erlang's ecosystem, used by companies like Heroku, WhatsApp, Klarna and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

-{% highlight iex %} +{% highlight elixir %} iex> :crypto.hash(:md5, "Using crypto from Erlang OTP") <<192, 223, 75, 115, ...>> {% endhighlight %} From 2bc4ce128db4e11b3c75fd19eae469bda75c3091 Mon Sep 17 00:00:00 2001 From: Pavel Shpak Date: Fri, 19 Jun 2020 23:12:18 +0300 Subject: [PATCH 1176/1761] Fix forgotten cookie in releases chapter (#1404) --- getting-started/mix-otp/config-and-releases.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index 32f4264f5..e1b0ebd94 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -277,11 +277,13 @@ That's happening because the release `foo` is already listening on port `4040` a releases: [ foo: [ version: "0.0.1", - applications: [kv_server: :permanent, kv: :permanent] + applications: [kv_server: :permanent, kv: :permanent], + cookie: "weknoweachother" ], bar: [ version: "0.0.1", - applications: [kv: :permanent] + applications: [kv: :permanent], + cookie: "weknoweachother" ] ] ``` From c9d9619e8320159549ff158402aed9ee4d3f2b05 Mon Sep 17 00:00:00 2001 From: Pavel Shpak Date: Sat, 20 Jun 2020 11:05:39 +0300 Subject: [PATCH 1177/1761] Improve link to short Erlang tutorial (#1405) Proposition to mention/link to main page of short Erlang tutorial. Cause there is no direct link from Concurrent Programming chapter page. --- getting-started/where-to-go-next.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index 3fe65f87b..3b3df1de0 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -41,6 +41,6 @@ Elixir runs on the Erlang Virtual Machine and, sooner or later, an Elixir develo * This [Erlang Syntax: A Crash Course](/crash-course.html) provides a concise intro to Erlang's syntax. Each code snippet is accompanied by equivalent code in Elixir. This is an opportunity for you to not only get some exposure to Erlang's syntax but also review some of the things you have learned in this guide. -* Erlang's official website has a short [tutorial](http://www.erlang.org/course/concurrent_programming.html) with pictures that briefly describe Erlang's primitives for concurrent programming. +* Erlang's official website has a short [tutorial](https://www.erlang.org/course). There is chapter with pictures briefly describing Erlang's primitives for [concurrent programming](https://www.erlang.org/course/concurrent_programming.html). * [Learn You Some Erlang for Great Good!](http://learnyousomeerlang.com/) is an excellent introduction to Erlang, its design principles, standard library, best practices, and much more. Once you have read through the crash course mentioned above, you'll be able to safely skip the first couple of chapters in the book that mostly deal with the syntax. When you reach [The Hitchhiker's Guide to Concurrency](http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency) chapter, that's where the real fun starts. From 004484b3b5c55bce946cfda8a953642abb6b370d Mon Sep 17 00:00:00 2001 From: Henrik Nyh Date: Sat, 20 Jun 2020 10:20:06 +0100 Subject: [PATCH 1178/1761] macros.markdown: add `()` to nullary macros (#1406) --- getting-started/meta/macros.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index 313afeb8a..58ddbd2ac 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -126,7 +126,7 @@ defmodule HygieneTest do def go do require Hygiene a = 13 - Hygiene.no_interference + Hygiene.no_interference() a end end @@ -148,7 +148,7 @@ defmodule HygieneTest do def go do require Hygiene a = 13 - Hygiene.interference + Hygiene.interference() a end end @@ -174,7 +174,7 @@ defmodule Sample do end end -Sample.quoted #=> {:x, [line: 3], Sample} +Sample.quoted() #=> {:x, [line: 3], Sample} ``` Notice that the third element in the quoted variable is the atom `Sample`, instead of `nil`, which marks the variable as coming from the `Sample` module. Therefore, Elixir considers these two variables as coming from different contexts and handles them accordingly. From 1d87033086241c94a6bde71d0667e4d8a6487ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 22 Jun 2020 11:48:12 +0200 Subject: [PATCH 1179/1761] Fix post category --- ...operty-based-testing-and-data-generation-for-elixir.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown index c122a780e..77ba9c134 100644 --- a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown +++ b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown @@ -2,7 +2,7 @@ layout: post title: "StreamData: Property-based testing and data generation for Elixir" author: Andrea Leopardi -category: Releases +category: Announcements excerpt: We are working on data generation and property-based testing for the next versions of Elixir. --- From 9f5c00b4e43660972591a65041cb2259ec0cafb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 22 Jun 2020 12:09:23 +0200 Subject: [PATCH 1180/1761] More fixes and notes --- _includes/categories-list.html | 3 ++- ...erty-based-testing-and-data-generation-for-elixir.markdown | 4 +++- blog/categories.html | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/_includes/categories-list.html b/_includes/categories-list.html index 8056b1d0d..0be2d86d8 100644 --- a/_includes/categories-list.html +++ b/_includes/categories-list.html @@ -1,7 +1,8 @@

Blog Categories

    - {% for category in site.categories %} + {% assign sorted_cats = site.categories | sort %} + {% for category in sorted_cats %}
  • {{ category | first }}
  • {% endfor %}
diff --git a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown index 77ba9c134..9a430cbdb 100644 --- a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown +++ b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown @@ -1,6 +1,6 @@ --- layout: post -title: "StreamData: Property-based testing and data generation for Elixir" +title: "StreamData: Property-based testing and data generation" author: Andrea Leopardi category: Announcements excerpt: We are working on data generation and property-based testing for the next versions of Elixir. @@ -167,6 +167,8 @@ The reasons for writing a new property-based testing library from scratch are be ## Roadmap +**Update Jun/2020:** after careful consideration, the Elixir team decided to not include `StreamData` in Elixir itself, as it provides all of the feature set necessary as a package. + stream_data and the functionalities it includes are scheduled to be included in one of the next two Elixir releases, likely 1.6 but possibly 1.7. We have used the names `StreamData` and `ExUnitProperties` to avoid conflicts when those modules are eventually merged into Elixir. When merged, they will be renamed to the proper `Stream.Data` and `ExUnit.Properties` modules. Right now, all development is happening in the [stream_data][] repository, where we are discussing features and giving users a chance to try out the functionalities early on. We'd love for anyone to get involved in trying stream_data and we'd love feedback! [stream_data]: https://github.com/whatyouhide/stream_data diff --git a/blog/categories.html b/blog/categories.html index 51192802c..53589af04 100644 --- a/blog/categories.html +++ b/blog/categories.html @@ -7,7 +7,8 @@

Posts by category:

    - {% for category in site.categories %} + {% assign sorted_cats = site.categories | sort %} + {% for category in sorted_cats %}
  • » {{ category | first | capitalize }}
      From d68dbdac50135b714670b0d1e22cdab9f800940b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 22 Jun 2020 12:30:55 +0200 Subject: [PATCH 1181/1761] More fixes --- README.md | 2 +- _config.yml | 1 + _includes/bottom.html | 2 +- development.markdown | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dffd94264..86f052947 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ guide](https://github.com/elixir-lang/elixir/#contributing). ## License -* "Elixir" and the Elixir logo are copyrighted to [Plataformatec](http://plataformatec.com.br/). You may not reuse anything therein without permission. +* "Elixir" and the Elixir logo are copyrighted to the Elixir team. You may not reuse anything therein without permission. * The HTML and CSS are copyrighted to [AlienWp](http://alienwp.com/) under [GPL license, version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). diff --git a/_config.yml b/_config.yml index b271f22a6..c71405db3 100644 --- a/_config.yml +++ b/_config.yml @@ -6,6 +6,7 @@ kramdown: repository: elixir-lang/elixir-lang.github.com url: https://elixir-lang.org exclude: + - _build/ - _epub/ - vendor/ - Gemfile diff --git a/_includes/bottom.html b/_includes/bottom.html index 5751c3e0e..91724997a 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -3,7 +3,7 @@
diff --git a/development.markdown b/development.markdown index d9d8a2e39..718f6cbde 100644 --- a/development.markdown +++ b/development.markdown @@ -8,7 +8,7 @@ layout: default In this section we outline the language's past and future development. -[Plataformatec](http://plataformatec.com.br/), a software consultancy, created Elixir in 2012 as a Research and Development project led by José Valim. Elixir's goal is to be a productive language for writing maintainable and reliable software. +José Valim created Elixir in 2012 as a Research and Development project inside Plataformatec. Elixir's goal is to be [a productive and extensible language](/blog/2013/08/08/elixir-design-goals/) for writing maintainable and reliable software. Elixir runs on top of the Erlang Virtual Machine, which provides a scalable and fault-tolerant foundation. Elixir was designed to leverage this foundation without performance costs and aims to contribute to the wider ecosystem whenever possible. From c7967dcf5359bda5e5fd33e5307f237d87b096d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 22 Jun 2020 12:52:24 +0200 Subject: [PATCH 1182/1761] Add period, remove unused asset --- .../2020-01-27-elixir-v1-10-0-released.markdown | 2 +- images/logo/plataformatec.png | Bin 2431 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 images/logo/plataformatec.png diff --git a/_posts/2020-01-27-elixir-v1-10-0-released.markdown b/_posts/2020-01-27-elixir-v1-10-0-released.markdown index 2f7fa303f..a691afb34 100644 --- a/_posts/2020-01-27-elixir-v1-10-0-released.markdown +++ b/_posts/2020-01-27-elixir-v1-10-0-released.markdown @@ -3,7 +3,7 @@ layout: post title: Elixir v1.10 released author: José Valim category: Releases -excerpt: Elixir v1.10 is out with standard library, compiler, and releases improvements +excerpt: Elixir v1.10 is out with standard library, compiler, and releases improvements. --- Elixir v1.10 comes with improvements to the standard library, the compiler, as well as several additions to the [`mix release` feature added in v1.9](/blog/2019/06/24/elixir-v1-9-0-released/). In particular, this version adds a lot of polish to existing features, such as our configuration system and our sorting APIs. diff --git a/images/logo/plataformatec.png b/images/logo/plataformatec.png deleted file mode 100644 index 7f62347721b97a7586ab668d9e746e6349c28ff0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2431 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 From 490d42f1c6f4b1e0932ca95baaa83d37799a0365 Mon Sep 17 00:00:00 2001 From: batate Date: Mon, 22 Jun 2020 10:43:40 -0400 Subject: [PATCH 1183/1761] Add Groxio resources to elixir-lang.org/learning (#1408) --- images/learning/groxio-elixir.png | Bin 0 -> 131670 bytes images/learning/groxio-otp.png | Bin 0 -> 100694 bytes learning.markdown | 20 ++++++++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 images/learning/groxio-elixir.png create mode 100644 images/learning/groxio-otp.png diff --git a/images/learning/groxio-elixir.png b/images/learning/groxio-elixir.png new file mode 100644 index 0000000000000000000000000000000000000000..48ff6fb9a7bbac7bea123fd9ba637e25618f5f4a GIT binary patch literal 131670 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

)X{)J(6`j%>9z~3R+;xf8997(Lv3Eemt19qlGl! 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ɷMySC$aad_K9uYw+COzpQr=;hK6 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%0D8v;(O}iNX$n<#VDBwsDicZ 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%0A{`cln#*PCy^ZrfS?XA_bk9^|5wlQ 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

ifVyda!t;;(A69vYr4_)18{ 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 literal 0 HcmV?d00001 diff --git a/images/learning/groxio-otp.png b/images/learning/groxio-otp.png new file mode 100644 index 0000000000000000000000000000000000000000..bf919c08a4eb9974792dff29a721086edac9a168 GIT binary patch literal 100694 zcmeEu1$P`vub|nE*>PfKjF}n66f-k3#>~u#nVE6M%*@Qpj4?Aat?&KbzTN!`dtRN> zXId(?q^hn`sive3m6sJmg2#ae0|P^n5EoGd0|WQ^yyoCwJ~3QH@e-duP-cQMf?#0P z(Fm^w(4R1ok+`A^7?=kI7?|I0FtF!Ol;0s3m@^|7*s(qs7N3*YMz+@U2FA9ACiHIBcAwN>V7zYJpSRW~P6kA7 z)>bx-+-`g%|59*&-v5JUAR+pf#L1G6L|sOnNZ8iFgourvm7bA=AD)Pah}Xf`lv`0m z^uHeeg!o9zot*5r85mq$UFls}=xrU$7?`-YxEL6j8JL;rJ}KxN-EEu<+~{l^N&my- zfAbMBaWrzUuyeAowITY4uYsYhvlAZ)$v=YryZlE_Ckxa6Bgw|`znb;gK!$&67?|i8 z8UCC1=cBy;V7cWSEKEKn|HGf3iT7X1{|EP9a(Eg35&nNE^PiUfi~VdWKRhqPe|H-{ zymSwx1{jzCn1qO+vK#oR4y?Y)&jtP?V64C)o510WAh*lU>N4ju9ksW!3hQ+p=d<;C zR~;Sa>G}#JXaw~i0k_onLJa=Doz6eJ5B7NJqoKZ%U66A^GCXXgvh4Y=IGXN{r8?&G za()S9-66 zHFZhBx9P-Q;;KzjRQxE8wGQvrzJWoB)$?^SLTpj;fj^{L$zn)CeqQV0$czvB)~hg* z7+KAtNJ8D;`-xFCpn7^Pt&tb=ba+DhUp&Y`ThIHr8erPz+k!;Y^s15#dr~?U^hjxJ zNXEx20&ZQd&74ppsBj3q9QzYd8(Ww8Ah&JP(6FBiQ3oG3IEKnz5#Q)F$YtocRO3zx z-fcEk+lz#AD2P!pg5Gl>$u;CgM^uPIn*XA#0`PiL12!QL`S(1lOtjr?U#%G{j~liv{ZqFPrkYY zZ*{O$_;_-Y@M?&wzS44wTihI9b0ZMxfstnvu_^`C6cQd97pKx3 zx8a*&%xe8ryr_)t)TD$yO}LA=3KQ2Nom`QQH%cL^cVXYI?s|io-GH7$)Tyny89|X zM~!FUioc&;*`udLv_WQz%|lLfHY$U4t8*_50maN(Q@L!g1~7P;oAQ({=Y{V*oMHD3 z*EZHepPMF$A^zdqS3a!4IzFTRgm@+z1DWqm_JV;6fg-GoE@2#jLj0KuR`Phb-FUX` z>TBZfE2gy<*&&}}uGADU#~MmOGSDDc zV)zV6vq*`uQES8V3BqBX`_@3-%<$`o2@oga!Px{8p5ZVNtP_wrzs^z7IOX zrzm912qvO(OIXW2QXBpYU zb7DTETCa>GWzf|i1!U#Tkhq^z50aUk3x$UN`mu_@rMHd%%O-!EUn&e4E>VoWM79y# zFS5qSpqoyL6oo}>fqe&gfqa@-ssjgwMdCSuTBQ^9)JNd5> zc$IRCg@u19%!Pi?Mcw(cw$b(17~CmS^%#-(%vBV=W!-XTl6APJS!F&TqTeDfyri3F9l z(wSPNnvq>aMF3Qak-&nryPb=4kOg|v)IH8ELpZ8*e#BG?+Y2%N!+l;XK_4#i-=A|}nF z7fKC}ATeKdycoarnAF^Ye5DkFEBswydJ8=c@4XOzzCffU7rAPlSwA>97rXnYTo!~t zj#5_wwVfz#XjMbj4-4~L{wMu%Mj-OW;mg*$=E`b zL+Ps_I-B>5J>wAFN}heACn)Y)a+tf4K%1m!hE_s8>nTTQwfbIuMs7u2oiaQEg5Xyy zD>u5X-AdWa%!mDm>Ue$tKyS8OiBjP&BX-$1Jv_re8d5q75l5vCCCV)yl)!*wU9eIk zYtcQfje|tGHCcPEzm6CdD*?w)nK9u*gj@5T_@y z>7E7Z-R@x+ST7XT3NtTej~-dMv)+{hg2_n`b_+njRIO5wV^{|uoR;mGbq?KT*K=jw zLDDFlN`gS~L6WWGfQDnPHB6%cwEwEFPg|{`R1_3&Bplqnz|C5|1XEn&a*yKh=^Rl%*_X1s7hMmXlJ>9b*no8lRVw|R_&9mgdE8}<1H zO}sa#v1@PXp1j7_XTD_?K`q<%2RvNMe#DR6((AvLqcMm&FvYC#Y@1Upbx8ls#~EU4 z=NIA99KAmSO%2@ajvt|nWMs%0yLZbu=q%a-xop)%3inzI^fT_6rm* zRZV3!pVGf13G?8rf~ufVEsN3fNu}jNy_$)p@vqQnHBj;E%{PG*EiaPQBktwz<;aOU zUPx5+tReytN6(&wnqAmzg47%EfKi!rvKt&HT6CD3hEm39As zOy#qW+ojW`5ZiQ%EaQI1N`2al2CaAbpmLCnCK*5)|CQk=_Ani&65fkQ*6p?e!{Lp@ zkHOQS}88s3TeXAi7Stbn;fOIMA^NSJjW`9!){Ap?oxlH@YW+8&L^*m&eLUAk{h-`eTy#o8 zIxp#h$~W1Kk2{-TIvom3Cmb5wo5dj-1i7SpBn9R@-i zT%hS3)D0VbyCtIWDOCv5gpq8~PWKV~U}8G^(YGnigZPZODc%^l3Z#J8WXdy3QE zKOJ(|tTl3XIUUWgaWbl}t=J*)^iuwSV(X9%sOud#V@Tnc+Y{aIcqD?K0aX!UM5KII zZZt?rD0@+fa=#)^ob_a4a+u!ypx()KNeu(1Y_}!E4qCo1oa`XF;U^?bZhvl@vt1M6 z=e*Eveta_9#T=7Vlg%WCw0W;>a~jp#-Ey2v>XqY{5dAO%j=h^^WZ1u0&w#VP1ANba zYOwj{;)SPru=feTW_vIv(!>1i=*nMQSKzWB1=YhOa(c zQ@!r5OTT71)Mwa_j$fbmMhmW?kzyKdZf$=0CnvLVk`AjrHGI)LNcCd|Nun$GtS8)8oBq;@l# zAEX}U9C!Z`ph&y{1#k`4RF5Vh(frh;=$q9 z>K!ufO7&|;M-ct)LuO^WY>@=(bCjpa^D()@SFHCgmX99*A1=+7`!gCNJvR-X)Z2JO zo)6mM^fZcWzFrrf~Wi#6468{hVHwizaPuN#dP+zmU?sEC;b?!mTu)2C{``9yl-=H(QVVlDD z_dd||FTtmg`URO%;GXf-?zF0c7i-OIP3|*tqVQibN3Merv8jy)B2=3J*gn>du?CMt z$}IzQ=~8b#fk0!03VpSN@}R(LU7m1Bw$ax%>+5mLNTQl$J4MzC|DMXMN0sKhN>U@6B@nc3tI)yE18h-rt zo=h68zmW0qCD%>v)aC{emPDl8?JwpD_9iwQ@fn|TGaq(=8PIUFlVn)6F3}{JhFXuN z@UhuLM9i;r&&}^tb?8ycC~DGlNrywiYw=k8=;6xQxMDVWOJ`<%aI;8&s3ziZ*Kp-* zn02o)K4G}FzaPJD)I|sW)a0?E2=q6yTgt2zjAR|FBr!9Hr;tf-K3N#~LYeVHtI?+a zH9=GI`(Wvh_Ova+qH@OMzOIsB6Q6K?Z!+Irr~1ac#O6j5LE)TSmI;oq>XV7%rOP*U zs;ny2W9MVC;u+}%o4!!)sqY39op#&bxbAa#j2T6^qw!oq+T0g2)4ack&|6RPidmoS z(&|!UQ(0VJ*DsEuOadqgjJ?ZFt<|Y^iQW{gSmRTbZ1uxw2Sy-XP=Ee(K)WZ$pjRgv z)Nv^;(`=W-9fY5f$4^W(-tjrh(7RM4i+=u~$$?m*P+Hh>f9so`aaxL3=( z8QPU3BIEbaSn7;l*&I)WW|rc^^$FCe%co%$vFi=){tk^Y_vT02*3`J>TdnbdTvF7q*bwlP z0aOJ98zX=xB0h_l%=J+X3abD{2T~CHNi zx=+bV^zB=H)J`V!%TH?u>pY(6|21oStg-49wW5cC(sbl~Oo#`b_hF-IM;#~MVhs!EE z`vt2a)xQIaVbF0?kQ4BR%K!;%J{}quI~*_pP9}Glm#c#L<%#X{n%2vF@$*r|Uy^=q zjE1Kv4fRqYod~m(NTf>FlOR_oyEmD?5P;uHHDupgc<vkVMppGa!f z%1$U4mNUnC)8JRyY4gluIJ&uBuc2MY zb(x|xK(S_5efXKu6^Uh^0Zhmw-iBc?dG*lTOqR56j%t{%-!j|KrLYYSzQ_E-)^pcv0Nfz8lqLfN|Zsa68nA%P1$eXZGvNLX%$)6a`W zgTBuwfT1*UDe{+-FW2a&&p5=?P$3AH0xYvlBq6pi8(wLKJtVjQe+^Dk|Blu;Z>BoJdaNd!`%^xzq}4 zn16N_LzgJckyA~*5@op%jX}pyt^P2)h0A?4^Wmcrd4)8R&F7j4@6I{%OW4mjA$CrA zpxjG6$$Ew2Y}QjMv&pZ`1HtKNGyMiQHsY>)JaCubBNLVU&1ztViNNFuG}U=v<$YaJ zNzTQt)53m?04NJWD?r4pwc|cMYpnGA&CB&*97<c;NDwH^=L*Gk;rWD_40-t)%HHT%fN0gnb zE^NmOGsIyv&v~jr+)tv{fxz~mWjAN3w?fRXcuS(=Vs<^p!{)TBVioQL0`9JSpO3^c zCS)*v9mO0iHr(U6@OeR|fqgAQDpehY%tVPxxit=@?uP4Ve10qwDZ^^$HI?lcTMX)M zi(_sH1c$*gd4E1i<16K%sxR$hl}xfmpcD!wpovIPb=b+fFhN)5)~LYV@rjuTgcWBu zK4~=idAYJXeEkl{j$zRKNWO*ej$nB_Xo;F8&ou1ticp`}wz2*M*$rNwa&tXoHLv^8m9Fa$ExNj+m148)5Gf*z07K z(t`la8FD%H6Fh3Z_ViubtUm{5lF1N(_J`y(&eI}qGv5w0EXF+~eD0lgwZgnKg%Int zYn67 zV_7CJubUNQ6LFCv0L7k>Qi}RU=VTrvG_@Iyi8~0e6b0>r4K~}laX^1Z16X|W7 zCzEjmo6@QWA1L@}iE_zp)PGjhMhpHjIc(<4w>%R$7OuUwYfO%4 zjaJ6+J2NB=ICGEuX|Igm8&w?{BS70eDDw6MbIoDbaQSp6y#-`rTK$y1)b3_KbiVqJ}sZ4H6gptfjlMGyTgL9I{ z+B$Vm?GTr77^oQR@OtJ7R5~Tcxtc%Auz^Ar;hH`np?N!H`#Fc)&RnllQFRnYCSHdv_dpurP1-(&G zii?KtkIYea-nR7h7l`kp1sYr%r0)t>Z2DXhS^EL_pW5oU&0~y_IOUTj(@4WN3CPc6 z0r0pJ?ut!ZV%!8CF*f|szQ-CCp1TG!7&wBXrekqjD11?Z`2sDQZndm7!NNK@_`ajU zGxu>y>>oU z9mzNRuj)Y=b{Xg1a|$q9l2 zX%5KagaS}4yDLaqi;o~&x{P)jc34^J2Sm5`7j|VO#!^64Kk;E!MgSD>&Ujx*)rZo( zznR(l4a-8Q5tG#|4(M7NsQ(q@Ux94Mm_ob8C{<9I8iL+13>R$PutzM}D4gij^4eli zP?NOV6cq5Q7D_4*sW9^_iNQltW{AfI4|w-(G9PHTj0%|#C1CF zXAQxM^B5^zd6uz>$r0k_WwEt2i34Kx{P?;JZ8*R0o%7RW&kayvkyx?D$MTVp7B_6Wbxl3GhB9@nQwv#?YWsG9|dt1dg~PT91Xub9>SusNw2rUzvN-2y+}~i~aO1~u zC$L~kRRJJO(<_1uB2c5~A%3{GoPSO7D*3voS1{$)ihuwrx0pm*t-FJqZWDg#BBkai zi(2+S!X?dvktJokzv%+b<}eUOUiuQa$Kl-_>daIr7`gA1v8a$aV!}Y!^mX{WyQk!b zIN`90KO+&+TN5qjXIzk*AK~$sb*#M(Sk{np$Snwzn(eHxIV{?f0+9|;e4jN^5uQE` z2D-^n+Y|F`iV;x_+LOuJ!whmkYG?bI&y)MQPznjBxFRlF3<_Zr3Ithfhq?){-i8Xj z6Q8nt)pVF6S+4@-@R`s#!G^KZ7a)rjP(gXQ(H76$g<*9>5eODb8#4R@N zWtTWvl6nv+`L>9*hy_)q_Z!3f?={o4&%NGWgN;$b@(Xs(#Bx1h@_0dAFe9|*#`Gqw z&S>xvkm6DVfg-R;&3Dt7l+`-i?1(XHlS$iqF5jahCoUlv zYfMt!f~rNA#;g&f=apMVz%G3(Xw^5{NSz)07+iZshRA)^b?J`NjP<0rzv(o^$STwo z$Xw91fP!nS_~0|+^Gp`%AEbnql+9bX1Vus2X$P7QYyfD!j8$)r!i40hlJ|`s`0}cJ z<-S)sEBfjMRe-OgtMkKl%{v;ga|@z*%eD~>3OjIqWQIexTSCK1Uv2&y>&W-WwubUF zQfpaGTup9X=PFA|HMxgEQPQsQ#iQjNP!1F!Vt_cPk0xOm*T-)>-E%k2rBV_QqI@{g zV!y@D7&!CNMR;E}!o{q}>>TDcVpMXwNyVa915PpF#xJ*aY!qVVZgGKUIjE#!?%G$< z?D`G(a|}D>TYBB;q8$9f#Piwnqlz~!qu8%1`50yR#8NM>YrBmCcf~6Gde%eFrUF&J zc-OhcVAVF8I-9Nm8)^~ay6jG;8wd&5*@EW1fXH-{?m3GYmqVhlTZG*`no6a0kK=QU zUQy(`Q>E3q1R4T&^}E~3-&ybQ=0|qRErBhGPeX}wEBRsC!!oFRBISK48H6zIbGfizTlB8bG9^BF2kQWooh9SlB1vXfDT6Qc`en z*c%A8x3XE`CAFdFRp?c7i}vKTOlpp{x>vD*zPA*05Kl)FNN-fShY{wim-wt!plc)9 z`as6;W&5Nx`jQ7J@)VIUrS0)3+@Q8_yq zE6RA82on!4JlP_^9{r@zP^rx@zS@1Qx7wiCDS>|EyT?`ohTD?O_nwg9{ebVVQCc|? zN2LTpu)2;2pnnr6A}lbv3=6Q>)edpcL_VgxV$2#qalN6@)bT)ygFwW9Mt!L>pH+Q- ze^>=MtMa^sJf}{LPeRRtvV2{~>UK6gm8QBqA5MB zzEcbnMki6ErnY=FUwsld@*4OuQ>CF~v0hHovCSii9Kc*ESfx{ z8cX}HNe7z8hKbT@3LZEifTRMx58Vp1xn71qtTDeWB{HV%y<~FGm$A&a?O>xO3PMHq z8&M0+s@5{?4rz?ZK6-%ZL3&3fG|S*BXrt>s4t6}Xd8(12JHm5x*J?PkTHbUrof?}? zOI$NB=z7O@Bi2H$>zDpP1$U`zKx8BZ7EucdHZ6X2^UJVQ<;XF)6sr|mpGYVDWD;UX zwWNK~$*P%doQ%7cy*#Z-&B0i_#uD%N9}820XU$IceA*0dov=o$MD-9?pG-CcGdR_e z{Zkd@mxF9_+jW@l2W1+Kq8O7YRQ+9y^i&EM`Zt_rd(=-yEtba6BWq>Cuv9B)H0T?6 zRH5>e=>YGRGQ9@v>vpeY?$1BTwWB84g=psxH*pH?CsF|G6vHw+A!=2^y~Q*50fnJE z#Jzf*LP47@xR=B7L06t<`iTSOqF+UeBeIeh?qDrbDZ~y$kIz&1u<1{DaVf{u1oP=2 z(XnsxQ~ns-BRnTRp@qo+%20@fmWXa69 zrMkkf%&_FHtd3Xs_B+n8pm5O39mkM?Sr%2JBMfrO-D9T5+nqxn*TD#%{NQfe4>Xr^ z^cB|Ro_-plnqk$<7v&?c?Ln_h1;^(8Wt1q1?M3(l$fT{%s}&+IY=`CL-%fZA(a<{l zW872Z5?U!q>OhMtu6AMHWp>|yu-`dFVYM*$`kh{AGuyBDp6K@Ywxmni{Fec(M%O-YWqOk- zY)Un1<#GAQ0Ft6KDd)jrmV#0C5V=-C=o)aCz^IZL0}OGmlY$vm za7am}C;@|{?5w$L!a+p^nQycY?lHrTU8TuOBBQ;pUk#ZdHaqF|V!(pOt&@TajZerN zS~0F}uF#T}e10Wijf^U$DG^DedXqyN5@$*L_{lwd#g|CsXp~XtrV;e0iWQQlRZ>oP zOu~}c?(jp?2?DXeI+I3YT{b|0)5g&Vb*Z#Z8<^%VV4~sm1OjEfL`6qJt(=P#u^d>f zlOPcpzHY@w@5SBFPeIBWztU8BWFm~SF~9APr;RRddQ-l=2yx{~^K#-A>hUyO5S?(8 z4f^>(8tAVfYSkc8E-+O&^=;r_zt^R*?B;X}?_!pHp1A7f2aZIe4~*LPMkh^nJS%E8 znCBvPzA9dHcA%L(ep{bfkb)S)o`spP%J`7Z_4d*XMNBrr?%IX?6=IUw6CH(E?_}wd zN=d&jXBw%&NCB7PuYZKFyk8W~kaSBB6Z>!)0Zt>g(8+g)jiQ|t)0>)ZA6tJT&kHL7DviIDGxDMk(neMLxAo+pXLlCA4IBQO z6A4x)_uVeo;6oRfz*m@rCmI=*ce@54ZUZM@ge*1!Q|!tWIRC^OKN`^u+f_Jz+iFNH zy>oX8u0dy+w*e1y0bG2BkhBlHeb4-%Vh;Wy@{1Y%ikXC@!xl^EXPJSL{CbtrXEgx+ zlY6G#BC|NS;Bkzvf^}>IH?Tqh5^pWVztmF#B2~N*9wjm8NbsZ)7R|DXdR=D;+Q!d#vnI@Rm?{Cvh2>Sc%7^+mQSqDRlF>w~ZCENd3nJ zWA~<`VFZTcJzF25&~m0UVZ3eaGeN(<8J}S(kk+^gkQ^RI6;d=NZZZXA#8zBcn2usd6pQ;W?WfX%Ij z0b~OBMuXMfo4QY2F*Yw6J2w}91Wig>tT)Hg{vldQXVpZxIKB8@1!yN!0VHp^eq&!Y zFX$=5I+wdR+yEWJRp|w{$ahYe&0I`OX8*N0@^Vk+VEmnA>FZm;M1rphLt}%Bj7=AC zmTaEJR8TwYKhK!$PUyk5GR62jo9eq|vDo>38@VB;qRSOA(erwnYmhh$V8!>v`|x&u znyMs`e!WeK(s?u3TUQei^X1mdD(n0@^ecVm*6wXH*NYV_Gz1=W( zLy}oEe_NFI@MOpF+@F7SLvr@fj-XE%_={bhJwb@!VSAgD_2;I!jqy1Vq_e@i8fUK- z>?cgb4A+G1V{GTz%>5}7*}sak>c%3c%It#K>0d37{q2aiuzZ?gT%P_>3fUiy^b`C| z(`9mjYWGRe^T*HVaa(9*Z|7f-B;pf9s{l)G{|s{6LWRSGh}sTDut<*n7Yt$i1jU*l zwC|C@|B;H%8gsQcU?Vi=BropJI zteo(EPYsSa{AnHju^%o%IV;#5d#VIGl)?;?PuT7Kr6CP%j}w#syZ&d6CRWGz#HXJ{ zSK0aAl8}@nnaS{h@YBTn zV}yzjAr$n1o|KNoBFFCT?##9uys3Pi4H=FTT&;ba4{MGfv&pQPDg)ur@bLJxHEoS5 zeShA|E=Wlp{VuTP%N~TiXy4cTxpJ+>1r~1(^RpSKjNnhksG?9MiQ6xmJEfH!air0_ ziqD^+AApb7+SiB9kHmO6{$;tZZF;RP*=XZK?odfpl{~x6+K-<)>Vr}gsVaLO-;o2Ipv3uUns zGHK%B7<9({Vc%US~>L5cfF)@9fXlWmkLv->n^m!ELV5i69Myma%Muw(G%~^R&qcbrzZYhuP-_?^uYKr(L`nE8nOJ#eS8`^M6L zoc@XZ2(tiH5Hwhi&a%$V&VtD8EJNqNZH7+h=~i)0K`R>`>B-B(;c-~BQwV{ zY_;1a(P*?O56erzP&5CWg)=fPG_dxCMPW^j-+OOE1V4uW&}1};XHQPEloFX68v03y ziE#EW{M3k)G$y^~58MUYDTn_4{u3xai@4ks>KKdf-@fVJHOkl2s+AnlVmq&6o3J7= z&kK7UV1L4PG@WWAIw#Uco0ifNovVDQ)c1oD-bV18@{t)%MyYJhHUf^v+@8-Je z<{1;+C<5XJBa&JXXu?bjnT z8=JPB>pa`P0dCgJEbSZKFCHh0l@DEq?Pgit>?u)uwu|Yu9sQ8P3#{E!Z44ccJ-F;v z>dm*d?RTn-zM@@z2i~t&gB#%t9lPr;t9tcq<7w=7$lQ;pD1jM`E@#{q(_(~l9CZ6A zNc1R>?fdQDAAK*kgLMlhGF@|R=ZdOfnbKzdyfg839exi4CMZXKo{F2fCF?#@R%(Q+ zJ|mJtUVPfbtE!K$(uUi4KR1SANk0|y5nbIP4#vx?d)V--oT(aLa~LgeO*pt3{J@s( zUFU=%`2%K#H-8*4to&zNE8{b8$vwv1GX>ug*5gyxM0ebs?lFnCi{=A@i)1~YFD^BK zDE#UdOs#V?*~3GJRVZ6X_}t2GtxiXO-!6MmMg$mpABNfrWYYHqBY@kSuv-Qf0y`S1 zr;-J3Z+D9{_}GxMY+^Xfnx`D*oUC!IArV0awjECtSfe1E0oU#_&5O?0YpH0&I3HRT z5lxTHNp1~KM=@TN#1zpWwFx;-kB+ajaY{|Tb) zhENWmlX^Fp(;wE?OG_wys{-nl6sU}_j0(Kgab4fTcb>bm&) z8gpLT;W*Gp6K;UNkxS(^p2)#iYM>X&y)4(AGN>P3>SSw}GFuU+0k@$48N@bM(`U&-b{P zL7$6^_7Rcfmx%AJPbV)zZ97-%k!b5~JCWa+qe1%S?H&(T+^)!s>s*fe%%emNZ3jeysg$#U zSW=bv+%7P)A2Weip=3PG52MGBdE}t-&8lsB7X9!oJ>m@C_or6iVE0|6?^}8SWOXJc zF8axxsQahsYgNLg6=u+$nbU*?ZkcAU~` zq-Vs|#}Vy);i&Scb*jP?uFNsw!*d*iLo$1FKAKUvXkOXQ85P`-LEI2C>Sr^*MD=D6 zy)Pt`9{ZdVJ--E(usgy5?jc%E$Ob##w2a}n;dIXh z%7PsAkSOU%ZsN)${-0tC%T!e^E2 z@$E^GesWh=JGZ5>n3VuN)LVkSm|X(*5E~p1=r?YU{O6;me|4A~IhY7&R`mR+$$R`A zWm4DX`|e&dV^?LdOg*dBKuaVHSngV3!5vQiK4;k^wXaa)38r-54S6 zzM!;(@Zfid-p7~w){D8xkv`abqnB-JXzG5+Q5Epa>6KrIp3oax-GQ!}dsM{lb|x03 zQa6rj!2&?kqR+q_r;s9L zLVmz>Luo(Uc&EeP5Y6>LfvI+22=7fA14?a9V+gf-Tkc?ETl1TpUj{vAQIFSK8*OeC zk-oh^w0s$~cFsBtgB-M?Z6PJ(zJ9-q6Ecf;U=t&u?2q*-TxAl zrwcT2Z%Q2=H*3-T%-IR0%qnufCQ7$>QqKZTyDcqA%T*4FIqL_xl&a1C+AbjDsKhDA@M8 zxIe3L%Ev4fTmNxj%EjUTwBspUN4|zw*h?)_c~6-y2-&`8dJ#I+V%RLSN_3J8NSfvP z>}E8$)+FR{%BgjyS(%Z#;gBV?WnxY^eU}1{hsI5xRzz%Ok<{4DvH)ki*?oOY>A-hm zkKBl8{22UXP1d=OK}3bB?jMo39Hw)bhx7TTDA?Q3nA${g{7=AVyD9%e@r&Yi!>EWz zlWK=lKxM&M5A!7+cxosUR}ik!4qqmdiIKxSeG+?i@m-J7kg>e62O@&EtI^aPJd>Hl za;=Vr%P-;S@0gg-qw)lN7V+_r5p7LH>POg>B$~g}?FCHT+*$4I{r3m2F^Fw(4^vEw zNUaqWNmvcpEwGVF<+=H9yg9{ZlH%TvVC3!SL&@P(J5sUXewL2-d@24 zahr3Uf4T}t&l4$3N>!-@UQvRrY-(YGX?Ob0X7BGUECAPX4LEiDKS?7iWq(#3f9P0y zAoG0YOOef^UUYu=s9f#PE^kTErj~+!Kw$a`yG>>-IT6Gn{e*UA5CYH*GZL&wZqO`o$_1 zuXJxku@%$h@82`GzFK|w>DRqWGJftfiWjY;p3jYYS{-Q%kM!fCp6879Zx1XqT42;? zCezrY%vOyb7qHyOGxvrQq36V14d>FjY+rl*Z`2N>?jj}Q~>3&WelB)^<)_YD;<+z7jj?+I)@ zQo*`o`!6?K$n~V%fw?yg?36@PtoNbsYg!$MrY%Wg(7VTHlbbkSW^;9j&S9q(CRc4c z%Uyh{?D6nYhE65SD1WCeeTHf0Sgho1F+{^C|3%rU!qesw_@kifeW&7o3?w5f7(tH) zlwH5=b7H9w*1T||9`L>nkvi;Te`tp$JOlvY+guqGKgJcPsk1saLd}>&n0%(kvY781 zL;0p#F4O$MPErA-Jj_?~rK(0Xx20h^%^bo?r)$xqj)f@;Zcr~Yl%C(96=@Mnpr=gd zBQRIP6@O=LYhjn~V3V?a9JeS+8%I&{aBT^U4z#&6*ZAA*OyJ={;QAxUFKRnRM!ipU zDBPeJw@sa>1xahX@m#c#`aX^7v2s6<=QOq}<<~kP!FpC4j$FrJq>;9SzOFe=Qc+dP zD}1le9E(k|@mz*!e!4i)M2o*2q><9hqvoS|7)0Lm{@Guu2k=vZIL<1xyI`_j}@Vkcp`&jJ2kHXXwcHJ+3grX1#%S9@)RDW$MWG zTf}>@3vSSD51*fO_|LZhI`La&=e6fXm>Z6%VUmrU*2av)8o!I0`z%yjrT0$$?0+VBt)jc=u=- za-T=bjPEH~py2~aE})E<#&edAUx8u*JGXL7Q6hR5)TlPNMXKxGjcT(hS7<%es@r4_ z?HNs3oN5nke-_@ThVJ?qRTe@tBE$l$y4mZr6AYyeq1R>ZdHyzSRFzyDrTjOkps3z( z&86#S#Myj6Ki^!;PQ)hbU4S(wbEW2YHlL>($#sE}Xg;XkKQ+(KtA& zz2x93%RX{|FnLAfTY8m(9hX>mrV}jyaNM&;I8XBN>E}=dc0#24CLrAKSpb5seU)U4 zjjA6ScvB9}N35ONG_jj8{o?CeUUw;&RaB2sDEr0t%cj$kP~URFY`b}MhL0gn2{_yu z`I@&pp-5HmNGT{{vKo~rcn-k@yK<59o~nWs$kgR9Y{e8?*S3k0pQ(x&bQUOO??zT_ z+d|8zO=@KQTp&Us`us5h>eO+z6i0s@srP7Q`Tt>+f^H|9=vfPS`e%NjJ1uZx*sy|m(InnWTOo}>fVL7!yY=I%jh}MiII=HJ0 zi-=2nVM0!b-`f-Ly4NtXz{6>3JvsNBGsj^v;=K9v-ZWgjIzIQLdpDDvQ*NphA1}7c zHO|Q%8zB9Od`&d{7X$C=Z0Qt6K|67UmzQqTPHmUvy|~m=>@uwxjn3V!twpcWq8L0p z^@offalQ%$ffFmjKd*kp`7UAc3xZhw7Xa8mC%@H1oIccN16>~~@yA9~9-yJ4h=wz8 zR&qsYS%tu6it6Aq9!w($PL(Qi^v7fREUW3?lNN^6f@+s6H}$uv56@3A;wZg}h#X_XH7(`|zG($AQ!z($VDnmHX-JGZL8m6;EA&lSwfnKPtEj~?<3 zWSM*pbw+C%N|`vI#aZ;GvikSaTN`N7xQUGa=|@#3^@sD`(j#pF2E@)?yUK?+#73qc z>WtR%?h4u;v6Q#7A5mo%LXSN1D7p34zi9o>pEp+raH_K!j!cI?s|Of*gBtODICR!q zvm}0WTyfEHB{gTxY#n5+3>x76gbe}qan=j@z_;IitA{nITyYLQqssn8`Mgb*td4l) zpiL!+$}oKY%TPm)djWKoofbh;J}ueM)1EQ@6j-o zhVl6hXmDy1h{nD!Xaw`K_u#wJz4qE`nkNQ2z0%?(afC{lH+k}8SekrH{YSntGHAq% z@6o<}2ao0nh!IT>@QPV5tb|^p^w?C^D=mIvFogstfERORd1*W58dxZ0dCk-Sn5NP) z+{(xM<*-F$^-YW!=jK~(@z$(a>y?(2dPTq)Cwsl~VPl73v{%F{t)bEc1I`rayIOtI zF3`DUR#R!vjjc+M+^wcPR?CQu&Dw6O12##vriJ%e|Ar&f3?6R)PwRLd8y@Nzop@yI!~ zSSTLhJ#|^Z5OlUoo!2(lK%?k`S|;4=tZ1aP^k7s>HB`{4G(8?!N9WRbV8nW~{osQS z)>FLY9fU$<=`4UVKz@M=rj6yBZ@xi)7u|ei87ao0ScY0SEEiW07SFESsb@H6xc(Ws ziK#TfvOg5{@I7fNf*)gN`6!3S0HreoiZl4$oSkrmz>Oh_9bgAX_XzCWEluJ_GY#Cl zm<{FSZIj0!4&&A z#8>pDLM@Zu*Jl5&hzFU!#iJ=0Odi!5fcfo{m#XGOs)gZOnaOa-6exlqU_ zmt2&4o1f8yUfIdGjN%g7pBCxJ1dMTT`Nrq+oH1>NF)dac%V?EN2FCbgE_8l+f5pNA zr_lDzg%@6^>2PC+Oot39)bagUHacq9@T4!XA=51HJt!6;)8~Lzk>dcj7-AYON0|oI zPMd)lx4@6i%FO|ho6LMi($T&U4~{V&85GOrF9Ykq22nD1hH-GFKQS$jmj1+SPqf5< z102)meR=88KMrMTiu8yj2Vv5M((>5`9x_?RV>!!fYouj6Bc^x}li zFR#qYDz2h*tvpr^KJ%W85@Hk?KYqN zA{X*;CC3-7WZ=MoI@8@9vnj6(mS1^guc+MYAbz*Ibjzb-UVCzuW+<&aTlk*Rv2dfe z_~u{Ub#G|>=`fG-@?pA`w$YbIXJP(pXgq(IyWe{Ru)Tu;ItriNT!+tE{;D%=itqaL z?xTrP{WuCUaD1suXYQQ6+W=v?+B4Oz*^fC;tiz0*A~>$xxbo&okShhQ{Iaofop@=|+&y%;*>1Ug$E%m)aug}ofhgUK?R*WsP2{eH*fXM84Z=Hx?{87Zi5!INX zRnWc$)$-fZD_eQlz-Ur|>YZfvRxT?))A8RkeKsJ9J1)BDBGu>_J$ke@DAHCof6|7! zs>C%ML({12GxMsf3#AQxu53C+SC#lxp|$jRWxUG9tt_2CeRu!c5wJc;X3u^|(Hg~X zl+}~jGo1aAGkor|P$X;2o^@vNSrYb#T!`_gn$7b$6f+KmWnOCW*b2c)%oDhr=#h_c z;x=p6Or$?S`@jG6zR}n8Yqc5ONQH*rsfKk_E-3(#yfzDMnkS}X3WRir~^NG8dRH=0AHsR7EwDBH$& zV+G%JRTIh7fi;HD%HqiTx4->O0mQdJRo@+-)r%O@XCq*v;jDsMA!K0qX024zSXgjt zWY!9(5yZIE4x%A7OVh&lx2p|=JgjugF-Pkj2Q{+x_xIl4>M_#q<8LoKcfuJr8TRDK zQy`x|W+#TeVEzK#FU!cNFHOLlIRJ1LPWmEzzoD?OKqr^vN!0kGSrSV>w7>GbEzIuu z%mIXh!GjMxD3@G%N${H#<;9OQcID=emk5jFcUp;|eGip7;k$ES`W`Aw<1ilNWlD}2 z^X{TmTNoIarcFI>XaZ=t_)&4pC_K#EchS9OIjIB8PyInHQt9nu=1j=atF{71IAMFg zx88c&<9BGW!4}~Xx$J8r0@jZBtzdqRb2-jruphC{`5h);-Xjk`qUTE>U)M7xJkw$K zm~`q{3~bDL{A4LaG#cH~_oua|d!Ds`cF!(-eoyggLU^@^bo?U=0M${^R1B#CM@RKX zI*L5}GG>6Hvtxdh>b2Ki(^)Y`PkfkK_~}C~<%~uX2-6>yf%$UBo*S^7ZG8Uu=Xwg4 znmSyG@SQlT;O;(8VREHHIU+6VajDs+Y?C(<y!c7luq_lv&b~3{y_yQF{vv5B^=Eut9rV8WnUr!Hs7Q0Bn4w z(!~ZwXYs8VmM)(yztBAG*=Tt6`|-Iv$MizeBwa=R{xnGAcYL<8`@^gp!88$xni7=X z(+mT@AN>CN?<)?(!07Gj&%@n21lW$OZBWOaVi`Vje~;f7WzCl*ZDfzyIF<%=p%b{prv@G>)YoiUmmFcD%2}V;Xe!tPi_+wseh- z10OpSf0hOfOWkn84NAiO84iMU{<5ow`{NMsAzAL;j4}bAri}xVPSVt1q{z-Lma+LdWuOs}wjLXAR+`YHcoivFI zyE#Ffd5R|}y74nMV}5K1Y@ih5Fby6GVdJB=5!2}1ySJ`t*jT7}WO*|lXDnPHa23SU zfqZYyWVqQx18;1o++^ZAQ$LuioHjo6J-8^`D!vcE;5LPpK9P)DC}Pe1*1ZJab+z=lhe#OtoR zPTzs?sESHPN4Y*flgKLvEORuyKv4*7?K7O(1pEXWHjMQQfYHHFn!aaB%Fg>5_HM+8 zwrJje|2+&IiSqO_Pe`+-&9no2^wEcM8@|ZZxl?Dk2m2$(9d~Sy`EpQt1UP&@Zk%c( zS$@2d`O|*T|6O^NeDc4K{XuG-^Ojp~m6KsxXCMZoD_~EisHjkAo1UGOosDHHE>6UX52<79_Fa}?{4AyaJ3{>wf_OR0}P{1ymfz^hgVfHi$EO4d@)vLG#J(pk7Zl>Nc%Qt!YB zH4bL7dbK#TLdmrFmQas6~KP z1*}@WqG7Zo3dZQc7@3Cw#)Ba=EfZ!fT5b$xY8exT#XJl&8t2x({KbQUAAGR) zpZ|>1I9FeDjR#dz569AjX)v9|iI{@nhQE06V$GL~lNI6rF@W)4Z$8L0V4q&;ahS^^1HtI+LA(-d82)rDPkebQ z7$3IbH9o_v;yDPAN%1#o)F=%vFC7M8cVFpnWLxQMkbz!(Fbx|p{AnmL{$N=dRL`Vp zXQ+Gi)mJqgX#D6E)-Z$R45g*284N;sHW0$vqmnRRI>;+Ejb_c7dRR?(WWID(E~BF# zO$QqWIBHI>of0VJyuAnE=TOG z3}ym3n2@`v5eWGEM>q;(eU<%*s+SN2YFlC6Y)ckiQCa-urRp|T%1X*MPjlOxu+dq& z)Q2kmu`=KwmWQw9X>9YWVp0(&4?DxhDN|(xFe+Bz%X5}Y`}W3QF1X-=;H;RleDjAa z+=KXGmkO}Tg&E@@Ej}n7%+JEf;4H0B9eHa=e&z_Vj7NL%bPQ+MLk~R^Ov7xZTR8LK z&jtrFYUT%HYMKVaEPd=lXc)vr9_07I_qDQW1pG02>=P(`R#rQ&d(WQ0VS|ytR{V~E z@^#o~r>iI(&VCGoqjA1~Wu(Jbqx1?*DGj%JgSbrn4Ih2LAAI2|=+B!)Wver$edwWw z23J0{wWH|E?Z z^Uga$17i$_I7RKqQ+^MSRTYXGqqIpwQ>fJB0f?Fg!|8aXY~8=PV_`~A_J=fd)UD^| z3c1NjLrP{s*W`mtpZDDKp=v1i38-66KTCt@@T>r7XnvS-M~hDyz9&^Q`Cf(r!;OX- zKXiP5nu@k`EnEZf$NZ`LPx)pJHnpZhRzC|iK6rM4DzERo_uruUYtNnmttN|aS8is} zQ8o4~eDaSr`e`|k8_zsJY?4vRL9^O-khM^erDNI5u`I-fKYo+eFb*xV(YtHSMZoHe z?T6o47{%{7L+y~?Ww5;$quCd4VSQ>XR4XAq)Xi1yf5pbe1lm(s-?Y3)PveImJ?GqWw7;=UT3ffYs&ch*{s@H)n%}nXNc+oCmGmM_8+L||kyzh( z3^Y&30Qqc;gZJDJ<%a8h_uZ$ePh|RZ%2di40T~;a5-ZXwgfvzO#uV+!u<{(f#-!eC zIHctOaxgwnLi-%tSmj13^XDcF89bRIf6UVc6`FjYbYP>Q+Oy>D>=cURvRZ) z>>JkK{Qat`?_lNRCNjUz%*i10F#oEiR}<*N&hS|oRJEdQ9iE=slk-=)(HgVmGaCad zo-Bw)$s& z@BH__axQE=_3G7IHK@3XW`7v-^%$Kza1!9B_m{D<_ZFY;l#TYeDtncFyq^6lbn<4j zOq-Jo&g3~j(2==Q6UTr4#a5SGov_^OAO18nVkQ4D9v#a`Rc)$RXSL75q%5#1u4FPb zk}T{D-%v174lAm>Ms1Z98s=yAkQ1v47vy$&l9PJ(WO8jVtER3xXRj4GrpvUrMB~7~ zlb|$+Mso?~c#@8djH?ZE{9@Jl=bx`>Gd@RrevXf`d2HzD0AjQpShynKjQit{11gMc zq&(iu84aDir^Ttvm2ucX{30s|6*a9Qh?~rDmc#PVh2m&5ye5|&isC&DOj(2Hvvc7= zV0Z0ccVWM!bZirxEPaD>6J+)$oph4+9kzM49jf1U@78_CN8mxfx6a;ySN1m=Gh2np z8CRw3r^W}2j%6dGWf`cFO=$pEKD{SH`30$6OFcAC?6Lg;?V5IILD4ri{-{<6PtrU|q6q^79LDaPM2a z&&jc{uBaK0XJF_mYU`Fpc~`3khH-+%a&kgQGs!%>MLmDI zy-8am)_^||XZV%Hz$$~Y4}M41X3R7@%#VX}bJ3hNAkGZTStGG$HbTxGDC@QjQ_jBm zBV*=lhX<{=ir@hzSjN;D1P2t#&1vG84T7R1E-&d=28yZpBlG8=z|{c{aB*qK54v-f z!UI%X4KSa*X*`U>nG83%%{4%|>C!MWqf1JvBYBW_^59cqVjcCX=+EZOJJM;2gIP@9 z@UAFMRs8qn9jlUlZKgG5$Vm)0NI4N8lX>>pXO-bo+(=_#Y-{_fPApG~{qDtKK^g;O zpRvJ(;dK6Xu(x$+c~OkZ6W{DB(6m$0CTHz@Co+2u1{A|Wol;E~a08Zo)13d^Sr$u| zg90@A^dm!5KA`i{TKqj-Ee>&@kw$L*QWQ(a{%YT_FuFaZS5w2o_LXH;l7AH6TR>=w zp3I(0JI=~k$z-%_0IUo;Yn*oV`zZnbaCS^l43}!wfEeG>VVaZ$l5t;-6QeZD#1pq1 zaL8;qn_wrU$c7z}u~}&;F~0F@I_d z*`{`fvgM`?K24i8m&Hq$=tm;_@%{IFZ$idF%^dd`>|N9k;aq=t+XL7dT~)5^L{{#q z#M|F#i3zdh?2(fLYIjk*!iffFwLkp$gRV49t7~82VR&@_`8(V3^5x644RU48fsOlO#_X-#SYPI|r3+KZ zdb*waV?0rBVMbfoGBY0I;B1KCJdBo;6F&OWaj+sb`-2M`!{{O^mYv?wZpvU2B-EBsN+)o4NCzam}AJ45MK-4jN30gON3MYcQ4;(`N_dte%dd z9UBn1nME~HI*Vszp&!#=d^*zF2a~xxBt64J9n-e7Lc{DG7B60`s|0R>_vq16R|}+V zgZ&FG(K#!bi{&#d4ANOVeZU{fcjLwl%2Z67r+fEqMiRK9d?h7Va>oXmioMIuM7uuO zTO}tY>flKH{f_zD&+q?xxo3T_j>*jNy#yJ4)Nr}!rkhm6!S+SXm_-Y*x|}v$Cm8zz z7vjx4+1|OrT)TFiw)?L!$PCA-g07-=SC#y&Z85DGGp6gLqf3|0+IOk6KrziWF#5T3 z=LoG~ZrHFcKP zX;D4Y@@EN4w)6xFs8-Ir41Wy#8MN$n0{!P=+8K`F+;~qAufN(*g0sx1cGkXGH-ub zLf?zC8SW9#aaO|k%**e%a^Z~2{CV~NSQcW(GP4Y1=r`W@XPq&zjARyP!)^#&OiVNe zqjz=F%ie)y@?*gFA3y#lX!)#BJ3^d=`O95WS|SVP&xPhjKvd+fH-EW9@A+Fiw$D_(zZj`$irufZ175{NkX^&~pt!*DW2n)Chfhwp={LVvyN4Q3Xf%$}bB z@k}?oHYjhk00?avzMEEu1Xz{0Z${v3+x8I(p1#9dNiprgB6_Xur|k zl9kcYV7lf<%-D|D_Bo-s4J#qWC1!@Fm7}67(;__`^RP527V6NUeQ?9q!nv9+E-ni0 zYxv8hiPW|~03a-mC+UEV2Q3=C`cJl2rU0lUC42t)=QTbway*D1Jf2YXI}9vppN6M! zY5#?JnoS)v5e-2?>;a-Ar6VnE=K1&0Q#^b5M@*Gbt;^XH^ zOS?K4kdzEeTCXtws$rO+>lH@Rf@UN9>G32iR9b_1UUk(~!LLafMx=kP3@4WD#TQ@N z<)kfXFj(j*SkjyUn>ZL~=)IGhfTQXRw|WD!*eN{p!ODQa*c&=@m0b~Iy#HD6VZP7VDE`pw)a9=9a(#_wqRG*bw<4m4-8I`u(*2zi^XO8Jo%)Pyo)Zm z*n`r8hr>j_IqmYw!*)W`CAqnI-Usi0;IVzv^Z{*LK?LftpN2XsqxtjM{2&ofJ2^Pq z=s_96NVHuWP0+J~8$TTwxwjN1NFW~eUVPz2Z%LUAC_fF8VL55vhy8bda2!3W&0$8X zN0H4AjWI^MVs_(Ao;-OMqh;k4$SQ&i;*2xS2r@j#0zKNyVFM$>h1f;IcubqNZD5`_ zNQ(nq9`tn890IR2%fPZg1mcYtF+%U}yz@>Er+Bs898A9Y>MM^X6-dWV^+Cl_i^m2? z$8;Em4OzYNo*fiRPHo`WgwrG6G?&0IX!-2a$?Uz1;gg28g7AT4rKdd*9_gmhCcYny zuaSm7h@&vT*uW7O5G_42jkn%U>IzKd$e^#$N20F^A{|@ zarZC1jvWJr>nu-RM}m3Jm@!lB16dr6T=vJxK!(0kypbc73D9QBf&B+~7o$FGfV4RN zboS?aGhD|yqOh-gOLE^F-#<6(*FuxxsVl-hwgMDnfbpCLQS5aDidQLQGQiZm)9z)q+ zHaz&bM8n9^@ zE3Kn%p>8-C`!CI#x0FK%fqJRaI`HO%^m0px0C6t63 zAe2$!N+XI;ERlv-r^;(M9o+03_DS8?*?$~>f3FL{WYFQl@C zW*hQ*6Yvi>;DBmsmi~hflHfjSI{CTZRbDmoIsfDh56=DkeUTd&zpmR$%sYqJ|~{ChAv+su7`G7g2LgL95P z`si}ZF~_{%F3EhAiCF+(KIHgJi1YcP7L@Nl1*~@-lf*aEXFvPdx!|k}A>W;@%4*gF z!$sEsn92SH^WEGv7rcAs_0*|TsxAPS(+|=K#$0L`a0c4rp$Fu9O2?vX}&)8G&I59{ha^4H$(P0 zu+J4mZ+KUiDB$bB`E}C#o;5qa^}BRF2BkH$4q%qijGOnGY3G-xXRZ0RruF-U+^9`Mvd7>+g&=zpHw7RrbQxe|~u{Ezh)H-#z;1BjwBx zDTEv9a^OJ+KBxNGw-}SJfBnDX*|U{fO(1+u$)W3Cm>AR-d=YsadAJ+Hb$tRF2&J7XrxAXW2O1V~+k(1^ckkqduWkf$bLENtg~Zt))VCe;irn&aZ&50PCl7G zV7C(;*Y7_0KaRgEacj1Z>l3R0s|{{ZD9nkCv&|WAX}vD-jaN%+$Na16ofDg)PVj=7 zJUssio_kr_Vd?CF1Rn(b$Kj)eSfMMcoM!75$9Th3fExCTRd#<`$koZkSqBM=T1EmN znL6@%*#lT$KWo;^Xk({tt+kv??>LZPS;Ba!NO{p->{FnA?_hfi!Z`n(@{`pceDdSO-k}A&Ztu@Bo3zm^M z45p(@Fe#fdU5(KGw^a22)8Plgl4OmL4_6?b!{siyM&P2CE58ZX;Y@{j!rWz-U0#qV zC*MCDaM;>cU}Q?{9ra9LioN2BorjTReD{6#(RN~>*yB-dy6GR)Jem)ojN|#DhAfXh zfx|=f%GDGQM`ZHTT86ZkD~f0HQT#2o*rFvPsVTpM6Y66~{`L?P)IEz@OvluMcFa23jFeyo~Y{R^pAmVfK5w}dmpadX``Z{U@|C~Uqw^wof261!7@`dFYhh8|qpUBJP9jI54vNvd?<$b%C*bEj z^}#ux6`QE;4X1xLS+aalj|AJAcoF|)9{fT*6TY8pa1^p`-DT^!kNRP%q-O?d&x(}+ zj(Kqa#$+a?-HF-*Rfc|~Y&?E)Yb$kCmRyLUJp zd`p1+pgBrV_02dn;v)RZJlNmcTuDdao{)9&J@4h!v-~^~VyNpw-hWegCfz9%ygTf; zLv4e&%{=6@w1+m}zlbB4FI=+<`GV!O`KFj}<0w^gEHxChkouI;!7~cdahi)JH z)vs0y8k@Y{_ult~rOJ+r)OiW^HXw!L!YU#H_D$|L%f%TJL#7oB!b3zdE@bKscVQ{P$N<11L$x4=dES`H|*bd+F6b`h)VW%UPUCr;cn%WQ%)&cZ@qQ6PuRP1_BLu} z-p|Rf7yM`gelHlrb`xHjJpf#Y3hoNIwZMN3`LNIgo_ga2{!3u9njl*zKA~K7@D7&; zHWDRxFKkhnr#3i&Yq#BYuPz_dy(>Vp0gG&&9lTSm7$8_-q-BuurCr=@M@+YkGa&%A zx*|pyvaWny-5;W;38654Jj_%bqAs5J+?zYEHaA;!)waxUX}`7se`z1VcKsKr2TW=q zuf8{dsQKNqo`wVsevlk6BCzphx|q*;n&_eClD-msCu9+bTV)kX;?@iYw>O8GCbyT}8OJ5H(fys9v z?=5Ij=j311R%iNfpIv3%@}U&usWG1|YTm8svQ5MjJfD)ab3EoGEl$O9=jwvmocU&c zev`d(WX8C_2CLS(XI!g^zy0lsc>YXvvyg|0x5m#hUg$N;W#Y*_!pQJ;3;5NQV%T?p zukGu_hq63_I!SM3K*_AnQVf-Gdh4~#;rG^&T}InwA}1I$0WQDimAskd2ycrMCQhmj zzSznG30xn}H1k>%&Qu!KInG}eHs50Nxiajm!{Qnu`2n%;@m_xNlb=-Yj=(<7JXj>K z&w6pG{a|p&cAElw{n6};>}T--?ZXd0RCe5P$7*KmUTb{!UPzFipuO3L?&Y|Re{6gi zI&5g!d6%8zjNVR9u+4Z`cIE@nxUCK@2A+u?>J1U#6d8XIFsQo zu6k!#FSTnM@Ly^p(yq@U_khU?1SsfOs@TO$mdzRifcdN%O2zSEal%v)kOB4KVSBw^ zSkE8~9E)9a;a@AD>=Cx+I6vZofye)Oh~y=wi*Kd-Nj$jw!GBRwE_R7HX`l% z^tcBSfXH*5AeFLYE_QKk0DHgv_N$6LzsYw^YyjnoJIs~9jyt}xieb1i2L494tkjpv)|{6(sWa4IxvHqav$c_jIwF&wAX*E)rz<*IjpQ-NCB9U;5Hf@%eI< zOLvi^+gk~g2ow-!kIvB>tD-DN;{4A1k_S$^Q7NOF&+3mJ{*$kuf3lC%2?4+FzWYN= zHNHAO1I}sbltnbtCIQTPW}L3B8JAv#UmuF*+&P?e=qlaPe6J1oOY`Wp>;9Y`0787I zTzTacRYA%mu*r2kCvq1*fW(fm>1O-wx2vuLSh<{h@+svrVM8wL^QwKyK?fc*mv}Tm z0XXGvSKR%r;o9Kw@B$fUDc9rl5>&e=dhV?XUQv(bVzsfLkmd0<`JVT@r_n zZ~RY>Rujque#Bl}8N~ky9c%!)okw}wuQD(DT_YrjC-Zal_mf8GnOsu@@96s}mGt0-1 z{CF)V^KZuO4d2^<-y24;-Gt{GDT7kCWHOSqT_pa zA=6M;^7HQZ#0eA232{dA$dMiOcXF`Z<&pOjFgZj6lB>mGAU0P?pXKD0lKb30{kbZk zfxY_+TTYgj*UZyz?eJl71Av)XBEGpj1eV1O#<+lMpN40Fx(k8*a6<`;pq0;!s+lQk&XRHDR2XwQD zS$_HcAqv>7iXfa(yYfmamrs5AQm$*21lB6eiYa~9v&0!N zp!1w*J9(`_5LQ>QolZo3JubHO#J%P>!q(LhVs{OUbnrqAjP;oOa8^~5!W#y{4&UDSZ zy8AA!ARiw)k6GK?cKdDR(MKLF`^BCI3iXcYOGK6KKs**e6t-4uefx&@&q))j+hYJP zJvR<_-Z{D|T8;Zd4?SGZ43?JsJ{9s=u4}U%&HMR`RTEo&CtRsZPge@HfS35cHi!Qb zAE0*i7QP2?h4+pfQ$GIjk5_X`DRVL}d@fzb%zOYCAYhr|!{7X&hrYXf@>8EIAO7%% z3(FiF_uJn3)+z@2;~&qdHvh~Pi7y@wE10K3PR(rcb#a(EFPgW9zTq8V639ewvk*tE zzy5kvWOUmwqd+2>WIqhtN3nAOI-HW7m$3Il>T0LPw$1Z@h^DN`l~fm){w89Jnj zQ}S8nX9q73v;t{;mT|heB2o#OxOpxn25V!8gErc5qw04j)8Vdt7B&!p854wo+@F&+ z{)3p?B3c9bcUotOGb#FgSb(|y@>`wq3gn5etR}1;9EWJtfiUCpd(z&8t^11^??nTA z9q9#**SFFB&ff;3`_TE)cmI6;Pvjjr%qv=v-G!*e9KN8t814HnfgZ?7IW0sJkB@)6 zideW5polZxP2hQ<)y;Ra^ZhLqAh`=ZI5s*_dTtWp7$Cmas8N+WfA_l&sUjWr{LKD1 z6(h1BlCTNv-`@Dfa_}LC6bGa*i3B`-`Z#%MO1XCoUBNT4YPc&_4R5GA033X_*D3)A zY;}Qv5NTNvt zPGuj;Gr#AxnSV3CypPZs86{* z6!pq-?6Jp|&wS=Hb1jCtYj3{Gz#eE09XhNkx`|GNe6CH}*AoS8_J?b=ZNK}Ta8|Zy z>FDT~D=Lz|&>ivU>bbsq;)%!WN`?iNIEWi}(!0od9R-Cu!0%2WoU0{$VyE(_ zKJ}^R>07$Xe`&h^FXZs&Ek~c3J*zx4acmj;)a_;5lrd%6GgC{y<(4n2t+;MkfA}V4 z-C-{)1NsfD{g^LbcIwm_lgpD&k1zfDsCrm8L|(I>eWvvB7o1Ti|K53D8u9up*C*m| zm^8brF?5|Wd0K4Ep89AR*gpQ+|(kyF3OZ|Dlc%b@;4>&sc=)rxfg za@EJ}e=kZ8;2hJ85=Z^U;GVzn^{M?Gg=I7(s?!F#uIC`$nomjRmvKu!!@cCm3Hb{$?P3I=5ftJ##vaP7oSbNl@F6mo95(2Y||?KY1Tcz zyXGnbv6L6UH(srE5RXXBDhHu$S}E1a_mY4A62R{SN=lnjMvuR#{AJ9k<*FyXS=Jl) z`m)K;UCXcmYnCaqo+?*8a#s1@yH6`y4S832^?HYwmyg&j(meM?ykzV-<&XEhqYUc1 zNtrO~j>zNivib_^mWeZC8~e0N%JR#t7~tNgtUq|K0Q!Dq?390$$EKfM))=r?d2Gf- zMca?#CUs=`~xLFz4Z$J=|XCmGGQLpRE7Q+uH zuN?9Evgv9sufv}0=_T(#uW3e3^id&B!SUjTKO0WOeiz&3fAgE)RC{@GS||Gp?Ev`! z4DJ&gE9i(lw)>QctB2JI0JNd$_VC}Md@}dP9(}BWElZ-T4?x4UUwY}~k>7IVHDL;R z(n%);m;ZEp23F1GywzJva`OH1ffia>7pb;|nD9X9W$dk0hZI+v9U4<+s z-oM>(<7?DEn@BK$PF+@aGQNOX!P-S0Q0aa!r=aRQ~*9P$8vKva{*}Sak1Tp&i0f2vmR1kVi9#n zuxIsy%jIJz+t*coo(b8XHh%$od0J%&38ERN-kkF<^Uh~hH+&!=M7VH1kE}dc?PSO@ z{myjxto54x>i*eb1;x}=A7#1C_!-x#>)~+^m)E`ib@lOr%4p`Xw0!@Um}LUUKizR^ z`Q6xel@TlKTRybS>1C7E;)I$$orggLy{>^l}%ULql|s>{&Le(-z}4-tXQ^K zedplT`<8K&?km5#=aBN+5kDvgY!Pjw1zi&Lh>5}{D5|&Ga;xf!fLIA& z3$1O1(YSCXqE;U20RWYO2>kZ9zpZ`7?6j-&^=AA_fRsOw=0+LOvqyn>sON%wn{{Y{ zt^3-_yprcqSBh+#*s4>s=tI8)7%Dc1-~7}9y7;GzY?J(d`ODL)NNvCUUh};ANS<-k z*(y-~Au`Rnc2Ueyd+YgYo5k3a3W@=`H$HS(IrqVLmtp-v&e`#qvhMJgm1jck4(2-t zG34(=H}UsOa5q5qbsa~RA^kQjSC2ocTt4vRA5_gT4q&ot_gL0W&Ct^SHKa?m~z zx0LI~omW>5L{07R((M6YV-mCAAPQJg6IdBIdAmgS52fH=FTAjP}k*rw9f! zKk^V?igS4!h8LTN0xhX~mCW$ysphtQfn@42sUttKuG=V?S| z_7|{_NeiJS&^Pl@mfyrR4nyaalTw;~#fnUyAadg5$0U|+VS+T`D&K}QgmT2%Bf{e5 ztyP@kc{5~uWB99I{i+fxx&glzw#;UJOT+gihFX9UC{CF%shl_Vhh<=&P_zu(qins_ z&b40vyqC2Z{5Dv^=4)&hob}#iaNq6AUmrNJOq}*)S#`y=%G);iM9AFx1&GH|IJoe9 z7YtC%?>S={cf0@*PyBU48GQIAe{K+jC~MA3P}4@a%^KyP(*>-#;zngwXr+NuFc5xN4iAz-)0$m|AWfGG@Sj%rVE5bI<)#1ysalNaL~bk5yUqJ@?#GefIw{Kxm^-27fjzZvgcfXP#LV zw?l>uj&`vr?^8MbDN`qhQuBe>fc1D?QM9%(fsIW3kLUcct}MhMw->a596vdG_nQ4B zedgglb5f?3+Uq1N*Jd2wGh{vpkxgkf#*GdSq7=H6qZ@6sVbwv1m+5@ZPv*0rYmSG0 z{C{DQL+o|L5l57L!{tS@ZkdmJS?1}dpI#NgRw(W#24&pdbX{^Xe1jeXcgJHlhBEcS zu%Q`Lwp@AdDzned?y4gJFK{N?-*V+WL+N^UnKtX*a_ghlls!kjv2p-tL6^SVfEK~% zGBgpp5uvUiqE0)n_nNtP4ft~*e(s~^eMxYSjoi_!ZpwaMs`iZ+y9YYQc=6XFL1Ek@ z8A-5(+c8{22R)}^kx%85y*2n`bQN5VX6^@ zMG0Ogz>T0hKXley(;U+Ik}qOCo?mwR&eGHaL@+iK zaY=CgdFPi`1|S2Awbop#0uJk%-9ruzR2;&>Is_LDn6?R%LR`KBSBPzx7@i;g=kE#b z_mMC^^2pK&vtt2slyPd|Z3ZM*Hu%l1)Dnm39g zuLNvy$>VPi*9kV0`3~rbeQe$W_R8@QGF|=A%|9{c&C7X_q)pDA7!24GEhTs>qY3un z3hGO@a_Xt4R#B3=Eel|;?MsBi2dV~R+N`PNk*Dtp>zGi2^jWXkvnzDLp%c)D4j3MC z^I<_Sh6Ui>5mqx(JHb}|iwL&erAw}T-t+htZ4hpG|O8*%nl1gB}S&NhL#Pyw(l+9b* zT@Wob<1a*Ymg*==1n{#*o_S_gfd11)I1C?GEB*U+x{me2FH9iT0ro(6+A|YkU^-=v z3zN1danuGEkMo}~YkGYlpP3z#F6w^UW7n5cN58Ht-)CSsWaB@Tkt>H~!yJOvlQP z59e&N71s<_5EPi$k?{shm1- z3ZMo$LK^15xUZ@^u zPWJrXUBc!#HNl~~_&vGbFF@n2kY%6n{qN5K<8jq~`>Fs*oITHylO|0pKaCTzfDzy( z=3wK_izm}Vr)S}uiF0uB2W5?cCH-Z69q7!G*vd@;GC(XZQY zw|%uHO2U-oBM8fCSVDk5uRAwhW&3hT9CXmX&qn3mr)~-VIJ++pu&azbV%W#g5$i#wf8(B|hEZ(hkg`<5H8ERE$qk0?DCY=wZhdlOG7A$N@)!V;gLoA6OkPht^<;=;HY(e0vuy==M2UOme*NNn+b}65 zvdNI3ss9$#hvH^m&o92QM_i06kr`k&ruxg6HlK+r9_uD?Igt~znNG!-yIY1e6ERPY zyEMKpsJ_|8-h5qRfS;Ya(W+aO4F(@n9+-M%x#@{>%HB`EtqdQy>f9HhwR627Z04uN zhOL_(zaT7p)+j6W-z6NEy`n~4AlO6dAPqeaooVv_qU6x?GMB9sIr)Jf7qnatkZrHD z@=9}+j<`wo<$VJD#3vi(-{sstomjE|{CK9%h=yE^8DisuIHzce96s~c51oX2U|n5k3nD;t zMF|byt%`8?#ARdR$ zI7}&*js0WUf7AEWzOHuejZIATMVceBx&EPx%ebd6E7NA*RSq8c{W5sK(3)SGPu2_? z|IA(K0d;cgjmKSn74O+Hv-4RS;k)dkC2^A&gMV^%-6w`~vrolNQX6?V%p%_gIJi*Y zjJrf2?!M>lGHv>_>eP#Qpy!tFI95x0;ER(5bhvDm8^CS*?RTiaz)uYT0|-u<>Ikru zzmVVs9Of4ijBw7BfHp_rFo7v?2af;eac(VZn3Y48e%o!g*AtY;_K8w93c0rvvDn~W z7gzq-4?O6g>P_?R$d4-p{cv}PR}d$FO!oZ24<1og+i10F>4UpP6h9RX+O7`M&P_Ji zG|FDDwwFDaEVL>mZG}C84R#y?zXLb4@iA3|VZhu=M zJuoCT;s7THhP*wF_Pgk!zgDl7#1`b^Z+g?4Dj<+ybMyra`t@?#(SSUoI+c*SO*lv#HL zZp{wx9B2&-uJZaIF3O}#^+ANl$+zBmo4PZW^$h?@PISNu1Iw=ie4TrXV}JDFab@o? z)zm)34}fv0fOyG|1&oyopl05TcpVu!116hy1Q-8>&woDJ`_5P~tX<{)GlN6N5ubbR zpM#U%q>7Hn--$MWF0R-HD4&jwj`I0P?;gT}paMzUH;&)DArb?`$t^42DnQ6d8Wb!+$_v$jB?`7r8yFXjL_s@OGnw0VFM1C+Ulh0j6K9A5 z@awL-zJk#wKJgz_KJT9MVu6ma@85qw`S$VOt{h?i0K#Vie1KDT0T|mhPc(u{Rt|3P zM{x?4vdOeZjT%+<4>|ZJL#evcPCEx6^{?3_huB@-uYBc>A&U88?55qlx))zj9EtIOqkE3%>HoD{B8DGQ>U! zqQpn?vm(0Vjyq$;)OpAcFvop!3$YxzcYKJ?ln2a-VXVaHGKgXjHRDLsf=E0V#AWB` z>(y6Zqb%S5`QxMftV7Oe*Zf}lT%7olz%4%Frib!FXw`jb;UvEtV@dM7u7J z3kPOg4-<9Zh!K*^yLJ4tZoErUnzFzl+F|<0bkThrCj#?}Uz}PVhBOqvnMNe&P4;u8P_p3YQ?TrrkDr{u6x4`UsgpHKv!A7&I-xKEa&(F z>Zy+wp!0RTTGx8FExBk#R01o(-?H(Z4 zCqDWVF&45f^6K6{Lb1%WR2ug)wDx1(cg=XMarhn5A9OS7!HkvoYIv-$=9jKM?BTzx zgJiAs=wVhb>F7(G!|!Z8m^HAo%W8v0R2lxB9dEAS|M=8#)%Kl#`c(#gxjr8@aFv>@ z`69LUV$CmZZn^qSWwTYcum0^j$x0`v`#$rT8R15`b9ZlZ5Z7O6{Kr5tDOaTP;(vtjrg9(l^+#`M%H@5RU+S zhi#Bc3zuJhS@mY=KCnLc;CEF{c;?Jm)qO9{eDs}n1c>&nKu-Kax%-#%E-1V1v0DK4 zmX0 z;Z+B}r-XHjIp9!m9Q?o#LCp$L(u%QrmBTfhJ-rEntS!J_eyhex!HNx$P?r=BX@B;a z@6C|o;+{CoctkcEzK&=Uz{PJTjjbnpaQDezD^Ji#Ysw&C9`_ zUk5KtoOwC6zb$P&U{aI8+ejn;B*8l|zxSd>T7-YCA{t^5N?ly~c)$ucom0zi4mrQgSa$KQ9p;z( z+BAVm9#>s;btp;475WQ4az=$;d%BU1SWN&=;t=sNu*lggRymVH$%_#uc4FN#Wy;j5 zFGUpptstw(-^>8eONW5wT-lk>m5<9HfBIrZoTE!(39L=`_h3a^d|ZV z0nWb7_`T)&q5*zy>A-e77Oe+f%n7CJEI+{?AP{dj>-C)fJ13N&PX*w21ORnfmyquR zGV#-b1y_jECFV#gl~$0$72Bxg>U>*(c4wHQ5}S+*OP$R&-!urtRh6UPVv8*c`*+UR z92;n*!GZ@-cxPB3O`ZC5h&TpRuvULTeGngDjf?+qoVNA%8*eD@KIG84ackR`Z(E7W zO*h?Kc+6a5jnymQB08*=>|4NYO^n~%HjEs(L9}mR1zmNuXF*x|hZtu;;qk}EhiL18 zSaDoc3FbP%rCS~7D?qRBh-rKf2YsiE90&O~+qR(cTA$~*HuKSL1QYSCVzlUgig1LJ za-VrHLT%NPu9X*+__fyOrS^Ls$$P2QtX-d8-2=@D{;zJRva@^u;e-3bmHH5+;J|@6 zyLLdG{@lsWR}ZlXCGW%u6T@fA__7C+%#hn}yzwSgB-1~vQvinafbwr)qRBPF^f(ZN z$>kd&e=ZU(zwGj=yd_U3j|Y}^y%KlPZCDuqL>4oM2Cfufl4mEknqZGm;r>7Pf%jK^ zh10Qi*kSv+nn>_HKQ^SjYM;HUS*bjjquTtYu0%*gLd+eNk3gkZ#drN>6#+C60`&sm zeoIdwjc@>OU`}zXj(vkj@bBZE^trjJb<7jw-OsUUjnn$O3GSZdZz4l^s2eax)W*cB z?c|eBD&LEc zaRcS;W}9sq)-*GMLmd-J-+Mx5(8+D%zRB(Z?8TvfkPoifz0EcYM}xTW;Hq)sxOPCT z9XNZd47-JisN|FF%{Bwy!I5ud{+xHh>H=|C*Z^>wK%U?8+Fd?bkLL4cntZO$ts<-* zjGYySJrNEiZ9U=)+a1jgTQoxO|)c?2KMkLL2axm62|@bD?_xxFo>1 zCcrqz1h;I16xsS!A$#Z6m^eUSdk;X__ybsAvgMXrg=4f=1*ng#@_yVg_sK*!L?yU! zKulyqrcV5F^wGyug|Biq-E^}`Tv!yzGeLCBy<^Ix$&;#_-zit}nGwX~7pMLr?D*HK zo6BAs^#pw1{MI+CScSz6klb#&?Q5Oi^rkllfDfy6Z??JKh=1Ac=I{LO>UlFX`^^0$ zpv^c7`rcKU@?}D5Md3N~Op0RSnIn%pvaT%TOXopxu8qK4_|0#AQ|0&in(Jq)FdN!z z>O&l@rZQyx^LKB&E}B}tH}*ukP3<1&rUw!TfDOO}(10J1o_zAj<-D+{`9!!q;N7ww z6docDoHSoK%qRglfO;r))jsgRgO&Tnl>&dJfWBKf;8tG|oap`c-&e&kDIOt8`QjJ9 zSe?cJeIk>`#y?g*bi{|M-yIvT`Ue+e=V;kkQ0@}NJlt5@*bcMkF5@myPc zJEmX#>V2zd=FTvO{pnACTK7aCj8<6H1w{b6<0y%p5L{w8yNeGz@PN9*8Q2@ouIf_@ z?}h)`9DXkx)OM4WOb;ZW0SMp>czwv`Umn&T4lX}C#0b9#Hwgkj!R@E=kexm84bcln zX$S`qkc~xT%YEUMvdCDuAYdr1ZJ)X zAH}inL{bQ>(5yqfu?+m{drX97pq=d|wtHZ)^#I@(k~8!hU~RPFMzLXQpUT-&rUEBi zKPw#IGGqvUHGRS@!miaKXF^!{2#5zRmRN>oNub2U(k^f!2^K=+=Lm>X&dlW>kFc@6 zNk#P@d+c7%-L<0PqC-ex0^G^)b0wm$bKEjcO|XpoYun*3BLm%T=92G$3M2t)0MmCO z8zKgqt$-XkGGKq>zlF_rfcBIrldCN{F%4Nen{YtSLdWJPoIbg=l>ksACIZ+vTROOHdiS05r7ZiTV1%n zBtml2eAlx`B3`jE&3UuTT7mc5;sBXbPd&A|wm|$G&cc0#K64<;3IkWDTsq=sRkdg2 z!CFb*Xup0Imo9~kzjh_KCy`zfZCjf1Y;*Wa(`dZ}>zWg)wQ4+U0K4U?*(O&D%ZJ+p{`hg#Ofe~l ziHQCgU`xLL(71=ny6dc4Iec|!`mE_m`@4&qU{AL0keK&}yK3K=LvjK~*;?IX2T{Bw zRvWnbFMQ#P)ddApQ(`go;t|v;hxb!fP5d4CjYwHxQL5V|>wAuQ9g`TBcIfPZHsH74 zgoWyX1m3*1PN@;q-($sqh_E*&<{-~^NXSM3l4t(* zcNIMC6S(%;Yib!xH-Rg#TwJ1#?BC4K2DXF3Io+^f!^_vgLn*~FeF8-`*AhPnzeF6{ z(TngzYGaf>!nq@i&JcEtr2aw_teBL6!w34!_hNC3W6wr?>4?2#)^AHk+uOBVh#oMZ z62L^yiDc3N6dyZ40k?_GBo4=FNxs5>6=H)?r&*&VH}I045^dVF>5<#B)gGFtA~{Rx z1VEJvHsTAD+7%#)+YHZQV@B`K4^63~8f!v#?%PN?U-{k%X%Pu?bRK12Omy90=eg63u)HK{IH#eQt zn?3lKZFluP=mTTH8>x+A+GZ2fNhh6L-9CGF^hMp+_P+Pks;U!L(L+NNwZ#^j*YkdH z?%n}Gy}e76y~;>}lGh$ocbSXY2K;4i$h&WFPS%WJvL1J5rDa3I5# z51F&F`D%d_4!fBiVE4>3@|+ofdRwg{R|wOhY=B3}iE!9>gTn+8`I`tv{k6qadxX6D zo?N85H}88UxYv5$Myo5Y{9E<^zu`t3hW-APH7?n_BM6npw2}!SnKVuw;OWOzLVPne z+yeBA9k^?SmB~pz`ANAUo)O!O3fVUufp#*}Ts!h}FwB&YcMBVByis`~#2}A9@pzbG z_N#q*PY{%mBS)5l;(!)<1zi1ke?G5l8sZ=}?AlFS!o_oUZFFB~KF{yjc30zQrE&4a zmsF)PJ;J_WO1aS{8;1zzpt`enwP>F<0`K#qE$Xz>PCLcege&L4ow9nO8}-unnZG{s zX@{QmKpXIT)?d9Ywu#z0S+kM2cOXv`Ve%3+kR=lZm~1`esDSOF1jNE*_fc1?1%$z= zOCVWYa!K!+-*?(+=UPVu#fl_F0NTP@rhk7v+&l9m*Pao+ZYT$pgP2LD4-g*#VbBK8 zDgg>mldt-anRgPJXDW~p-H^50#!o&ikXJiMT-xKqDZ+?m9Y>Vg@4US_TH^-bKSPA0egcaXmOw;A&d?n`e5E>06DLlnvTUY|l(B#M)1N9) zB*RDe1_iM*c3deSH2Tph%c_d<)ahF3(_cCIJg?Fv=;qZk-^HUeefsHXRfOfBdfq4H zw{xs2tn3gpCt+y=5NDNiX>k9>n6j19Ho1BI%7Tbh63|DWn`PEYwg2^~2ikz&qweZm zkz0YDDCWs<-Zd>ItjTHe_UpHN1%r(?+Az4p;C=)2Oj5vMk^)2^U}?^$3IIttFu+s> z!1T%QwzkU$SOPj6`wA-z48ROAP+Wm0ZXA#U2HbdZ;qCz@zdKh3v+7m(@=}K2IfrHH z2%rH4fKiXZg9b;8@BkV0>({SO1z_C0)dB!khIYwM`N}~gX3u^$+O}d9S^1p=Oj;Z& zAbU3AJpT9-k;e+U0vC55a8z4S5h=G*>3l^&YD+Qu7z&|uVks~+64S@O} z48qCb^JmvxcBur)*m5cG=iu(`1a>qb-}e0O16CpXGC?-4#torCp!Ah^L`vQr@5>co zhN`_8#>Zhd^byP>*YD`4s|_oT3uCj{6|t%yt9LjJg67?^Vl#GR`R)nEG0V?<+t;4= zKpXIT-e*gF3Luu88eqHq_B-m%&aq?ft@hA3KisJa3QSCDAHWGHfJuTdPL{%tT>15{ ze|-f$;A4UUR1;fV;MfW5D^y_BiRvIEa4Q3+{evHz7@#z{9C5^l!m?zoC~rdDWy)WS zNskl9MIsIZ26T#El%amWN7?Er_$>|5($KJ&0VseUmo0b(=s77P4sv=Fq5!yTZsO-2 z_q=@ko-uPqO{ah4K}jmTJk?#h{T?^&;c(b>by&WvQ~oP9HiJ?v9<$%W_6P%9jXBS^D9%uYK*@O<6zw@sFy#J%2vigdE%^EaI3XNa{Q&2-!-Z zBt|%%3NGLE=9_P+$1c9?WgAvs|HNi@-8H)U>#2k}>PuX=Nf06aevGZ(Rw6k*h?)MR zbGZKc>*`@Ej&6Kc$os9LxKrl8r+t@Y@t3@Za$|5?T8L!iv{0>Z|**Dk?j6H!oN5^>x+=H6<;$#jzl=GUkH zx;p(52T%fEVl~7d&%x!cfpYqxPy}zX$)MO?z^hooVdhU zyCY-AFQPJN@SuA7mpuS1WIh-tY_a@7>^-+Sxh%@Q`r2#CR$FWtD~6q_rHwjm6?F&Z zl+mL{-&yqu|MNfpQwbH%qRPs^43vct!t4|;?-&lg8I0+)>C@)weGt!fSiC*Z-gvcm z`|~B6TLL67A{WKY0UokiAm0pt$tOAH)`{0#A&~hZ7C2P*TjMtK&F|_$=^ByiEqVg= zk#^5LM^%NL2gEeww>W#?06?rfq_24d;c{J+&{aJ%FIUgIiqkAhAK^?92ZZmb5Q#Ys zP(Kj2IN+SfMW5?S_U4qO0`Hsm-*S09FQlTqRbRl zUwyUU+&c*of;bvg)O`~>)&zFw*w=8^~8Cf zcG|DX+Uty{s}B}K2sypNmZ7&MJ18|fH_9+7Bs^ythoXk^waP^)cK5VUpBpe74_W%GB7isel z#W7Jvf`s^)pYIC_$U~EFRCa4msgqmhdy*fm8(yRowm$YC&mh5i{O?WuLul}2oBhaf|3<* z-*fLhbwyy@m{}69_&A=>JtB~G<4oC${(4bu3VFIdydhR_ETVYP{QT!XUpC%oqk5lM z$a^53Kx~KL(&20zmOUC6unt>Z)%IOWG4D$D9qx`x3 z82zQ69CmJJuko{C?D5b6><}v&qPc$kI#-h7^<+Gob!dNIa1XRO`~~;XQX8W=c`gp0 z>41~P1TljE%uKE(2zS+3`3N}?fiE!*x$g!6I>2S_BJK>A)E70?pc+WleRDzN6^-Q1nWggMk z3O<<^fX21^08L=W;v_eW0ZXDT1SPG5=H@l$i!z8waK8NB=wB8kWYpRS!1jnfB64BX zWaAZ)Nd|-$;UWS;#8}149! z^oMwWT6y+0*bs)0wFYUjpY@S+uKLmVB-p#hr;j@GsiU6j1OZ~9V?|+%j18qW!XbX< z+gfJ(_rmu;o5NrDzFKNx=HxK(?bx)75jW?)Fu#e@RUG*MSOGT&V1+EF{+RQxHT{?{ zA>ifbl>8e&{q@2Nt0fK5j7?OOpjI+KAJ^a7H>{W*3E-~48&*dh zBRk6R#~)u$!m`Qgbz$|?(a}-MLr{ot994LC0QJqW!UF1oau5I;vh0(f4{*d^$NC+$ zuZM&v<+95zEpL14+bXa+w1uDi?}Uv!F5RIZ+Jk`5Lp&Y*Dem5{+NYYZ_U+qgO;rnv ze~5;*=y&bbudHnl2CEQex9WpPAtLk&YlM4=k>NiGA!R*81m?Y>uOQ;F0HP*iIPN>{ytB&IS-1dqrk1!z zoFkA?2b^{*sJE8cBu4T_T*i%iB*1M#<>nDDD;+uzJ5+Jw{K{LoAhO!5e}M0M-}~MQ zj7=iaEN{k)nc-aR`g(?~RR_Cy)=D^kzU+4jK({-WPj_w>*xHW^MYoMvg9Z(*x)f~i z$c~ZGu0e73?)xf$@3YT7mBY5mb1;il1Q|L29va|&SRCSl5nxV>D6hTtI$;hwv5pU` z8aDZepgP$r@L-sgQWRU&XbZqbDDJy&Y>1Jr4?q2{3c@+OI%Q)`wD}gB*Yf`s@1gMO zSHHS)>zjla55N;Y?faU2%bVlmEqaFg<6S`jj2$AB?~D5TBtdQ+|7Ksdzt6u1+9I9# z_s>%G)I#1lAj2WbO)_i?UF96Q6jWp^uRvzS3FfF=3rrUCS1&O&z+ErDJcz=7os zC7|+cA_A`SOJ5%@#6RU{8=Lh8_Sy`T9pi_qR2SU0)dbN4fNBNYW`0?`d(!#{#4h>+ zxXW+LEj#_K13KLM-~WDN0PYp#>tFwR1+?>H;}nxeahYIhzmWOWAB}&?b1({BhE>2B zr=MP*jvYIu9&~bL9HY4Y`s>wATG}}w_9Q&<ZqgYj%cd^~*v2XwFZ+{=@){pTV5d?hWS~v23ZY`{IY#hUF|1CsPxOG1E5t$orxUu~H_rHz3 z7B@9&-uV?#;M3=;Up+R&eYXao`cq{PltEXpK@djDUf~zvs@Xv?`i;*X;-ZmJX9{0+ zW(45-4m<2n#}dJ_$3w8X!8GW{9D6G)s|c$fL@eKpnxOr!%N}S0ewW>{^xaJG!f~3Y z98%$IabWI!hJ6fD`O0WImqBCqH>Vf8!>tZh(zG)ECKZ zQdT2oK*ow;`Thf{7zWtlqUEvEPOq$ek>aZ)h+WmmJ^d_>{sOQpdmOm^zj27k7QrQd z;~W1SR#k7V<7lO&3@b3=o!g@Qdxbk?oH?bj@bjPlqWs(bZ>Zuohlkv9%dKH5`S$X_ zgAdhq0Q1?ipRELj#Z6>a%|jmzLb-2n;dCt*hu-Ij;L`sVmPO6L&rR;&wLiiK*k1V8 z3&RZc(>3bQVJk)Xudh33aq=maL2!wzc*4XCIJo7DL9DijJXTtHm8jdGs?26K>ipR^ zhb5V_0}w0YKzyX#R*zO1#CZ;yF%~(7&APU~KfedsBAw^=$x?U6%MJv{QGxx?p+kaW zTd{I?`3&F#esWq9$L`f>)1I!Jv0btzG5|9fGjs>knWuO-dP++`h)ZOJq70$C^!4FF z`~ynBNZSNJMHxzTqg?gH!4ow#IcW9s5v0xZ^+w}g6NtsfEdmqz24WvX6PO_=xKaQ^ zEP~S%2fzYbVwMX-elI^_3tTlToWl+~tO8ZDzZ%8Q{hH5tk^JBhN0h@3J#_BMLSHJA zdF2n!`Ip!;6`|Vy)IrN7gdboV`*soTHazstPI_+2CAZ@d9 zTDU0QJL;@V1da1G{UZBM4jSaHe4vA`O6c zR3cXm-k(i3-K@p~;6k>~cdH)z6Kw9n;Ulg@J7>m`g+N?;1gnzWcHgZksWByK&GqY8 z0Zk3Y#8HM;Bi?}w%0UpkhwadH53~Wl>wa0P?&gF7geRPELfzGg%VpliG6Oi8G~}eL zLU58MxyfRZ5m}h1CL?*Xw3%mXM%WCf}+?{>OzUOV4nh*0_X)KM*_w9HT%tFnu~7OZSAxY+UUdqBEi{;xt@83!;@*nWtoJ_I0*V{pCwXL4@<^ zPk*|;d)^~N^RJ;xxG1h0$4Z7+(YOm%OX{kRca9Y#_Y#1e*b4F0CPdjD192Co-)qLp z*uTEVL|De!+$)<4FiZ}dnq@zbau0{@x@6%ZKm(;dlML>^8v)Tc{^>@2`3NOaI(ZJ!~-U^ zkZJPTRXI%}B%b~uBOX2a&I)MU1ZcN@z$NnE4(x$E@I}-ppzW3w53nFOWZ($x{&QAF zp8I{^fd|g5TUYgI-cuiafRndM`_6a1Q@LM+hiC=3lUK6_LWJaxcoSn0$Fb7s+ox|C z6LNp`y)Oud^If^8=4P4lmLGhaG-4u;wSsWsu7N1P)D~s1ps~_He7G*=TmR~-uPG;= zd{ULcKl11!)kjiCaQe!noVEh+dtlh%BQo{fi3a9)B=}khT7hyi;az*|vGL`sFv$ek zOosQ`Ywr;C>{IrPcS^7-l`oNvwDKMQ`1tbcU;Vm@@+iyC4+XjWwZoVg8;8YU9kTqI zS^Hn@fwm047rhAN&Sa(njvi+wB%szGbAAJ5oY@1xCE}U{6PTAnpaEcWqSgt#Tqh7C z5CE7pN}4}r{_^Z9WcrMkaZE@duf$B0p-l2{s3S(KUAbf;gp8AU_}yK3nSX0szj2bl z%&~#IN)pc?h=TT7wa^RT&hx}2&sZGcB5~l^uku1<6Wm#^aH(+8Nhe9t34C+fSZ~bd zpSo!i(Ap&|WLWx8h_b37dNa0&0gyH}#4i-oHe}rz_1!Nx@!7X^62Psa?uey#;G5t4 zW^I=h2k{MXMf{1Kv>ow4%z!GOM+mJHY;4;tL@t;D&u#2N08(7nY>Ivp)Zd6Q&1{Ao zJMY_j!ZJwUyNAw$DCgl|AaMN5F-Pq+s;=U^U)rj^fB$=@V?OD-pd7YWfH=teM&a(5 zLqLxhAgIR9xZ&`3i8yPmxmHv zx~O)Io8@UEf&-ZK^QS-anR>ne)7TAO*6HJ3nQZ&j$yg&sKm5TDD@dMo_E|MQW9UAU zQ1m;j;8*aEUe*d|eRqAhq z8xSJ|#>G37LAx^$!{oT=S8b+zw!sa7O1+5q6tPwZfBDM=o!&S@7s1eg0v(f}o>j*Y z?=*J|#B#G{hOek_PNxsl15uI(VzjJ=HsJS?kvEZeT@-Q>b=9;49H3=#5l7@bS04a# zc=&#?`|^PYI%Vp+?6PwlbbWpWXK4TgIr#A4aQy~|z}&gAvuDi?#onyyBL$e+wOR8G zZp*}O4W0?=-PQBf_{H9vi_LAXq)&qMZq(@p=Vz$>0rkAAkIKy(mZbrkeP6L{q# zjr-m;@17MXpFTM@##9`fJUjk~TJ{N|!Ai?H$?1GD+XA<-seSHWa5v2fu>9(iQ7>o%ElLM2d{qyXX@-}pvV<{cV# z;q}ba;HrS2^f*BPf{W$^i=xhC%)mtMp~z?N*c{Xh>X7wtUwwKSDC3?9f}$=s(R)Kq zeP4hZ{ezvI3G~X*wyYP6nyW)BKtGVm+N@8uol=@?*=bE&__B7%{K&J3N)Qx;KoI}B zQ1pHze9$-Bm2GlQ$aVr?b+{vB@`#h2y0}x~AR-MrqqU1ZfgQhll&Dr5U--fo1Bgdg zZd;wMyz0vGv5$PTToWr5V5%<=K>hGP-#WhR8x}8Y-HD0Ro!$Ha(JnG^uA0|dXWck~ zYk1wf#kz)>=0#C%=SpK%tUgNJ2sR-YiFHHdWvrFqsy$XY(jod}{9A0cdEFqkLx=>u zgW5_FjA#%QX$z4TMq^=sm!jIr3nL+9|FV{%WcL0E-hCoM?Z${)ape`^_y2X3a9w-N zwdHfM8v6LhKUN7GA|_~~kG@%!LR)Fu3r5>SFu`zbxU<|C(^b<t4;~p7Txim|98;M2+h*~Bq2Y{M@mgy$G@2nzB-~>0|!pZ~}HXt~J(V5Oq%4db%&#O9<*ZIZVO_xeGn`n6NCo<(<7XA+Am{Ovwh8jWe&OfefQrN z1aO0DuDR0imC7;498sUT0v>(?(%K?^aS_iFc$g?p!n ze~7V^O@Z6L|A6Xc)6tE@iJy;+VK{jvqa2|jTmYNsj*jHcJMXCSd4z)a#q;c^+QE%~ z?pwJjKZCw-U%RCh{1(S*!FNPJI^(N9CrzFdeOT%lz{dv>BxXV&`0OFl^jo?dw=Ao- zUfUdgFBsW;VR1x1{NWGFr$b?t{?c=jXr@WvW8#_=WT=1$XyATXe-Oc#pbIkrlq+Q1 z1W@9M3BhTN3hqAd)rc?PUo#)d*ee5w*_HFX!ey_J{g7Ap04Jb!(i5j$LNl+7OH7cW zpk}++dJ|<33)lpuZ@4rNeiqhD`Ve?E^Q;f!AFiA@M*mth==XKkT`$0|)5E4yqpVb< zzx(dH%GbX3pPBS|*BwJF;v_3(nrFstQ-1CNFEQJtK?wQ=;TjlX4J!m<9;>u}|M!0n zvB;HCk4G!u>NCXd?FYTRtQjkUGtNAtx?J9Pqm8T6xwAr~1emp7pIQlg>8LN2BR_Fu z+?yQ$IjK5M`*tXM0qe&?fqHp}fxh&mFIC0&%U`~2fa#3-4CjwH(U0^MIR>qb?#cbuxcS>5?L7@IR~+e>aa+spjlbuS&)(R&Wu#3B z>Xxfa?N0mEuR3=x#`b!0U?z3|$%m{HVZapvX510m_p7eDI-GEQvHmsz#7!VHods7L zU89AQ;7|ze?!_I7JEdq_+}+)s;Lu_f+?^J8hd`0y?rz213G(H=Yu&#vv(B0`Tb_OP zn@r3;FkW9^Fy^hpE76KS4GmL4fJ@}@PD4ok3^FCOP}wA39IgE{%WddwgBaEGzQPgz z@=wp9=F1tdMXxXCk@A>h1O&!VY(~bJNv?qH1uw>--40nH$wXELX^FBa>2&E3T*uWy z5(vUYwe=lugei~j2Et?LFA%r>RE$F@>eBxebpJRL_I0ZIqQ` zcz)J>&V1*ujSco?rgHUtgu~B8@w7+&J*S$-S3cm~*&uwwq3BMpvAg1MpeSQ_1H@pE z{o`#~l%!Re&&c?L$WZp0w=Psnw`F!?=6t@(zybF&k*umOYFN#M{shVjzd^uYUjwJk z_CAb!kJNUoYwnIU$J4XRSIvlIA6^DV?o%~A+i?#4TXWlT9@?cL7DvZ)VMKt;%ud=Z8cEJdYIzoOXkJhX*Y$9olztkwz#sPZd*D7sZ1 zS(}riX5bGv0i)=QGNJ$uRtZE2e`}kAy3r(@D(>i49({{(F(2Z(R`E=M312|crs8n8#Th|_1!N!K zP&_Mlg=FlJAvgb*VMLnEaPBO6QN>!gw@BpZ``o;PG1is)bU0t4i4!fP1&U6s*FtW7 z7DH$UM?d5C;x$|D^&7bj7VT0+uWY$=)t)#KuH0Kb?IURq3_V67OZGO969;nN`)YRHexLcBZKf zbYz+{Q~Xo%LYk+;;FSK(+$wXsO>UJs;{IdvzvdZfqALmC;8XXUvdY3>60Du*yb+|K z3&X`Dg>_C0(?y%zTCVSL0-!%|8(=XQHfuRqod2&+5Zpn|U^$St=_x z^x@R=SNmr{N$R=;&A~%zY6tkkh}<@z295gf=8*xxf=>tM z!!nCslm_yqSf+D%glDGz`xCK1ETcnY~dEV_A@XtBJ^Y;IAiuttsC6YFUCm;yjV7F@`H-{Jd#?bA8A+O|Kw_$-sOM1hNjmOBjt+B$x zZ#i0E3Eo`x)A2}cPCgt>NdsNi8)s`_i5*X{I6H~kThyo<<8g&>a0911DlgqRWmviY z-jgQ+bwpSPyI1dk$MfMTHzR4hhw_#5Cdx-TU4KvL{_gyC&5QF9p#_n|QJKh&K$~{f!317;z4XtZl zu4aB{c=sfC&`?AjM?~sE9(2E%G|e=+@UFJS@1KL z!i$&6``C3hMQno3>In5BtdScfsR|mN{Ps5iz&?9C@YdaR?L;+8i{oR^Eu42j>*l7z zav}HUF_PKpzIrn$7vzp;vrA1pg-PBl9Z2+e+rXKpM)3Sga7^3qfG##poQY62kr73k z6FY(2Yu~gcf1w1Ija4ZqwcWl6Y1(wx#50flL1*y|36Btd%Uy)d?vGjBEP=Os#+F3R zBeA@oC6DKc+50*9+wZ~fKk5yRn7-Gvv zRU7L&i4r|VKW*D|Pl=n9lH_>otaBz#r#kV`r#f(|86{p+%z226Ak^b?7pg+kTY7Iy zIAnvU5?L6`=4#y81zU9#@wEfJm#Nny6@!*i`~)Y-JVC5coQ%sPqILjIt1qi+ zZ5>+dpnCn1xV=bz6)XoYrIEnD(%k;RXeo|csnv{im>;lmTrP2z&7t4FOho*ORQv`_ z#*=G(a%xd?_(>au_@(W%wJrS*kR}=1fXfG&86f@(JjXV)~FNc`|76WP?~~P=4wwPI87bHa8;esV+J-Y?bR_J!%E3)$&lBQI_(4Jch4u??`@`$H@C;e2+Jj4k=$2Q~HR0T-?RDoj{9N9Vl?-ozivx z2zg7J&!Qto9{kkA;`7QrLRldVVa~XEqbpvwu<5lXQ!%k&(I4G{ZR@z^+cA#gN} z_&6e1Ww9qQm>_VjI|QFoA-$QR(JjYvG%Kl=3!?n#DI1eH{g$c9B*-Jd7P z{l)0|b9@9VL;_Y`H@sS-Yd6f^SRUTrQnzzEni~|_ z$WhvnHuhz>_^s&&2RBfz>b)6q48VqtcU*xgkgea{L`W+`E2*WI4{8`dOP!H~?G|X- z-T>sz7c~7dzI#6W2k~bqJl7ng*~h1gVkS#V{t|h+Vn2RaIgw!kV(v+Uu$XH>I@{B# zXg}ePJjOljN#6w%E_8BK{}*S3avW0N;Ictbu)aL~%)B2~pfc<*{FItDkxNaYP+e;10b!W6@VT)|zb-)3*gufx%XH52#D z0Fzd`=DXEPb_Np43BoANoPrg8ow6%25czUp+EP0-tN_1gA7QbNQw-FX#3*LP&J@7` zH(HNL=JCHYMK@tg;p6!#EUBzvLc>D?ST1MU>)5|sk8h8U$FkO!tac?$$A6>YnRs*8 zkQLLynoCZc2hLjmOFnycT`#pUrYg!_piB&eqjpz*^xBkV2!!3n#JoGZmtJ|xQRx}O z&Owc^c0A_#JTS21ozRlA8;Doxw#D)TjcQR$T@gBpMWiOIML~ozpxpmP^dwRxOO|(C zS+I+>ECpV|5M%lo~yBB?e^&80XCx@%+gel4JSuAWO1*?<=h z5oRUYJ8^3b+l{_geJ)<|{7~O>k(Mig=t|W1l%Bi0F7~ZSGPZc#W&DS9xw-k|j7}Vh zwn68GBmg2LI3H$?M~bzkx&WhU?!x7SW_wBb*O~J&shTkBlEMFWrt61|jU4K=4ndz)>bbM_nGCOiw)&8Pa{v{MW6nXKd<}G$I zB5Fut1i*B-|21GNi`Ss|hlO;gh1Kbgm6p4gWb2Nuvv=cnnR}wkRzZmFBtb3qxK^UE z3rON5G>wjbdx#{K@jbuK*LosqlBH{GIRANZH7#esV*Q9-3fpe72{AmWOvbc*)usFI z$n#IdJ@ewVF+7|5B*A&=+!eJ+oKB7e*lg6-SPQ@!Tam{w?JqmzIZnTz!)-^v*ghkF zlm=QobG7R6jMkS-G8_Wie+GQ4l&ZXEowjY7+Sh<^9RC#fk?Aha&}lnX=)JQi-Nbjmv)!2!FUA2`n_a$B^5>iq-icG?6) ztmS{eK;aXQ`w9~28(O=2eS!BfKDyVIA>ZQ0Lj*Sv1I(7s{ey4pk4ea{uR6ACLu6nPY=-%{*ZI-N);FJ3yyC8Vom|{$-l1o&OZm&9oHWuu zr?*mWr)t5Z+zS#v*J0>A6}wx}w%^~B!ifigAfr(ubvX!$-0b9Jje&@?5?(S4=f?Eb z6uFzy%(8smb$}{`FLi-!u`{=+xlo*PJwo-~E1V)5$3vl|Z%G{q0M8xU>h6&M=MLwV z1cxhRk76oSH@;o}El8l(nLhO0V~cT374bH*yUIYKl3>)DVOjSPC!HSyYpVo^>tj{4 zw!1;NtG!1skod(8t^MUsO1|0GLF@=i9>f$8V=Iv3-cAGyU*6AF1(9fskCRzBS4rI7 zki0D33p)q+ApQcM=5)XIlQ}8-;{mIO0w{d!)IhtB+jStP+pq3Hl%Ir ziFhmdMAdW8E)jGu>I7J?MP-x+Exp%Q&g_b#$Wv#ddODAqCP)Hml$xb?$ywOomzh@(-FG@^qG6x#%wC}#u@f%hN9 z1PbRBxXTr54w&xn*7|4pt>K_c^UIw^u}fQf zg{$QJheIUOTulj3U!e479b?nu5iTn+F4l;_A+oj3{3@}DxpUakXM}5EFc-9Lk`K_v z#+;4Mr?8btTr@*_-gOT+;3P!_q^u8zSTZ9U(VbGjC#~#SF0VSO z6!ja1zY-4nqp~xib+JOy)S>lLT2kTjdn6H*HS!_B;*dH(Ov2N8IM@9!_{DNcM&z{F zZ}}9cmh0>=hc?lqpIqG=jwy^xrKbK6upK9epqrj3!?31U6s0E9@sn)&M!Rs5QpY1U!1c8l5{aV#XLbS4= zEIpMa^xg`|GcQ-C)0U zU0>gilC@f}4CjS7YTdvEzw;JOoUr?~imdrP#;Z&9+7Xq2`on^vH08c|Ol0t?=e(de z-e%$?T{sDNUW-7;{S_Z(?Kh3bK! zWw0fn{s_MLqB8&4NCiI}9R9Jfu8#MLZw;}v7M0M~P5b#Hc!p!M zqIPs{c}Ku2_G|oN>{HA{VgxqV$sSTDdM;Y)JU`%DV_xr+VUVrc_)<+I#9@3PJ?T>sukeNmTLF>~B`>B~oA{)BB zqdld=148u(&CfYJgO!25?;)jOsTa`2R%9HW5LWd8f2B8>P$TgrYG?ViuDA%@B_(2& zSbz8&R1aU~5pSrg=Z_bp#w!r>?7?B`$M-!V#3+HH@9K}?I|p=eMU^O1vAf}X-A?2{ zc9m5jI587qZbneqsBftMJeK5c8=J@f#z1sZ)@(1}%-^~waDRgN=!bO>k7zfRlHOlw zw%r5puI?gCJzV!6f22{Na&CdkV-Q|=)8j39!t6;&w@)zHIm&h^XUQlfGbcEIHs#*J z6bxu&c%>At{Mu|hedaIor}!Zu7RBR_&P3fsKN$maZYVL(x5~hMboL?f^`BtZsF=IT zYm$^w@hB+L&@2y&%TgIG)ZNkB&=VuCE9U~}r2$L{pKAA5s)%#Z5?NXrc@ZIoUB@;a z+BOZ$eCp ztY73$W1vkG*tp8|h`mWZI%+wcG~oKek)|B&7B~KJ?s%ibRNcB{fwvzjln}oN{obcU zDzoJc?V?H?4?54=xRFTGh);buWf1Kov8N!OdJb9;`qV715aUY!geVu5ICGnqw~Cj% z&4egN*hTRyUD`B#_+PtHyXqBrXO&V2T!2VyvuxDC0QOPi@^l6go}^T#;s0-C1p7qK!PS(MnDM}+Obp|0+Y=V)`q#V zcwf%k6iyRdR%HHgv(g|J%oMqo$NdCw;C=l_=<-I1#PdPF@c_q%Pj;7vXPulF-HeDK zUhQwCF_bY}MCb_V6qhgnL?hrAVLmsq=5jRkf;{KCoAC2=U*Fp#?(b*ci(-Eje0Sc{ zwOn!dSs5SPzL^kL5mv<%?Hnsy!)n9Z7G)fIQL<=%HptY~z->3OkAFKxX0Im(`R5gr z&4U~zOD)8a7JmKT=FEt-VzaT+G)`Tu3tG~Q;}4a7e#U`xq|BFE%W?YVj1$y5lj6(2 zbQqU+Cd$czk!iZH@els++Y0MRez&g_&0?yi;ttMo6-AuJ7QRES@<@#;UD{6iGHgZp(*PG{| zzxq@wZYl+4qlK9U!zeaxmrIcQt|ifFYD_87#z?iUhwyhdUqfb8@)pm?GGcXZSP4?K120YHsXP%b#~uP??)}G8xjSlf z0of6z`^X*<*x1u&*=s^C;oEgiLytW~;_LVDZoqf1(3GyH#8}tYwYyHvxZE*&_iJf% z`UgCEZR81kK;(KQYBEz_DF4s7-c&h&`ZF}zR%?o-Q17Utc6?SVurz_q2vk__dE%KV zK!vF`QI(daVzeMJ6XNP^rY;42_`YuVU9Qz>sopjY+_x0{#*R>dqV6_y_+V6U{X1xT zxMm?%JMk9aOOq_uE6e?B`Thd0Hg>sW^_%}8I(uH#-KzDv$1;J!-=1pDzyqa&&F$v! z@2xc9P^rx^MJb=o=O1a9ml8)oqEpmoVP04BCSd#tP$~*lW)_%pqV5NtpUspKx(}E|+_>xGM)=6%3;kP;EJi zkLjBOdm<9VO}E{rq-fOPzw>I6E8goP1}=;?E8b@2_{h$@6qeZXqT#Z#4QQ>8kE_v} zRpQ`q*Bok7gzwqTuREh*_iFlosCvU*rTIE2W!w2Bt?COlCqYaqeu~rB#C#~!xTbC? zF>T0_eA|}*I!O)Rdu4=@8(h?SWerR&Gtrwg6f7y4qnv7p&gi(^h|@nZeA9JroYYj)z&fG4|MO}sjSb`_ z%YP63NSj$4t|D`f1d_zH{VY~w2bY(#gKrni$Jr7f^^>S{LKA^JwAM>Dy&v>9S;b$# zRL;lMhSu9);FFJ^rT#mm4bMpIjS4tkue0o8%tkQYkkTj|$#js5^Fn!Ra5vL`l!Fkd zic_|Zhr|@gd71fkMvQj9Js~R2vLwsv4N#B+rrrVv0hw_@uC6#nIHXxASi>I<6`v9?#m&vKN@Gatiw$q-9K6>OC29JNKj%w`RVAd_ z&zrxm^?;G<52xOr>J+FhiqnK#Q({-0=sfPuRdsPWcYhB|F_@NPRm;Sz_-tdkzIu}p z^*TiMzu7^{3dT^QxIu~kbOWa=$^;)P`rigWYqyI0PRXjL)W6rM57cGLg;m9#zJ-ti zf3H_?bNSPzvfFLHbALRbLIeLA{p3DBF1aF%VzRzCNn#{UX1VTKVF48wTRPBNM-y{O zGduAJ$KGs^Ip1gP34_mrr%@Zc2Nvz``Bx zq$+5tlFaGeytN&4a(Tuy^HKg18*JPjKrO*hN)Nl%Q*VHe+FB|H+{MH>=Mfe(oc~QR z^3&xI-#&f#LWiZMH*gku0(Blb9(MTfHvx`uVnRZf>R^Pil8K_el;eS8I_*omz@lfA z%()$}FS=-`^+rDdF3E>aL+F50Uh6d~QXBVOb|`2fX=fYB$0h*)?AYqgA!p?diE&4i za@-g-dFQoV^NS`w;@?Ob8DP$!9O*BBT&1=lUa9SpyUpZpJD*KvFczd9a#*bM)DUEl zQ2d?B<$A15!DszO`Ue*6?;7Uz&+Ym%vb?*#*Xj`3?QP7>kMtullT_hj>8i8YZ$ERO z=?`+!zP$We)TUMMJo)+AE#UeG_tpcwU&$HbZp{E?ifQH|JF5P(3|SZd3Wr*JoY4qq zgxCPQKbnj>VdG?O<8w+*;3&rEz?zkn6&H^knITVgWWV89ehsAKJY#7yc!t;I-M4pf z%zBQQR0Ut2o`ct#1@QsAqC=3&BpRHRH>(`6O3Stc{<$g#uSl zm`KDON!>ppw9@Y)q~@gQ{bz6qp##bw>P1mmAqbOs!MS}^n}8$H@A8v&H;(3w(Cc0j zJl4+@I9$9f=%ctX>c1NILWnlNd9c=biXVA-AI(a6)9ZC38UZutuH6YiXB~I(m?{E; zL9@^HX!`EwwY(KIP@^kZ)K79?w0OEn>I^!LQTS0i z9kjRb$>u`Zq}smvW&tgBgD7WUp>^H|hqRQM`{z?XAV{Rb58mMlo`sbM4!HS2|6uMz zP)&|lH?+MvfX-P*4_ItDzE--S@8Z;0LPA)4`6Pj(iMa&xAgl+Xg|;BM-J;Bc@BCW9 zK^x-|i8G_$x&GoJHv37UVzU$bQJZ1p71mRzyT039L+g#~^A72?nFA0{d^o(8W|IFb zfY^uw9EX%=H8y|FFSw>FIMMzyXF8X!%FHEiy{*VA$olB8!dea*^|wOB%pHsHtQ!>= zpCHz{a{IG8TCXYFhA(XX9^%0pE<=ad`;23Hz13euH?+@7Bl%GlzAR!}-o#(%Ulo&b z1L)x>i+Z2d|M$>pvz+Q6|H8p;U3I()#pvF6<*G~@RvEN_03a+gi(=^S0d4ph|4_-d ztR&K-SI=i?WF)2TTzU74U_rZxL(;H^EXQXH?LoIRoZ}s~5feq+jm$7oDk54g(+=R( zG>Rg-#^N4EMXtvguO|keSnkbX`BlcVewo~4rGpT3Gsl6g98RM~lPyH6_q*u?ts+1` z-#qpP%co>bfFEh?$@hw^E%FY$;mzL7p~0`lGRS77>|oU69>b38xUJxNRMEuWN#T@o zU`H}A(&N+>sE4lHWB%`%*S#S5E}UrY^=q@NLO4cA135;hstg|5o`ZFd-lcL;iQnasGx{I%%X z@?9%o>Q!4xi8=I5w4zqBo`vjZhN`Kb5pa50${6IU8Z` zi}#b^7wAG+Ktps1Q>KsEHXLiH1QKeKuXEytML%+&pJYd>!K@Ivm(R!rl1XZ$7umkJ zW-xM+pm5YN^Ui$LP4vIXdfDVo^7=XPNaBZP3!LwKnynIWieE%=GWvwVi(S2h*L#c{f*n70?xk<VPbr>?v4vXAv;IK~Tm7?j(SPPj zlGjIAXy+}U!pT82^Gz7@o9jpo$n<=GmRHu3&pIFw%HucVj_D(6hjj zz4H=3i{~jqeDNvCy5#tkh+6Q6xy*>~8UEgO^3KpyQWd_Q9Yt9^nlauWPr(7=0i^Yl zj5)7Qd%R|ESyXpEUB~gG?$>^l8qRfe!1N7lc5@=VMY+o$d4G%pm_J6>b`~tl@>+Ta z+c*Fm$kX*R_6L6mPrUc?5u9A1*sHWhmUXGdTp+xRa}F@~W2=e6CcgCKY=Z<@sS)$D zAdXG-*)nH~SQ}NMt_g=frW3C_Oi({e|2sz+lzjb_e$b6f3@s44CdzlfNN?tM!ULEM zt*1w#nEWhW^b3d!z*<4!3C9ePR+?3H{YMql+~PL>dyN;4dO&2UM;<34D|~OScYo8M zGNkETR}FVBpK)%kFb=GS$P{~;>=PRBwc0^?u$zC8H{CT?KA?M}rGimj>D(Bq-u*9^ zxJIBX868yi(fMrFGL_Sh#-iR&9F*x->QhS63{+%NJK-O=+BTl)3;Uj;_DZNpC|teO zg{;)v_r`3MF~*Fa^J(IAY0j5zXZ>?4Hmm${8qRd2zyN~uPB;>F)n3Kk^b$eUs5B~@ z8eOzK+qq{<@aEw)OUAuL&E?^vz))C7YSWiMT`E5tukG?&SJgNFk4zO7~ZY33lQv)kG`OD+dY{sF5*s6hZFOTNR45S^R-mhQC>W%`X-FJCWM{e zGaEO)a(f` z7a7rZZ9ks>gcWlif#4Gapa$ULu)+_`ZD6c>lkxSvuUb2T$c?#8p=%{GJNUTmET)}) z=FbY3q&WEoulW4|+>!ow`_(z%581Tl=M~ES4+nk7uyWa_w-a|k0S=^qe`BYcz4He$IKh%Tnz%`MZaHK_o(EFx6S}wy=($K+sact?L zG%aC0!}*5wYv`BYhZAwTJ1EOFz~x2~1UL=akL6F=!7QYIctixSy}Z2}6kWVQNq{Sd z6)+M_|6-1JQ&%o`cUpOqfn4H3ou?C~QdEwadWWgpH6_k2%U%xotKP^2`4W0ZYksd^ zZ{A56KO^KW>W%z$5H_PB@zw*LkATV@ELkVVp_Ey?yl^=&?#W$h`+OPYIvl`G9{2}g zpd9P|YL3=~#Hnwmd(*k5FF8(o0Mv+O5HulQ%0(&S0JM@35bB~9_3&B{hlm|ZMacsM zz0!SYG*%N}3M8rteR}&;@+%D$!N%pTCrT~w_o&3#P<8MboEks9)+~qa?NG~J5rcyJ z{^D^nXK;Q8~KTiLgR#(|Rdp$n|s3Eb~KB3h1HiFo_D{z``xPGSiyRZX&gs6@Qp z&pT|T?UcyPAl|Q_wKzNB-z2UtCD)^}Bc*0U?vC~EiNCfW!psvy1j6?d3oTH!Bek;M z;ZnWe^_&ko8)s72$6+2ue9IPnsD@iW3Z&+vtxuGY23;!2lF_b1O$C0&UgzG_3Zgru z{WSPxTd_I^&opDN*G{jhAYPb-Xq=mJ`Vi^kXJ`3;zdk#wd5>d;aoCr1-a)@AvD|iK zpRmH<=TRQ~u6os>PKC@}@2MyUygw_pHi=mO-uLQk@3)}aPBh|THfbk8nj8}_SVR?Q znqDfL9}36{$dKM>$yz3ZY8x6Hh$fm9B1zj|Z>V8Ueo})2R}nkxt6BtjojUGX7&`9P zM2j+p)pV^OqjA^t$T~LJf<8uWRXL!s8;!0~N5&Yoq-}0M)N8jENcM^wa@gDXYC+r? zv0n}Nsx__}%0Vw_HI|+R+du4XXbCoc!U=N1T!Or=yx0Wmk5U4tp=opb-9(O`>_GPG ze5-yC3?D~jtYfi#=&Y}#QX66|8FB?RLEx3o2v@jPA~A{FnS~IN0ptx=LoxI$sra|V zqmz92l^QVk;)tHOaA132*ZjaY(VU(nV(!R=#8S>7@l`W@__@OPX zfsl^vk2+0|`?9XbvTM-ciW3aKcZ<*!*1nsZ!TWcm>uI=)zNpY&-6G%fl-u?$_T)_G zSvA0^gy27Xo%V{vNnP0l0@4iOQ2@V|IuGL3e~_V->w{a9WUE#EMkL`IKpjGKRnN)y zl)rEeQ2GX@K@hg7C(=|8=JLLbG=pNkRyHMdk0bU%KG-IDmmh(Pyz23vir5Rbiszb$ z-FqLPFH6cY({EHwAo;7$GZlhQWN$wW?{`1Yz1jXc&NBUnB<&zwjMx1uQYzpc&<@s1@f6w%@6e@uS%-vUpCgcu2t7!=7M#(8&=gmH5eZKZ^PGwKrUmKIpXl+RJ2i z>$()BW-rfuf_rFh>Rs8OY3B^7ox@UjEhnBZL9G8XS;hJ2+56)iy+GH3U^ieQ{X0>$ zPn9e-z;wXoG@#iXEeIk6q}`ui^FRABGa}e|5w}2ckhEHdDt-Y-`ga=SfffJIRKtsB zZmw`XWP_BeB0~^L#Ko=LTGc?QnIkm${0$;S_G>-!oxAxz9yVXc2LqSQ2-~LWE5fyG z!dP@}1c1x5wX)iu(#0{i;X{stzSmsNnIDpL)D`#w*#ZJJHO&y0$5-zZBT`d>^fJ3e z$C1+T-|)dUnnfyR&ie6Wse`9Qk+pBz)fN}u3;mis(%*7l{^v{#y>MFvQF+aON70K9 z7LNc{gsU!D=X8)!p#!OjGcV|EP?>(sa|c|sxmT1)`6K*naC-mf9O2SkZ;;*+b$RxB zdPa9Tc#PQnO7?V8e}2_}k?k?{8WYuezzHy*2OrDiy)!1JB!zCAp9As~)iS&kkf&;y z_XdFCr6d_KKR?br8$p|KReoaUO7Z0DF^4Y!aUlyGRtVB$&Rx%5z8Ru^p~w}QM$jen z&;2sHbu_6B4vmZda7K=1(LM|({|Y03@_r7h&>efXmpOeu`TE5CCX4AB16n1{1{_g$ z`hok*I`;|(yjX3+OaJnf@eO<3g^HYm7r0!`Ujg1LPd_Hd`+bK~H#@|(HuwGY$%g*0 z0XB^BKk}|$t=$c@827mA<1=CD951I=6%VzQ_Qq}& z9FXS=Qq#h^6Y!dizlFK~cYT4|;!EpV1t=zh6W7&W>FQpAuo6Z#?70VSm6D|C@-DIr z7l10Mm+kIW1=q{PhzrFbq9nk(^SCQog|{~Z4o4%WRvfzGncWlE-z@niJZ?Fy70u@g zgxXY?bpj|%IDClNC)skD77&CpyP6-x6Jn7hPU|eUX0S=CB>tr??C)Cs>a!QDZsIzC z<7cFITDZoGzVXDS?L9xWqr%!&F=|mA`6KNknhwE%iVKVW#6?yJL`#AddQ=HHT;i~P ztpw=Waa^(!V}o^ggt%~c-XevO#5H7P4trr8581#-%-yW7!k^e`^xp!~IV@{)?1PT6 z*8>4g|HFQ6*xHQG&1BUex8LC}rYk{NY>ZKp2R|EOPq?bxH7TvjHA z=YKngVjxcsB(jpj3T3KD%G7{Jdi#6< zuwz+MK*Wi!0q%NXLI~&h>Vhu$-h?OA^h0kVje`-9>mFG6JU7?ZX)pk|pF<0@{{^ky zyX&0EdrVXp*p@C!t9gQzh|ezY*L(3&1QusyAg-FX$93G_EJwL|zCMF(Za?A+SY$D- zMn*LyRIG=HTSueZTB+G&!S7DgNZoPV*{=_Moc|(u=;R$zEolI8CE;eQKx4-dyb}r5 z9pdsAhB$#yH~c&WqNUcPF2RJy{ABd^kWtwH zA{FcJl=A9i>()ZbL;p3q6Fu_!ebgY=1+%t+WuFdVquP!oJpW}IYR zafZ5sJF`#ev98^d^w~o-&`zsY-JXEsZ~$HJ`SHX#kahTzgy;O8jpY2Jm?7DAME>U- zuS5U;;DMcYny{gyYsnBy%;)Xb`vhB`f<6gcy_f#(!Oo}Ms6u&#A9$%4(dSmc-r}2j z(Sh?e%F7?B!f!idc8-Lo6HnXjI{Q86jZ=65q#gFGlOvAo(WJDf^mp1I6TXWh8Lklw ztR=4?{m5$ghRdC*yC&gwncFBTDs#-lFF!yP63~WILe^q}A+N9*nVbKun#u4QUmfl+a30&1_bhi?Cu1 z=Je%eDT~_XjJrWzvi7Q7y~W4V8^=xSL5fwSf|3oLo`veO#?Rdb$G#rIMvZyLZXh-1Ps1 zaj2|E{tJc)1}|gZ`WPLT7gfc66~0>H@z3C<6W|U$o}9UV4!T{mUeA;&cM7g7KS9_H zfO~t)bS;Dpe`HuhxwaYoknR((Dkz1Pw+X1;{Iz|Q{KEJQU*0O}#xg085gk#Ikwk4$ zvM*$qMs)1OJO(1s8JG3{#(=|Wife9LxvnWQO^yOU21Jsex6-IkJX#xirz9vEXPjH2 z-j(cPs$6LpiL4sbgWW`2#LcXSW>b!_26L~bm zIRU~eLW1v|%f50xs%&R203D`NKa%)Mr)*rSG7s;~z*n`FBT|~?V^i~py?gYRdv7Pt z<_*0AN1hsO9B|fOX#~=xfQ`T|&H_S#to>5!y|%!%l0eNil;mZEn~lY_amqsLUVI}E zsNP4C16ep1r4;&CjIWzyv#!%N++sl}^qb~Z3^&7@Ts)>zQb2>VU4r+jr#C1~P8(5n zTtmVZVD&gI^Zs4Fc5?DrhXbgn1*9s!I{1Uh+dl5{xBrMFfB_ptV^(XoDOvZ1=BLey z128s2G=f-QlB`N-i{M?@TVNg*t5QX%f_S_6i0pmYvZ+H9_9rVGL?;sU(eKwSUNxE{ z(TgLEG;ielE^;F551yrpvdG(v(p(iQEX&KqD^3JEtq85`{iD>WI$zGoKWk8Q1ybs~ z*{~vwtyf7jCSQ6InCv>@V~oJunaFkbT5uhR{U)Om^n7HjwprMv3j1rjSZrU}B4G7d z(6evdccqT92n>JiJz>Sp)xETOI67~yQO+LcW1p_i(K;mt zfUx;|z^qu!KHj;WuIKf!9``;_qX+KlC-Y(2wV>eYr@%{$E-BN^+ zV4*2A!aXTrI~;jl{U^AfLSyeri8J`OLkTKc9hu~S@#>grF;^s(ZT~x3pB+nbb&2)+e}cTByY_zy zqFoa8U`$}Py#ym!Ce76wyvi&fY?F9g4W6@faC_013OKZYPYD3;4|m0T)Mr$?Fn0@F zi0^KQWX>ixgE_4vwAXX8V0B!C&Wi>x?C1L!)V7Jm#g?fH9n~9@)lGpYiT%i@2uCjJ zZ;*Fi5Tm^jQ=ZPBqVN)xyTq>R{m=MzA*-1{00;mGw^@dwpFkPaH{aMC8o_7PPi|0xrHbeE^+Oz@C0ci{x0FpHPCTI#Iu=uSQVCE_0c+9edkizdWcW(Bcja zp=2=zV9KYv#6Q|}=`>n)xJ6u5=p1o}?gXnaEf=Ma?fXh7mSqAyM^nu8I}5z)H)=a# zg1DK_5Mm^=Iq(WM^2#Em1)jUTduwHe*eBR^Gisn{@2q=ctV=el7*yfNP<=C9Aw_1p zo)G-B%{N14&!e^a(Kp~~7Nf%bJu`ACsb_6&oC_o3^|ClOYqgEqf(2~lw0&4rH``UF zkNeTye~#gBMV0mRzZ<~Ti)~IIrIj3SP&IZK0_q=+rCV-lQ(xt+7~#<=dXk~8-XJL*V`MxEM__F zh5QL?r@E6hAor7kkb;O2zafzr$NajeV!gX+S1#PLGJd4+V$oAfXNKIr5OmQ=A!br} zwdZAh(6N<9yZJSJTXgeHV+8#IaSoaetG=L4a9FBt+y}?j!zumjiUB=XbYf$FckIsZ zeRs>cL7Rbk+fjlUD`)?c7VYh1of61x3;R;5KBP-vNiu?BAdv3`E`M?(dQ9KkO$R1_-fE)t?W7bMSCn1Xo}jy=Q&Jk~9zaS!x?7}Mx`z-%Qlz^(RJsRHK)O3dNr#T1 z!Ec^-t?wt?_c~|qv-ef-=@5)y7qUux-hAN_$8KfmFtWJ3t2l{lTYzmUxlvOcSAi-|M5DX`6zTu!o_r5tx&2*Y~((+2DsQ)vb`50fyu9P|E1_px05(Ut>Qd zZ0!w=o!RmQp=5C)`=}k=f2`2jTLKQN##4ts^`tca&L;~#PJ#0Jm?z)35>pU%K|kuZ zJS2>ul%@2aOwbW(ku#gY}Ggg z#ZUHP==+jl=1@D`Ud%=S+s0LnaroKaO)-?c$cYu>TZ{7ZK}Xmr0n&!loDPBKQRSB| z0h8z(`8-^m4O}RC zd~BDVBB(q4-@*kf4Y$7fx=M;91zvTT`bVok(xNpK&@II57tiZ3UcvxB!QN(jI}hg& zTm70iPEISc4sTb3vJF7xts2 zS{2lxMn~^CUnsE9LF(>kpCnQw?|m>214v_OQYJaG45hx9BxY9H6-xu8Sngy|v_4dQ zHzn|~Jjg8_zuR=4$ZZ$c%2~L1)DIg@*cZjS`` zbbs31e5Xz&NiI!)8Qx^oc_()33MEq|o$EN#Z+VKWxXT;v8vxNRFob#-rK-AsM z>66g-Cr^c0Z-Q%=ap+bVP_{sVgJQ|x_Wabia~oHEUct%L*_<#qyz7G*nss~-eZM^jT%rZ|9$3e~*nKuQK1C+|;f=F#9dbqq zn{KBWrLz7&_%vfy;<4_tX0RtDAz_pABNJWbac*{5St>VbqEKwf-OyoofQ=#jR*L^1 zT#x!SR!e#s1^1pN5_w+Va5386y-Du|4(+AuXzu)jWGu3=I8RxhQB2CftIL=3egmaQ zHfnNEm74R73zWKst_$FKMSN~|)6f!^4yvNx4vOTWe@4&E!3xzu?##=_y*dIs%te4p z5y6uW2AAC<@7+V{54dCnGp9>LaW*evbR!!skh~Hsty&S7OIxexE;dt#YSr)6pu8vf zB(JfDv^TA_qkA~QAxmby%RB9Tqik{&C@T~+xbnwO2Z~JVVicoABL)~<^KKV7OPUTI z^>obx!$Qd=ZRP5*&FE*Q#4pnB{{k@&GvsIEwZpoflOOY#kagNA7IS>H#JZst*Yz%y^su107*pu2GD`0a5ujU_-2-w{vir`JQD)@B)2@~@TILB*3}w(V3dY$ z#ypBIcrcteqlQIvia9CRHc@|_Zx=tPzsb?Bbh9gH&V8rK zkzzV};hl)rjOss8L_0TGq%t*ozW>{F4M5l#uH|roYy2iE@`@g5mhy;RYnWb58&a1< z)!Xj#x@B~Y--Yq+`sqF=h`l5a;}6b;2)yAiV@Bp*S70GDIy|A=#Rh?@7BcwXI7pRD zveV$U2j1Zu$$+ej2}#-Zuuue_9_Y`X2NeLIP5*pK_UWeI?ANbR6*Beg$RMBvAA;_XDMHc-W`II}l1y8=YR&SG<=}Kb-N}1}L2=Hhb zPg`g#4l6Cp6Br?cJ^%2&__}0O%gu{;A!yQ9kndUX zf*hMvo}X&Z%d!@`rQ@8X3HBS3jySM6d)4}@?CG$`j;rhpPyqYrc&okm%-pePg zRbRS$eZsj&JI>?qE&&+Sx4>i}<)_@inChE?bXOu*>kppf`IhKeu#Ct<@7`_cH3i464OU3~P=s5*owKldx?mtH#U0Ko!op?0q&r9bmX&c9a`X4VVOA^)H`Qu=@ zUK$5#45p{{t4eN-J{rzFk4P`mfs+R2#U#X0A7~c}PsTbFelF$(|8Puv$(7%-eKIX& zqriyu@H3gS83aR!w4a0aB~Q9^sa?=roe?wRYd}1RZSI=aWH-oak-N=+2InJyl^VNp zx_&&cse1za4OUtTd(H2p++22U+U*y;Q>JQ(t#aLc654P!0#Ia1LXqu5LNvcEqnF-F z+hN2hKuHnL3Wjn1%qQqu9?emtjYV}~0j34fBO1Tf2zCXH4Vvg8i>M$+##0hrua=2# z5bN29p7jB`G>Rl9U3wYP`t(-!o7Q+>oK7aJ%PhbF!F_8!g8sSfkrg#l- zVzmWZ2_^9meULW#;#2wlG9fr_kco_xzw>5a!d(pl;j(N^0~CMJZLID$h~;3 zmm1FAy7Iq__`y!5hq(dq7xoG$_NLjdTb~8TUBTy-4HXdtO#D=q>zg?X=GRw9bE>rJ zi6)QU7je5$?+o5J2h6*9Q?;5N&_vBvI*(Oi0smGS{b&xQNZ1WRcKd<)i`&42w6hw` z?d84YB4x9d%Jl_vo%H-nNvulBTrSu^rG8d9W`N)5z2a*!;m^eL?ZSDfUWOg_=);&( zsy7b?0I&fx0i&v(?-eKiTOqvyTXUc3;}1!q>jtV!i#+kmSimNh1-wG7)4fS9pS0f= zx32;CS|sn^&SQNzqX;{rz`m-QA8JSI1-L!haxat72W(GwS<3X&bH{ZMz_3p zGD0k?&(B9+Kee@3beo&_)H|ofu?cZ;{{EADaNJ&jebx5Q;A;loI9<|-pQBI1cF*hO z<2)aL=}3LOY}%u>Tt`4siJ`t93yhbsQ&pc zc9eb65`Tl`7eY$-8Vd|q=4GixQ7iz$E40M+$I=nG=*gn;?K=}Tj^P}Vyt4_^Vo-}9 zux8xdq%YfHoz}qqp)peRxAl!mx|}E zbnUrHH&h)|hph4N_1qK>3N%Qv;WsJ@n+N{2RRs$SFjH(4z)(AI$f9ta7?zj5^<%B z%YWh}eGW25fz&zWCXy!xsGgn8!fz<^~zXN~WHLT^>U zzr!`NdG%8ozo4CZjw(y4Unnte^~I-SQ`1S5vr4niI}D?4DIwo4B;sF0hjshW(BP9e zkU~e(hj+x|6P<^-LO}lC{}L4TZkYn65aAZ{$3>#Ei95g_4(B4=Ct2*tMQ30u7}i%T zdW_-x#dsmz##gG5p!PdWr`_NJ19)bta* z(70$KG9RVB#DAvB`uZ#Q&wUD~EQU>PFbczMP4?>D^8NMvP`UiG)D`E)P}ie^owNZO z)x5FqcV155&@lS$P_660OaK)TMEk#o^&)Bn{B+qjB9W~X#%3E9j0v*5mI9@<=U zd@$PiU~=$-*)j5??!VIkT+p0E77I7A(W^T{`nvc{{#acET*Cbkt>5}yfM zf>v#6%vKSGdQ-jOPn|opw~_-q{YMjsA+EPR>;)&Wo$Bg!#QV=+!(IWuvI6~4lBCzL zFYwRY1TV`BeOa%K*WT@FH<92kMDOXOTT%=KO$Guqt>#TZg%jYPwYsT3OV(cm^YOwn zFt+zAUKcCK+-~c(fBl&JddgyEt_fGnoJ$i~*#Qt=InVmGI(NcM&@FP@7CHXzY8+qT zP`l98H_3$L_8Eskdm8E!0&|Y|e{fRF&)GT+d-`-MdZn}gU1IHekqe|VmK%p5G- z=+#K6zNt3$rGq)W3RC#B1W7V^?*>98+seI)KCpv=k2Kr59+7})_V8F%wEmqKi@(i|^I00q+Cu{c4-1+j^mi~U z_}a5noPpirFKp;YPs4iU!k@*@0se)i6R!pn*Tv*<&4}UcK6hDQwz<@-n5(;~mF%!wX0*|Lkz z6Ly)DRoIg+a+J6qBc5>7vdMejcQT^h?>`!2NCH$S+&mqknTh_sXc6SA8#Yp3O85|3 zy0GQb)7#Yw?Cp)815~n)Q)vNl2xY&XGft2EP_6ha0D40y%M`v`zSI!=sGc{}`$?Pd zD-Zl75|ga%S0t7Z6o-e@D2ZO0O-idpg`y7x)_o5uM>!aqlA`e+qbK`@rKENin{f zgDZ44a&m|U3g8C-$fU<`Bk6HU9Zs(RBnBhJ@lbK1Ge&T2_IXK$$0ZHs2Q+Riyb>j0 z=3o*P)V6wN$s0v$=_PC+lz%1d*7ZADNMcl38W)aJIQL7yCk=~K5bf;x8YQ#=94xO7 zS_x7p{Y4X?P+mVfZUj#qZR-VWtp?;jY*)y}YRxt{)839S(0YC=`EfnNQ%~9R=oSIP{ zOt`K3+fxDhvQMs!h`^2l4NVJtbq?^pp6u!skSM>Qxmd#jZp-x^)JxJ>ejJW>Adbb| zbVhM;x=y+-CPuX;{|o{68u0}&k?ilVg!)JQyi=%RgHwAC+&ZHL{GGN?iN zOJJrDAxS#`g_(!7KcRGfHXAe}SGgO|pY(5FNN|K*lYA4q0!*+ZYfpza&hY68Gh#4*aglD6)e)6_P*>J*_3xt#unxGZ+F;x1%{xA|ysALQixzhkTVC~elHKfB|~EChSt%@6hVxKRU1m9m4z zfOlV~%pCO~=6Iyj)B%X4n}{G<3RSY07ryrP_D+Y8`QpNI@|F0eeV}4^)BDTw-s6sg z3*d(1P#!gD1dTE+fR0O$f;X7E)v|Ow?9hh6IT+=|H2!ifDb7lH3WE0Yf#^+>eg8m9 ztOGqPrk`KeBjJ1;Yk{W6Vk?QbXj*AIYNT^B#EIA237z)ol%qf)qQQc!a46_+OXf2o zda>O{g#q?j1U<3}Et3~Fe~ojwn63+~jjhilL(ES{VgqSY9aIR#E6*_Z4RGUsd+-Y+ zal}a3{DRqWu-Q%pu+-kcD|m3n+`F*V!xd8(1<9o*TXwTru93Ne2?DKpKa2OiFNNpKtY6ILH z?aPO^$D%t0#M6{@bF8T-ASmYa%F!+T&6ZuN49i>WwDL;LDSnYX5wL$i6ln0DERxK< zw47pk{_~=B-w9V^lhd_+SRiI;7}oXAtq2hKlill;8aECiZB@tN`uT<^y&b09$PPh* znwX$2hbGuYJB}J`5Z2S@U~bYa)6j)54{HVWZtXv_P-u`kA0CvMCXC7q#hfC+QOggd zDXu~6jVR<`-Jy^uiG#8NHOlSrGi9n2fww1TG!ET^0XZ8Uk0HkKa@d0%eC~;|Q7qY$ zk1M=Xl8?K7x;`VMkEfb6r}w`Lk&B!`M$lSCzPGKXQ^33OWdP2wzm;?p{qT&A=T*~7 zM#umSJ+6AVj2QWd7pN2F>h!| zdK>TDg{*VeFp1oY>!2_qR}>NjI4Nz1$0_jvEd|!JnKCTSJ9E>B^pr8Co?*R+v7brx zkkj`Iv10oZim@#Dw)`zqit%_SDv4Y`rYYoz15hI-y29STH83R>T66Y!@iD<`;`W4$ zW1j`|MwZ*6izQq?51M&pUAKO~>W%@|P#{{e`!0^#!P`nTXJ|(=f>vcGT+bf7rpB>P zQGk45H8zDeos_agl0>O=E!|1}^+mxH%h&m5uDcdo-pYx=3pvVp*jAEO#DDC3>zSkG zO3n?VPgV>8M}AsJ@AV@`W#jC}qr3d;yL##WIB8>umV+LO3Qd)a9H)bj^S_$^wJgV` zy8!b8IUpn8{NZ9!lYcp=p!=c^69xrLUEBd!g!HH@(BRUrCjC7uZ1}rx%Cg+kTcRv|N5MQ5=;3G|?h<78GozTTz$pp6M& z(BFPszOj>*zs&EP%8LlgKlqK}=(s^bI>bQj#O?R~G8GW_vPpah=Yq20ugOujUl zV}+Jl7XIB3Wy7$k21MG2UD=D%s3cVw&HXfT;Q<@!$&>Ci6o7V_E7&L(+W^9nvQ=NG zM)Ku!r~8*lnwE_mY^KE(v8PAeKXns0EZA{3+DRve)JrWs!0$ITzt;ZLU4gfqDcJln z6}R)X^N)%%j(YEKeP?2^F}^Z~nRzc=sX1@iBU8ivNsWOB?voIDMZ>?#inXTut2svItr8^lcJD;C1jD9< zA^3#}46;nZyl^;^_gZLq6KsLSk`Jch+{*~?+w)g(T!g%m_c8jZ=7mWcg#rJJ^$Y?! z1QeiKA7B^(1gP0~f-Tx~o{s%8O7FL$+6pK%u&Dyn^8$l9%+Is-wEHjy+-h!ERF zJ@3QN3*Y;03w_BqDGRG_auftu;lk$%tk4SMI}!Geecu7L{jt8s*{;mz+e-;UY#fsA z3(Q3;+d*^M%C_C9Teeqk)v?1s7%^iCl@L3*)5xe&SO@VCnCWXLq#JSpW4mT z^XjAjG@ffTS%CCb&!-cw2}fEYoA0hze;0yGP80}1e!YaT{5jP1O?(O8j!}l$QQaAPYHT>^gzE)~hBH49CkK2BxlA5qA4iAHxceI;-Wp2CiN# zoVn49GapfonkT!p5fq22#^B@&^#@B2A}!ZBZ3RSf_Jl_QRHs5|KJb4*NEE0s7LwaX zMNbx*_2QD{1T`r;b@LHkHp-%y;Pzk{89?O$ImD4FZ-fV%y!I)nY_tnNa!sLfcWc@mAa%6VgA1Pnp| z;{(7%Rqd!z=^!; zwe3w__7!Oyd*<#oOpNPf_bY6S43zxa9+D-HINb0+m;U-UoXo23q_jHHJu3Z17?a)~ z@*ZJ_J&{vHtP)jv0^2~Ur3;C=WA?-kOk}+%EM8#PxJ<8l*~K+GrWS;Sy=eIU4VCE! z^DX6~`4ifFox!OyJB@=8yF7C)zI^>JHtObFe+eH4!8K?Tjeb{?nyBAduqDFibi|~% z2`@xN&)j}h0N1vD{GjYtdX*s+>M;R5`KzeOKK}c+%M7sw>|~jE!gKluc=ie?BM})r z=ts}p6rr$gIRpir>LzZt*^nfVQ37^X-3zj}fVa9FjIMI86A=YJe`AQuh!z4JS>N2@-xtXU9}F|F4tw#UlX zU;RB*(_uBI1tA8kGw~=pxZ}b-f*-x7`M=6Pu2Q_oBU!24r4OTbf?OYDcT@9Qhm52Zk zW`wLqVMC3?+u-3m-hK`F9GrQ49A5 zLvjKXWvpL~asr=iFp8aj1F9bky*5&MN6!b)cuPb_I``|VwZZ_+UalD)#t)Xu=$==N zDhQFc?`EgOy>>$a7?RkU;%`I{a0_J5@yfx>aJ)T(K!5pP;%y#8+U4uqMGJ4-J6C^) z)i69@w{*g04$hzoqch z6{u{oQe#1L8M5f%Zn1YmOf;foI#YW18Z!j6*4`gG`MvLsMuG#^5`9pWIB_Vjtpk&B#$f076`9NM-+#Vh_oZ!Jp;+bH3ydWDSX^ZAgxeU^}TyNmUBxfvOG+p&Ftb)R8U zo-o9<;#bcGRx=LpT{7EAcUwR!RSdNa(jct2abb&R`Fb=7bxAV@L_9dnA$V8;5m?oV zt3fXT?+hG_{B33*d=zTRkPDGmfY-A%F?tPR1eN5qq`xW1WzsD~(T1|s(dVEB%dnV# zfviKPr~R+U(6wnhoC85059n;{iOdr0s@AiVn~GL253wkqzrK_T{Xvk1s5+xZ!PXuT zc2{WJj>m~rv-qNGnfjDKWcWn-m=F`!ON&M#SJ8v%XpexxFE%*_i3R4Yr9U8tIO;3ClaQ+p~w(`??SLm1tW&Q0g7?P^Xf3R%l zOghGolEykw|4jRGgzGUMx>cp2sGOz0wBz!|AMe?z#7UWE{NMV{QOdOCOoFkZ z<82i50!rg?TH3d+rhmP0UVFhoq9+uvh^>vO9u@k!4ElWj4Y&bf~*D3Y)CDfe{0P{OlBb-Q^PU7}2 z<+|**!QP!{Hx#cVDbT%nC9~pig?`x_CWpl&n1m_6A5SM)?|k*GlExcZ;<>^vZ<9lZ zrCmFr5L2JCA+r+uJSC$mA@--1nG0)(`LDe@H#?(W0@r~r8e|p&P7+mDS~NIlb?8R< zz;M)~qAmZ^aHwdR#wf9H_kldL8}+YQ&kF!hpD9-_)Nm3LjRUtQX zjuO@DT`Lf%ADX|mxtyXXlq%r$HO9{_m9=eJ0K>Ok}^)=)5Vj>*gH#) zKJ;&ZBY391OPXXxRno-{i3w6`g8%7Cn}A6JHkKzSx_R^xdHF?C`Q9enVCvnodks|!%JOv)v$)f2!WHM{3q|juz!Eb1Jd~!T^}=T^JvZ6=tB{W`JQ2IHufpQRwh576>8(7*Obz@P1<{kq&q} ztViy_cPb|cd<%1~3U%D71GIKMG*6F83o3jmV|8X{W~TvKT^YaD5C;f-u$)t*TZ=me z^g!R_-CV~(j6=+9Yf6?=G9EvKi}QDLaZrCl?g&dP$Svt%w5dTDGFRPn7#ojTH+f%( zx~BIAU1A3ToUrJA=EE54q>g}H(gzXliv{P_UnsS0DEl>Orlbe2&%`Qt_c?zF^s6`= zY(DL_Qn3)WdF4o7PG#8N;6~upDT%3aQO7*X8_l`DEoh0}oW%5C)MxMjMu_&_jwkqa zADCA$&Ag6@`c1TnHw6VUV&XZ(vcIKZi~9~m2cW%&rrY7av#7+R!~&w6e^ngH*P*@d zJm+i%;I+5YqN0kH8)D*?K9|OlO-VrVH1HaL+r};M*N>U7(94vk@1m!Vz)IULw58{o z>454kbHaEYnHu9b;|QC@AD_&bn2!^lHKAgg33$wmoZ<$t418uX5E*O1@x&b!c2sus z5kIL2`_oUlI*!{H^HmjzInX``)P5{N*l_DszLI`^QJW#qw2zlpfgc6FQ!1#8TZe6H z_o6rAyBh2z7S{im&?fXj@vLZy*EGDMt<&Wo0wy&<&b>9GR;s94%FVn^xMB={he#SN zn_g*)6rEuEHePtqC8NIBPWi_;{C+0$SWScgDDQ702!_A94`R}pPlNUw3XXu3{>By- z)Eb3I{eex*gbpX3I3SWc8GSZ-1Z0`4L)eeP1$5Tj7qe)?E$XYBA@HLV#Jm z&Fd@Mf?rwi-Gsc0mO_?1iL)CNANT$XO&C}VP;^?5mx15Sb_<`E7ikjKF(k+voff7P zY#|_&jZNYWPGF6JB59gOMV@Q>h57 zMCZ3>nT6hXWAQ&%PrioK`*Hkc*34Hn;ML5W%EiulQAgq0obi_G5G#V>Y?Cn&YMb2WBqK)aXICpjJhS$; zGgs}^i8M6fT_C=84qlvb!&Piqx6ETE|7|LYZAp*xy_C!VZVTFcJ|1MDc<+&``)IJ^ zc)tqR@mt7R1z)&OK@bGnpB>!;Ct&Q$hoTkkI4gx^sb}=EO}9LtIjY)#U0O2Ssj)dM zibf`rtIyx67sU*plc8k>>C+lou;v?BJ|YZt;~JJnYccH0UWF2o`Z?GK%mZS zTdN#kX$Eaw8|Z8HOuFkBj1%=U^@XlZNhyzEe$6Vw`8DY3YB5Bp63+@0H7>8kPXbY7 zkh+0IR=w~;n}^V#%h!X4>pv4Rvf)9QAbx9pMfg*?EzH6EHIHF``DpaG1csmbyr|tz?<3nER_~^!~wO5w5v(ycl_Tw%no@}X+f+)%khP&sf*Lg z#K;iFk=%m%uh0cv12h7;kN5TzOFpf!R3dj%@VWVM7f23Y?3uMaY`r9MjGPiN`n9^Z zNg)RrDN*?SvdqfikWz8|-Oe9EIYs!~*c)>!wJqH%ydiEE-TW?=M}8w6l)wXZktSDE zZC=^TiXvhb(8!`ZU!Q9i-}vaa8nWKSUP^mVXt8PSJH zmO#M{mxO2zQjeF#@#uuZ2oqa8e0rMRH$>CHK-S2EbW@k*(#i7m?DvQn|2?62YZ%Kek4Rb63nu^L%W`QjTKK5j= zxt2gs43pt4+V_JWh(%r-?v`!|$$H+qA9xz(lAuf~^Kn|1#iG94*~xxcqs+aH1ZK7{ zY@tQYlj$W%$QWIte5{S4fD2! zhI(0lG5Q;y1DO~&VMT-4%ib@qZ9SXU`4wr&XgFkWWdR@%3yfMQ)9JnzIuU7dd&Re9HtGyZKltWuormq?rfS!)B!yuS; z2WWDX&H%41JptrGyf|0`ItIJzu=!2o+LcU*JZBGXpQgqXj6u-sxVNrfCH%WB_@~^N!gxnv`i{F_b|q>j6*7GFpqZ{mwE)p$a=T;4SE>o(0!b6FufdAsP8AP%&RK0Swok=4Atr3zX1aPrng2U%9a!F* zY@y`GI&S>^fUfE)Sbn*xWC2+KmH+^iYEeigYu=6aNG)jR?GO7QUn>+VqN9Lb+>HB- z6Zo-;E4jRi)DC;$tViw#cJ<30Y$2Z9K$d#@93$C>iy`IJP^yQ<`R2dnR6YtNdNZNe zOQb9$g;#llye))8F2Www6n({;v=xd$%iq+N5mme*HWaHLnN6e%2}Lna1LvC7AN`We)df zVE!}F7c60jNn8#s_JZaUJ`HkCN3kkAyob5Jni+Jt zul+0Go`BM9w0m}R?(t66q5uxM35Pf)Nq3gQP)Trw9&$~lX@MSpX~=Jn>1c)B$*um1 zX}KPs3Ng#!(|L`&s1TAl4VTqS`f}a1CtXEs+WjdMAOmTKblB73ly+@hb-Thuh5483lPpve1Ti!)#X$B~UsfpQX2P;};TeR}t^~quJug*0JE` zNh61nKrwfzwqlY}2U_a(@0YhU8>i8<3`{tuR~eR}ier?6A7n#Mp9C!a+=9)*&$TRM z6X}}Tyw4HV!3^KdKGL#Nhhi7rpA=->)?hNZq?dC0yd<5|jQTvkWM?cA>KDc;@^M)} zl7F;H$~FG&7#3pye)=57L*L7p$J#uY9Ox6BbrWhS9J(mR@m#2wU#h7x0`zH*XxA$1w4|PEf1av#&`^V zjbyG{%P8NfF4mB_=2nsfDyR?I5Pg;(vAWz5+Wucr`A@$1g{(*ONsu`l(?Rb6RP9%ML^6(M~d(wmqnHv1?a2E5>8AGdg?`u~?j)D_S2E6<0wwdD!ox z;;2zaF~O0$Qtqrc)*t1e8D8PM-jBcTe%LP- z#-qKUp*srQ;j+vUIM8O7vbe-NdY0Tt?#kqtmVxdl^pu!5(S-qV7CrUu?kF5;i5040|7J>*1`YV;fy#+tuo}M8{FR%O6|j#1@6^ z6cJj2z(;<{|L*4i$90KF;HiUall+TbO!$Q&CRvjR;~{W&-Wr{?jv{RfxVNC9hAuT8 z(}it-47uDFsH)neG}+M%J)bRPxjMcoFeK;EQ2`dlev%VS9YhiIZtFWIrY^7lUA6Y+ z)kmA*0LLynD{4G#Txv;tCRaB@UsDP+ym{>)Pw5iQY3XZaGYD}2iXgc|sTprAT(6Ha zKd5zS(SOSOY8UgF#0V(J=)O=)Xz_?x+*VhTZZ-^Bt5J`(N+p7FC3_{H==%P%Vs^rO z;jtn%>_#M9-f4Te5Ag{ApU&eJ=N1KVNb@{|%hLLDz;Gt9o^c}B;ixVvTnZ=>c@#-F zk=RTT^v(ipbZ5Gy-I@^cg*e^exy@zIbvNGu2g8XbPRYX>@(6j^l9-{S9k5Jnn3!58N>j7xh`ePVz>9v#o z>Dh`Hv#H*JGQJTKJ*375RZq3)=aEDf|MfTY=cE&ARIx zSn*eXkH|iO5HV22nAmn3U%lS;d>^XH%~hzZmU0V2D{hE(?4~3?mH7KtP9yT%V|kM7 z%??6POp97FE}f&bS6g5yXo?4*hyFby#O9Lf6wC=7!K6k1frTxWBv#!1MURW|7EjM% zO4?0}3Npe=t4|bU0vtt^g^H_+hI8poE$dxV4Z=#GC$%i#_`v ztf^-A8&l~gNiy5Ms#pkJ)H!FcR=5${RqSK~_%7SNy}|}E@tEBhxydvfl`fs0CQsWd z$S*mmIo_;P@gnpd0_=#wbhMSjWbZspye65juPF4~zz}(1 zDv)m%ZYL}INlXs!#~rQ)dtlXMQ&50jcQpa{vHO2Q+`y| z($cYqZ+!=PJZi#4UjC{H#bkg!GS2bSCYD34cFh1Sk<3_7SN_1i3coDaVKot9$WG4=cQ#Q zG<`#W?m#_idMnjJB2ZL$s5SvYfu^nSrPV(+si+Mq#xV%aJ8T`>+46Z?i+CFP{3l*Q zq%eV*{?19~H?AVn#mbuCeE;*<+JkxGzF8OaCCPdV_JW7>{TiOek^1WyWn6Np6nUsL z#B!O>N+p-nDj|s5GECKcZ!%2m;BV(WrYWjpSkas{w{;@{GjkqmF!-I(QNV<_>?g;E zPVgMFfjV~w=w=@)o83@`u;bCB4z|OjU^ON0cqb%XNQkyh_wWC`0IXQ_;@?w>PlF+R z{2ZiW*u_G=hpVU`r;w*2+RUowpivp@Io}*1Cq?%F!2Sw&-W{c(? zbccb9ZZI?KpOMFaYQRx#;{;CjJ8e+CP2DXCx6lrIOUU!p>LWxs{heAj7f>fc+Z=lU zoAlLyne2tvo6T+^P=RM1OE5N6wCk@1cK_WM(WFua^9Butl7ts%9TM|C!TZ>9gU6`; zB^YwNtg{4MDv+;Hyp^6(^_TftSJIBEH@(t8J$dmcnoFnMLT$Bx|4QSjOa#71!$K z5E<$C<$azIbt|IG`=59U|BB~n4cYS7In5*P5}5Qx777#5aK4HvSlI&*EA{xeZ`HB< zan~-BmUDuljM*~HYsL|3u^zcZG`0V=0H5u}b6;?@qmyL1 zI31|^7Et5V%1yixe>q+%1!|7Z4cnO1Wo*AANA+QxE@)`sbEcNtv8aI&Rf7CI?rmmq=A;hysR{4?{4@w6(1h;B z{d*9@G4k&soe4X*Tv7U*hCTp50BiaE5uX%m z3Lq4gD^4$KeE*7px7ZXYh}M+x?K67=XT+L4NRbKwiyV?pn}QsN9hh!rTMnmqO2R#|7|wBP{6MH%p zd2W`f9b&wPF&l*1y{VV1C#}5B5ovBMtfmh>j(#}OmO#F)W&^wp)xvI4D#W(}_S5-o zEZ>AgX&3IqDopBsh7^Vb?vI0J;52){G%;xuo77ssOXaQt7vN(KG;|hC$G|3{BIrdi z3|Wc5a@0?!NG)w9^?tBQw)B0t-SAeMg?NaDe#@OZQDYuTVaWA@yle;E&p!Hy3L9-=j?9LLj?bF39W$!R|KPVB!^F02QJ=XFNy=kT|Zit(RZKt9$Io6kI zKhn}1uCjzA0l?gbb64t4;9O4WzqvG+c0HL_VlX>LuI`DXO|BpAZ*`*gd%3g`UsF7p z_}fxH?FcUEqJF_)FSNPo5lRL{J!{d2lknVW81Ymb9qGN{8B7sdlE?Xbn1tkj4?)Vn zhkr-w*lo7@o_wbR4hqbIFNHm5qA)PYDv}+@F2gzAVlWo7X~!2QXR4(Bcu{oWC{t2t z^(sWEpsz5Zu$b}#+AIEu%Jngl#s+!JbWEC2<tLdpnnH zVRnQ{qDoPdu;ekIu>P>bcdMStTI}{wcu{acG?t^Z{Aj_w@C83o?`irD>j*QdoezZS zto2-9ktVHlFB%Yoe5R!989|w5Q|up=>pf)-*z(_9Rs|keoFef6U?Nx=S(G5=!(W_B zDO)0LIJd7KQ0wyc_=zU1&;@`4~CU=EV-tB-fyh zdiGh%ivzSHYKWhr>(c7iq#(Gf_#^AS{u2_&Cq@eqmT~*pCjELxDkOX|L-Nh$`c-!86P9*_;4GBaw)UT0LB&5ZuU(9V{CsYw}Z4IW!Z&J5Gk}E&nCm5|8P*e$s zyq1`rEENrp;oAF1(7c*+MD4=Zh!q_v;__h9y=RD&aJ|^GAWF;T9lq0rp9fBkKLx>T zsUObM|M6M4n4e6nL(KFL^)Ki_q=?vym66XRk)%QdHf2C?lEMr6(8L&3|2bw4iyMF{ zS1Z2iK?)cCr5JNiY1-9fO4O74fx89M_ApXn#1mBJM^a{$bk3UJwz}?w=$YQq^8nhh zc_!r2b$#v-g79iG!&oBXq5dz@qOvh(6b$|Q&&NQo&}e$fhs5<^%C`FK?KhQK zxFF_4M4>&xqQ&aI;>TV5Cq<}3kZcY_P4S5tQ5((m?F!L~k{IxMEy!uV@iZk+vC?sF zXjgnVl$me=SHtbOe8Ln!Fj%W1?V@g|zMCI5zg72YDB>;qX<+E!zbc+tnRqc@A!|av z_l8!P1bfjcO}Q(V*CP*kRM-d^=S;I>yQ}edcWN08d0&db3qrJ005ZzYV{PhVyrXN^ zYou={%wKgAmaWEU-8?_7=V^d{U>Plj9by+kh%1UyqZCgmp#=iV0bu|pt-GMtDKqou8V$Mr+oB3&fV0=zXJBI>Cd6IEl5+ELvbiez9;`MkBeP$Gc>s~qVa|P*0f)5TEBWOK=^>gi;(mx1tD&FkCgrFy9 ztf`h>>nLGIhOqU;R~z6Came`DbdS63F~{p#E%xU!aumuZb))9M+8h?=Qxdx@wh{o$ zTj)LMZHbCbqV7*UE`;;9MEkS96MplCb$xL0o(e{{<9a-lxwMS0M}z;O8F)P>+8@#> zc!`1?D_z66>OiVj`;^1DYv~=x+T9kikQHM3AGF0!L53G)ECDp^M9gI6IBoTUY_ktZ z{>w{V`MtooWx{uR3CN+w_T^*(Y8((H!&`;pTtJKKLDTE1cg#;RgJ-un=sjjK19Aw` zySfdwqV>%s&>>*s-wiWH$seuLZ}yL7A0+f2Df}5NI-=s(RwsFwVq|ft9P*tYOP<~ikbng ztzWdfUHqQdsb(CvSB1f-mVB(oD1wwYm5mSt!#I75@8pjDq$gIwK^RfGvAOR`PC)024#I)U9U5w8W!PNqv-0eNo_6)}4x9 zl7CBqXs^m|I?V68r7iChplR_Ls5Q(UZ^Kb;FOq%2G5`>{PHRa92#kJ=lUgDT@fQ^y zKN@;QP5p%7K?kmPw@T?6z~JF>XrF$o4Y&H;-R*5o%7|zX^@`|Kz)aJbDqsK@hHUzI ztCIgI)1X1bFqFyLga_$g`a{N}GxPBtp&WoYHq-=XE*ZT7mSyqeT#mFsn3^MJ^H{-X z63_cE1m5D(3Qk?gUc@;zxEDwtEL}!|mz`?Y zw=EKH*M8GjxSRRji=AubMMjfkN=y5TPQW%*1i$$~{_#lF0xn0@Zu3 zsa&1|=!j}6fX05TlTs%IDT@PgTX|CZ8#KWgi_mX~)rWZE{#0mpacf<OA2%5Om2C>QZT(W}2mk(b|SI&t$o1+N7Cw}PPx?Bfba<2 z6j~A*Ge2`|z=(zW2;VA3xeS;a2m1mhvHk#ZWhCSa0Lkkf2fM>9u8~W~B?>L8C~7fA zV8X$-PqXcKqS|WVPxDNFjR~7H6n#e&gg$w~TuN@GZ1R!-Vc3=tE4L-$Vaofyl_{vK zP;_F^z3asku9p`=7+Q3<7s9tKL=_AAe>8{~q~cJFLa{hJ5v z==l;)HMCWL94>zb>|V=fO{0?BV9X@C1EO#$T zj-^%i-9lx1);k8U%BC)_r$a!5G1eupJGMjV`1C z8UU0SJT1+BLB`ss6+OGgUDNOPOuiYcm&lsOy?*|~CXzxv8r!ha3aXLexa@wJ>m)Mu ziIPf8{C*Ai`2mrfA1LdSFDnM9ceFtBYt=GYBv|;)Tyz1OZI5Gr zqN-Oz7`}QMvz^Okx>_bl&OF?kUi59yf$w0g+?2w@FEK{YQFqI$f99Sm zcxeIY08U?oA(~wN+nuW`eaH4<{3kLEwt)KGHqOVZZiygVBdztnL2cC2FPV8YaXAkH zcf`>(%DNnZ2-w;UI7ie;g*hJB`%^_?`q-l3pMtEK;~>UyH>RpvGC`Y%BF^WC^f?xe zX?5@Jrn#3+gGH9r2V$=V3{|=;k3$zsvMAcH?HN5N()i(;$mZLHnSba=1I0~?g@A0U ziWfif{tgZ~hS~6D24_HY(zb#wE-?uCke(p9xuAR`FikLb8|+2%!k-Y5?f6;=(-dqX ze!iLqaASD4b7L7XMaT$tK&*{QGc3Ma)sa4HMh~8H53kThr^SYiDXkw^2h~mgO>l6_ zRFl5uKC800gM67mSj{Yt_5o*hFec3Mdj_B%gzB)U!pKaSiWhv@s<+2Vytc%E7I~O1 zq#}UH4z}$@>9vR-Z}rY4;aqv?9`H@Bmmj_U9&12hI`{`Wz^5}?3diwtFdSkr7HScF z1Faac9PdY&CS1wiset9r2Cv?jURK&j!i!gy{Fg#L%B0aI-D;Yj>q}dAK`XY3C<9*a zn2)54)E~8Z$h(3YT&&8YN$VjD5}N^dC8DB=jx1jKEu&<@BY?*sQ8N?fDDe5{SXL$^z}~Qt6W}wav1%e?n`(mLw*{M7H@{OF!XkiRs5iKZLINC3?FZBT98P72>pjB z)t(3?DM)f%SM`ZgGb9b7L_v=t)BTyv@HH+i%1P`}c$mOLoSd^n%_t&}*~8Q2y4J%w zp%Z7>#E<3kFz^_31N(q%WW=C_Zs}@lvUr>e1|YayN}(clRtyWm~kO2uqbo zHOy6x9(f5 z=lR>4e(k;jD*smKo20jjgQQ_CW5UfQmumw8W8o0zj-)E@$&*@fWprmYY!iKI@Ykohs}1*ydC$;#mjX!JhzL`GZ4;~?Zkjed)Y%T(L5S{ z0?&G}{#7?+e)mN`E!&*k`+E3PgK#rtAzN z(2Se|bhExm(S2toG+9xK?}*LjSu_ZVt;+Weq#tr5q#S|AG{K1yv|K(1y*jTZvakT6 z>!7Y36`2TtDWioy<>t?VM)M!%oW?miAmq~Nf%9vd(aNYL@4t(RS1RIj!4^4~ePgVT z{~`AdE4kHhd798%vpnq3%98vDz)uWwiNM6;ut@{=*#^+wt+HrH#EF5pt()r^>F+It zasF%W;gJQd`m3xx;rswxn~FBk3z-3iTC|AouP$7OS&?TR)dFAexV1Ffy}Sd|*igDi zE2$1=&zXh{@0MEYtT?t|IGbCy>#r1;WOu(7qUWM7G*{7DoPM*Z$H&Y^D9=v_z~R*p z#Bn_&JYE6OMqBC9WmeXUt*Fm~OxJ;ighD7JhW7Y*aq~+F z-PiGY4;A=qNcrbYz^**$51%BMF;-kS2Gue!Dko#}yXr)ii^-I7V{e`tfJLKRQb&>o z2~di95Jf29lapPOA1Qroo&e)Hn}i1I9nE!_#O@hRu_eit#5Dx$%i~6TwK`a)= z&UUiW1~U)UPgr=lOb#tq;S6Iy*bgqS?|ebYfR(HX0hC(-=v(+2T{mqpUljyu!NUZbBlwbL~-Q5SD{y+Lf};)=_2D~UC~j`)~`@yhhSPG-U@)eaXK=E8<#GM z8Al9LvsBc}S~+&57EcuO%wpnXTx$lsvn#YO>`*#M{Lq*3fE2g`rfd!S7SJ}1%=@E| z=`A{Iwf`;FAYHl4fQE@X7f^?$vq!mWXEYmFFc#M>H~AR#M=KtO^&l!xRT1Z?Swo`H zxt{)Ovc+H9PX!pronkc`g)^nfLX51xI)e74x!*rrSI=u?yobYJ`oKwcf#Lw3`}I=(}e{rhiDX9oOS_C7a@~3 zNCZRJL<19YU2f(rjHkbB*#4>eSg7L<%%ZIvj?_;Iu9p?VjhH>SN=+;hjxXLEMFG~_ z4g8DC@W-~j{sfdw&3$;|(AqpVzo_bNxe4m%pSxb zhwecHggC~i`VtrPqzm}I|?3@!QZUe!}?v` z@y^KIm-`dKKAGmFbmnJ-4U(J%w3e3@&4qsfC3X{*=aW-`)q^r*vz+CeWlI_r@83PP%HZGq67fIfD!iW#$-@7&>8eVh@r=6xO{tb65Ew0@80=cg1MwB+<2z@}V zFnJjqllCi7x0l70h;-~mq8Z4(hnW61@Pe4Li!yq==-N-lqb}RM5WL0o6(^S!X4mJ9^qW?l-iQXBb z2Rx&n5OAd4579eW#cy1dS|1|( z1*}mj*1Z%Yffz%K|H$Zl-xDHC`kICR%pqQ51aYMOjK1HNw;XX2k+^4>a$*oemf6VG zJ!;rbL0O2XGY-JgM!Kk0Lghd@JNOI?qUvI8nk= z7jVWoi^sBpaTg^jmmswH3AeHK9Z0u{bi;P|B_Kg8A(EDib%1#YT%Xk{y4z@}19oe) zNF!lp)#X7vMUjP9{>nG1T>`i`+Zb*n|~vl9fHT%OyX{9gBM!KJEs+`@MSDFAru9b3t8f0ARNbAw20k6h zt{eLU{N;dy^St6atjwb6ylAOp#f#T|6At`h?ssiG9fkT~F$x(di5sWO(LiuI4K36$HvpyZoEz5^KbqqQ(A}Rk>o?${5=8OHgqy; zT+d$|QNLeJ3^``<{cECs0Ex$uL3|0RaU{}L{_rQv_$GgM+-#ojZu_h<&qWL96LI=G zx_QoZSBq%y-oD+*`luMo8W@P!PkR!TXD40mMyMzMo)d72GS&?sNMfF?J@|{ z^d)(~l8?H$MUZfu=h9e*M>zGT%-;Agq|D!@s;}SxIT@wQW5Tg|&JcjT6XLq8h!>$H{Y(sjrUw_npnBSX6e1Pz zev+ogXQc(yeNZ=g5n{skgHc9ns-GJWCXLiR1O=)JOVVLz=4zOPjU)igyy|X}ejC}T zO!3bdUX<*H7d958bLhVcC%jZx!**2A1cXcUsgpa7gRPKyxzCKBS$_53PvxW0IZK`DMV#O{4r8*9jf^oxBI%C>RDZJWd`*V~9AAm0|P-SD}O8 zFPqz2oyv`_WUEk>_RZfAgH!1~R^5%D6?;CX4Qo=(+AZ$_9po%8+xVA6l^r-U{lo62 z&aj3E^f2kd6ui>q7o(APGP*>~oeMyfx+2`3AW>l^D%%YkUuy1+#}cg+-JVoW2grai zl~x;v)5Kz^|MBCMD8x%M92#Y+RP2-Ch+FC0o=+twLJDPxx)A^VDgg<`eS!0GoOMDq zr<;R^O>1zsnMCD*XU2Pfd?TlK|}AoOqoyo)NUydcNWL0v|^kNAL^MHFphM1c1Oi zD-E`J*|u255UgQw&Hv+wY=$w!L7Vy@#`R-|d~Wi8)8g$hnUI!^srk1f${}i6xwA&gN3gdCOg%s`95~@KiW}i}%|g zWky&-39VI1pFTzQdos5+MhjA?Tp&j{pg=Uz&V0E%&G#hHc)hsstv!qNcWQA(n|ex{ zLMgMeO1J$gMtH0d-h=|iIH%)_?{BayZo_HLg-3)&mwZ{;frto)wU#44E<^2S)NF%G z($>cotz%aaU>06+4sTMXd=jUt10ySGFCxo3bc^WA;6oLO&t~eOn;IwwqMaq2=6V2g zuaLy2(n7Vzcz}H&vM&|OT}oOW>H+iEaM%4RwV9aoG{6Tf{x>`Hg%-d(zUP=_6sEC* zvpi*3UkARo;Ff0Q`RdeTX=Bsi{_~=>S?dJ7G#ft2*r!0Vb*eNtm!`xjT_NmEr*rQ^ zj5qZKl!wy;0>~pd)rMA8EE^D|2b1)$xZF}s$lM3EVLXYMIqC5eIsE?^A#`lMc2#+O z&g=}5u=y3@Cv&#uIH*Cv!+;*D;*>sD=x-^5k{1;;o=cn7N z0N%_621Z3!Oj10`Br3!EIX%BFA*SpXAY5C6j)FWOXFqlcAtZJ&QKJ|1MxK{hO~Viq z`nc-p8O6p8G;H+6HP^;gEjqFa2-utVJvz_VU-n`Lh3<_$sD!`;>+Ss{ND zBfkksrVyR8IF6eEmCS%?itQBP0J>7Y5+O6_Ml@Af0XdlIr#|*@>xT*nIYvSA$-|b% z+dlkuxsY51F#PO4m3OvL(wi=+-vd-*w(}S=s)eKr`>~}9f_~$EDOB11~byaV*pe@UGSX z`JI7_APQ^v<GkfbE zDKy(tIyDlq^7IE>b}d`_A2~NU$hw|b=oH?6wr2aqk`9yXihz#w6N9`M*~wx~MSoWI zyMV;u&9e=G7moRT+i8w1_2$vH(^`kUOvBA%&Znlg=$V}>Hgh6aTs}kk-Q{tJAXDHo zGG9g`9gx6Xffs6VXD(YLh6 zgjt!V7_3M&X>TAZpGYy|f${Jstoa0bTS_lIIn2YWejbM?TzmV9;G|@ZX=e6X|EqzM zs}n{NuU5^%`^D^H8IQ|FXGL#8?q*RqxAFYWJ{6fV=P&xB-BFh%!9@pqaYbF_!fr^D z8xHT6h2jc^XxU%}9ZMYdz zrrUq}yvE5Wlz1Mz9<(E_f^{%rqHvX?F`E5KRVZuC#7j ztDd(~1j61Ylq9TP%$Xm$INg`yT1Lm~oda+z){|N-ydkb0WCr~5uJTg0Qq{e@qvPZL zd${YV_bopSw!Y8Pp&;Nppnqk1&<0@SY-I?S*zLUVGUQ)O&4s|C;rNmtrFMdrPwfWt zKPi*j=Do50w;x)o%XL}RKEP~J$;VKc0XJkJaWzko*#I3~$31PJoF%17+%6843N zZ8WJ+njU62cRa`h?E-24m;*?7?_U7q?f@sqFlM47`tV+*%9S%{FbF8_!N_QyFAZbC z1KLkFI2!)cKjnJ=3pajMasGJu6q-iT27$gi$X3Lql!2MYzs059IHcF-xf)oLQtNqB z-LKbOa@u%e&L>XmGN3LfeqEzYgWc5uTp@Fs-=A%|=4t2WZw3%hi*ZqG#(?l3&f|lE zMm3(hf%tVtD}K0~b-FvD47=liz-YPw=|3Zw9k9<@rJ(e@&69_B7hkE**MA{)@EjtdSDUNW z5h3Iw@Z7$d{8|bnyqY1=x_pn_#LPb}*T(iS@JEJpVUCKO0!DS^47wualOo`yq*})e zZ3EaZ#~8CJS4EilQ4V8L>PC+8&91>l{=6%0mgnO&xoD*y0Si-$x40F41Dcy-QkCUS zCPx4e%3sEI&cr{hdA+R%4`k=$+r!D3n=*e&>3k!S5W_OS(HW!9rLA^xa;>Z!HY^i` zg*pvgf0FC=%0G8x*ICrsQ3(VOP|aIZ=p1gi9xl$m#M(vBU5e3jsBzVb?ALES{=3sA zkgFh=3Q}%2Qc^^%_z~qn0h|Y^pMQ(*;2af~_BEDkxWsaA1DsH@k(tj%Wh zYbnkywS}usfIGA@ig+wndzcY!KBiD*GHTiHuwadlpi93Yx8Q|xui1YYFy&Y3v-iOo z*4kWSxOMp%#@kknw+`zbx$+a3ab9*OlRpeKx-||+1S;@H=HHZ!d#>%~{Z<`1Oslrc z-Sfd?kUwN%d}3i8ZW@b>3tM=xaC_L|Iro^Tobb8hY*tjB1vwvTz~e{p>R*gybqNgb z)pv@^t82FuurOe`Xd{E*AeGx1uJ=2zY1&hP{q`5+JX}$wZX0Yck1b+y(*iH~ zNoh2HIj@DP7N`IMK$f0`WOFMV%Oo*Ct-g{TJ$A7y|4XDo6PE+RX4bCn@n#|F>Wv*g zRz(e6s=o^_#>h<$jx zA*2iV4FCB`g$Hm1&zH_}1#@!s8tIyRd&L^`2MkkrP2vHUT6V;0t^}K!%E8ZeyNHcz zFpkJDmT#tNzS>K?*aQJo-7-5X5@`-)Dr5%^CJXgBvvigz83)Jn7T#?T{lTS96OQd> zqzpEZm${NF+#+Sudr36yvQ^tvWS}$Wn4RXxRc6vMz4nvOQJDLH+5^~Vxo;3a*@;*C z_ty;<+fxQC*k82kT#+uWx+v(go`5l#JI3n@#PxRGqqJ$;=@^rt>4nl^n6-;k5@hKi z-ZK%jf&gC(tDo+uH>Uo%3C~F>824YXZ@E3-LgeG_XtRq+IoYguQffCb4r<_0u>W&M z2RP%1F`9e^;3oivS4Qm6w#waQLZ|*A3$rI!nx(V!wa+^BU?ja;n%{Q zfZF$J7<=bJDThQ8;z?~EBi;vMS)!$yr(<_#eQM2i9hKiLb+uvpa~<~31wJ>fJS*lf zbW!z0|4q6>V%m5rKDUZCku8RmGe-?U5B4VO<>#ii%9uga5VzBZ}kYFiT zQ3_l=wU=m;LQ<&LBseIRY*jCN*su5S8H+VrIoQ!B&fj_QFZ0iIiLuSh)XT*;(_eVQ z9AOH44J>dLW_=!wR1!;fDV(b1o8rZapXVu-Rkq0*^M--`-@aTMUtP9{4DuU4lu(wW z!LemDms3m=hFI*wTw0Xk6~{irMI9Uz5jD%B{ncu;Pk4oBgzDFC-X+Wyn8D(@X{f2G$+&R7y{~eb zx2)-$(*OOIZ9DwER@5tnzi?F?M3sSG4jYqi8;$oRm*;iA{Z3Qv)6zUUUNYac*@|hf zs`$!)Y)RsygTnEnml?~aIn|6|gDqDQ(Qv%qw&6-FV+%~~ zQO@h5fq93nryh=84P!EjJ~cfzSjuUbQy&k1?-O~8QED{bzrr6PjGkBJ5n}s8t@$kN zeU)pyRX66*ZVtvL3s2XBIupV#!kkkJ$~H}V;JP)! z@aTcnMD}{ZalXF$1sys#!ZRwq154kUp1t&-&=sc{eH2ybCkcs3eAaQYRWX(RQ9Hha z)`eVN4h5;C0-EozT!~aZZS?9EXmJV1#qYpV?L&j(9X*U@3ncuY^ZV6<>BP131eVkD zW@w4X!{kzIraOX0eN(ehpQ)y-SA=(JU&nQ^N_Ye&Ta^0>^3JA8yKlA`Dnoy`X!0u8pO} z{8au)%zS72&*Z*s5}uWjvxfatyQd6)BI{o)1HBlm(W>=nY$TdZT*5M8`T$1^q+$XsBzB?=XK4YEn#$BVBO*BsR@V+J0g?5>lJr{T!4)K%vY%y0$iqN%~DjE@uak7(`Bmt*nh+ncQ*L&#MC%eomn-I5{! zdGY7}O}G>>xtIz1CCQ~S6_Ve85VP{`rrBOHso%sOt#c{0#K`fq00*DPEgSx(Y#IN# z-&tK#R$Q;GK2gGMQ;L9mmqht9)Q`Djrp}${J)Y||DY~taJ@ZC<`bSTl_Vxo^r8@R| z^9=?^7lQ-|7qd{+?jj`l;be7$ChvRH$(G`9J;4BPww0_(uxL}h#5b;%s$EAL@HXS>{Ihe)7 z=b!ucGXCv^@y1h$h^KW4urrynsa-8yjpaN}qTKn1TCfLC%%{)MuKit&S1O=@Vp9GLX){y7B+*tTHxhgY{MiB8XResK_a)Y#;7TboEu1e+n0I}yOt!t zCfP!&-yprTwP!8-UCCu$IVgrGNezpa*kc6ghIsYw%#_e$ytS!rRM)G1gs0mr>(bft z(z)rsFh!<~4Zqm4QkUvqsx1t!->@DEOYp8@E59uXR_aytgC8F@|GE4YU624@70&Lg zn&v-Dz5J|A!xPx}NP)m!Ajde2Ift4M1{jRAUo=lN_1Rb`C%XO+C=t3?VzNpzO;r!K zb$as&&a4s-pWYQBt8R()29sf3F&mDE0LAxHRNHa~ML`K>wU}9G%q27lJ=qF2E!)7} zONn2=vqB9aRig5*0OQ_cA5Zdlm~x*M;=?it;Mb_efl4Pfvfc{afAxAAJH>*wNFerl zeYQAllfSj+?R?X6cp$&n4*Uj%E|YvLkzYN%-8cz&USevT@`= zm6b5`9csE?{~{Ir41V&fLhr3Iz!fYX*yYu?4wMI`l;p>k$hj-}dcZGfuHGgXWt0Y% zaWB%45Ml&Jv5TwBhmv(ja6~rzc?hdJk zg;rT{EC#Ou0E=!yHc8HSGdJb!ytYdu)ED(U`P(Z2-SnGvxAGg9XZLPg9?f{mza09` z#9-EY^P~U_uu)cWyz2BVzl%qw?e7h~C|W9KWGN*UcQ(kDi`X^0Rm)=v(4t#V-));( zasGC?3iJaxKlqJ$u69=jei^6HDYs8sMjys{kK$*}`tNWylRPG2k)C$80yGD`mZC$J ziV$rocP|P!4A%`K=UpYG^7M}_r}{HvQ_;cau?~h>8{a*4i+Gv%|E4;p@wU}Ob(B~9 zsdgN%yg%Lml+gt{r}-a>{iQGNRCq%Zla;ErEc`Us5ASyEUH{3zj{8ygO>CTaT->$Q zPSfAw`|^ePF?n~w(1!RgW^+ctM{T#GN(3c4aQLXQm)+u;c2lG7hujP}tf?pPK25-9 zq1(w)<@plk$G+8agz4kntoCzdT&y(7gY9NipHpdx0B_{eU?nq|z29iRYP{=zsndV4 zUvTJWv+Wz`l8@#pReejG94d9+H{Xuuszk^{x@3j-u|L$tM}A97HxD%HP59)wk=H%< z$@OK*-xT@T2j&#;acI<*5pB<{e)|61YZAqPAmx_|CH;3hEsysVadp9IrzqFGd(E-Z z9YL4Jw`#u^g*Jq^OAy2OOkG%SQ8NmlgO7@%5BIn@h46a7<*QMJhyh?mr9K%+L2GIPPfh`eY6M<}7e!SjLI zv%zpLkquJQ-A>i{lDf_KUX!~KJZcNAs&dQM{@^r;NWtBt-XRN(xqHHjn&H@nl8|0` znr^_s_z!RLhK9NkZTPrG?jMLh%|Ix;)vEzBBn|*0+_uM|6{-;=XZ!wI`T?Ga4T(_sy zS~b!kC(xx4rEe^CZE9$#btoaobzBgeUex=lo2_%Ww7ke5uhl)q&bo-Y{z%7l;C89$ z+|p+~-@Ar5X5%Ag7FzKWe$L%pzMZ`PlZHz=fp2;U#x~%&S<06w1{=0eVTEb)->C#C z7juMx``dxu)9S=qKxP{Axv_Nxe_rMa1=BOpeEP8W?#2w;`JcP|snH{`H)xrwo^p!C zH6J0nH`oZi_S87z@gvvGVv3T9O%pAd6E3Cp`vE6>N~7nUiS8f%y8X+1xWNtSsZX_{ zRY#u;4YDTrKgUT035&dG-`L|1^BD+ARRnwzZR493Hm0d4fN5@HTF_BHp09M>^--ZL zCxptfgt+yoJm7YjUGJP*S<^(T2f2j$R9shcsFWkxe*oy-gLl0*1&vw zAqa8ZUo*Q6=DDs`ANt9$ce+;y@vk~(-^+`JQDeu&|932h!1XB|J!}bR_R~g(I5;DY zn{&nczvh8%jOv^l=O<3|#0g`>9?;zw6AM^HPO(50oZbHfc~7(sC<%gXqWdv{!g@TB zai!}{&TEkL|2E3;$)+5gRSu67*mOh zNLXh6{v0+_+K2`G4%_i%?RZb$vHWX?JHd*($$-bUGCiz%PRlWW%}V@YxAB6i_Ox6r z^x?BP+v5Zwi+d(xcqQ+UG;>6uCu?L>kC;aoa|C$F-f(|z-m0PaGCHuCbwb)-CGfJ7 zw`qq`%};fi=&2pLpCNv5pV*jG^Goe1VQ8U05tRLmQCtvk*CQ?dtHJ`$rNcqudOeyf z&==!k6|Y5!?UG!^u?D$c8%Q)PQ70oVDHwx{Y(}&k?0XmAB95ieh4qU9}1t%V_6B#K<`sF_UCK4-HtedSKVPRr!tyWgW2rt;wsTUo9avK zF0u8m>i_^YgY1X*-xb=i)d5s9fwu}F;_H!8Z{g{bNfd0~y*@Jf9_FA;fB%gy&z7jz z_;B@*g{|cFNu2vSf@(5GK3X{(`u-#M;;fmpfI6tf3-zS>FQ=5^tsoN2f=);i!Adx$ z%{Oe|>^cWUlPr&0*2mND)j|T*bI%pcib)E-RH^_*4C?8Dn$e zh)g?Tn&=oPXHDoyJa`%t##r?ufq0n4n$|d7re(j#5}xO=J7IB)uHq8jk5A~gdKbDj zbV_ddVzVCgqMuUrX^%?aR&gC?ggZ^JfJXaOW*z%M@9%Hl;5}YNJPQ4N0|VdUx_%hX z%CH6Atei3$!?L2_a!+IJ?s*)9K@y-gA-KrM#EjDu64ts*X9 zsL^QkA5ghRF2c z#vL;pZ@#X*nG=8oJIz1Q8ta-#Rq%DPF9ok1HGqicj#P(U6)c1 z3!U5dG!K#A((4V9s3fjhiHuX|BwLi%kinbC+C+!%F-~})z?_~~h}Q4Vj9N(&j4@r^ z5GkyYEXde8FzZwte-j_kP5XiY+?=xkRz|Q%zAV;Ogw$y04!n8sje;?uIYUT#67EWVF}y-}`Qp3R)(B2L zX7=-=@`?=+y{0FOkeOOey$ztN7{;~u6-vtXKAwedfs4Z{hyE&q7W8LyVg(|$JNk2- z`X^F?+Ig;SV*^mYx*wExL8VOAelKxa*kD$NGTN^p(Nas~_gWDY3hr9yM^;^CRWN=C13l z-X$0x)s9VJj}4X%0kx7i2xiYkBsAv^>RL|6GuL8@6`SK7X6HO0K`2Y&t09b5xucAVe#`^$0`RP>K{<4G?tcuyjKn$R#Jv_Lsi@ zt4BkgZ3cQlV=?Y7)M>D(|F_b5ylfr&-G12a%dbKHw~&Um8Ndfa+veDLp%L`rZlyIv zNVMWxck-h@AN>s!*l71B#g

+

grox.io's Multi-Format Elixir Course

+ +
grox.io's Multi-Format Elixir Course + +Learning complex concepts like programming languages is best with multiple formats. Groxio's learning method embraces an interactive mini-book for beginners, video overviews for novices, an online book for presenting higher level concepts, videos with live coding to simulate advanced pair programming through projects meaningful to beginners and experts. + +The Elixir module is a full program with a book with 80 pages, 8 videos, dozens of exercises, and two full test-first projects. Beginners can learn the language, and experts can fill in typical blind spots like writing sigils, building macros, and using streams. + +
+ +

grox.io's Multi-Format OTP Course

+ +grox.io's Multi-Format OTP Course + +The best seller Designing Elixir Systems with OTP teaches OTP from a design perspective by showing a system for breaking projects into layers. This course builds on those layering concepts with a 60 page book, 12 videos, projects, and curated links to go into deeper detail for tricky OTP concepts. + +Understand how back-pressure works, step inside supervision trees, and learn to build your dynamic supervisors. Learn OTP for the first time, or solidify your intuition by building the base concepts by reading a book, watching videos, and working through guided projects using Groxio's blend of media, designed to take you from novice to expert. + +
+ ## Other Resources

Elixir Flashcards

From 132a6ef968c21939ccc7f003f6c122d2adebc6fd Mon Sep 17 00:00:00 2001 From: Mitchell Henke Date: Mon, 22 Jun 2020 15:33:31 -0500 Subject: [PATCH 1184/1761] Update Elixir version in umbrella apps guide (#1409) --- .../mix-otp/dependencies-and-umbrella-projects.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown index 330ca7a35..39a345d82 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown @@ -166,7 +166,7 @@ defmodule KVServer.MixProject do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.7-dev", + elixir: "~> 1.10", start_permanent: Mix.env() == :prod, deps: deps() ] From 33f5eaffdfa1945d79e1ee0b28a99f86129693f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 23 Jun 2020 10:45:48 +0200 Subject: [PATCH 1185/1761] Brex case (#1407) --- ...06-25-growing-with-elixir-at-brex.markdown | 50 ++++++++++++++++++ images/cases/brex.png | Bin 0 -> 171166 bytes 2 files changed, 50 insertions(+) create mode 100644 _posts/2020-06-25-growing-with-elixir-at-brex.markdown create mode 100644 images/cases/brex.png diff --git a/_posts/2020-06-25-growing-with-elixir-at-brex.markdown b/_posts/2020-06-25-growing-with-elixir-at-brex.markdown new file mode 100644 index 000000000..86956dd51 --- /dev/null +++ b/_posts/2020-06-25-growing-with-elixir-at-brex.markdown @@ -0,0 +1,50 @@ +--- +layout: post +title: Growing with Elixir at Brex +author: José Valim +category: Cases +excerpt: A case study of how Elixir is being used at Brex. +--- + +*Welcome to our series of case studies about companies using Elixir in production. We are glad to invite Brex as our first case.* + +[Brex](https://brex.com/) is reimagining financial systems so every growing company can realize their full potential. New customers can get up and running in minutes with corporate credit cards and cash management in a single, strategic account. Launched in June 2018, Brex earned a $1.1 billion valuation with the [announcement of their Series C round](https://techcrunch.com/2018/10/05/how-the-22-year-old-founders-of-brex-built-a-billion-dollar-business-in-less-than-2-years/). By now, Brex is valued at $2.6 billion, with Elixir at the core of their technology stack. Approximately 90% of Brex’s backend codebase is written in Elixir. + +![Brex website](/images/cases/brex.png) + +## Why Elixir? + +Brex aims to build the next generation of B2B financial services without the restrictions of legacy technology. They choose Elixir and the Erlang VM from day one as their primary technologies. + +Thomas Césaré-Herriau, a Lead Engineer at Brex, has recently helped us address the reasons behind this choice: "The reliability and fault tolerance aspects of the Erlang VM are extremely appealing for building financial services. Elixir runs on the same VM, and it provides great onboarding and learning experiences to the platform, which makes Elixir a solid bet for a company like Brex." + +## An evolving architecture + +Brex architecture is made of approximately 40 microservices running on Kubernetes. There is a front-end application, implemented with [Phoenix](https://phoenixframework.org/) and [Absinthe](http://absinthe-graphql.org/), that interacts with those services. + +Synchronous communication is done via gRPC, and Apache Kafka is used for asynchronous messages and broadcasts. However, they did not arrive at this architecture overnight, and they had many learning moments along the way. + +One of their early lessons relates to the applicability of Erlang's RPC infrastructure. Although Erlang does provide RPC out-of-the-box, Erlang's built-in clustering establishes a full mesh cluster. This setup is well suited for running homogenous instances, where all nodes run the same code, but it is a bad fit when building isolated microservices. The Brex team also wanted to plan for a future where they may communicate between services implemented in different languages. These requirements led them to explore more widely adopted RPC mechanisms, eventually settling on gRPC. + +Brex was also one of the early adopters of gRPC in the ecosystem, which meant they had to tread through uncharted waters here and there. Nowadays, they have a well-defined set of guidelines and practices that go hand in hand with how they were able to scale the company and their Elixir teams. + +## Growing the team + +When Thomas joined the team, back in April 2018, there were only three backend engineers in their San Francisco office. Now, two years later, Brex has more than 100 engineers —most of them programming in Elixir— with additional offices in New York, Vancouver, and Salt Lake City. + +
+

Despite the fact that Elixir is a relatively niche language, new hires that never had contact with Elixir before are productive within three weeks

+

– Pedro Franceschi, Brex's co-founder

+
+ +Pedro Franceschi, Brex's co-founder, [wrote about their experience when onboarding new engineers](https://medium.com/brexeng/why-brex-chose-elixir-fe1a4f313195): "Despite the fact that Elixir is a relatively niche language, new hires that never had contact with Elixir before are productive within three weeks. There are a decent amount of books/documentation available on the language that accelerate the ramp-up process." + +Thomas echoed similar tones: "Getting started with Elixir is quick, but mastering Erlang/OTP takes a while." At the same time, he recognizes many frameworks available in the community, and the ones they have built internally, abstract away the concurrency and fault-tolerance concerns, allowing developers to ship reliable services rapidly. + +Such quick growth comes with its challenges. Brex codebase started as an umbrella project, which is an Elixir feature for managing multiple applications in the same repository, but Thomas believes they have outgrown its capabilities. Now they’re slowly breaking their umbrella project into individual Elixir applications. All projects still belong to a single repository (a mono-repo), which has also grown to include other languages. + +## The future ahead + +As Brex grows, they want to make sure Elixir's adoption will scale alongside their team. As Pedro noted back in 2018, "The lack of a type system makes large-scale refactoring harder, and therefore would be a great addition to the Elixir ecosystem." + +With this in mind, Brex decided to join many other companies directly investing in Elixir's future. They hired Eric Meadows-Jönsson, from the Elixir Core Team and [Hex.pm](https://hex.pm) creator, to work on Elixir and increase the amount of static checks done by the compiler. Eric concluded, "The Elixir team has been consistently improving the compiler towards this direction over the years. We introduced cross-reference checking and undefined function warnings back in Elixir v1.3. Since then many other warnings and checks were added. Elixir v1.10 introduced compilation tracers, which allows the community to listen to the compiler and run their own checks. Now we are working towards leveraging existing constructs —such as patterns, guards, and data-constructors— to execute more static checks without requiring explicit developer input." diff --git a/images/cases/brex.png b/images/cases/brex.png new file mode 100644 index 0000000000000000000000000000000000000000..0c1b8a9493d9ceaef55d496013d7bbc822effbfa GIT binary patch literal 171166 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,KqT#cRis%MdascIyThl0FM*SmI(zXSEJw-a* zUQ3uf*Gf*o0=9E(ilbUkZ}G~~oT;9$DbGf4tDnZ2zS^#jTYSs1%==a)cqQ3fniC>jAp!H?VB+PMUv8pfLW=A4njd!9VV+LQX6Hc@6F4mW4D8QsDYY}b4ZeEM2w{Z zP_he2aENv25MQ;Hb#u{4xtPRs( zR8>{js!2(!O`b(H7888YMHdmenfgi7kQPBXZUl*Hb_MDty{xaTD*?OitJmtJF}-P7 z(pi=trVJW$rUr}kN$=yBt9gs`QkpSiiBf)wH2{n#&7PBN2W0_^xsUdO&v8jxO~3bX z@6_{J|0g!L0f6}m(?2Pi5aO9QzA|DVYU-%-nWg{G#(wLTo3FlTxBvPxyWRgW+itpX zZFfdaKR`65wAC470pFN{9EnFFWTEjy78KSy@_{~GNc<%|a~&me@hm+7 zvgX75Bn3&;YCiuV>h8I$UoI!z+h@0m5MN){6JiMEV?jcNDA5|LHRm4HjysQ6L$ z!n~FRIs{f~pwjE7ntIS+Agn|?U^7}KET7=7tuvVp%^_enER@>`ra!DI1I(&93BGEC z04_)LJLLM?P5b1}glP7p-e9%`mDE2_I8H+aD-+0N4po|_hL+-WsI-KsQUTB&(4_3D zr3;tS@*0G$6)-Ap$ocH#iRchOjMiqmK!h&Fmpdnl8IWk~>#Lj^QE3ObaQZNAYf@Ci zDAy`vrtyB3I-3?S8W@d#uG-$zAP=@KiWl}Z>Rduk!vM>P`L61@_5{MV_X9;Smfwk# zyvp>U%ndj7(wBJXPNTrKQT%)4LNRqyyD$gY#9 zYBHHDL1rNt>PDI3lBeUKW0qCgc3y!_)?FuzVHDGcN*qp(oTJhqGjelShrEN-IF?M_ zXAD-`4}2YK5mprvwfkf)ZG-MYDKq`xn1!JMvUucK^eHiCv61Qk5ZX97a0lFJYxL!!Z>lRBE99ux(vxCH(a0Z-9ph(;=^YF>|{sNB7+{|9U(zsG6h z*TPv~Plm z5MM|lWNN@1jMzSez19p8H_eLzfkc(8@#!Z_5Ax24G9U@y(u4HFNZBIk_PM>&jNFKA zGObVum?l{|aXO%ybUo94jj0zPZ`%NUQQcb0)%JpcoovXoeujN-^` zQ?LX)9jtw#v(eV{Em+x&SIW=cd7H6%%gtLLQMC<3UCB_-mCs7)5asmn6naO*|owLMlpR!_l8>@%!%2A6KC|5<;5RXv(PTLqhrq3F~GLIJ8)rE0nJM#g{u0K-LX!}t@FgRzf zjwJ_dpMW}i=#NClu-4x|Ww*sTv>52Q^An@^?r(8$G=@mW8p{&5+l#Dh+4W2w)As z0n$Mp?lL`bSo@Vm{}SUB&UHG3;bRFzN(<=F7N99#Zr&?!CNdL1>ZxG^@rT1G@hMBoGh8w_jzUh&z%jp+Q-G1u5_uiY81EmY-P=g0eHb9kMv%O)$j~S)EG1D@M@`F)I zMTGike3MCJSk}oV#k(+5@j!&BMCT{331f(k&W1>Ea5j@02z?H5z}uktr)}hWtBOjQ z?f4!tQCu6i$gtq7TZ1HD6R%_Tl3pp<|JN>E@K4w}DM_5nFJ780Bg|TkG+@O1W7ws@ zXt7FV7_@U-69bKox?? z*85aAa++v7FyKUIcBP^W?^4Vytu@Wk$uGpWl(y>R58I7k-asIr_78~+p&PLNp`k?@ zK)U8HUmD&=&B^{<$Yp`OjS(A<8B)xyu@lX4apFa&`!xI{8kv#U6n-sVD>Vz{T@Gdq zXP@&n8~P_B2JIO}EI)=_3yhX2@o;ua?OT^=CwV2@2?Y{-2j^MW{gg>FGIT*o1gTPl z9lc#dnSl#Hum?Bo#!g@1xH|K7ZWK&b(79b84w3~7jH^HZIzm{Jb>NqBQdDt)Gf7Z& z=pYiv7}%ZJFB(UBpPm&U7+8~*0?(R?MHX6|f(~QMJ!nJSWE(@DgJlu!|mLhIb_tCCAdJcf0I)%k`=;S&+f<=7LU}0 zyojg@TJ`dBekai$-uO3V5jx4%9ql6w9m5z#Fxt~@Xs0c5D+OH7zLW`K+@f9hN+E! z>$yTeMnN+mGA73L)N`C&UWQZE#VRkQMp5ysHN0oic*abp0`0Ev7^CFSukygP;dDbg zV&COf!%suhzimgK&lWja5zoD~a?Vo6EOvC;*15${raMC&HxDL)q+WmfvAA$I%nTcf zQp6?#Y?@O-%)PSNDCTm46tA#ry}34!<`6qBze1=^c`yQ%Ks00@Zck3SMJ5m>^&J?K zBN83M7)CH^)>!w~rc6G|6=nIwn9i{H)KGd(@k?Jn33J@2uw82IYpLOO^r)otm+L8~ zovjM*U&AzP;oStk4y`C`>4HQNFdQIEx;TZB;nZL${`ReE7;B4}N-j$wq&j-?sTcQ3 zGg(@7eWiHh$|F=tae-~`PCe^Zs-iwO91^VtT%?56f6Q4Rwa%vBeYcXpZ`U*^Z|Q!$G3hrF$5PShsw%0|<#ASV2ZIz_3{c;Tjl zMhev?124pZ@@c$)u%If`3##rwyNwuh3}YC-q5Q{aKjMQj-6H?&Ss`I z>OdwS-G&`L#6<(e0B2C8wxrKxXTx+U6mq_zsL?7+f>4;!m)kYMP8+d_%!HmxJOeWb z8)el#{d|=};rK-6yL{vMz*lo<)PHM98VcFCDsl-{dhj9{dJbjSYp=b~pIqv)v7^KS zgW49_6J|tFs`e&gNr~yn6KKyztB2!Z3@bINc+p3lDo{GQ)K3z{`D>$+9=+{d6OYcL zc`}AEj9}F4GZ3vZhNu-5Ioe){+aR^`>$+^d8`W!r3F{xelg|N^3BOt}`t%@-E-6W$ zliay<)ovU8(4D0Si>pwL2O)(GdnT!cbD65sYTol|Xs3pB%UjJW3tRBZ#!QG@&ES-#}Ad1BpgN$ZUu| zPG8wc#H*K-f}02x0XGAQiZ~t`CDV2+C5$0RwAAv14Z1#M@T|L!r*`$`zC|9b`_*4L zN@^R*%dre#RHp=$OIma(tXaytp z?NWPLPrCDOR}w3cgqcdK5;xZ7wU6#&U=x1@uYK)noohfW$n-%v8wlrr#;vTcwAM~P z{q)N(znq7x5s9|tzeTsBMVJ2O&K#eUKMnMB15vQbY&Yrr68Vbve@Chf3%Vdhd-Ps) zz);6#Zo1&@=s9JH3w`>!o4@*Iw_BaXZt&yBa$HEBt`CPb_uSHWm4xXY5jJ|mMg&dk zy3e?ke;O)GCN2nR+M~LDYWLLq%xI%fV02KxJ|c;tuf*HZ&;Gjt8HV3%brlEa2KS{6 z!V3(=H3wrlK#M7E9RR~Zf>kd)Gnq#uDzuwAKFR9<)wwkz8@}S(JwC){CLFo=(7x{L zrfsIPfnECFB9SJPFErX{c9(74Auu`yZ$~`Vbw-G}rL1+!fq(fwA*&Iot2*aY)j&;R z;?i!}dP@*JZwILEI?ifi0sWp9kn+TRp($vROs#8cNvcTwRO?`=1!`~+q1@FKYvXJ6 zRPM4lz(6}g#MJe?J}04n8n8NRW+MyrYvPlN(vm-hhWNCf|x#h zRl0xBFox>s>fjBeMP8H3f>p}PVCStV7)&tK#ehz(6ETBmxUw2UHCIl!X>`g)Il-vo z+-jGyLH5{dg-(4|;;eQ`a{rbYHCXtcVvNNwOT7Fs3y#N=V#n)r6@XRBpZ@8env_^y zQ6(a!u_dOw9u-)>65!Y>Q)Ktj7B9#Qyb6-uX7@b%c`jv1j9g%ahU9PEvx@6{%TTb=^EbW4X zHn%>mR^ltopk-WWpvoV|>Ks<2ZF5qZpA1oX3f8CDlPBfW7Aw-Tj*)s=Ql1P^*Ba-_ zj5iEHkLcn_kLfaaN7Ri+4qwF;vZ$CogQE`r9IYL9&Pgo`p0nB@ayCjsW%S1jy~RK< z`y_}_}$&5+}$+Zc=auQoA&eHHYJmUQZM+E&wP zQcWkPV`Vh8v8|h=7?zsd*SsSliV|^c+)(Bf&}-7A=sS1ODN>}%=5p8Si=`Pb6=%D$ zgMMg5{&n#=SC&luA2!zt>-r$G{R+*0uEAVkbQ6~OBGkfkk1Tx$B_uMCf8T~fhQ{S> zJld#pcjyk_jjO*vzerH9R6OnB!?)?I$-8Z2Mtf{*%&`_`%nclg-~ov&=jb=U2;z}0 zPtHfR+=7y*rnoeA6%q~-iW-b`CrBxlzB@b=OD`Y^O{LhJs4THgjkaKma9wA;haSAG zN?@ibkNBoRq5+7UFn~=t?wIEum1q;}Tq z;ZQM`8cLhPi^gY8^YPUPcZtGbO2g9DD_R!7rK^zK?v>q_mdDP@shgl!mq*(b5expR zoBnN6)Vs~+<$hkXE^_bWZ=&_DU@$N)wpZw60&%nx(6Gq(ZlPXb!^#P_Xw3Z7N@+{95_1rOs#zl@? zf(t`BP^>nMn+A+Vt3ksC%8Lgwdi-QaB+_J=!58h2gJIL!X=;n zyQ}OO{3^4JMD8VB!zwu(M-*CIWyfV#AU)7uUj%^WYkF-t*7OQmFU`DB#u`Ymqt@uj zv--C4V;HpYOI37kXZwk-(r{|04}agqW&MquZIj_!InheZM9jc`3gY-LF6M zGe6@q#{md(LIy6hgy)Pa8I+*R%>+gRA3dz2Nu0>_^FROdj+WKJAgQnM->2E-!NWOY z&nM`UX3-i@j>gv}vca9&O-_w3Xi13Euc24{l#{)r>nSOMY;|bgW(^v|Q)^O8B>bll zj4SPCIB9l`Y0$!m+EcRxzRM%O)|TRH_CFb)8PaLV`qfwI8dI0K&|O?>Wl?gJP~AEm zr+in*=_)CCHC!U-DadtxF@49_P1uM$T-)+@_4hrs3sK>oOLB6y&oS>~W3)YIJ?)f+ zhnfLowF?P(H#c!x_7k3vj4MGA0=PJZkA zbffgZIx3D3f?z~^=9PhmI_qFEh`2;bs8e4p%w-E=wYK&vK>(6!vJLl{ua)9Lk(~IS z5;h;!2j#;Sr=3BZJSi9&evV~oXf{wrYjhexqs7YsR0L*;2oR6Y94aeP4O>^$T{iIy z@3}G*b9!09?pTRw6Dh{$Oyd)IfWjg_GN%;tndky|#8r*p!|MCfm6hIXbnK60ZU?o4OiyX1ncz zK5;wkBeXL##$F9nq0hZKXQzonsExZ|wR4L_4VX$sypCGH4QJO4vxZHhUZ(vgb!Fxg zj@Pw5J79NN1YvHm#0GD0w@I9@dhHu+j)Q}ty8#En2g+H^!`u~>GsHKX zC}Uwoj`_vq{Z(lf7r{%P8L7|K(J7Mk>9)0e(YX`W^fPejo@R`c9OycR9rPOJYcCg@ z^M++@w#U$D+jjqM%F)~N(UPr^(&t{V+2F^4x>@J&&-H5M_<{T7U;gDUeBlc|zc>-D zzWQpmkWkvp`fnNuVETLVl!eB?;#%yppZ#n#)c<#D&~)NCtf=ARaMLqqLpZKlk-8}% z`;D?{+(o=Dtlnb|Z|b*J|F-1642^jyGJm!U9z&+qlGK+5UOt6N^jV?uh*zHNeHE#Y z^yypF*V$L~?!^&?PB&wxc`H)+6WXV_uCftcBHd@4-7?*g)*kc1?3P?o*rNwtUWvm$ zbKn)X8qa*@GiPRSd^y!-Yw$G2A85zCUT&V^E1_{vY&i2Pue|cS^Uj-D2ye73;FQy! zoNHrWpBt5O8{n*74YG)GaC@uTXDb}%COOe$W04jsK9}Z*9e)F5$LUCQBoUBS;`N~(~zsZWuYomj0T+3b5*T4RC zzQLIoLqd1I``vvKSSk6Dk9?#>EoM)0@;8oNVcPtVhde~BTouQe0$)+_3aPs{F8yD? zs3xvXd=l{s+uN^-PXpO}3QlI?SN}l|dJsQEzB;_%`s=S(@*^Jc2-f|4OKD_IwI21T zN9k@otDCq}kijLf-!JE;dcg>>OVJT2f7M1W=k}Lgdg;CHbuYt}NxNbE)vtclfHAb# zwuhkzA}3+~{`bFs?|a|dK;pjMAoutlSvCm4&{fp^?sq>UtxhI$6qXinBZHjdCyrpR zyY4#e<6f=}*d0(zuk=;(Evhow&Or`>h~P*7j$ZTA&;mZ$){D96C};E$*5pMp@o6O| zdI=(qWN;k9vZREnG`!5TJ0C5#ZsME6);r_Bs2Y)tPE-%k!X;YW6adQqeV%u#qoW&h zc*!VtS-@IH1ij}y@1fmv!wollu}x&te(fBoyNGF~f9BpcIU^v7c!^O&4e zdHnImTZ~UW`Q&eZ``hvew4omQ(1!vyIXBL%`@$E#@UqJ;b0fk%1;VcYkQM#RGtY#O zfYCR+;SD+J2ImAnz2X(Gkon#3e)oqz{9!e8qz#YmfRwf0-Al=8V+F_?W)kA!qvA>T znRr4ypf*W{G^R)h&Io@5k)#XNGA{Y#CqH@m>8DG4@rz%a6D(i%y4T^bwDa5F{&s!$ z{`bFMQ@iBVuYNV81&N+>&N+&5yp!H91x0a7Cu|3zaV#(YN(pd+F99KfP^VIzfByL% z#3P(^(n$ub!F<657nA{Xd_=zMUGIWWCCYH@vByHL0H~qvxjyiL54eO^GC1By^OzaH zT1QxX<&;y9T*fU>TXV~>I-_b|LWEU2l&HqH_}sRx71WbzEJ5jaSGq5RvsYFEP()m$40TenB)VrMbM$lk{qn7O?h87jDwfB+FG z{hK$5o5mO!Sh@DvYYCKI_Oh29a>yYX1lf7U8D|`P@WB>iaL~l-{o)t%@sEGJEj_G* zTSAe7u&^T;6ojfMYx&1M_AytLQyXN`MHgL^b8+_CYp;Fx-IsGmFch&09{NM*$ z=A#(k6Cil`%U{0Ve*0PSk2>loYrpslUho3csd9MP+;C$0EL*^|_5{JTE%YOfR1(K4 zgGX>);t(X{CmyM+mI0?e^O?_hWKi_ z>5pTjh_rT1qVSP7WTvpVFst$8IEv!uy^uZ4yre8BaI7k=6fEeEN88-$%puq3?(H!- zvv4VWj&I0fCPd&hsM2%0-y6RUz2Ftb8ej+wrE1)^mgpMSlh3Cs)6&T`dys@~*n0CV zGaNUT(_*mTSAX?aO%9-y#jMos>%LKiDz}1FvA~5D(c@}ZcJ}mwNi6&3H^2EE?|26+ z=#e23Dq((o?|a{CwI*S&Ck303PuL@iF+eHhYhU{s!%*BOkcvYBtw7cCpy{eoAvOJi zw(!=6KJ+2NdUrYc=%Z0nZV}Nxyal2m^TbWv7JFYo0TdJ!0>Glwv^E^^{H8a(iB5ts z2G)Q?mt1m5j;+#eXP)O~>*?9i&5SZb}}Vvz>Irr$7B^n+n4q zzV`vvoP96RC*eNWmjgCetfWC@77`$63 zaVTcA?3Omr?zY0FH~9?aXdpucN=WA=+Wu&08pe z43AAFfA6nCGq(iOc-`L(jqxrZMclGR&nZRB6+~+=LX0Vb0TYv&-rZu}(*^DUg zh-w|c>TAhH{fgDIEUk!6NUEyxbDIx(7E3sZyv6nM%P%MQ^eSQRU>%8e^=4ELZke z9t>RIM^63(!J$cA01|0o%?qSz7ID}Sjs!ZjDnc4+hq`o}HiR0XF%__LfXsa5TLu~f zf~B|+5e^3{#L7s;0)b6lf8vQJDvh>=N+J$5xE{2C>Rdw|L9Px`a-PWQtT^g}%lxHZ z`Xv>%7t(H?_qgMZ)6P$R@{z*|=mqMcF=f+T1Wc|-LT|YW} z{a@|jjj@Uujm!I<#m%(6g?@+~pY)_B!Cv>g=RKeQ{O4QdE!!3wb4!^#f?SXUaUPgu zbIU@);%%{qP>sF4_ukuDwZ3a}4m^YyRE*(8tzSE2|Dh?~`ObHWSdxG2$A1hb1R;@< zzwdqTBjknGEyI8jFbelPXIrX@B(v4VJxxr+)7I_JW(Q`1o$?FOFrMT*v zYp#ijlCCs{HLT{9j`g&8K=py7m~SUrR^@F`06Q;&mIroSrTo?Df>^{eaWk$UPJELA z>0Pj8dd4%J!Ds}IH_UuOtI%giWqToSx_zcilt!@m@o09W+8^|HxTw=v8RywkWiNy= zMS>c)hPoDW7n>+7>@mk2W8CKTA4E)F(wUV4nsaoLF!#|KLR-*3#8nM=-64GokCxZ1 zFHKfe*J#t+eh4H21mD;Pc5#&sunfUe!6gq_r zr(KXf3PDvCsRQ{nYlH7@W3C6zs|qwaZs=+xy^nf&BhQTd72j6;=vE(1<9P{5*J5l9 zMp;=?RbGY38GFwdYZ_HvPeepZUP-+E`+x8U#~y#&kNl4xx#OMh^r=sMio#sH_A)32 z86W-VM|)VL<`G96VdVy25OQvZa8eDJMo=ykOUkcJEa%uJ$l%aJ56z@a$22O5mU&A% zehvL^dffOIq92>TMc8qv}I!km9HsXyk^VEc-g88<>ovY zvfh=2d!=U%tavVzlb~OdB0+I}z@@$*Vzz^lfifj9deA`!F$qUMqxS$W=r$(5AgnG( zr)Nf$IXsRO=_}O*X*3+O;Q@A&o*QpQqakEKdK?2%<)O)^KmF+jop51&IlHoSDG}Zl)%Ol!$b9^q9M} zM((a*CmB`^D=gx8A?P-SlPS3pGXaUujY=~fO2Sx)N>0eHb6ApPdMXT*(o*fJ?a(t( zq=%&{x?ZXX5_ht2p#AHHS+nPm-jswss-x{<*LbP4%FYNtC;JZyb5+xDzXrY!)YL6&i`2nY*lS>!qq#H+3UmRXwP&pK}1y;}126Jv@a%k9O0| zKX~HfpHM#`#)vzSWFQNVtwQ)YM66KRtooS>Bzh$YMvyZUHG`L%Wop)zfP1)=>? z8q=s?EDb9pk92ft_M96RiPjw3ju)EjrZnUEI(<@)or6#-6o@GlGPW7Or&i-fQMJBK zN>($+mM_>9oIQ{c1`MMsG<&iyF&bB??We*Yp%gf?fik8lTX!Lshaah#|RGIVB zQ=j_ON{ktw5YS)fe92(6a8L1VE7I0Ne^Y?ihng;JluaUOefUX3+jpix`#fC`;mq^^ zj`oGgFw-ooZG@4TR3%AvQhyLFk}^+`jYz;>1Q|22b$My-2^|{Xsf52WsD``SO={bu zs1M+atIv`U)VQNI<3YDx6+1Z{=jrm)y3&TvgU7{&kU3~a3y+pJ20{=?BcpbFW<#8} zv?T~RTPrai{~5Q_=8opid*m;gyoz# znott@injaL3VQPoW*U!MjIp7#=&&6I5)mHhu(4FW@v{&R&ynbPO^h@@c^OIfWUKwp zx^qQAb*V5Em|3XL+7d7-QiwCN*+1Q=1$Mvj2RFqZL0VEf6x^(R{vub=m>4WcQS+` zqT9smi`0e%9KHKwuOLrBS{aLC zkPB@@f?0(iEr<;bZZ;20nF*WX#E!}l4|YTh>@=ktWH-jRGl^HvYxun9JcRC(~_A+qMB*cMIXIXxz-mUl~^`a?JplF7+RrD+1YdV zJqqX7v|rMjdI9?wZcaO;Q9@^|CPTh%kKG?J=zK(Mx~y7$QqbCgQ+mJhZ@ANjBPk6a zN&RcYRSp33ClNN3U*#i_}`eRwRPNpQI%llHGMg_Lr-52 zXEgWR=ROx)Xq={?GY|k&d1h9o)G=qG1nRx4)n;DERC9aWTM!|Ad7+a5ei9~AsCoqa z#muv_V5tNhypn-na%*43bag^*HJGcDahum z4`&J3F`J;oGcy}RE>PqWw~=5mz=>MizqQK`N<&)`MAGh>&HzdZlO0M}N%O|q9DAUd z1zM_Uf>Q|7T%8Ook%dWsPEZ0vQ@aU3U;4XH$FkK7J4YeY@lJ}*71^5ZD7f6T>o+yf z-Z}jlx(y>-)1bXmxSyF)$RhTHMo}x`O=Y=GDk@SVYWk<11&XYT|BaC%?f*3?n?n(z zJ8kwGX>(*73XIlS`|B0jhk4GllF5dK_!vH*dQ3gs#{ED2r~ecWVF`731NKX1{^SHO zg?hN@xPeCzT|gNAOlc8G=LD^GE2T3f>#D!wI@yyB*mZ* zhgq3O(q%}^)3y;$)3T@9|JJv@6_eV)qva!p^#gw;9!DXbn$$bQr;t2CbOY=(Fs1@m zYBn2mVj?MMAW;^Db{&8$B<)!gUh1c*bArMZ#m+#$k9q|9G#F9;q z-sZNAom-c=-|VPp=!5#kForSA4@Qdu5eC#29l%1udW-^$5ggVN5=9m=4uw2s0$j)} zkPD!M{P36DA6U+(nb(BmN0A~sbG!Z;60TA!bA3U>P?*ypNK1W4!Jr(%-*(AC$v}?- z%>;IBWW)+Dh+NMLFsTCsRuEadp%fuMcfpCnmpOkKBt7e_vmnv5?aVzx8l07bV=z1d zinQTP@M*^~RRnhrg z)rM2BUf^l?Fnu(C|Ho--bq{waSG8n++xh+{OC=QFxwg$8NxfDoiSpLO%Yn4)cCo+l z+rMqQ)n-#RU#MgIi!>D*!x+Y}n&F33Qi4P`))p{Ie)K^(H2_d3gF;IIe~3W*C?c~I z$jY<`x&jpV(Ll>Vaxr0<8LC0%a5EG-vwh}MfDR6isb-GcfQQQB8zT!h6QXhY<4I2B!fr?u zpv2UsSeK{4rGTdbQWm7E!aXk-%AJbJaObOfIT&W9>bji?BuX)ql55#`;ZwDw8X}BE zayC^xEWjG#nI=Fv^~lJPjV?iusAptBoC4|6sibbwI|?)otMAaLNaASMJ@JW8OjVbt zDr$r;Z__w?WNt(%tGa9*-S6+jlj%ED=$b#tm9YD6bdCP;36Fie>24Q1b3XP-=@G4x zzcGwqb;HPv)`ot=+3UqME`3k|vVr9Ag(xn-g1L8@l7R@UktRjbJmfLukr^}kjc0>cgk!qjW zt(4^YX}WonVQl2h1xB-4Z#Y`CY928w4ligXGFeVs(NS;)18QG+2=ZtF6FHep&ZvZv zbo0Vh?&5da$)bV9Fr~8}a=c!hCjktR@~ahK6kMpDJTT*Nb1iNU@x}=)#6yA{%labo z<~~Neek%VjDnnkcWTAuPLi@RU-LzB@80ORL#3PnTL>ZX@a8x>{a{6in~fBw9cJJT^iTZa0^mN>hgA`01wcu_i!mV{`*I2PHf6rQ5dNL}5QbL0@n zbXxdP2o*Xn#>S{i6)l}w4ODeoEe#cQwIw%CPU|cb6&lRl$0HK0y3CMj?TELoC5{pt zLRE1e;Drr4wMZL|O09RGCVEAv}S$ z6rXFjDBz3Yx&h+=G~^5rODY>vIh~*%ry1&35Ch}^>Q{s?#<@elG#HEmXdoK(1_Gsl zoCpquJGRb<%ml$waHVLUaa{t5QcsXxUNdqnS8@opBYD=3#8Fz`(mBd#cx5mUd3yoJ z%o*TCtKv3JR!EXnainOpl}&pg^6h62A?XbK0YPClwz2D?{i_32zPl z=D*(X31{%!1+xLTw~!ySs?S!CuVsuVTk z?qhvY;w-8|hLf9oNt1|y2WApv=ffa@_UbSq0J4y^(6PjB#Cu7uax5E!1KLjjE2kw& zIo^pkBL=Ef z>+>@Q*s88_82dcFPPvB=o%h>$dikYWjR+93OocZy)i+Ydwr_ zb6>wbv(FmYXDvv})zz1c;PasJk3xO~JAD|hu!(geBG6$_OKnLg` zm_^N4;!&YJnNc=pIg-|1jyTHkBR6d{)c7iaL80_8Cxw2K-;%;0h&UWMpVT^arzV3i zaV^3a0G}j=V+hp)#oz^j%OFvPF49(NN_N1n($NNQm+{DCL zG~#=o%kvh;?l0Q>6*hNKeri{|urro!H1DRBPnz8L@B?4GI?Z0tIP$~T|K0S~3u*3> z#@_ElPj~8`od5gJ{PExLci*rV52jNt%kRBy?2}F7l_QosZN1n$#-rhC&Xzn7#cNN+ zmJ8!YpN+Mr#|Q7&%TL9tPuZ$dt!|hnH;;i2)3VJrd3xUU^?Kjel6A$x#rdh7HhZys z)SJKkFWry)S{&J#`#$o`=f=Bl+S_l0cjc#kkY>(L>&~#SiPG6%RPd#9vpXae@Tl3-NRSA80OEwZYPOComX3Ty9D7g^ul%u}|F9ZKpbT6ftfcZS$!$d> z9QtAu^r~;p;Va0(_C()L$ICnfe+d$W+rtDC&;}+e7YPsk8b!o5K$8euoLThpoFJIj=0kvI1!b1g zt*y@KF**7OKud^kkgLot=~*IGvVKrCX?DTBMSv|d#WGhQ6a%Ip*a^T5gRMm}(We59 zAshmuf*spW+g*|}BOgg-RCAlPPE9$M+IdR*(4_2t;*>}yDvj169kEsV5ILwZ|9J>T zsoM0>wDn;%Fzv`ttK8;%zgo^UM_5bmpX*#u5ahM*BZU%yV0ik+b`zc4{Yrjw&^^7{*dkbUe`r8=iOh+U-@@~ z_CyXsJijlNZ@1vDgGD=0Ql}gHyL(}(z-L0D z3c%z?i!|4$-~k6H>p?Rph09Tcet5^@`2^}Jm}V@?Q2Yc_i;W`zFMsame(noj_yT6H zGTh`5ua+_=7@B%V1Zv^-+PBtH_S9ef)n5e#f<#L+O+?BlFoK{l8h}J;c?_7~L^RX1 zN_mC3r_L8**H_Bp$B}|)HH2WI;Fq8zBPtm*u$6^}29g#Y^}4j`&6lyxcqy=I3)pHLZ2;~r&a_~sGqgl@pAlDmw@CJ!8~ew7-OOPw7pz}Rxr zNhQL*JOX7tRFeI=dvSjpV?VDVo)*PZl{RdP@BO8(+3rkn>I|E|z}|l&oqoA5SmTQ} zc+X5FW6SEt@{iH=bc1e-JP1w^t6^?3Ly@sua17N!@AX z20QZY=>5o2@^PuQFwp1J>AqmS9sF_E#?w%;$NYtke3Dh$E>2VC#=JE?d#NwkY;JkV zw3t36p4}IbZRt9H?^R#6(NOEZ`${~!$KHB1%~@tvTX&B&KDOyIeeQBQ@XcU3F@Z%p zxd^y)s%0$87%c@)nQStk~jd zj!qnMl(awuZ$c@La|~0RI#}fNquCxW2U`1YLHI(s;3z@M&?HYeXUto%l9VxSX;6|4 zmVv~e01B1ewDiNVh-D;GD=#W2#%Y5^N#0c$f|nezlQ1Wh;bsZr$`%V+dMM6DOo;}> z7G)pUTE@bp7_iF@vn9$3cwolYM|OTGP|r#Ptud0C=t@X`kR~O!#wqIhim)QE#(q(t0D<7=3pHDWbm@=(8`$nI?wmSQI zKj%6>|7Ksl!B?*LQ!lk;o6=b~_&GOKThDZul9SIy34#PRY9j9<6=* zIey%_v}{ zpc&Z?4%pD-sg-R^id<3vNx)6Ku+f79h>QM9*^+=< zpd1SAF-9aDDaNl@I&!egc3AzRU}F1kL57fsz=*@M{iO zo#@$ly|F?#o@1}F=hIl;`US_!*pzOWL$OSy84PH-FjTLAslZ3(2{Q_IRPF;@qiBq8 zKFC$J5XX?9%Dp6Xi!|g!RT8d3U~~F-#s1-7;UhV*Fc%@j0sD=?(x&T@5N-QmO2-~_ zjtym~#_flBqFFmboX~7ryXv=YWAdbDW7+(t>A&z{nL+=gRSPpW>oev@l6X59=uea`o;96IMHIeGDKuNZb@Xh7 z$|Bh#U=$~Mo~p%9S!!RP!x-n~7oH>Q4`7r7QK+eMF2JLJC!XCrxS8$04HoKg^uePD zx=#MEntwAGEnZOVAQ*AX;3{U=B9kvTX@ohNg+U=)1t^vMh?JXsJ{EnDY~YTp@actGm>HDge3(P5j?ODUniA#ffs&M;8n;fXCf&rT!HUyi}Mk*jE0~^~?Kzpkqc@FfOC(E^PqqE~~F^Gy( zJUQFCVFgP!vLwuJ*$i_sJS@h$L8H4_&L-*y=}AOh4}Pqh+qosw`erS}TbEUa>#y#3 z@lKSkpRjiao|jcy9KiK}Uhn^z`3oXHDCGqzDkKC-Aw&rziVBFL$`dq(0gQRf48Y9% zF+G6yF<+MLYNiomZt&3ypk&E31aWMg{^ z$KjvWcST^C8`0H^8j!D+0b_Q`Sw3U+w<`46tAPtS>JmcDBW55`+>9@xNK84UqNREa zFg^Oy4bt@!mL6iG!ksPUTyX%54h^F^aXc0+Dl7&)PoOffC~zZGlNK19qS(S}fEtca zJ}8`^vu9w)cmdblVuyNZ*{4o4U1w?M-6Yw=#3j#U+(tdvpr_X@@gh9=CMz!j!0PQt zK;OKNv4H_e>3^J_zvl{?0&@DDqdnO=D?M=F@L(>Bw6n8nb*CVk3%mRo$xP4U5_u0v|n!=7qLIvT}t{k?tR%n`m-ap?!z->F<%d) z=hHk>(cI$3mu0a1@w#iFXM7)X`rZisk_^wL_4AYoM)&hSIE|pn=#Nl|EDrg|kKYr` zi(b3mAAgsa&u+id78tF>(<;2Wy27ZzE;3R|fSyqBTE!}hWn@e9Q04n1h&f6V4T+Rs5(R zrUt80j7ECJ{eqFIFL&)+um2rXK7NMRU*a6*jrEVZjSY?2(4GxQbX>C1B(AT2JG`rO zAuZ5v83A~-E!Hyy`ytUw_I#K!WrER5mVC3JF`xuo6AgYq^g0xZ>(Qe}Nfgu`ilToE zMk`BX;th?N&O({%`5SEmmE;6^?X}l5Qr0Mmd;|(evQv};2&GJse~=R&^RK`Dnr$NP z4R3np3t3cRY;zMpfRsx<9x*+?{uW{ZOm)r%v_k7I@F*xRK>();wr--(v*v^mQvg&& zscKABs6Uy6K7Ra|NwEn3ab;WJQ4B70d*j9p8L&7GL!}H)Q-Jt_eINE%Mp(+%0i^(t7jSP_6Nsv^R236rvmZpHIF|zXzIod`DSIlT0 z{S_Z5i^qBAPp_RnE(d*XaC@}TQEgo#w@-;ZXnXeH`J{5uuW^gXEgbB|L}{ol8uwM7 zPO0xJ8%IRxsFZs013p|m$$@fdj!hsDDvlqFI;rpZ z*C*3@+a!1>q@8om(2l3ncEBhS7Z@!yJ=_L%gK<2!xZK7K;!t8zl2F?%^bC4a`C^Qs z8p>^_UOadv^{q%scy zRx`W(fCB4GdfTe1C^saf!YxfDRGwdIT=Dar!aA@{NlFq|`SHgeRmie)CI10@1foHo zut=NyGchJL11bf2WZu7Z>z2x?@5@{gum-_Fy$&>=i^RJh4=UPAnjQa!vX}Vw+izJ} z7>nT1x{*TpVVYrXYXcl=AAo7mpYXZ`1Lt3ZsBro-Ja<5(J`~Fd0v3Y_LPch$!(BZw zr^@Rkp}$>M2r7-F`VV-upOl-h$cxnXY(w9A>#ejlqm!m0w#P9?TT@Z8aLL-j(j5Z# z7Z-(e`;GUIGN(PiZ_RGpgj2DHDutnYepz$L%0E z`E_`sqdWzSq$&+is0^8Yxv&U#-)m;m80;g)v8CKXngSW|3~i%M0z<4+`BsC5RKRUI zB^HNt>y;vCe2;~k@Pgc2)X7K`;!MWNXyI)n@n$k1z5e>^z^EGx7sWWK9(QfjgvI{lmtWp}_g#P$;>@+`LW!3I4*vSW*o}oO|N6s4;qGYE+;mt2`}8Mph~AW&9YI8}fD=#{v0zKIS(XcAAJzZIp?XRO@zKe7AG0 z?w<6WQ|(X0`=ne~suFS^zB_pnj}NTTwx{>6-yUGA4@+N#?Y;mcIwf=als&n&XI?N* zZ+gGmLx&91j)M<5{u1U8eUr9Sz(`agC>fQm_>>PGJP<-sVVE_vXyMe*S7=U| zS_ltD>D@cvC-ugMWjm|ThV*4&ZnZ`xvcmd>%PN~0PQ<(mfPd}} zzdjt389k|w=XP=erV;&-As}I!$Z-T#pn{hu8R@k!70oZeC#Vo(Q|jXi9bYj@AUxrI zV(%E3Quqm?MUP?2$f7aHqGSdS(KV2SgXVfg>7Ovs+WeoV!mbf%CpHko6H*OYx_9p$ zbmc_xM+M_Y&QmISylnfxC=^(RmC<4w9Ym&kM?JbD9ipFc*c9&4VJEsL15-Nz zJ{g-hby-4`@;yTn0@a!%1_1g~VZhX1zxY&^6?o;0zC)ru<#VfWIA$iu*-#)AYUIy9 z{~UjLV`K$ly!^Eep_JDooO&RsapzwjH>L{g4}xdGFkYEhU}Vy{=8NF%NcS>>{%lv` zHy%ly!;bwskce53d;ZOz9`ZyOjrM?)(#Z>$$PZ;_;@milI#eZVg*N4yVWv^=zL1kyRX(KH ziI#G|ARspvNHOM#kRr4}z0P(M%v#{rUTU&-E_Huy&^FOju=u}Er3z~*W}>!(ZxUP7 z1~+Z6JMG`X9v#irjHjwdFkixd(zYWSSvx@0`XRk-+29a%S+di<9(@Jn$77uzl1nqX z&~*|cwVHa{w{PEO$zZ8qfKpiJaAuEd5m^K}FtWb287zYc7E3+gEFaEvvIhybYGIJD zP?`;Est`Wz2dE+*6)%On*ZdVsSKDpS$x57c&QWEY@dFio8xxM|7yFrtG) zwOQKI|^a`t9<_x;t_1)DobwJB4ktimq)s`5L?vR+DC1WK9{Awpk$8dXbqBo?G- zX0%}j1XAh23#%oUokM6*Nq6vDZG`hhQu6oTe?QDtA2$S+GT{aaW5SXm(nM_THeW}B zJP0U5{`lh$8fOF^coY?_xm&BWT>CY$O{D2YD%UwtMgzcQF@|DYI_RbG${|vP`;l54 z8boU!k5_v2rI%hxWB`zniafR9RE(W_bYJCiVPt9Tjg%YLGu0dEnd*vC(DN~R@4ff3 zCzbF_0vuCG8TbN!8B=?bA3sPm_7BWV4WDg;Vrk)TV6Mg_(!L5cTZO*I?Eq<{J&e3g%>GqI1+p!tVy9#Qqac265Wa}G< z8LKrjs>Qr1&a=t}hB_!Ji-!*%$`Ck#xl-~O7W!BC-{z)DyIg9U%Ug@^2{DVx9@r8GEvRut=}&!VpIBHEF3KD>5B+4L9sH1$KGfVGJ` z1RjDxOHw$TYi>c|G=}{m#1kj;} zUA$uY%C;f%#Yz$;_gIPJgIw*eHs}pBj4z*^9Po9rG68uRFQAj=of8|RtA;S*;3Muc zfD+0C`zr6h>!y(&2~g7W!|IofL~cRN%K!A!Po4o(5HMls8k=DAXvkX(Ytd&J_ zf}3)igJl^N^u1jKd^qwGpqwdd;QpBpM6jq79o*Hqgvz zycb^BytYrCJnwz8; zRe6^NscnRBcAG$UmG4KY%&S9iCVeGJ5=Y{4hXyf0-BHe%QGn8r*>7ZZ2pymMZ4<{U zsU^ODeyQ?Pn8B!|0EI-WKXs8IU>iz@&d@XK1gi)D6vPi_37%?z{-{CiLF~s`>1>RT+PG+&Q8kaFjgmnkeq~O7vtt+gzG(T+KUZ*WhiIG?$RbNMCNvgx zUI(wCImEk0;8YL4bywvIkxe(RgJ~o-C$`O3&p-dq8#iuxN7#5L?&;|heO-TR>?u>G z1JiiV_9>u141&sb(&w}Sc8K!G&XNZSmNYxT0#m2CGLAB#8wqnmkR>rM;jMwGWs*Re zVZ}4Yx5*e8_iFG0$jj--yby2vW|$k=&nL-W>Z(O;8qivi#x2QokDb*RnSuWN^H0FH z*fkS6c!!X1mS(t%Vti$}gnF591?=`c959!bv_g;8Lz$Q@9xCq=17$0IF~t@~-9^d_ z0%~$*5|)*fC&#ReY~Z+$7K!#8=F>|F?@CydvN!c<^pUHKQ-wAX2%Y?#YaZ$iA4bbg)9jbQ7(rteB*=K>I#A9IiROr`P;c-chGHG>+ zi!P98c@_uq+SuDvbZk9YzlGQ?)Z1y?{w!BwIdfbMCyGTnHYBaauV58R1GD88m^)|H z#H}z>P5lzHtNPoWplWmDBr8=1qci#2{4B3E9-T5}g3%3c_{wPBj#etp4?q0SMq)7* zUbGg6A!0N7@y8zv8p>knhaY~hlyB>~dGqFrFTTj#2Xh8MfNL@9Tw@g={UhT}VE69b zy8@af2WiRYpMQ>;rEXT6LnhyM-gyTqHBFZ*fJz|aML^K-veAVBE@)2PRA3psnD&>; zREd>K6LmOJ9Mo3;+;{Z5yB>H{QqQ44uh6T%9Rj{zlqdO5~olaU#=6 zX*RV#af{-Cj)T;~K}7K&F!iG?@uMhh^fsk7TZ^FBg(x6G0z3sLjl{GVf;P?ZAT$JjgI!zH2ixGvgoUi^v=9veI%|DjgkXI;^O! zu9GTK>#sx^BJ1T1$}juLen74~ED{YQ99p{MCt+HO!*9Mk45aPZ`r)9aI0nTNchK%R+GnHFQ zM|&9HOpp-~%5-$x0!G4E(i#g_NlXQh1qyUu1ENTx&KF5lKNQxy= z7nKavw+9QvmJq3jvLDqNA&)06ET^4v=c}H*YBli}YIR&yKgwp0+VJvaAM=zqK7PU{ zC-l7&@t)1bCK0`cAX#K}YKcBt->+PFXuUn7$zDzRw&Hw-V@BjSk zcfb9;`Dj+5hAtE}^s#mj22?02Of#_8`23UV=USuL)VGB7VNl6v{I%!!U(bOX3RY7J z!^-UQ{C2A#SzVb`l59r6vd`_X{t$;1!H&|*-(+=;v#=wj00RjRnIWvCyfBFkq3nZ2 z(8WthWNj#jsGM6DM@`>0SbL}X8^AJ!id4Wc%hsK%$;Cmd%vBphD=;|-UqP-CR14SI zG}6)%GI1kuE_ZdwkcAfLB;*YQ8ADy$WVhrUjl0kLhd1|tm*fPA3nfXM2TU{L6*x>48P(SzBxO;EX{F9v7u5h{z(1f=A^2w>#d|*UDgy7IYX@R@j zA-m1{-a(ul6@>R6gh{qecIV9K9HU7% zcV}q%W+87s6gSoW(c}+tX0`p3f(n26rl~9rP%T#>C)elD9Y{(_N}EwfGu4X`hA+~n zpINTX-TU(Qa$;Fq2&WR0`PPI!EG`#|0yTaNbDDKe1`CIhVTm>z3xrr|%5aQKoR-4z z?fv%UB&VRF6czhv+&l8@-NUIUaCK;*&8L~aW#H9S^Xk0;;iRObq{&N0otH{d9HC;* zpldn9eJzmhrfn?)@yS*1sNtLg(&&><=+?gC+fP~-&kR%!pA_O*-(1Wgf{b>>qQ4@K zeKV`1nx|m>YxE($#7Rj>nSm*3DU;comJ-BCI6jZg%_m>E4-%cu>`lPg0&ZW8B}4Ps zEt?U#*od4PCnY5%B^XUGY8rV_1si|(SIE`~hs9~fEwQMOsDZF_WvC|^Ep9sQ67(#> zZ#t^ZD^ks~P*PG-s_7leKPMA<7h}GTMqM$B)l}9a9F->x1zo%6#Bx>#&LW2c&3xt^ zmNJrL!D&BeP9X6ozP%_AfxOG=IFzQMbLJd4I9kmRCJ_E3(1om%#sN~<^z?kuw6ZWQ z`CET;79RsP6>1Qa-zFs`CC$F(SQ1IN(F~VwCU=N|eqH53Pp+CgDb*36nstOrtiR%cx7yyRAdtkvT`Kl1LZ!MglQu)O!#r({(NvM z57Rf89xYwILykk96Ftd)Oxj}tC|Lu!Gx(@95J~`{LKyq-Km z><`-Hi@^wfE~UkYlc9ckZ0B!3lIe ze*9RdR9VMV5F}MIf!F=}_m94@LCjB|K2?e}^-!Q$csj6Z8heUY>l_#yYY@`c4f^O| zG$nF=1eQJ}81>h_{A%d;K^|wxhF@)l1L+oHM;9kTzQds}JW70f@~?&!^yy|d9P^HH znn5k9{bprSiFaU8RP&;yQ|wQtmE@gDn+yOY|C!2jOMvD?<(oHesw`}}bLUQy5@UQa zZc;1K^2xy9#*G`7E?wHYcdvS-{sfqqH)q>${Q4f>k6gpARI3ShAU<$+P)I$fEJgL& zQI8%yA}7djf+zL{IS4mw*pPU1dSJ8y9AUp^to!bQdp7xQm8cZq+RS zDjBWDB6zLJm{?R#E4yN#;Upn?*CdxRQNd7&;WuvFs8y)oN~lfy;K762w{OeH#K}9D zlo^X9V~tzxXR^pmjjcEnWFk+LL>?#(d0rTL(@O?dXu(d)&p*ZuEh1tfLnt;<%0s99)T^%!TY7S*#`q^6hb zUoj;ThK^3lr{x&bro{iKpFWzn++-a^j989Z+?LY!yh83JK6dPL+ymVzhq2JtZ>uI# z1>ew$!lY$&bk$juag7JMSf@~knFr9I$CI{Q-9wkn^TK~!owS>L(K0~fqwbovTCXm` z_eJkko4C19BeYZ=EayxJerh>vTqaDh8H2gf-L=_+T8-|gTk98F z_A1f|jA(F@wA{9r3X?O<?Fx=z;c?kJE9xSXwqhp@2|_8XC`MNVn=>rx2Lv0{ zMpi;@0yHyv?FJK$8u?tlS~Sp_7_B?z^FzzUFPP6u zFr`25yz@>v>7=8NKKh&A{N~9gpM2qk7yjZGzsOo@dPYCs(G54*>AkAy?=sS(d9$W+ zT0&(i+AV`-*nok05Aw7tuKqg`Coy|nzoL^m$|-=_CqMZ~lZ!A?M;vj)2`8Lz)KN#Be){PZ7f*qUFTR*lzcO$qWGSH@ zC@O$e0TMd^SB2cd$mD+f;~$@O)>$y6O5jvE;=j71YsCj}cgL;)6^h}+p@$v{F)RFU z|MqVt!9Zk%Rd~rImjIO7BaO5{OZ=aT;xeeQ@zK>9d{h2@RhH8 zklUiW1bP_v4Li9Wwi8q0;Hqc(*R^5sHt7XXOT?aQvM+sf^^Gx6 zY$__ynOhfR-*_Es;&9Ec%Pd2P2zN5BCH3%`6VX9zGJ#aGOitPG92n{MOzL0vEKz!WhTeW1q(*%DQApZZn4D{cfIRfiAB#m z^URyy{N~3We?0M?8r(%oV$_S`Ij%9PQb0RNVF6zvMuED__!Le|^x6pjz{z!GS4iZps4hq8HHzPzD(}E+!K7-5zkj0ekMb=X>7so*+?8#R7CB z#qfwj4mrfKa@hkn_?$c=$5DzFW+nJrj%R|Ud%RE;2@kzp6Wsv7s>>M8;A;8MegN7mB5j8 z%1u?MC5d^gLKxIfcXTfuL1{^hVl%U-1jyD%XB8$Wm7o>}Mgv=8i8QOZAmWc{maG{o z1E|d!nJ{Dl&?Ug+zBBrETWdw)%Dcafp0= zZ++`q-~ayi-|lv|vviA{a=vZNV=3Z@1^DEEwq+MM)wU?zaY*lGOJzAa=f}FFv4Mi% zW9Z^>47#3W+=^)t*jiV@iW*l`q6r-{i?5sJ?$P`EmFatUE65}7b+3EDH&`Oj3E}{z zG`~CUxT7@rB9Q8=pJtqB_5mOOGz7pAD7rR+9`aF_kSr?ZlxgdxH@&GEGD!h{gqNaa zMN64ruJE5(%)QEysJkBl?H{yC#`%RWd;tOz5+QRp@nK|4(W(;@0&SWhfmsoeCNdW> zDj8~`$!Z};r&SUz4;&9T26mN^m^mxfcThg3+J+OxcAIUsFgmL*mvR^ zGYx@68I`jdnWW(@N62OL%__L*TRQBp!@l>u?_mVKnTqg?gZSzQhLbtNn~rS|x*%9^ zE}ruJ&7N>E6HlWt-8XPaBOJM;r!Ic>c9}CcTd^Z%s0!$3NIKe#B$AV#MScV}1~K}{ zZnWJPyt_Rh8HB*lVb78BM1%;520=qp31kxu`;(sZq*2{bg0m`&6eEnRL4#07&5*!T zg;O)A=c;(yKv6OQG8|s9aFRRU`OZ;EZ?)A{&erX^(Nz_QPUb03d5X-M4m5sjtF3B` zmiXxyU-Hd2-#oY${7v&TCLTqIksCY;D1)t}lEDKrvE51nK90bp;mjT$Ykcm1|ND<} zEy!LsgYR{Guf6ul6Ukf&ZO39EH8i+EWY_~7T&$q?^?}8H6iMex%jzMhbc}V*)2J@!ywg#r|K;xjZGy=E)u z@zCXsZ{IegUL;&H`(5K#)KDzdPJcF;{W{Tx#WY;)6>kJ@=zq2F9zzn>U>mzYy^KuI zQk31@CzUeA3P$l$m5I%0>Kr>ICu+$O(nG*THJG(L-zPOPO>$vrX{y>r*Mc?Eo+?>^ zkf6_4nnIsxttmByXFkq>>C7G+8?RG6jxi4hB4HyCj~B;dOB^cel+O(H0)ft2?38uWTSulQEB( zzxazkztyd7?Pp}J-LE)>izn1Hzw94!+k6m}tTe~QN7P8GwxC{4bw8^Tf0i&WiT31G zncX_uZbRLcRP##wS>P{;?j*m{PMrtmaF9oJ;kjRM>DppCeV3>Xe3Ctd)< z@d1oZF;V5kjdgRW@6Ewcg`>GSZ3H3lm6Nts^BUECA!b0C$;g8q^dKq~Y6ZoZ(PYh3 z#g-A0W&ywx3kt7Zgj1}XGjeR|rRNatet8KG&3BP+WcmSF{D9#N5yc`POU>vPytC^v zAE8TOteNzs_o6FUp;chqs5F7;Th!IQN5Nkj8<^6TY0YhqgF+BHjL}ux|5h|OWKK~XDgw=JXs5P$2jQ^fk1A|<M{#>#NJcQF>O5>{>J?fo5Vk+PGupk0r&X0qYUf zJFc&~wsFa@Z|D3iLkdeR`WOa9R(d)qDLGiTnlec@B}eP^+u!`=Z~x|Ra|cHxpFWol z4PHus3YF5*$f0^-9BJjRK+F^QeV4W3{E0w>KM*t{I=#p$j0kC6*H_jREk_V-zxS$J zpexjD6iA|*nQObnx+TXd>Bi1$G_q0KSm6!dce;BjZpV2WDFD5hEB7vylp5-d9m0S_ z7gtUHzZ!0ip;F&46X3Eal~{=lPBQm9qOq@nZ=FEFkAC!{AyI9ppby!nAxektSBl2g z#ABzD?!BjI4OFmlcfaGHvGxb!*w{q48>)B8#eFp(pM7<_>MXpK`g@CWRMPd3OJ?r1 zq+2n?mO7@QQ*1^$&|Gbc)z)LLhv}s(Q?4#j`BYa;?`uCPHmEX9FO9B%m9Z6Ni?ux{ z>1Dp~f(yBX5)^@zo2=QSBu~(%X&ZwLBqdD3@F7v?K@L$CHPq@_Zg_U40D4~G{2!gl2{?%P_uJm2Ek6fX;HndC_wbA<2bd5hW-N> zZHvm@ha!Uzquq>`#)H|J=0=0P^ zHLpZ~p|Xfg&E>x}JtVFB2CTa(BO^1FmsTrb;nJ9~%QZl;G(#n0s7_`yW%^r9O@74H zDbQ|PE==1BeWD1t)9V!0yv7%s)^>xvS6r&(*MP*{Jhw~DtAZ(eUs85m8Nj??OAbBz zi}szG|MH**Eam4nCm3&??mZKG)FU`}Ed17H$n=ywayf3I$X8 z40(1Z0J~l5{_1c3T24XRY)6?$nF_O3XB>qUz0av?*&`w#tblYk-=zxsY7gZumj{}DpV>nFs0l(dZSVmT7L(OTAfew78D?@ z;vbc9^yu!o;hu6_P91=;3PdbHvYVeSPiQw~u(tT-^Da!F-DwX2YGc$?aO2DAw8solY(NR0J^7`ht=tRf!O&N#64h&?oDGZrvD$sF!7 zAkifTqwPmqnqPP^Xb)eA7|hRT@W-4Ar}v--&K~usM}dhd0ion)o3fMvC>;+z_+UE) zCo@;k+I;@=pXbjML>1dsGF01I2#4z|I{WOi8+X6k-R`#g?z_|eQ();=jEdSwG#*{{ z$G1u8``-6HmvoC|C%0X8*~MmV!n{?4;R?N`j{+=L;q1m%Gcg=#VtB{ZG*+#gfBBbx z$;aGnTNGH@CUi6JE_=aE>d3<%{_uO>``$VZF~h!*0#4Gr0GIphvyXI_Kx*p&_ch=) zaI=qaoe~yKoy!>TrQ+Lf4AWQ_^UV{9HrnGj^ES*I$Mm?iM4L|QAQJh$t>;g z^pU`e_t_V?a^lN57JrocJn9OuTpo<54G@^UYaK_i6j@;HHI;h>aL`+Q^J?M<^^%vo z1jr-Nj3lq?99_*&;9vjsUtjd17v+=HSqM0BW|={lEu4V9$)FJ?&|b8AX`Z zjyeg7hfIP93lg17W3>%ZR9gvU({WJv z@T&>LeBSe($Nr(Qga|TAYa?1#IE~qEyX~BHUz=p?w9`%rQ|yjly}qZZOC-aH5pCRu z8|Hw^8)vke)9|%l*oaj9%>E+kn?o$8u|yrGDBN*ODr{;%6zH0TQsp~luX)Fjp{sRo z$q}MKQcacVj&{qvdI1p3#tUKw8fcJ=w&#gx>XDx%D2-v_dTrz#v}8{ORgnvVVq-o@ zY9=>@fsz>vWPhf*MH+U{K?i;R``?F$6pm4Ws^S(pYC0Lj%u6(Cbc*t~yyY!);_rR$ zd#SJ!+pIfzxXLN=zy0^$AHW5+08?i5j-!R+IVe<$5ny{j!Tp@8>8oG;Dp_e2uJ99G z30#GCQdm0O2TU9GF-C)Il5`o+R5E*1Xd8Ii9qMdG=e~eDI`q&(_uhN&GQgcAsY<{v zB%y<`nlK3N2#E%*+BnJ`jeh|2(&4u3kGxTtdCebf%pb+pYrHhZcAJblGqvser`ZZs zdK0t=@~VLb8fXBcVah8J$ES=n6A&uWN;%Vb-{&j?$8IC*D*AU+nQ&xIl~EB8_Rs(P z&%h|82q868?Gd}O4L~uIqDepLq?4Ze+~S%{*_iBahvMXnGbxiSMyKM7*lu$F?}9V5F9 z(h{@Imyej-3uNsqeHs|^$*F0Go$ zFA<1IIQsFAfBf0ce)bq5k&X!PsZV_>wf zYXSWV5M&x3Lfj`j;R!IS7B>8ix^Y9{?4yr9`oIGZv<^|Hvt_8TTtH3B%OOwxQb-Nk zTRTo4OmQVTyQ1b9-8gRTz2J-TT9#@13|lDOqhuqjl6k{on^bSl>bO)EUt%A+BQtsHMJFAfE34E*fk0*s!RRv@(895U~5o z$<|FEX8iOGg;T24wr_pwTXiZiRt;$aZM@c$(7_|O~xTsj6P0c56xD78^J2ElXBde*b}(=e6hW2igP64M)$nuJ*BzSz*|6=lCOEqYu^6$w}0@1A7oKV$^QK3 zKVJbzlwhy;J0gyS(&U_Y;)$hmuU(rp;Je@buAhpPs1oGTTKTVi?Q5y{U-hb2z5Cto zcKIQP9J0qAdr(^ki5_sk0ffG4sM!(feavGXqb1LH#xu6sYAXW*kJfynX1JECyE?T$ zy_Oa%3ECc=@Qjk%edHq_fu0MA#&t>ewe54C``lrN9j4cBed}Ab>WCwbc-X@p=2T?N z2{H;#Q?lC)pH*w*Mr}*7fN2j!2SMRHsdzQr;SP83ptAr-OBSEBJf@;cXIIcqtawdD z%&sci?qE%y6`h0SRxD}~pDyMx@@1C!c&?r8L+Mwc%OVz4SJ0+fCl(Et$5jRzXrO@x z$!J@5KkDaHF`*&|^wYEv90M{&XaO~zaKZ_4A{UH;o?=~?q!+&Mg`-;j$UkE0S2q>u zNk9`&Rd6MmZr5hM2?Zk4N`LW-Uwrw?UrxymTvo)87^?dKNc+U4M*PWO5+)1*9)$o z&pWwVNOXO-iWsQ7&2NSBK>04bdx4mvTj0hJJln06x1}#4u{-=kPUVt0Ic9YsYK2n8XrO@xS}ZWy*o?I114zg$64x1O z_eroI$kK6AJiJhZALf{nM2^l|sfR?92va;GR+0=i?P(OLr)kNia{wGXCoyV;20im| zVkKGV3d)2yDd@GF2ooYyM#+eN6IDO~Ag>#%IRe_+9lpk-+h6oYHvx*z4c&SmX4L>p z>m6$Wdn19=-D~v@7Jt*5-bCrIZ2_YJ+%aQiU?4r^yb_B7O|>NfTU)@idgQpU7K-Uz znwqD!;QO`@REVc2$kNO2LkK_dHaZrdbao6R<%=tC%cwGtPnFi*hiq9AgQCu+f^!yT zC$MO{a)r7)u!59AqSyYP|N8I$yxQwA9r58CqVD>()?*Tt6Zl>VnbBidTpR$x$C6p- zf5B}(M!VTf)X#RJI}LTA`661#3^dRHM!R6E{OD1n6s82nI@_JLLv5|A0;PJ3uw=9b z`4NGT5yGS3SA?>mSe1cs`B^dNN&DD+0;8jMXO0HX(S{>t1~zjdj08YQ94o|C&~T$K zb$0p!v1fpWzw@2%q|0>)=PC&;iR`&6X3jjFV{{#F--XlIHXGYE8r!y$##9Mo z5$PM15~)F=g75pUts;K^j(SQxJXY>6-vpHbTV%kSM?zRyM^_WG>|_d%dR*l`w3~=X%g@=)#Rb`DX^X0Gj20uTs%? z1v~~$9GUUX?s9|(!~9knS{l|0QhKBje^66<_5zoF^N}Q z5!?2)%>RYb?;^Y0A|C8Dq{8fG1HC+%m-Qj}N(IUKP$>wU= zDW-HA!8Dbck2*rEL6=OXgN3-%1s~VZX5=Zor!~4u3u~`<=H=J*&&fZvKN5 z;hN@vVaHL_Q8{L_KMIn}QQrOiIqsV{bpsVelbPoZJHbVnBd~9S&oC@;A#J>(uI-i; z`;BT8bejv+oAW@IAL&VWdsMX(%0;c2Cd)U!ri#!J`k>DUxakWgL_;RcXW(1JA^ju{w%u z9j*}MWB;@4>bwf6UThd)Q8a_FLk?iY=vQM;&=rWu>>TEjXrybt3mieN2~T z3huvsz)GF@G>84&uySt%-x*#mA@!70Q_7Fnz;ozsBZQmDJpUqr@p*c`^zT&+7N0cSJhyY7NM`mq_}}T>AnyFA1B9m}9E;~ zAQMt16AZJ>4fP*tB|?%pN=J^fVR^ENts_O}*pT5f+edtUfCQ9QjBFoi$PHk#4S*#{ zi??+*7S=DAQ8XUp3f-1mz0Ujzh&(z|mt5q!{k5P`p7S09Yp(No)T-;GXrKJ}S4lo3 zKW>&hlZKRNzP#5u7Zp4vY-IX_K;ST6c@m248ZDGM76*|7lVf3oI*xQ{Ij2V@FB>$A zJJdeTcqKbn@dqS5UY+X*4UZWLM?dUtWCT3BIh;tK3aUq@OOUxFc&&~%9yy;P+y1O5 zrS_t65dAOml?}HwTSvdC;rbmhfr{OA{#}&#KAC4E=z&6PLHVMJ@V|Xk*Z^FpRm2OJWvg$a|pn@vQvzr)bt z17Vm3s6{#Fa_6YLFjrApvz7sU)xO*_Yjes{G&j{7E272;D>FS0o2sZFp>*Vi(zL7d zb2)q+K|0Dp_k2Kdd@_!0vMgs*)E09V9y6I4d;oj&dZa#3^&s#(rZ8M-eyRu5Nn#oa z5#7@sK-u=wM)J$vVl=421_BH4PJV=~S<4uTW-*w@Tv!rBbo%{` z$4hF6Nvm%OJFmFRSP`7g9Fq%R4OZ}wt#dsOGU7CGdg!6nC#%0T;(jx+Z1~ImgIJ!` zI*h!qz$Q2d~tLDJ$Mwms`-X6?c=Nj|A~?fIgWZ*1#xS{wLlM% ze*7zG21r%jSD{0*R)lxjw4y;C*Ru(zh82B56iY&@TrwMEbajtL`IV#qTSI{-XZ`PM zqwxtd*h2R?UV4Nk5y>Wy!n|woC|L$S;z$HO8sD>x+>Qydyhiac8Wrrq`9~%FvgZ9> z!Pv+5`LNz!pcr5@CF{PZ$RprBmAKhRe7?uy5}gC6h(d{JGQ(uQjl!hjBU`bUhELi9&SR`V;vwJsLI1^&A|PTL&3A}AvA9I z@Ox7&daYA5^yE5hxdbBW9vV9RdJNm$HQelfukAV7bk>rHp!egi0$Y3(G91r4YaBpv=k~o+e#qEx4x}6m(RECO7EMpGk_M|uZ?_jnT*{TP9vMyY6^Vka;~E$~m1RIRm%PrIV_TsLxDk%vIyOuzOmzShtQJ^UeB&`#DW zgc8?ZF$;!DU|ENwm#G={9I$qvTjafEf#_hWVOLx9z464x&9HSUQSXN*3blF}%UXhC z19*c*5{50`MOhO+sJL zjhfK6v`L*?@@_4Yv&-4>8xtcXd;Cgt9GpYWX(d^yX(~lZcHQpT9l)V2_|}=r)wh7K6AUpdeI6RDOV;k zldJ6)e~hnqSmg`L2`Z5Be8!6Z)R470VjX`JDMa!;`tgi3G(^dQt?CR0S817nhFlX8 zZ7Unhl0{JsvyXU3k)1@J^Q1xOzU~M`=#k$a(f}UYt`x)jZ40Yw8-jy+!vUc}MXQq% z(Vw_~GJ#}gj>M5S0?Xl%;3x|9)S}J7aapwKSUykqfv2W#cO;zgSj-;6*S(FV`{}y- zu$MrUrosba<|k#BwmxCvP=7wl?eWz5W65rl!ZqeSwc_@GHFBkVNRiK(S2(H&v}>(g zVOk*}q-z^2;dyTec6o4nr{J1~+$wjijz>TN7($bqjncCE!hP15`Dq;yJe%1Vs6ymj zEK?Xu_>Co z@-2{-KTRi9L(o8LAc3<=wQ@NVIC@(ADAapA++3(BWEXkuN5HozdqKEaPVN0|z1bH9 zMOfx>X>ApoGah>E79ZGi6Kkpz z)vitk1|MThPDv@_4~Rd?^7Rh8<}(<>`J*MvT`cuxig2BGWZ% zcUi`hI!*(rr||K}*IpIxp#2k46qw4F1c>s}8Vgx4T&gsFhILuOAF{7sc2M~bnDwC= z36z71;DpQsC=R7*qeo;EbZdiFmPqO4AQhV@7Zx#6^-cnE7#M=^W!lDufCyI9Q+>~9 zj6|HuL9nDH4TY-B0*+VD^OQY@v#8+;B68AEfkRfFF+uMRf_;AGp*qn{A!sNH9Kqtj zA3Iz{=&ZPvUK(WL8W#eip9?G^7(_yByyT5UlNDvT(pNB0Y3+%Ph5L@T)!nc7q@lk3 zXt{muQ9V7Ghc=_l+3&V3$=GWD#+l6})BEbSK#@46o34Qb{LE#z=imFw_V$osehB022u*IkYR5vo(bOApYUza zJl}9`)DG>M4ZYmLX?I?$yaSxlDn9*LB)rZaV=69xp5p~jq7L(?xvs2HC+4xbkHq4E zmZWB3`~z$WkwT^_l)o)th+KxP8*Y1cDTaXzA?jnnNIXaRXbOBvjR-mKeC;~jCu+5* z6=Ycx?gK&`*)MB6yWB$MEpy7x1AmARI45Oq8^be20@XfgCP)Pia=+zcR4#^Z+pPGx zm~c;ZscbyfRl#MNR$x!0YVKofP z&bpSG-!>Q#$To`{s*;0KgBF#oH{VvUDBfOh@IXT~(*jrxxeIy*l`7OQu^^6R!?vst z?-L`UtjI;#!M5su%*>+0E$Ng$U=tabw7nnO8Ryfp(P?$})9v~*-H_{jB_ANh*1;I? zU~_zT;0(&^sK|74)Qauy-1r^&G4Q95#e%a03lcL^_!0xlv>?O#K@f5-i+uijP3a_nA*xDVpD#v@A5~u-*hPaOTo_nV;rb8J&>9ut_1oi(WfO7hsdi;@9!X-Z zIDQY!e{A#yLTa19(lRQ$HR6~YShRy52%PR$%ijc~NO4@)81n)o^KYgz!nEc;5#l5` z)<)H42Qhk|h8S0!9b{RJ+QRw%5r4O*V^L$M=_$e<^+VP1JNiMCNQJ72jykojYuf`f zZAoG1zv87Vsk+I`qB^kNAKI*c2iI8ysaJBHTCvvjq!R;~Ojjd?XhM4vY>bW@Fv8!| z6YGt4!ce@3%cmsEOkL)k-z59nG73Us)C|>i?$DwLPM=chQCGG0pY1MO@Ig-UABrSq zFKTLPZL!B4wuV(cvFw@lhH7}jw`^nRTEM4-p3eTPNZqDmELFM#f@*ic`fNA0g-a|hh0K7@2C zz9x(Owce~Y_ez^ocSBW~>3WEJzvPlYsfE+fdsaSnY7b8Bl58&UCkbA36Bw)Qnf?vi zLYs1inO;f`(a2Fp&MiNU8Vxhp42K-^BJdo=H0xH4kV@7OUr{YddYNsi6*5FU?Xqcc zL5qBj2sII#9J%4ik#A9tMoaJumw@PO2rUg-VrV_P5WmMd~uI8uK^x>lWUB`0v{TCyAA-nMk;;+S&{4m&Rgf;A})aq{bRC3A-#TT8TPs$An zzQiQ1Ki^>k9AF_rvCMj{B<3Pjs+IDtV=Nr{6h_eNMT;png$>2u$?rJP;bL;K#Qh#G8)8`r0 z6*V{QWj6aa$XA!MFWC)tNgOL+#bAFZ^$phod`vDtOWE}70lx512OZYcq2@QKR%ug;EWgEwQ2 zB5sH@3qp}1mWO3ZY-A_ngi7#2P%et*I-fTghf_CC2DoN;dLyK$fyGJsW{c<&%t3VD z`9(_Xc@W5eRFWPy$&;y06+cA3yXanXY`ohTYsHG4mIzt-ph)?%{`B(Z+bJ)fz?c;# zg1kWKpN;o42R+Qch7o2V`4o4m*HVg4%McrSQu25!C0-~v+as-uLbR;v%ZCI@$8Qr$ zggMT$*D6_fQkmB(HzC1Lj7%%CEfR$0pT`^eiJWQ5Uu!PAAv=d-^byQC3b0kMTAzo7 z8Vj3a`{r4fPUVJPvO0dbed9(j%cxz=8gWV{LJ|^}hD9v2dmsGotLyRUj%-(%X+^Wo zvl?d{yv3LdE279pgqr_lCSG7C1Z`CMo5~X%@-LZq@AbX5flHuS@X6a@v-ntLLd>{- zee1r)J;&!}%+R2fZ0i#!Y03g;>yH$qA!2{L>gffPNCeZb;R`x*zK$A-Rs%uh1u#;o zb5OG=eB=~g&Q>jpky^f+bQiK@w7~OV9tzr+D7C#iySw?oaP4M1%-yVOV=kTpUyx4w z@r;9lJI)JYoqj2y;mEoy??&}#p$n)+@hj}zOXt}xaDOB~ZXtD1*#eU3!>q!i9@{539Y8y%FQFXtjT=LDve#DDc_Ts^UmhY`>T~!@nbp-mSrvVb_DgG{p_>ERL9S z=3Ndpub*c*6zR~DZ-M!y$29-rov<6JF9*fVO)eznirfXT{l44#m(xbMxkEbQ;Cm=P z6p;8NVWfBlQ1wJ}&SN8_g*&kSW-Ar3kp+qWOOu(SHF%cJ4vo`ycgRRj?SR#3#Y3aG zSct#1;r(#aJ$_uVAOcAsph;5EF!~XRQ-gY4JgN@E{m-H^P3rn{k3xaZ2HQ6Y@;CI; z@~Cvq0;4k$arl9hrEQ22gj~lBhWkIeX{g@6QgpL4{XbV(rwuO={#7gd|)Ej5H2 z+K@jWrvj)25H51P5T;C9(eq&TQ9odcX*k~R4pIBzs?5|X*7uhgTh5p(xc@YG!al3+ z__a%^uSfs`Be6JaM_iU&J1f4d+uuDlz}OtI6hgVCcfTHgn&@L7U8c1OZC9$j%)?#hlgwW3_5$Z2k< z%&S>?p7TBZu5G4E^=ae#lLomK9wYh6A~dD>=rVGwkt6rmv!@N6<-3Js!L`1YM1Pey!v_e=3CU5t;JU(!p$Y2j7ujD>PgS;#prfDkqCs#PDK~-4+(JYZL&;-|d-g$nf2goN zY??lRt1OX$Kpht$L3C@DrQx>h4rhfv+Zq5ZkWk=N=T~y9(Kv&c&)R7AR!wb^@iyL_>`#`A{I{&uaGsJ9Y(Gn^AA~} z6)^*>YiR*-66IYU?mO+733AbVBvxH45!)@x{0RA&viwyFiuj5Uinzd!L51smrctvI z&^rs8!`4-tzN7T5X=5HNdk>+u?H29F`2J2i_@NdU;VA}kK4=;_{9~bMx`YjsShcmH zOV=$g*|9vrb#$j+o?hs-=%O|Kw!UUJ5@sO#V9d9cS9bFQLzJ?EjZ7BRh1C+O7J|>@xBxji424Ya*v32@gmv~Ua3}$pES3Xw6rNq^77BoNYu3F znc119G5Q`ZKl;`KZ1R5yg2~dVI=hKjouU6NPpzBV3yUK0jkp6xMIbcB+OfEEjVd_K zxrL142L$i!9`RbjY!_5lsY4}1Ht+qN)mR^mRvhgv3`IDpCBnx9gJBw4uT%t6d;~`& zov~#mlw86?YSt;fOs3U2(nveWWSpLhVWLUxjS^c|+gx!__7B%&G}e7+jlu{{u0T2r zRjSaLSuq%^(fZQQO%)q;+~*aj|D@+%K?_ZI>B-^n>E&KvCDEX0nl&wsl?OJrLhC6K zl+?rr^hx%iGMzkF!;%Jx#+!)tg;)}y0dgOx z&b%aqCt}ql3(=(0%3LtDtR(Ie8ASUWV&PlX%}R?9r3$zzn11fbA0ouqaDUTMWb-ih1cCeNGy`>r8l zv#i7RZ&ApZoy3k7H!`w!+p_A=l-r-RDb8YQR*6qb_yBQCY$u15mmHh| zR_*0A8LgfVv1(+0{_Q7^IfSW-`Aa#&dse-NbuGx0(BFqAg(76^a$R~TK$P&CUt?5} zj4~SP;yLZV>6wm8PS8t8;mMjDj>Bb1BcV{bqB?5SHf-8mlQGz1wq#QA9HbNhW%U`! zp8C0{*UmsTrEi|i@W^qeTa09z6vdS}{LEai93Z^3R#p4BKX7!P6vI)`Yue;t@>sR{#guz3HOBnDv&V3rLip!ePzlEQ!`1O{QK6z0s3%||o~=erhLmmE zN`w%GUl@hGWy2IO-!~?Ujf|p=5QYH#!M~fLzVDoh-lEoup+cfgk#MZuBsSG#mj^oq1wb-_Q!PBJEtgv=E(4u>*xJ2Vck3p{B zo5|Ezl?`&+Coczz~V#Hm=^$gIQSrOls^IxR7qmuJ9YHP+*mGQR<)+84K0yZ*W^l#et{=_WfaV zS8EiWHq_BJm#W^jIbD@w^-0Jr$7o>d~!F@^K6Ymhx3#|RT zV9cJi)hu5OPrJZoJIt}purcF}{^~Z@iEJH)7Xhsp9WRmZN~JoDM4d2=REdJ8r&3U-W$T%M*sS-n`f+~xW( z3p@Ug(cFnB20coH$){xMZ3(!JP-NAAD7VSyu$EcEyi43-DE9u=K&T=TMvE0HJVDDH zRpW%=3(iaU9|MDRuQuUQa!3fJ0%eE!-at&D?D&q(iI!&}d#FX-P5RVHO!{71NB3G2 z7`6xW%E>n02XL~EnN0MhgPpQGznA}2;eG;j->)kQW1_{=T(^@MR|`sJ2dmU;Y}+$x z$?2E?60c$`Qouq(P8QAK^NmR5oV4)wzGRcrPcF%M`f*j4>#`bY3-_9kQlwB6k2XwV z`2uL+3F=L9JR`oSW9dHv6bALb5sLSKvk`*@Pjqvd(V#_-yJgU-l z`SuQhP&!hUMIjAd`N|4t9M=z0m8tzGjOarc(xEe`YEf)mZ4%6wAPYI^8@c0;tUei# zk?EyVa=a)sp|d0>u+`5=k@O;6e-SLQ7?fmS?0swK{e1QBx{kGX3C7#p&UXHjiV#0} za_s5!vrMDqK#PHw=DbpFjaQfx{K>g7h_OHe7zjW5TG=-aAfMZwdpB7c@=PtRV!#R* zbn$kIO)L8TwMPqVDbp?oA(w8d{X$0vH#4|*Q4A2Jm={LL3m|o~JQdbpAGyEZ`#F-a z*gaE~-VWq+KU$8NWMZ_miX26l|Naxwl}3yK;rmd;h~!O4hI+SYl%JBV_=o>-{fobZ zZ~OVd!1S1u_x7(iNxlQvTb;kYKeYD#T3*z#C&&Q(EWpvqFw4t>D`Z5)jVoyf1<9ZQ(2( z7Jy>&z6jhedt%O1MM(cJ4Ch!=d&63pIBe3ntWg(LpV&GbF z_I|!!61n^pzHkDdX9B>62~>GMgktG?YzIOCwaj_Nto*wXqyoT+{{)QE@zNisy&tE? z3jREju-ff2fX?{<@WwD#tNx$w@w^vYFN-Sj+z=hgeM&hs@4#VRM+M;>wYYKo56f@> zoet<2=<8jgc)?H!KmHrWH&}p(-^Ofh3uWe{$5pU#1Hj}v^gmpC@ELAmA9rPf=UPmm z^Ve(Z2OPt&enWnwW2sj8)eLrSjai=7gjE%8MGH(vTt}WOjEuaOZ*UBsm$ZJLts1(n zMYMjc7g6jW|L8W6qfdXnCN54?QH&7(StpU*u|t&Qa5R*oJI?L|eXITMvtImeGY&aNE z3AbEpoCzeaUzU0W8tq9sq&PVKLkrCA=WHL7n}>vy66z45tn zMqS5tADx+4yqHE#Z9y3uRP6Ozq{yMT)SoZF8A{+P(4pl4!0rD~h$aliM1uFHamEp;|tHc>eqLs)fq*WYO02RgrwN8PuWz%2s*1 zucu)AEAFk^{sMG`D`G+bq%Tj*ax72WkUy?v3pVu6P(NroezehHcU%6*)7kUkK?7!? zE8tOUqV0- zY9|4GvI^ifZdMDw04Fl<#zxy!SJUNO?Ir>-J2RBPwyQ@g6cSJ3` zw@Z0^mp4gnJ--D$w^Dk07b&_qo7-u4UYz}(r<(aGK7O0HUq6OGxF|kQjRfz`1zT^8 z{&y#PCR_$p#C$rFh(j`y&PfibUX*i-f);n-ik_TdSRXlFyl1+c$zv{;C-ZmR=8blS zs(pSdXD0U+Q^k(?@CD9vb}4?0Qkttn1OboA;4#+Dg%rk^m56y{Zx z+%UYX|DJhq?3Lp%RT<@B0G-b8!#)faEA_7)u%p zDCCHxBzUrYHf@dI>zp9}=~<(_YopG`j>2c&)| zcv%iuy0KtLxwH$_&8<^P#krbce*7*=zwi0o|KmE{n!qU*ifTiMUIx9eH*H1@Co*n! zygwpvmjPx`@;jFko#B6s1l8Z3hS^>b<~+MH&GWKZXw^V_Rh5bC)62a10d5VfrJ+ZS zj)`{Xvsi5x+D@Dj%qI4PLj`HZY8eF^Yk3D8Pe~UTzQ^E7y~o^`<82bM>0_=`a7gJtDo2EQ8G>B0GoAEP+oG!M0Pz zCB0K-PLIv=TIaMagJ*A_@W&ZQYlE6sEKZ%ZW>{dSz-7U=I#A@6Z};SK>IA~pHf3Rc zj+b^mi!v>zib?uT*H-e%Kc^efFS^@={vq(XRIN2Ro%l2iO)OyQ=rYB(!$m`GYx5`9 z8;u^-pgl`o(xaS+D81@rLz#wo&7$X5`7AHb1zRn2}kEYhWs(+)^2z>t|+V z*r=r`O?orL%$nsv6^A1cO0ke36U3!Nqma)jD1!y=g1Xf1U7oG3qOVPErCc0_swZJ8 z-Kbj<#-rAenXSz*H=OyzV!T=#Uxd#d)8UngGSQ4v6@|pb!-a}>E+g;u&uq;pn*Kdx z%D(Ahn6c-!L|J%O$1uGo4E8hpp$cHToa_TvXcw z=1qs5%9r{n>3e76FjRX|eV&KthOc)sX0U6dV?TcAxlL#P zDM{f&G6Nsg`VsfL7KN;pYCYTAub*HYclCLz>@zF(<8>} z^FEh9@@irXTar{GVP-`&c;3WLiy&UYi`dGpXiBa$-Td^h3~9Ucr&czeYP0-fUIp(lvZ-C?=wLz6oB6NiPA3{(yI*Wxcbu#*d z{Dky^xkO|ePk}$G!~!Da@}MnY|EO?1gEAkw9+RxLlcFxvq#}LJ{X;(4HlnO9c9G7N zDzEV8%PZgMrA>+NSyC?@qi4~KYmhqoYi2bY?7iS88t$adw`%cF|Qk|HcS63(Mp}838h#1V%!mPqHb36q>%<2JN`6L@-&jPv3-C0e6I6trB%&z_G)>Pp1u1#z& z8!Tde^{-EKy4*;tGUP$a%vc0QK0?9p*&jYp137M&vttt;gi#42d)+f_^aN2c9(!3S zV|0}cv68WdmB%Jk0-r2_DlW-nZrb`o68{`QkHdOv=9D?c=BO8QSAdza#K-pWroE*m zMz1A$^zM>YHNo;J7M(+i1~>yY%qP4H^5zpW61|IbrWH~hxK6hB(RZDTLCR3m;VIH; z^iC9^J?S`852$f9riDmwWSw%RO%N(3*c_XZAvyiTFtiYqJ*{Z(_GK2F{BdN=^pQ$ds>yOT#(OJS;)qZq%R%Brj`~df=JQg+m){{j0{-!*z-i{qFn3A7 zRVQ<6gU^eX{8MlSpAu;UgW?N{sfj@joK#LLFyV}9Jx7m!u8`#5mXw^alF@P)3yZHl zqb;s59re2J0n3(1@f|HKG2;6u+d@Vj-Cu?GB*qgCrGvmQPZ1k}# zvE#S;@eEx79o)j-UYAKx|h#=Hx zx>aei%j}oGU=l{~(r^A4S6j-e-_DGskoQ&oWoik~2s*7b^8I_<`99B`LFHzUFmgT4 zSfQ^{YryTQh*Lr1KPSR=*tqEYGOIYhBB!R>T-jvHh8tTi^50u*uNF%tSL!AjZrd3$ zP2P72dEG#x5`sxNSmy`Bi5W7;9)bS*O?erJa54hPOb^rg%K27gs3Gj+wjN?J3#xU? z>qd?5l@E+Yn(b94zQqp;Ub#a*%vde_ew~(}#p+NV*s^Jl1ytxH5??m?>I($qOj#m$ z2%18p(^I+1QmyDlAxI`6Qfit^6hKm)4w=>R8`dqbD~Wj~I49Tc#6vtx_4oDVMdfNI z^L|`=`&i)HHzZoxJRn)ub4(oNl45|d9~rn!%}?9Xu3ECi1?!GG(*P|~x~Xu|&);UF zMHy1cCvjn_lUqCE^YwfJvS+2Bf8TP`#6+urgqy-9N3!+~t0q4bX7La}mQwA~kCQXk zv)>CK7uY1?`tgcP>z-ihxy8DklP}1WEB|KhwGKfx5uWc_QQsU3ic}(g=@yjJJ!`kT zm4ELlP9OP?tr(_cus-&>|K`f6m{0uZqQ*;9S02_5^W;_j0(!F-g56iCrcY>iBd}iZ znaWE1oiu%KS7N}VT07ISq>C#Ly1a;#mJRM-z4gm~B`WMAsyz1b>8XMu$s>H_ycE)-ztGQ+I0cp+{`~YkvwO~CI6f8) zl{{*?n!(wd3HUu;Ra(sO#)s@kocWqtYMft8*sKQa>nm8-k7=tZX+o$V)dmTdhH_ z^=ZZLAD$~<30ZuOT$NPBj|;34p%Y*)cdw6^TRpyW>KoE1(<^Go{mpudRa_pKnx#aOm6A2$x4vDejTNu!kn3Vb&jue-kdnM@ma(A)8`>SND%k%bRftFy% zILp$jAwU^#$~99yW3VX&tJFm?6SDd3Bf7g2B$2#z74m$o2PlvJ|G$>-smaN$^o)#i zV%E9dJR|eGr>zJyoDw@*J2ee=xvk_8&jp&2ZAt2G9x|ErOTWj?FUg{eYlvF@OP2uL zC90rlV-4pv<~nZwmB$u5e+`w3du~!{0j9v5o;?t%QbF~CB!0r+FOdI6K?S598uA>SeQv6RBgS56wR z`|bqta9jcChR`#O%p$%2&D2&`mXUKl@CIO9FTNs=Gyr(l-fJ$a=WUw;1 z{V76%Zx`4}8-a{G_z}aIFK#^o*b}4w^TdGSUADruj?VED0v8Bkoag!;;p2U+zptG! zBns>cD8x&h?`O}U1M{!4Au+0|qUxDQO?~>K#k6tE)z78U7ytf^klsu<~025mVy;h$1L*Z8ufZ8N1NKl*=5;uDhq3wVh$FwO;K! z`u2A>9=oV{0w)m^UfkCWtz>P4vLOUK$z{QwGegV)uM7!OX_LBJBi zn^rm9EzGb)Yfxe8s$1?Oq+AQu8%1V)ZmJT8% z@>fDTc$-&{b;{3eS>&-a`V}dlPV^(PJHIl)a>IDBQfWp|&*a*r# zkSewVpui9|k(i#8Hm@m-B7y_>wXe!&$#S^_yXIZ8>nH2YF9ZqBXjKH^x@lqnJ|D-D zk6ds+9`!!N=y#oc$VUkei>ft8r>N;jf>{L!fg`}qxBcsk>s<593CSP2(SazUdQVG3 z<544LD-&FWTw7^@wbThh9HC8sgaDBA*2&V>COK7$KCnBVHt&tJ5vjjG$ z?EP->{CAbN&dfQ1oB{#Jo@mmUwao{Pc?X(+`=aguFyA3s{TT{W!8v822RQw!APa%p z3=|x{?z<93gm_~ylcFyz6U^F{84VjKKk_xn>s9?DI_^L9Qy(mbXYdI+*q#vh(!5wa z==w(@ST~L$90K0A3Llc3=F3l!?ia6C&NR}Njj>IwN9YW9L#LQ@{Sd@9{YLH~9g_ST zIFZmlrKAG~3M+d{T18(>#IlG>6?sr2P2!$mEijM^3>J8Ra(xUMjCq;<5N~XOq_iL&ebh&H1~&#NMbHvHa^NeDgw#4EeQ#*OXU((t0l7aW1cW zsQD5cglYN3Wx%eqI2S4P38grBWr-Ww4BmFJ@(It5evlFfj7iCZO7qyKwNO#)0~reB zL0VHDZ1M550gGv*q8$FK6m~FMxXeNcYoA&RTlx8?rlxP!oo zcv$BNn9KTj-?MOmJ7U(!H|US6*e|6ekf~5TeHCpfcjvSu0DI4lwKh{vZ*&(G{Rju_ zY7lMMU`ds$_G7-7t>~^4;#weLDVGVNYBRZ%>M~52Djxn_fn2aaR<{QW#dxl$ynLPf z2ZkDK8>?!f-1_MU9gU}3fX6#7AKBoj-udE1vN?W*>x;_s3>5p{z~YMX@yKIeWX(Qx z$$1erF|G7!iI#9xrIWYg2n#uQ*T}M0*6#wgSEu5VY$K;GWQvS$tA_h=yH5JatW5ko z&9D`G+WT56LwPCf=oRFMtd9+nS8~ zC(ViD;fWH-CQAMtNmjo$(+BTlhJ?7%;{NuP+mGLn6H3LIxOqIN=YFZxT31rxjZgNf z`L&5OGdO=7AVY=ndUVw^X)b{%yJ*P*Fd7S^l`}fb|A2bveofGA7f#A4(KbL*L*4lIb3t2Sm8g1!qz zyUsvJ6sh^RYjWD$#cUl#?OvVF0=}Qa-YhfIq&(dPPP;8xuh|c*$*3(t_7UlIKr*)T zyUp4<66fpycm~<55zd&rlMr+`UIiPUGKKI73;t8BrH;ksuQW;JG&0ZY7x66ozgNHn zC9G6_C(#i1mlqIc6W+=g93`1*b({%)rvUn(@D zr*-`!M_inbtZ|I}$z^&P2evMLK{-qK>eqS)# z2%|h1t^EPGP9t54Vut7CokAXEPvo2m*t)FO=M;HK#eU3;u~55WJ2)&sPL$N@eE>IS zK~p~bZ!n^#zOMzO;L(rP$2g+$vwV^b?ZUnHmHHDHB;o&Q-FZ-Fa`fmR0@6}1f&XaA zU3gA=kLUNfGDod|hMiyq$cTSlg$wHH`p-$^uuuU%K+g9$vQR34mEIK;-W#CBjZH}@ z!Cv!%RK0t96az7tfQP>eC@kgM{)W`Hac*aEn;&k-Lu?XGi9*3_gzQC9`t2*!B6vo* zg)8?+K@Yy53HevVzv{AbRb5*JdQLRt!7eZ0YS;u+MqR;o8I$PUW-fi1Z(l|w1e7z3 z$p0{jqN%IYx{x;BAsgYXnCQr&3631U5BI<5={VP<_gSXG{iS?D^%>jYP9uZD6O$#1 ztAIDMwj1P?47?GgqALUS?MGSnhAT%!w{w-&%U!{d`rJ>h;s0prp&madS56=hgd%af zg})4trW!92YzQd6=8ip}irkNpUMT<%Nx}Y(^62n97d>ieTmMRz=A|;K7n5bix;ajJ z$k1-)l&*X*mr~X8 z{w`ru4a87D3Eyq+|3-(F7S;wspO8-Kbb?dil{`gEv&^95jq~)Atf0;#^9~68eFDX5 z11T>fWvZD3=S*HP;(el!vxUPlANi8u4fQn;K~ni~F!Y6IXta;3MF~Scq1FP;*pc~2 zb)o7!r`5-EQ?WU+!hyL)tS-p#5P!dw)_JGEY-*99d=p3VW}h^ zGLXBJc;5UdOD`LuWjSa)|tS($JaMFL7cK<^$qmbzmi zLbKRnyUAVv1OTZ%szST5$j&SoAx|sBQk!caigxf)bJqjm90zM|vRug$GRR1H&PuQE zpBN=c-wW_Al$nt)>noi71(C(=8QGYg-SuPRyp#bGKAY9-92a^*%^9fC(s0A2-&q9* zRa0@M#1RzSAxET`aT$z5AX;%b&Qy}b$CyH?L-w-@9|<-yQT82LzNa|6(90)9(10HEJ_zQ}-K;Kdo($ z+)#A+kAO7UH?E*8lwXMF;uGX}@FAXI{B(r~I5iHTv_ecR&XQFetYZAYdmEI? z+1wbUPkOSGG?IT6P$U_!v&DemA{TW_R@e*@p8CV;*)ZLRng}kHYDYP(16?)2eeEVE z@u!XmxTEC_;bU7kS3{pB3y6h_F|<1<$yyNyGNkv;niYMuY$;fqA(RN;Yyl5{Xjg(H z?{Am3vX|5QleBEu-)aj_9w4E!Amd+I!yZn@nGcpNqwps**Bwdx=49`V&tk?XL`p1& zxc^a|MHmZf^Vtb$(+sgBe`~}viRXnVgA?%~N3MvV`ahP=DZH{}0m89uXX1%%+qP}n znb@{%+nCrkCKEdoTX*Mt_i4ZGh3;P6RrQyr*eKm7kP=q@r68gg(!GrdV-54(3_<+Q zXQ-jF^-_!&S0*M>q3vuWqzq+59$jT{4LB~5M{I>eV?;WpgRoG}q@OV=a@@$8QdPuw z0?|8!FJt1-#!z&D#Yn$y%D(3`T!f4})6)Y!dVAAmp_0pb&#P^g|z+T%f(QZ0Hx<`!Z~7UJ z1}%-Z9>KgJkD1XoCF?t1=Y5e+T7r*LpgguRXA5&E1i5Hyi+!9ZtN&S88>T8YjOCn+ z(@49X*J`-=GUr1y8@Q<R(l+%oIi?nICR;tR z2EL?*1GSrpG|J3^>b?jQCaio3q?!k?&k2TZuH49D*q3sa07D+onG5d5GDg`3;R~!q zTUbX3;Q5JhJf%IM(k0@7My0BP0(t>er>sI9T^fXlCS=2frT!?ulfk{-#vcUbjFi@4 z{1y%JO6)-`$dze;&TVNxRi=c^f=G{q5q%b7^SlnW=TXQMoB?BJcR)d=Dx#|-($jyA z0Kw74krOKa_v0YKGSV9AeVBpmE|M+e^Babw9`4RPVuhSn08Pm`^V1M}oFgZmAzIu0 zBNMF8h!!*-ClyE>2WRWwUer+SO1nV06kB*HeAmVp7#NLwwx7%*LsJV+VNf=3G+F{k z*ZfpZ_;bHzCE6Ynp5#-FQGiM4mEuqHk&=(s#PcplPrU$hAn#`r)<4E>5p7Zw*{p9|v>gyT;tn-!q4myLi5kUjC=h5TWZnVRcA z6Bxl1pU&;aLFE4ckuzyTf+c2lDlr8$c56N%KUzculb7HE>nN}Lnifh>q-9178sAoI z%oBb{5PM+Lg|QG&zr+*%wqG6V203?;;vt>GIVcffHU=Q9T$B&0F-P`XV!LV&D+#*A z&%xFjmcy6JSu280%NB5OIJ*rFwDv(m5(h-bzs;P0B9yFnT?9S*WEaz5E*V)EgstvJ|+ z>lduh%jdOE*lcP#ok<1YicmRcw3*A}(@zgkX5U=myq&kkw@TKCYh0};Kp;Qz|H0aV zb3a7tcwN@J<=(z@^JmQ^GmW^oaSfx`E@&Ngn-;IAO?9mEIuA9d`~e=MPu_U8<2S=~Qw{h4H7 z(1CDXdem$iwQ_GrD}MzpGPy}Nsp%w*-lGWR#!E1AkcxK1vqLpi==8r-rQ4@)6ojG8 z*xf-fx4uLQGqi?BmluVJ4OZu3Qi1ktP3xvVQEm8p9s|MNUIs+hoHn)GIySM1`9Xyi zPFhTkR2GcGItNH$l7;tLB2huN+sK5>eQ$X9K$&oU$6}C+ef?1RRJNQRA+*KGNIg)8 zlf$mmuN49oBSF2Az+Qv6f&MK)2OfH9Ym$N5;?W#kwU?|HIu#Z;=~W=+s8z#~8`Alj zM-E*t4axPAB%wqYIOjn2(;#Jd9EiD^NV@Jh{4$%9DU_> zdST;-<3=dO(Yna^DYb?sAtftUmhtZ;sYagFj~0D1$cRAvIna~S*^5QTHHcoobK%bi zExS$yhA7x*tq^MDDnm}!k_cGmfMlaIvBSUi`1LzGilog!Z`b$|ZU|3^eI|Wv4yh8N zJj7G%1syeN%Ecmdy{!w5#1?Df@GWo^BRWCDRs~rq^+&ow`fdR9rKs2Bt4$b`|4znP0-n80aJ+B1H$#hKB#<%gVvPvJyRTS&Y1 zl@@(@z3JOg$6Tu&BK3z*Q6!IKLZ*Sr@pMycfhw!wyT^<<5FLB=fjl_w7*e4`h2(21 zC`8ZK@>r%MG;2gZa+WZTYPr4h&#>xD6uge~<~ ztKcgBKFP=RkClq&8e|ecQq8EHM4cOPMV4#LwnE#$R?gSAz-PEGCwcI+T5i-qoO?S#u7O`d5KR zD?XDI-6!MI$Vy3z>?Ta1qRQ#g%Ykz+T$)0JFe{AO z8AL^PSrRwqg`<@sE?2s;p+NJy6-Ks@m7^GxtscaDO|f2j=Rzzf(2?U}7_NXyf|Rgs z(>KxFqbm^tG?tkiaU3Wx4Tc04r>H0>6e51_Ge=&54@qDlUMrllj~X=J84`4=Z;N#= z7|4c^me}#g18OzioNnbco8q@KlSiX7F|arM?!2hhliehbljWOs>UbhbmB z?^U(pucpFz7>3TrH2o3EFi9Y-nG@Dkn0zPOW|8)jl}rxDdyRNd;;A;O5E43kOs$gh zDNQB;>-`NQrR*nVopm6Z33_1(Ws(A|xp!HC-&84MRj3RVF`yc4?{O1MV1St~j=8kP zq+SUek1;E|EKx_z*-M13osI(5PirS=%Vf~ezsF=DzYT-4$O^9}?f6VOkujv<@}evr znO@7M6w5y>eU-lM(LyB}a0CG>3q(n`)q#-+)k6KZ3%QFLgEG7z2PXaV0Ef1Zi`F9D zWZx^EO^SIqS9MNf~aW zbfqc;wGO){3&g6_1tAh{xqmR_d$FcR~GcA zp|nEAI?{yT4}mf-G8|rIkG626w3m=2=!KA8kb~v@vmtmt4m1ZM2lgz4CfP{3qPZDH zjVHj#>|Cj|A!KC4*?OkrM6jxuxPCT%S~|;S|M%SnTN@C?9fMFCDSQCv32rB!thcGj za>kWh5rW~pE{ty<0JRR@B}-*GfN;a!Ysr-(k}5BxZvAS-ghEssb5( zo5z#$M{eA4lk}I!wUP?0C|F28t3PNpO*oRT6eo9JK{<9XKfCcTt8bilvgUTJ1qubF}njv)L`#^Y<<2 zq;x+RWh~EMx$*L5$?3g1T>tp2@=t21JT2UE(6DYTa%)ul4lp6So4(X-MxM7CrSRDOJk@WrTan(sGeudmL^oM5; zSJ(WIUD?pB{PL#$#a?dudq<7-0MeM+LZ@uqrqFTPg1jM&a=K8v(=?mk zn+s^ES=HFTf3q(zryLJ7SR0D96Qy#+(rdEIiI=b+oVT)cxX@37+Lb70H8*KcvpT|C zY?Ki{==XgeiEmV~TkU$5+cL^s668R+$hq;&%kkSPRBb}(U%bKWcV_0s)w2Y>`ujyT z*peN13Q8BRXA>MMZ6E8!_b4l;*&5$l*HxF&1FG0a8{}iCTJa|;z205>B`*-YQNNY)F_M>ZGCXfud|<%Kq-B|FOWW~4F(9`QS^FbSQVYTwW4T7^%Q zdz5}1J#56G5cWMkv9HkdQOkXuxz00C4ocjv+9}m7)h0`559D$-G|WDm1?2ziKAeyY zu+oWk7^%9L6x3LR?n>k0WZK?5MYIDSiS;Q(=eQo5;x_py6~7aPH(tiHgnJ1 z-0tk@qTQXE%z*I><0s|g&w8HMulf*#-7>`xB7k8C1tTrYOC_K=gmN0Zpr5H&Q&ET# z@h>TyiDVF44d1opUGpfN^B=<9DvZwBWE3UO>E1BC1br}iutkfs7%xrQwx!km5OJkY zyi0d@HXN~|9vu^lt86Dfs^sX?6bXhmgjLMVAXLyT?O1K*vPY?)tsbBQW2JSkxUq)l zjvjE*<3MbZW4WCgW08C}!tO!6x#Di!$3vI4Frj*Y<)Kb}lzS0of9s-q5jh_A!qKp{ zK(UEdxPiNT+3Cz7233NR6hfWw>2T1yr;|uL!~#;N;1=|hLzDoRD+8(~84nQnaKcLcO|woiqm&%KC$R1c^y zMPhhHade?V0JHsQIENxz#QzXQ8cJ5iGJ`5#zR@Xbgsi1lFLgd9Yg$dpxj2ZnmiO*l zT=;yS{WXa3r?{o$x5fEl?Lgr1@Sali0lMm%i?4Ewq)58+HhTdIyS2CtEZScXQk9g) zI~qH_Y=)&GiHUTf$hsfB6X_MqVcdRnYS=2OSz!so6u@yHDWE6HJ+^yM_J_p`;G;HIu9`$B|*dt+n% zI!gP3t<5{B<X6Baymf;rRTI%u%B@%7}d`85@eGiJu*& z`bW}(wL$V`iNV=5|gmd+XDxUec z0~}A}XYvphoIuhIa}44tAw5t+7zf{lht(V4m=}u1seBZBQqTKxxQI;wibN=Q?rfCr zk&yxRI#6m?z4m@d+OJaeSwja?`NDY`w{3bH0>+x49=z6(3G~4!XsVOw;pE= zIIh!67+q@s9aN>v!~zb%O*x{i`2d{W12|ht``wL5@nC^!cE`^kQvmzH&LIf*cY?$y z-+_%e_vT{mBg+ur{z_cx*50>|-|6O4O`4&YGu%&^^D+0achDe#n*g1^{65M-N*1p@ zdA_vFR-}&o5<%d4#{B#Ci1_6?#E-zevHHuWI*#x*&YsYbWBX;dK|E0A=REzPxf+4n8$Gq6|5uv^9M+-vE2h~3Cx zW_7IiULTu&amz)8(Pfj*Y)5PNR;f(9Y}MHz0kt)~jN6^|BbHt$Ab5q!Q#5^#w#f}a zz0@=I3l36D3fCmd?r@uG2Cw|sjTaLHG}E6_KG47dAS&3brS4ER)MYae-T)xfEt9VF zz2x*GaVm{nLJT^(UXc2o5~2YD1>v1D07pJZGDli%XFQbkD|)1>EOfXgCelO%{fVna zWRYeGGQ0FB2O1FTp#qpnGOh+x5jw)^US(&*psmBF%N@f|#3XgoxttC-;z|smES@OV`su|36keo><{ECq96@ z6#f|m_Zn4qp@oO_1gO-4dEwKEB{vo9Dg)mJmpq_%9hc5~8!&%9`@8M9kIH+%R<`|g z{e^c$@#}r-U&|kHPNU0k-7tE;+D#wp*Ihfs6QYd(Zh5-COO(Ok7Ebf*IC4{GRfA0& zlI=`;BIX1dn1_GQwtkXK=e63k6Wv8S|*h4nL?y^J!-m}=)C1RcDLMW7o}fT#>1eP4JLDx+*wnRos}VunD& zZZQSldW4+Q7AnCd+}HE0{jblbFTVrAFXw$`zIiGau)hR8;i-gqg{N&rS z4TcRZ2pz&{VC&e$?(fi-3G82A)Q2AOpM9R&Z^}EvLWw~@YHx3Q+PC^-FI3Xa@i=XJ zP=?V0x%U~Myc=spYW4f`AAkQ1oSz`H_jepeTlC1-w5dfO3XJ&z5S!#)5=7K@8L^(s zFZzil-?{cxxzxeZAd%7xo?)N-e?2EO z^_-9P^$!4Px2IaxySs8&Vz5`*t~Rp(j6ec6pnqG!*<)~jK;p*u9tp-81+=m$8ct=l zFg^|f*TFpxUMv$vG%(IJ4WGOfB31$88foiKcrgs=*^zeHAhjzAsd09F_xpyO8Y_v2u9{s*fB?1e}DZxr_+uWOSvC(IFli%r=I}6 zzQFVZiwCm!Il(jdDHAzoR&H~tokM*nqUOL(gW$M1)B5%?CWl6oe7yUf&|-3ND5$w! z&1EglInv-xc+Ma8Wxl$BEUvrBg0R1#w(*<1(Mn>*nN-^dv0-(lR^B}em|XYmxhee@ zyw*&PljB&m;Uu%H0Rc6fcGs}cUgt=(GX@nmb~t+5mVRj44wuJ0ZAt67_j;@>myu_j zqT7?_6eF>6dbjNb8h8Qa0Z^9hGt?J&M6CD=TYgJX?QRf(U-H-In}ZGV=As$M7%j@; zYAY8Z>E+r&>P7yC$1A~~kdc|T$rlT&bqTwl+UGBQ)7e8YnSa^x z6%s`}&6f0s_QQmDyqLGC1X5RriQ;rRQV+RN&I+!Dpq;!*i4Ti;nSY8)n^bis7s&`7 z5sihH=xxik5;+DoG&5sF?N!jx5Ywk3C`8(B{wRiLn$j7n%PJ5^DJrAf%9AWRqboD7 zrVj%-XFI^*xbY7WqoXc(oxdQ#ROrKyofmPtjjakH{QKl`3G~o772;cDpEL(7e+@ zfyj|p7YPNIP2)1U|J42AT-2HImXQWhp%i81}CgCz5WCCK7RNFDI z!?)F8BNWwsLR|V$$9QdEH%IME?scb0T1*tY0?NEAqZi?Td|uYu73wC4XUQrw?KiqK zOMh5z$)2NgjqDdvLgH=o_OyK$VIsYyv_QUPh*cX8Mh&Sx3%oOL)1AdN?PvkzSUV@m zGGGUJq=KsBcT$QzYpr2ZNuSA@E<Hk&aNRgWax~r~-!z z7S=?0zGcZ9YoFMkWlVr!G@-2*n~T9KC3PheZV547lvuF4 zZHkP2^|`_TK*YQ*djM-N*yE{vX(Z3qtDT_m9s59uGXToTnPzJ zfQ*MrXQdU)=80FygWjt9kDm>+Cb%VfHF0A#phYb(^erhjGe80k<&OYcBQ}Pka~f`^ z4#I9HIQtYxsZK}$#|}P4C>1x`It#^#I4k(C&ar)-$mg|uh#G8&r z9Ns}-LG9Px$R3P(d*Ipg3?Ly%I3bK{g36BMFmjjoe0Ja}7 zV(`v0&<>qH1?8&%Z;=Gr^-#{O?v>t)tDYlHOx zC9OS}I}o_S2x1aqnfJmFk=ZBvQt*%@fB9Ky%$ecI$+HuB*QuK0SIMm6OJ#tR;Wp% z47~f;v)2?;qrkU-gs8PK*v<$k>hM;3&uMi;bz zWID2GaQb+0y3qqwv!(Qrb1ruhAF~Aw)J2$-YsFv21m<#jLpi;4C~@}XPCuB)@xAS$ ztVX0zyO^2luhQln66f9@kHf>%mDqo!U{JRS0E#If*4hTxkTtY^efNYrhCvwr0oX$U z246jLU0O@h&q7`Ta#;RbfTs=Q;HK8S2lgKvGs>RNTo3`6ogbhqD0!Ot8xn7*56A4$ zoDA!UrG^}BBcR%C|!v7kCfc5m3z9WLR zKFVnD5`&)y( z?wyM{(IHeS@NZnq9F!pmSErSTsDlk6?98J;cFM>fo?h0xm$QadtDIKq6H>OI^NS}E zzelqO9&?DMu4s#iEVa0MEB0#|C$fBB>#NL%lB?(Gwb+%({`EsuL)6+dxO=4!fF-Lp z8FsZ@Y!qCx9c|0nO0-8m+t!;EKMvhI%L^c~5jj*`ZwUpIK|QTK3>(tZck+TTl{@`L zP%s9BXFs$>VxO@pN0Kv}91*l#q)SKxi-0;*`CQ0A0y!&*SfAgU(h0thr}LPB?^tIVcAZtc zNV0;U_yQ~&M>RSv)$pak^Yh&Nw6Rzt-lDn{t~C%YC3ZSl1q<&~9nJ{-wXeS@T#jW_ z1G>k3o=MyD2G~L~YkdoxvkE@5^N$nQt8K9ryII?uv%SFWnc}H2_zepT88>PfIt3u* zPh^Sldv^)MxDauXos*V9TJo`WoigHpOrFDo%lrdH1Yz(6`R9>jbH{w3ZO4mJK!aXS z0Z9l%)g=K{1CSupJbC2+=!_K50uqGpMh$DEI0)TEvRf@+a2}%#MCW7 zgo1)~#3I=2UK)KZ^4UaBrTP{fyux6`O42U+x7F}|H(+B|Rp?-NPRxN~C^{U}5INAL z8p}UOM;5Wd`rsu!SO`lE@)8l{QXj}eI)6`S0UqC{92|02PAIWTMWe(*k+3R(AK@D( z#fa7-`^!@MU(2fAoZDIek?xQ7nF#>_#LnFi>n03{^K*puBLN}*+F%!2j+U0M^2fAA z<3b13At8xiHX+$8rXbV>-vav%Au`ZOj2rL|_+<6Wku*A-mAZe_b9q+DkdSDg98FOQ zdYHv3Rq+yL%*>#Q2uN=4l}lC+%~LbW_pWsn(%Y`Y?s+eL^$Ep%l?Xi`AOCb`FUhXZ z$VqWPR~m^Qw#G<2&RyHl#Yr!K8ZU_C*4^xTj9=;{1_^Lqj4EOeb6MzNCa_Z#98X4L z>3%Vd#f?V5i~Wp~wQvvHJ&E4KU+G1_+leqTda)d-F=Nm~x(4)5bpnbP^N_Y6i|_*X z0jp|GGPv`uy^~mt!lw#87MSuxJYA3il~E8lzb9GwJgUr1CsUPG4lTCn29Wo#3okvn zHtBxnkHQ3{W-7d`c$`Iqy?MBvsAesrdi8k*TmP5B1+M!5nqqidTEY#PqU3PGG_FUn zc5(%Vlkz4=xgRI{2PkObTp(K?VQ zatFgk)hGD55;|8(6B;0u0{Xrc0~-S#?~7%uk$`8?he7oLpBOPP7?u5!-z($$BD*>T z&2V0ajOz^P#>1)wzlL9YY9EgIP3S0`Z8@X#iQ|V5#GU>6o@Av$>uL(?@K*W|SPVzT z%Y!6QhJ&PH-lx{8Ji)MNe`v2p#$s+w(&}@@W(=Sm^@WZy$vMNlh33<9DL%x&sSjV^ ztlyg1<-}`jno3E?%|;-0o{1-rw5W#+Z6-H9`Wrhi-heYQIWnGSYPCugZ!*F9k}MAJ zLgG09DKd>v0b7%E9f&6(e$fMgxFw@1$A1dk^G)*MU_{Tm6p%T}2u|PGecpGHd$RM? z$EL{^IH-0RLLwzKA^L_Zk^bOF<$E94>@AYdN>6s1rIR-2QMX8Zq|m{7H<67{R77%a zi2PW8jiV7+s{|$$hF(FfQ)}V7RvwcHebm}rTBA~!VAIpeOw6H9k5YX9q1SgnMvrY9 z{|xpc!JbIMb2G0{O3jjzTx^>udTV8JRClZ+#^m_R1O*> z7(19eQI|jejsH6-KeV>mA87Yl8-~}eHeH~$2;=qF!7$7K1|_G(jp~?1*DXP=G@J3! zB?3~BQu%s05b0Lw5qzXj_|S}F(y&-Fo;Ky`s1ui0m8s8k-5~ekwk2W49yD}g%3ICI z2&R1t2=w6zZO(aAsK+yl2U{0ad8|AY@Z`Ea;J?6!eyZ(e?vGlYTCi|+OP4)0l)SYR zoA@i7orvL(JVf-S(6E9Nj#J=!HI(^}*HUFzq7^Ke=q%Vj->8Z^5zk6gVbBU_Cc~$_ z4*qaqgT5MOj>uM11-=dD&ESZ16bk%$Xihn@KWM4sVX3KtkOfUw2U#^Dipvr~8NNE*Td zHeQ0Cb_P|FgG8@s{-@y9w&9r^mdkLE@2{su%hl}}9lRD0-jAwX)Qts{71ke6TgWJg zc}x**?!Szj6LH$qfgghEi1S4pnC?^!U>dX3B<4sHcwgwThS&&ClE+rIAwjEwY{wxm z7kqrc#H-Mg<$Z0d{{tEohVGebvu&a=R3y?9ys; zi$=OI8O+GU%w!K42c=K3!Q#SBMj1b#1ifH0k=g#26z!i{1@Rc^1c=JFLG>FD?4U*U zy{U^_;QIqVmawW4AD{|;yHmhG2yn!5EHV{`P<8I(UsNe86Ma@AWDv{zJFjxS*u+|1XWo|}x>@L) zS2BItQ>=5{h8$mARTkITS}{Tydq3PR1w`({5`PX7E;Td?bYf z%k9f^&b)8X#d%MujS-W5sp;rn-!L7|WH_ga;l4THZol7&6wbUiavZ9;!11eM3ff;c zp3uZ0YjZ1fBB#P~?=>O>=~7I}kMx49Cx&xLEJ=(lJ#?BcJZKPdA!F+~=Ut)Dz{AEc zma8hj*N2nw#tZ@6zY(d7YrHVzk2_GjJ2XCsHs?QJLS*0(qYRN5*l3Jv+blFBwj_-a zu>fU%`+NO$&=<6ii5iqiJ3OOfY2FwwBkGP+6!E8pqM2~{i1YCtwA4y_0+{LzYTS#l zl`N^BP(Opv`-umf_`ySK!a*mDe@;4Hn$#j_N}14r`#RO9Wc=hb^HpBwg8E^ z%?1hrDY`X=M+ra2v0YkA?f*Ab{}1q0??t^)-iRDK*iz5YUZ*!`n2yAQUuULWwgD|h z%F^Ai0yONZLbIt72_@V~mZce>@a@KD6d$Bw>whL2>#of1T$HoeVT&4XFz+XXg#saOD-Fv{+y{$`&Z@_?yu zrisrK^*H_OSH+*>Y|vaU>L!bI|HW-XfkkWj_1eU**|hF$>JiTbYrDxD4cRKSYbMAa zt6YyfyPJ<De<{%xT2SH>r5L~u z5)FoYW7Rl7)WU_8;fC>LVpJIVsT7nHNJ<30tC+b3w^Hrn8V8>-~2=OOJ-Z%yAEqYw_R|us%W-=azEvLeLUlyDK?AIp<)Oo zMLBfK6cGo|h84-LqXxzBjI>Pcw9)9CcyUK7Ls5g1X&;KJrdFbc2*?CJ01exTU(NJ7 znLkHW0*`IHi1F~E$&1T)kVQCEUg5uf<(n~**^xN zx!D`tsJ67c{YN+=Q^B3D?fRcwXPsT%uoRFr6uD|}K_cA@=L9BFCxZqx*+*)aK#+qCHMLdMLF z``)BcQ;Muh%Fz^NhtDbWk^(E63@#~K4B`*e{_~p2ztVr2^yS2gC!n(j^ksgr<6y=h z2C2nV$jK{jbk=|nmy9l382Tp6k@kunR-4Tt!N)PUX;oO5!A6haat%ePn!&fxxrcJw zVjWeS-NT|RkH!Knh>qc;Kn#LQ{N0VtmL=a(*dkE>-z*DXQg`Enp#Rt{ZGM`EvGPXV zoQsw8AfD&*C3_E-j5c3J?v!|5$&BRS6?+r>-Ay8gw=gp7Sgoyji^&`zK&9LNtOi7w6 z`Iq;kRQteXfJvCo;qOS5;4uSjJmIFr=Fq(mc48b)Ty0d#=#~b)0rHee^iTRn{*DZu zh#^?7b-0qp_frb0=xahv<~B3|^cjpJyf9gj@q|8g`KS-NQdULS3=JWovBS9ANz|wxLU^?QFreVcOlg8&vX} zb;QQvVWh#8n!1ZE@^@^EERu?cKiSvaT8G7e1Bs*J#}X7dT9#)ZTQkU%{SYV4Pl3ql z-shGJyr6VS8A2qB`Sef5Zn$V_{%kIf6Y{6i+IQnBi^f~C1CWFQX|!uj0a6GnTyU|W*HUs8#Gl)9@8 zKRs=5Y-QQUd|qGHNqh+b0{J3QJgkh2am;4ck&O2#^Ir=1uH0G!B) zV)`WZzZrI$nV?38QH?%;q>1=L5DPegX@)Vu=KM$Ntzp8`R5O@CP_fzj!`SIx)xo(= z=Gd01w{<_cYdfE<;WR(c_Rd(-@ z^8QL!A0J6ssFQc4W&^?D6jCOcQUEg57G5=Ec@+iw^7`M>z zoew(!%|k=rLhMj$&!*QkLRRzartR=e)s?(K1|MGG%bbESjPl8b_SJSEybaH$Jklvv zQmpw8{L`)VXmh91#&PD;%OF$aib}#Hl(7MOj-3;s@X#62_WP2 z5D-J%vZ`k8$ay<)Ql>o&^R;X%oVzJhq9efNjG0!?jAuZry4t$Y^dJ|vskwCidCw_M zqqDSjXdmGVzL$e3gU4-t?2w#A`1r3;p3_CJ z_52HvFU8--8jWw?d56wtQPyn)=m~x*FSIF%vIPDQzdnzDlwB7(v`*dR3}MOu zsLBEP!m5G0&4y>=(sr|%OAz2ahMq$?ct-rniG!5Sw=iHz+G}+N!_!$nGf`K%Y!K6&`5I)>Z?c<20|5uDV=3VKk|5op0`40Uii9E8boDsE#(WZ6XoQ`IW{f*Ghu` z>N*dA!eH!;aFgePZ4>PDDw$olJ7q^jmT&;aB;oZAT%v*8SE$(K45b^nE|9X8 zPNGLLF<}nFgcrLj9Vj-o4*|e0%@g|WNT#{iA1+qpS)Eqg-z;RrJv7^8?{R58rc2~X zftE!L)#MQg0PW%dzfu}d{gRW(LriOdh2Xo#OgFCeVaYkjCT8^_T-#g;PK+HDv#~Rr zsUBEphNE^@X^{x$S(4NI;1wfuR%64w@OWQ%mMG|B7LJd8J0HVOvwSMLhLLdYLE5Q; zIpBM&FyK+;N#t3^;76cE#umb=EE9&Neb}}YX~n#$G-=pxC@288OrNA5xxLh=hZjTL(1cA^KUG)`}Y7sj`JA$#;BlGy$`st z?EnC<+TUeF{{SS9$;Yi@zBC;r+Ckd~0OjZ7nE%U@>? zIL|5L@BK61nPMFAyqar%W#l&CG@TkF+iRsM_aV8A=Maz`p8NJm{M0|=>)p}bzQy?H z1Yl<$0dcWs0AZ&y@0DD6`}R9M<^iak!kv$oy8=9|Uq7@mBmGaV7t(r@3n@AcCjgiG zcR4q(k4iK{7=cqnpG7RG5CMx6#{I09obvsfGz0jn))BOMlrfUt-`3Jz0Nz0weRzD+ zzVBlJf7t9NeD(-dg8!d30OI&NiQHXl75ps*zXCYmVlnbw3rPfkAopqh{oGeD1rL!^ zLGe6e?8(ce{V(k*HX{rwW!=bEKs~p8JzQrm;08U-&j3n?^+Uj6#eN-9>w6xM5CTFc z!fh@cJ$Q{f6`=($08N*5oez))#^N~e`VC5O4Y(>Fiz`BJdPq*La<=Oc>eSm4{M+jw&=MlP~XQoQhBj7e~qvkz}48y1h3T+aL z!j!=pNsp>E8fTvu&MdUbfYnIOK zx^N7mdl!bvONB+yDP2Tw@nzu3rhfk$4)Evo|59~k7C@qv;sEqw z`vLB!rd$XtI7^AnE{rt?k-_oeJTzrpEtTp1LZ8zXZLNGUjHJ!gs{0dHhAz&X1<16Uf3A;r?}0RSrI zAI|`I5)QZl4gV=ON9~npIfj|%`8R&+n~Gee_fY8t=rslqYo0S^T*!0Lx_=ISE5p`0 z`#4A=0A%|m0H_rD`}L5{z2lp{>_>p0DNR(5sZ!}cT9Q)%`>otxIfQXzMFC(} z_OIa5yPB=UJMm;BWKBeKhc5pW{yBJFciNzQlcBzWPyGGRa!83nQvjJ3QHYF%6M*cZ z@Ec*yMNUxw_@KEG?hA4UzqRP*Wd{6?J@h&YsOk%`j-Kv$YA^G9K}L!DK+Nv^b=MMV z-SNc)fg~l%Q2VcsCw5zvGbE=f?LQM4VBo)%;d3cl18=9{*8t3JpM6<7C)Ah#BiVGo z2u+=EM-xoCS41~B|0Zcg>D?DXoCDbB;Q4V(rQ+A+g(oxLLsaBNT4xU>a+m?Z?F(Q! zHg-_dOZyfgv&`}J3Y_@0;*c?p0&0OZ|5YYp|ECLG?IY7_6^-@*}x*IE}5vxl|Q2eOVZPtESye zB=3WBV)qE`7W{=c+rU@67l$wetxEZKp({z{aRR|X(F}8f1hfrd^IDBuY)d;9#@9EF zU(Ov1l~0eq2VmMTS;yv-Oy$dKz5H>=+z@oa zfY)z4_w^8fPNOmBj0yn)Ny0`8V$cK3(}O;{u7acvm)}_RQa!*5Zc3|^inz%fI}b1i zSUND+wo*@;8HalKk3nhXt8&tctz>@Fkffw9{qYT8fFXSZ2!d~a)Kz*8b^y?AzW@{R zD*$9d&H`spF|WNFvn#5Zd-2+CG_guRKR~D^Z$Seg&x|#RO5Q4B^qg~HLIFG9J+{XA zlHvpSKDzrx$$cx)zbWI<r3}}!7*HwDjy+pdmo-TM_4}h1U`_6w}u~$zVulj!guRu`0c1RQqwX*BJ zzAHo{WeY>Xi|{lImsTOELau-P>s#NIQ2wW?RcWpA%_ZDWNIkoeTD%K*p_oY`1zc9F z4Z|p>gbY18;11H1)smKnp+-cz|NZZeCu$%JYo>?Ug#xEP{poLayW4pM&cpJ=5Y_$* zU--hhsXI`q0Xo;Y&gJ-#kHVnau8r`z)2dVjrnh z$bw+S6Y;@XnyfRn3?GG+$4YYE^PZP{z(Ex5l+6cgWAb5Iw|#L=!WIo&5_!CcZQ%(x4)JS7Su&)HqWzO?FErLB#=0^pJ$$e|HrG~s=laHpm69q)LDFVx=TT_2H; z1@5%adCT{bh&9SOoP#dKA%EJl09L#b=Qppztd8i4wMzK7tVIsSPPtZH4I8QqO<@W< zCS?D$kMG`SZ`gLHxW!RO#L{4!bWXKLM${|O*67=gRM#>AIQn|+j+MbK3ws5mVj6|t z>3~bo%{Fh{qar9M;jQ8H*wF&aDRE0R=)=JACkU_x_ znhAm_>IoK2fE9EI(el$UTdKez2DvPYnkqA1ofEmqQL0oJ22izhOJs1i2rx>L3+sd> z8N4V?Eg|uigB1*o2owVh2acfXtjo^*FL=QV{Df_w!TRFB0Gnb!rnT+dD6m_EN{!|N zETsyAl2$3fp~W^3USr1vkIkUuaTyNN$=(yji6M{&LPgBfD4T&Ml`}IPW1L2eV@jC$ znvl!H(2N?0OitU3xIM`hh%rMcmUP}63$s6SGBD9zg;q$U1RZo1%2=o?GXY>V1EG0@ z)kynaDN-vCSuk0RPMRIE7)Sh3`Au(=Rypc5+sl7eSk%5CCHPoO@=zPs9FJV0Hs~_O zDrVB~rh|^9dFw&8hI0J!(g&~Oe=1f}-?n`|Pil)KRs(v91c}F{euF~%kc?C4ge<2Z zpby#d=O6I*l&JMtU| zW9;5UX;e}+(Wzd<%Hj0j!T2n#1>u2}7t-3&@V#uPff42SCK3B(IH2_+BwC2A*bf#0 z+ien)l8DXN)4m(Iwzy`r*H42Qo)MDfd<+~1tNAlLNXUlJQ#xK6F_2|Qvq}7eeTCNI zC+}j{#b5;~h8F0c?YYl=Zi|%0x5U?LM4Ry?9-91N8jBOS41)7k_9={87Il&+=x@skHKt65Qo z1rd(RkVdw*HznH;=)~wJZ-r~v&i@cojiL68L#q^(bJx3@4jYtmK&hAl5{afT0ZT1-|np;T&U z=#}D&=R~VIyLG7DE(=26kyctVej%!om*R+L`O^R4nv=+Uyy0Ac*;g4w<1x&IX)p8% zoZ$>-u*!+}R3pZ*N(T{wjJ_1V=A(mIeSiRE%p!f=7K*S%QEsoiU%3{p(+h*ooRgFW47%XB#}gD zCR{!7@W%W)%!Y|o*~&%K3@%}Qgck)Hp5YQ@@Lc- zLhbxoMb-HSS@6PB&hVKGs38(VI!tb`5{L=C)6Ov^^5@VLJ^UeHF%VG}7=a z*<<0&&=`)=Tl7l9E*;)YWy=&-_^?Oo@--uWaCU-3eQ0z!Lel8JIw@tsjQ`|wEa}|3 zG>?>j@^jhv867_&Q!pXR&ON#=o2l7~(6GumQ;#gB2doqN&{r|3;cU9LB> z3Y1}x&d@8zp|KEDy)wgyd?Zoy^o1v9TrjrI{CxATeeG+b8=Azd4)n_5GiOuFgwr$Z z$cnj~Wolc@w3&~ve2Udkd6%s6Wd?TH+yJ8*5Y;{Vx6BY>DyrbmlF_G~cw?UUqqLW_ zL;x&6YEP?P2+~UQKs^#wWI>Z6X-xjZbtamZNCu?+X_7yIZ*<7ATW=M`f+nrbBv24f zJZDw2{fb=cI&~WS`Tw$aA4qNjQ4ofmZmdJ-)DB;{tGb>Ud1`Y6hee1mY2lxKf!{8z z9ncb4)KLV3+?}~e*vJITb_{=QT&4H9w2AiKikTZs{|9Hz;rq1b^R@egTPxJZX7|*F z=}OF}DW;A75a>+>=bFhMBOQ?fI}dd^rhj4y7U$WC#dWTpHT|$cT(NFY*|}(&c0ROc z9$E$Kw6^s|*ZFg^kmmo;YA3ppPHgEc zDBamL4YU|b`Yiw?}tP)v_MaHM@6la4UsD+n(WJaA{4DzhtLnn2QM-f z*NIc)6N@D0p@f(avG{1Rr$7Xe)R_&tSs+pNZk~=a=bZH^0wEGbO`s)W$Zo2G2H5T^ z!a2|hc@RR$I0^Y*m4)~?5WXm91Ua=6`!A4%pI?OT*}JyjC+%Yg8l-^k9K~0OG%Jjn zxTO|$=Ix|meHHzTGpLp3&g}YBp)@8l)8%qeDjKK8$xWG4lxQSy=~}DT!4yaB!~DdP zQk&GF)09IvmuPMpuqK-KZrwfYn|7wgksD!FwD3vW>u@TLSJ=4AV>|w%@eRfOQVQTj z)M&irT84x!fYdZ^=Ui(#?E~VISkFn7nF$C@pkf+tPN>BFU?WxiRp+?qakN38O);J^p`W618AT8PN|MiJoF#`lOTJseq|%YhR7ju zzi1i5&LgNxXs~1yQ_7ug9{;m@WQ6Qh>L)SRblAL#z}Z}Nn{RKtk_$9qW`?S3jb zr6(U7r6)Qu4~hxAAV$W~$3Bd_ph0+teDZkI4w!~jQ92&trLSTc!Fipk&c${y(M+7O zX^0>u{^44g-ULzdadhbr9@z;n2~HvnCbtfF;t619oBCkR`8qgyCCkx>lzza#VdK2TvNx zQO=+>BnQBP0El6igvP@Oo}xOJma6*TOEk!@P9$hYQ zvszKB0U#v1skrvk6ft8F0u_vgC-5ts-ix9uOzdM=774kKJg@r8M^!UJa21s@e^_5* z!||XNu~1iH`KP&j?vMkC*+4K=Rzk=wv{syuR;3Oa3_faqQm$D_5`^8C{(?&Dy2>m{JB=(ee7!Ak@oF zu54*o*EP{H12HkfyXtOIL>C8<3<4^WlB+Ddo?~h1Lr!Jd0K3f}T+7VCAdwR>`KOHP zK07J0u-MA}Z8uX)eS=VPch~tn7I%Gq90%@?U9Pp4W6#$xoy)nL%Zn^?_I#(EJzM)} z{)n~k)s%x}S)KZ4giz8YdT$K{2w9T)JT-|%q_w0SjZd41X4ZV1M0SeE2kGFQCw=(? zJ4T8-%w@qS(UdxsG@K0FXbHr?g<5qZI{`}P$B06}zyY^Q{6vP#Lp=y3Gf`5LS}(v6 zIHd)pA;A|5xz|G-B3!T6QUz5>N=OKTVEDNw1|?Q(kc}RE#3%$#IX-2D1QRQa79+G( zj>6XXm@^`>!9z})NH0AM;hFYD{#-IssbY_KzHDW~px-huDQ&1j28S?7u%aylVdft=7QA8 z(}~?Fqe_x*)1=0XA!pzj;e1Y{`7{n~?0HO+kYy^;Ue-Iz0tO+AJi*wvCKbA4y3Eo< zrA@%oJOT8V@Fu@Xdbtd(?kWqi`)YuumogfSp9~nipyWPsH5Th;ifF(P$hG_*_Ra!F zt{4WxWv-~l=)nu;=!l^V;_mJdmigCw(x)gHW_T`a_9bx~`_1GJ*zpu;4gsg3)E)6L zpAClIHMH=9MkGux3FfvMm{1{PrxYw)Tqp;GJ0Ep0w4;tXS{4|+uyg@KB#22J=1L8u+fWj=bX3Pfsg}5w{ zz4B@xVU>=79EO#*V;&-gkjU_#EQ8_qjU+hT%OA_x@0OYO|w`I$9uFW3PQeVwf04Dh(5I(`AITr}o8R6}E0(hXBoX$G(q^?T5n4 zl0x39Fd|j66z-AYygwpE82w>Oszjm;c$7r@R5Gl%JafC(%>bs4Jo`l%qL*#>F@ z?FT_7UODx{qv{R6#0@>SoJ~)c9kam7fQyCP4Gy8^jl)rXxm?00&id-~Sy#Mkko&Vc zotlr){Sredl5jmB{Qc@19=ef5j@-sn!?Y!JRnO;hxUCUg$4%Aull_ztj?;0|uvV_f z#Qmz_Ny%qVPu>SJ;J&Xzg72_VKLsOur3?HC(|U>t=wa_xG%^jR66P@{&X zC?-tsg}~<%HmAO#vi$pU`B)r=4(IYD+gKdi+k-jKM+q}I)NjkJ zIsXSv1klW>ZyE2RaOAl&R67j(rC32#whY8k>aXml6cL=9^w~|{hqiAhFzmRisjO#cPa3( zs6sj`47YJe@h~w*`&tceZ*S~KhB|+|xv*3)`hVA+v}DLbDnwK4ki|A#)Gi9g-j)s) z8b>=#Da*L2Y=*XJm6x(ZMwDo9_+;3}!h|RI^J09&j8|X&w3Y=sBO}?$_vOu3Kwa%Z z?_vy?vj8z^J$oKAe&kU;znj|kxTkutOg<($zdTN5jQyjYM(kP1rbWjz!k)r(6I$Rk5Dm zwWnw|Qppa_30ni|JB^8?SuGf%iRtoYIlSfnQzOQsW~t zns)(Im->rxHHTkuK+bWh9fLOZ%MWPPM#s&naGKi0r9PYZ&k}fc=%1SZ6$*89nPRdW4(i!GiE_d#1jz(I!y-)bBS9o~ zV)qu~{b& z!b5WP`uawH0iYBg6XT8;ini51E-AB>0ghMr=76=kC|c+Usn9qisSS^o?xQl!u&ai1 z;wvJ8S1aTWi1C$}kURy}847PNFx?!VZK1SpIYEy}VK*9a%QL;-yV5NC6ln_`Hs(h= zQp4X?dz+)*hcD_!%!q#aaq+=8X|xm>fl>Ap);74%D1Li;b9eU(a5UZ<(M5RWkZ3f| z`j>JB>(C{JmedxIq!LdjipLCP4u^xQ=3-SFB$_WnVR&CN+Vjx1Jn{bi9+8(&{D~yE zNoZHurlq}Lvzk5%g4vx@9%%T#ze!9&qSmq5{W74#RgR6R|Kx%RJT0e zh5oa5J~^%AKp0m?**xCp%^L}cIRFx3gIKWQ1T2wQA`XREaslqZ0XP7+m@|ZUe)tog ztW=)mjzy~x@uE|4m#h7+yFQm)_HN0^)iUnnJQ?mB>oycN!0*j~t~=<|3LAeL3soK~ zHA6t7qfqI)KE+gLt41#$+pS@E%VD0ty546>yL+RZo>#g&L3GOC4m>OPTQ_j-wxiQD z+jsQKAM5+C=G(=x>mMZ?K454X{0yXb zIXpbnQJ>%XEW3tfJOcW&HBwIStcFffTZ68UG1G?rTI8!WnV`>*GS&FpeNavLFsoAg zJ5q#bv1W*}miJL62v|(tva9M#*9K}`OVXG2~7)!p|bQ<+5<)k;j8y)e|TBk4bs zRhwzpV&W}v=tX*5W=q`6Jd1i6x4sqSEr}8y;5te*FDFw`ermtK$^l6I!Y4?mJrr2p z&e#__IW#e|f*Rz9eZTOwyT8B3!q2#h)$!NY*DQPnm~IRZ`3nHW+JAa_`ta~@cXy|A z-sb~2Ms+QUV}GVf{ZPi6o15q7X9m-Jx#oua=7v+pAD1xy()AC6dkY?wg3~6&?qTSd zAPt=Q3A>bs=#L8F&p@&|mM5Y5&U8nR0txn?NyT!|%pEPmy*QC~%z@Rna| zt(EH$0EczT0;77apEK^5IB^!`RE(w-z`f!7Uy9Xk9haAvPft%*S69q^$AcURQGWgK z>z++^;#073vgXMHDYD1vsI8*3G8&Nj`1p8yd@M6z%wZ#H_W;hRAX+N9vN>pDUCHf0 z`M2bl%8zE^jIvjp?kn)Ck{_3-(gD7fU#B5{`|BV5|7KqN$&Z$H?+nUID@eVDbRXKf z*=n`(G;A_qI#{ZPkpkCFUa|3cODL|vY-Tz{Duftyr*9BOA>tv@@vV!Ijv1e^XmQl< zB8W}?4WYn;$$ewck9mYqvzUc$b@u=sk(dBuN$#j*EQDD0zsc>+2crx;e_AujTq-bB zhL%+hEQ9cR4lzIzO5r5YHU}kyg3}H<-16>4k^{O@y!;}ymfQ(FnX5dM3PuTu1kb^y zy!i}tWd>8?`T4ng`eZ_P-e8t%8IY*j0B1)&;}a}&RZQNBhc$ON#z21N*#iDpH`yAQpebEdP9`b zDg*Vk!pj`s6e2HkUKT%Ex#R;&T8Q{8=SN-3HSblYMqPfc_z}X@jXT3Fa_bU2;1SVr zy6HqS@9kSbjb+$)g-4Asw$h)dlszuduV|K)%R zXYLp~9A#jWFqF5P;Lz*rr^P~Y{K7y327gQB7%g303Zk;073!;1Oh;TdjU8=DDe*N z>7Mcu?&*GN-Bvr>e$I1GKYO=3ze&Gl&oj@OHEZUa`99xSv*vF+0?D*V?M30=A||Ey zWTHaEsWc}awUsA(yl!_pyxJ)yaFfb%FHu3e`hqtV42;6$ zI6J9p@->$$?b3mUbn~u*mh3T#^`t&-zo`4{|a#f${ahBDG*pjIO4;<@(fII zs;1zQ8{wIpzl5Gu%M_BW!JwD@_{l5TYBS<;#k_Hm>q<%pNLxBtAS|^%H6kPm2XJKM zm^fw1l#LrVcI(z{%a$$S*Ld^hO;8|^M28L?K7INGoaMGD9P{GEi(R{R#YSPEfu&2A zjvYI8#flZHSFiTU`t|D-2C1nn;9$s*AujKS6gO?!)Ujj7BS(&S5!$dBJz&6qWy_YW zTeoi1s8N$APyYDvW0I7bQ1ju#hfcS&Y13xq%9Zoy&vy*y>eZ{UB-2xX**<;xfGqT% zHf@^y`m<-xCJqC_mM>r4qeqY3yLS&9IB>#*37fl(8gGwQt|PVZ(+kTC_+n^fY=w!k^gv5B8MB*z^7S_k;vC)ps&)-@eUy#%tWT zapFg?jHh+2wE@?F&eNw)w{PEm$&w}1>(Zr*4(8~Dm2TX)apJ@Yc9=SK>cWK!wdHWt zp+koNL=pnlhbYxN+O}<*v2NF{9ewIr>_hU~w{O?1StGQE7dvv ztBVtT^5lv6V7TebutwjYGqp!CcHt|mP}fx0x^=6eU$tr#?_m-W(_g-PnZ>lL*PS|b zx^(GM#?Af_h^pRhU5fmVR=Yk!f;6PSaAFHiql!eUsha9BmA>Ytw6ua3^J?EnQN0%a zvkn*ha|A0gAu3x*k(nCg|B6;O#LdrT4;Yo$TQ7eddCf-4oM8_HdEvqZ@ay8mi?CzF z_ysKB28;LJy?gU|@qD+Ksv!iZMbyCxkQ^{NckbL{$Bsp~2Nf_4sI-7 z7cCb2Mat3v^nooP%h#`8w`kEKm@{nFj2ScL&71f1>C=b?_v+QF(W6J>Yy0)x^X5(S=FLGXWG%Er&Z$$UdiLzeEMODm zS?1``qm&O`u=uXR2tERxQxC%XrWXKrR7=ztso0-2E>PBstj2(I=FFKmapJpo?--3@ z%m}XCzki>LLUMsACtWt7wCmTeKX~u}JsB~IVQx6m0e|#lI8>lZS;^;=-`1^LtHxr? z!f2BwO(HNLpaWI6Zrx&Sgs4A#r3@N02+ABhcrXQ`^-PHfQLS{)1cT7rkiC5Qa{T!5 zhYuh24WOqPgf$HkEl!_49gZ{#G}M;P9yoAd#E20|4f>KXSX64&s#Q?zn>TMZ6Rupj zqB%lNo;>MO7TkDyU zf_?hmO9-!7KcmP6F&k@0T}Duxl1nEmd&6(jmsu^KG;AWg1%09n11;I&w2FgMz$h@6 zwg?Z!@A?8}q++|$R`)28z@|NW_CR|$Nb+Gm)kp>wfs(ar*JeaX8Q3BnIzb$Gi*6`e zm2-=qOt{1jES#qhle&HTb~vL~uU`J7xfWp&Kt~1`&AZVtf*8aF3l>1SFp%beIWd)B z8ax?0*fqul2CoU71ZW0mnl)>NbOecB@9U$q!g9q`5 z>5%FdC+edDR+I1AwX4q+w~DchFa;EN_UxG#v9o|()B)ek7N_7L#n^VQJ=s7>(_rY( zp++_~(EXAb!ttHHLu%s#1A(GWXHdzAIH0z8@#6md`^QlyWH}@X;0g#8`cTZo2+~*I zG4YTnwY3rzFr)YG-6O%YG(Q{5{m7NNd$T_2&+>sk>)&YptiZ-$HC0nJRX?S|xx943 zs{Y^q|NN7(%rA&m$sR}t;wZu-in%JL0CR)G{2X7m_{1KEIvR%^cy0AzzD zOEx7@ghyvPmYH0&B&1>K{uCShLtDtELC?TJH%(UmvpMUpcUgB>~!0f3Srq(wP zl9hXCxRd(ev4f9$_C*n0qr6duZsW)lJ{Uc(l~7nxh-w`^e7K3KPNTcTD=FkZafDp` zdI)P@@oL%Y`28kRu>Vs&0CP4GEJYnDre%`TRnNi(`{Js-tyE@+ONuJLM^RqG#yhq=YnS+M-%q3{PfVFY3Z|UuR?gpk z``3eq|M=yX7t-U$kMH0A`>((L)A{F$eYeMn>K}CKHVB5|U9*z69|f5Q(AcexV>+=a zCkJWAQ>J8e((nuX`t>WsW4{=DvEIjhSsYI_0V0F~kQu*H99x`6343{JN1ImwKofh) z3eTTE&$}`2%#@H=o(4csE)x>+M7Fm=pmM)aNGpZ5r}1`F%2Vo54m%=2p)q+xY&`XD z99M^a&Ye34>%?6V1%nuBBMA5J-_HRzBE7RJBm_GKERNQtKa7%?`Rr7@7!6T4`y1n> zITUQo8_8-a21kP0FkC2*``~exuDtF8mpV=qxStJ$kf?9GWZ*(`MqB8~C`mj7&?6)3 z+Crt9X%Kg)gmCYM!kkBurc7i|Quz#S0NEpAgCSNwzIJlZ{Tf*=!ZA9jb4))?$N;I- zK6BQjCeTjmRKw+u%Ko%)Bmvd7GQE5Xa0ZF(DJTU zE5;SAESZ@tvy(V6GhL1^aD3~DeD>6R##P5y;WWHt(VGM((S#44?GVcGd$|?r)%R;iAs;mb`1V9 zh^rb5^?sp;q_h19aeQ#Jr~F#;>xjaD_>1A!yDqO4URo>_WF6cNLvnl_8Y_LO$M5&o z93#04Bu~ ztpKk|+L#XdE39cS6iCL1h)2zU5#;|w;N;Q#gcCPRG6iBz+|n(2LyCAG;?D#eD%gI8 zL1&4ZWY7#Uh_fTosVDA`L8pLC(&_1Df*nYBSPUGIXgp>+VyIx~$q_e9@fBl}$dmV> z2)S(X^MA`C0~W~%d=W9Qu|!;V$RNA6$@(CM7HM0I%wEmbw{P1vW=v&KQ8APqSy_3Y z?!dmidq!7{p{$zBYL;egO=;y!ufqLR5Xl7Y2p~Y=5-IJ!{_DSj0|1Vsh#@(9JiI;7 zg9pr43$auMj|zJiQs5>EprI<1HTeRmP2iot3tq~fse*nqR^eQ7H~$f z0kuj6bKs~n2lrX1IpF=qtS@78`^-wEOg74+{rKX|Fu!*swYB|$R5b%77|EczFV+U^ zMFHlask0fe^qXWbbe<@6Ey>SI#M>X&qKWL=~o1tfDD4|5FybYQla*ZPX zGI3BCjzwcK&6qgU2I6Y(XeAHVNX8Pjrr_*gl}kg8`s{X74+QmapWSI_I_Z5*7qwb?p$&x9^&Y#$ z(s2q{*k!i_j4<&8ugm>yh$hCty{)ZnNghWOyumG>3CE@-U7ekP7IeTwv5-je^qF)P zM2xaQE7lhcnB1-3!JiCkdwUy`gBswLP{c4ns4zbC-o7YZrXc0ri#)S;F;Wr01nHp^+$MmaT<|YI2b`hU zib5A6@Tin5n0mmJu*Z;Y3#ua#SOz;Y)wdC!x3Vr51{I7e^hYU+bv9yRaiWPp8Nn+u zSr10?NrAZPnsPyf4c`72y%D5$5rqQX>F6gg3SeRsB-BBTU%ClnSd=WK zI8QxVBI*smcN8~aMv78|&;$wqSx6CV=k6m#nUGm=^&8iH*qsp)#D1-p6BaPO2mP7jr!-o!ut2oj#VVw7O(jbW$ zZ|TnXpkox%ny$Y3>V*sEpMSvx!LA^8k<-<~ zM-H-&96x@1=gys%Uw#E3lbIm1$xeVogH6p1sLL~*jvhGzI)O^-*RM4#o+I1nAYNXypc(2(v=I#%CHx-g*}Sar8*@tT9~GIozUB9tQ+(OT z+um(>CK4z zEKm0A*?s)@iJ3LC5X_>~w{*$U>C>hmeng7Pe7NC;>l>SzjvYUWk#1iMkXm@?@If@j zuD|Zu)vMPs2WHNkLGfe9kDqt``QyfpXQI~C)vjK>1_sK?6)Vch%Pzg-vaar4CR^(C z7DrIvU=SBP(ayH+s;ZGy6(b;iJYlP4aNr8}R&KQQy}1kCvJVk)B8$fo89o!@b+q?D zO8_q<%gA9-s)L&-OFYXE?s(vpVuMUv+>tVD7{1_4M`}((Gk_1M3}*|mHLsu&asz6CZAp_nI7aSullD_qZm5?NJblDq|BGMzB3xSpwLFzQl?>dJ1!x8@ zvO2&41w>*>k2#mznJjfYAg5xsc&>8Dxa1pg_ac51V! z-}~Zh!AUBlu|-pF6F4a|hQY$r2?}7h4j2W=(F^ec3wM)az~hfU4iV(8d}*YIw*>kQ zG~~17^a9bCA#!agl;qQ;r*wzP-5rtUVXlNN7ux{&0Xk%6N8y9VkVutcf~md>-4sJw zPD)tu%S7TSHDD2i7cIVgPF8}CshLv;)p8bM3qcha?+Q$E<}eMG#*h=kCeA$KI#-;V zQk$=q=Kfn3shOrmIXh#2`P1XQf+RD87bb&Rp-3n!DE_zq_|Fr^j`k;WKRJ^^H=wm{$|tN_26Q$i7A0z1 z!#}##`HOQ);2t?i&mD`wtw8pCCmUommwgo`h}=;j-5o<4mV zs@bPzk5itBb;s6Po10_f#;x1Dg=@@?+&O0)KXHPU?e4qKjMti*8dy(sjYu=IWzwX{FTL~%NLVdsgVN`x1M|2e*0`+x zDFFB7qaG{|j%wk>roCIQkBpQZ?cO^gSX~kt`TU`8Tv>5np;dXHW8?WF zC+z8XcW&`*9ntQ$kNrr)A!z_+@)lw*+m~^eS?)Ye*6SDJzZV( zCr-?qF>U0?N~Xl2LkF1>;YeifzP+4SL!lu4vJdR9Ek+p0Ze|!kiX! z5(ay5+TyHdBdfP^gG2{t+$v%hH1^QW#Dbo$h?4=VO>C0^DEyLNR3X{jfgtSna4W&1 z;?xt&%2|*M!e)TEh*dS7FR_UM0Z7@M>gxLvX5iT9}^+@gMX__Z|+C~jf4BSIDVFm-vcq#TzSiZ}RR+5v~ zrLMeipf%5c)qg6y14X&f9w{(B`$IOo5lUjj199*q3Xy5NxORexD?Xcqw!*VKDbi90 z7#P^}6gD#|w$K@1hoAx746q%@g+@tX2*Qf(4V`a~u%wC3r z9fg6Q?`Ze(bn)WFa(cnv0&5c<&9aj}(vnkm*S~upK9D*=7Vb!e<$K&o6HxQJSyT8-A(9^Ys05fc;rPM9cGN>d%Fc6wJX^P`+nxc{}QOBJ} z{!Tc0nQ8B6a~_*(+#dra*)7d2EbJ`DEiKJ}Y?d-k*6_pFGQRkQFaF1W{5xh06UI;IXz$oxyZ@G(Z?3C5 z(AL&^&DGa%0g3noJXp6s7R9CDT=a;}Ip^FHC+dp|3y&N=1P8aQtOS9+EY$F2w{PDz zVnoG*58Tg}JNP-H225X_Xx!9|zC?UV@j0`5|9WHVD#?}P@hsxlTfD!3Q z^aPB8kXF{6Xt%W}_^QAx?A3dtPJMw{O!s^3mXKaxo3TE-H)eOiUI<%7m>&1ptzoky zU~u|6*=MfHbR4j&U)}B0p5Ez6Zdw8Sl=<@)u=M~5fF)O7b#-q~3^Ce$_uY#SkHZFN zu)Ms2i&<$&)6uR_^-7?nkQ(ZClR`4@~}HnKsErMxxev)d%?*He!0A zh~l#FsUzY<4-fVv^aWJG--3a(Xwf1rqLj=G9&9IZ-$OxIVpyEuEeMo=qNfOI0fN|N zV{5{G53&Rb@Kpo;_~1nwRk&O{<&CLkSfnE#=NAu6II1LtPaRGzDwtTAsqdEKsR#{I zyTGeim?V#U`3QW0m{{2p$M6UsNT16Z7a11^hPo)a554;M(ZM=X1Ur^ugfC`4tS#M{jjOZ%1QwQrKLaw@H!xMAA1&Nif|nN_{W#0OqpDB#vGskeRkJKC@C$0 zHEQp7W=x;KQvc41cdoedO7;bo6tb}BA;ha3!P070S5HfNnwx&z_17ip3@P`*U7)J^U zZn@<{^X6Sc!=o{!)jCM8%K`%xnB~`0J<2=`8>KX~zNfaX`}MO*?`i0%+tKlMp;2*W z`E^U{e^O*lx_{zlHnlA1jGs8K;?B2^JTtTGyp;{V99?k1^y#AL(fibs?{r6Q3 zzfEX~vn%e{(!64N$wkW=e=xP+rrXDTVRggrLq_DB;tydt#C!d?gWmP&J104>iUhT% zrxRwA=!X67cfYNw8pSkY5YgQ{a`=b{SNHEf0C$7q>H78S4#Fcnbg-qVnc;@JfpiWQ z44{I&3^vfqFTXT)-1tU9QzKj3lu1*zZr#F~xpC9R+I{4;{y(>rK02fL!grc}wXb#U#UrNm#G?ibU46j21`YMznY{hj=V1R+V3e-~ zl)%T9YVZNq6R9qT0J-K-_CJOYt`#VakBuP#1&T5yBdQ>g+{Q`wsZ*|GL>5e0!I1>O z9QCB4D|K5V`yZ9F5mHdh?RmA5oC-6Nr)hpDMZQdNCDbM-OdYvsRPrlfH*83nM`I97 z(|)nJR=c&_TuK|5RJ5NwAZ+RvMiI>e-@rVhdCC=l8arhnPBz{yy`U0u%2n@zAO&?% zn^Kt<#dtbz@`D0qlznhdnM^fmQe)Gxr7II|AE2$ZDFs7#0!FO5t!pAzL` znVd96G%KWQDg#pyzX9-Qc`7V(hC_8+Ccr?hk3Xe1Z7A(M71c<%Sl z!5q5q!i$<)TGcl~KNY<5a>J*PT`K$&#$IZcWXjOJa&v&g9mj+=;H79MfCl)q8dn9pAxp_G11a<#Wyq;+{RS6KhGk)CIwQE+-s+qlD{`~Rd z$H^z=QQA&ew$pD0k9pqF*~Tr%SQ8;JN24dX016KR29?2A%&U>@ascML7M&mLoG9C0 zy`5d1{Eq`FyBW)1L8Jf@boX?#1odHQ0=KN7Fj+rsPU`m?8cSRxQoy0ZCODvE3-p;p zFbNEs3fUdv2~40U#o|+1T9UNZjj@@MojmVr4TY%zJ&+_EF^0s%hOiKuKETzBIlT?N z`$k8mTUxL+)=+4bh0I7-q7^xQfmzZWZ-ZlqaP&~mrWqxd^u#(XGZ4~?I}=SC3o)s|B?hS`S zBSus*f0D+6PFrg$dt!HY55{n8{pjT};tAVk9Fqgb1vG7=M~%jE5l=acFKE(6buDR3 zBHI=b<{>ISKv@1`&yww)3jgmi%O;CEm-Pn@){ZQzDjgYkC-}?0XlH3?>~9)=`2AVS zs|zmaOY~7s>J_7gncz?TWX98K4|0D>I%rJ($iW(yorxHeJaupn5OY5HOT7--V6q* zf#CjA1;r-(lQ=_~Cpeg(I^scOp+FjuQzwHQ2|V2Ka3+Dr2A>#7I&p!0cJd>amwNP< zNZO0~Yme%hYERnWre=`INnE{D(z6GnD&JbY<_>brHRbfBu($TfJue%o)|< zY*@<&U;SwJIokMuv#Qbg+#KsaFDumlkMC=Z&FvTOwf+4Yz2{9c4))q%-Eg$Q5;(uX zhJ0_;yU#rH8w6$O^=O)(U{nQ;_I#qc`q)#s+m3A{0}1T;9F4^&%>xySw;hU#1*&*E zQExGH0_!kCkgC(7gGD62)S%2C^<)7eWaXDQh=eso-a--Oe2SWs&D>z-iJsh!P@y1* z<0KF#SbD&w$4Q4x(1=8sRAi@nEYdMMYHC)JwI2tGlAf^RAS!AiFW}YI5@yop5y6sC zv$GRJDN%kZVEtemfh51fVXq)UQJXF#4-AYTbtEG?4dfBfJgIf+h?WJVSP^wYb}pSP zGO)65^6T(0*(ve%MS_feTKoCCwY?3G+r?ISd*Pv%>b`xXcgIbm|N6p;yY09^6;f?> zU{sh&u-|x;7b#%tNf~X<{gwjGpB zFj09#@?Z@L7)2(IcX|{M#mHUWt~LhmcX>|?k8Iuxs){$^)`DK zHuhFzjyK&jW5z5NL^wVE?x1-j8g;ZvOWPcE&NsE+eW-9;so58IWcLCN6$JIAwY~HH zw{7+mvz2r~1%oEApp6<;wQ1vq#~=THk3asO%15{FU{pE&R6KRpi%9*zjsk?auRit^ z^y#hcpw?}bU-m85E-IQ?{#ruks|O=L*O{_H+f9{7EifCYC*Lr*AtOf z5)5&qOC$@DD23+igHE4hM5K)=jb>!k>{1g?dLt#$b+?_=%*3fL&(r65L3wSkT{$~e9Wn;x2!vl=^e68OA<%43)&H93r0jmx;RjAw| zWk8my{NV6Z_(?wK(q-G=EWAB?zgJQ+Y_QNlT(JrfGVh&GZ^%g!v)~JQycFso7h{g0 z-Jz~iSBw_V+2ub4LNvh`Gl&dcCa~i&nvC#;?88#fPp&L6d5=`qTsZ3%cg($#HYUe zr7t4rOnL?PAB<*x@XkulSnvPzPI5A$E4u66jTE3Jn5N$r$}kR>kZso-kE`8N0Ir@Q zix(*CJ8Y1eQ(NMAT1L8??XF7y;7)9igV7?c3rW9s@JlvE)HjeMWst;?-{K8AcS0i%|- z{ZQi9mxV5w80xcy#3sVNuz~uB^W=uEHH~&n(CD>=ouUuA4?KlkB!A|3Un4#1D&?QY zJtLB=6I5o;AQ=h#&#Q%c{{D8!+7DIT$%@P9e^52cKaUpZY5zQ`%3^vOM$#Hb$LIyA zKgzRFfTc+2c|Jh)9J*~-`ddD5_;M1IWv=4+DTt7|bF1_$PPDn_*m=X6tVaQwWY}w| zK|)^Nj-X7nQmLU_!;0Ti9(g#;725te6Hq~RA;l?%-~u-k^2i6@SV(22wzge+Y_|Ea znlN}D37yH9@$(P1RAr)-BE&_PiTC zX*A|*&2rUF_S&L32d^pmonApHt7S(NZ<$LbWj!t^BBZ5cM=^QiEs4%t`kCs5=ky&p z{C{tD4&FVObBa0YF#&QPvd}rnoXAC9&ZiE2ae?drmOfXpG?sZW62 zv`?K^P+DkoM{VnU6NiXpZadcdk+<3l#s^`v#8{Jk)0S~R;>Yp+#B9w8;Gf9UI}=XS z)@Y`a>iu7~3|)$!yt4{pkT;ip!1Ab07kx~XqO04?WL$`+=aG1N=H!2F9Z6RyiMW+0 z-8VqkDp5UlR2}l$Pp5njy05Aej{K-kN-B4R$gH7?{xSe=N~O|Sa-~t8%06&|sVG-Y z?{gb66gqoIKu&3|ecUy(R%}&8lnYFW_lHOGK{+at;qwtDdXK4(Q&C3q6b-KO|KHz4 z@@10eKK!|1+~lQ7cG%K))@#4LCOmgkpeLrm6P5irU>Pkvi65-$&=T6Lpnfdsn3>Tg z=}t};-Xz++YKa!N9w~Ys5oJa;5<#$8{QUPLB6GT-bYXG0!D?G?8|iWP(MBGL?(|fiZrATTmhgz zFIQP}aMZ;X9!RvcwXLE4*u+UwVbO^PpG++OhAwOcdX|{luDEtlvGvIdBB6lU1Mkxi zYjdq2V5~jd_wo51GbZcJeIn7z^oX**c5hlb7q`Ze;qallv`15`r=y<@@AJ^X1F7j% zqsHJ<1z1UKg@wgcqen;LJ=^QF@81}?Yj)9Rm$qqr+{LepK~>T)B1kE2L=#uu-Z&z8 z6Ns4?)B6KLCF=c|JGx60o&3LujU`LEfLI|u;wev3_DtvGH{D8mMC6}}e$!t~NQp^Y zevNd{tNP>tjdkzLA{yt%O%g{XsnRKQNXg*{StKz%;<%a&X;p1{YLC^gix;hOq{cmh za(SD1;Cr_`qXcv zZ&;5fN8ABC;b2@|ime+CgXk>jYPBJ8=o)5NniJIZ?qiAnzN2t-sns3R=oXYs*iP8g zPPE59v!qQMV*v459Ve85-IDli0YU!H*S^7BV&Xpz7bx@Rzw+AaixaWvRaam6fnOA@y(_;#+SnzV)LY3K4N- zRAZDHcf6UCj#~#nMN-qJUUS- z>y|rNwUbNl_V2Ibipcx#zaMzCWBWE(qdgSQwJ-c@vJapv9;e+^(JNMjk z!B4w)?Ihc-o!h~kyLRs6FXA94QuiM?+|k*&d)E&B9jH4jiV8#2vFONvw&95L-K)Zv zP73xWnBKM=;Vd1buKjXd$Lq)Jvm@H^I2KMB5g$UdcXZ+n8h2@sYs==%+qZAWlgp!z zJ~n;YRNjdnx;=aL?%A_@@7{e|w`}3+xW^uQ?98*yX{bLwZrpg7nso;b?A*C?@7_K8 z_U`3)P*hU(@=JdNp+54^0~%p}$5*c&QQMMu=%tRD$yQ6uv0eM3;?v}V@87)qbBAHp z(R}zIwC)T}D|=tAK~i(oqlh@N$f9kjpXvwFThO!QW$8u5MW`N*A3y$I|K(rW z+S|GP^`p1my03O$aZzz`NihQA3of_-Gzttlbok(e3FGg-?_RFhIC}KxSHAM)Pki!| z)2Gkav3#f1djhz*|rwH-qbok}jt6RRL{P zhjZs-=WC)NzAwH-YYa2D+9{><{e*;B0gm=hMu;!J{$01j#d;3zL$y5#r2 z`>iCu`r7Mr=gir;V_SWF!`Hv|Rh50_tl3}v>Q~P>=j_d!HlP~O+t>T~&wo}u9W{FF zxUpk)wYPrt>;L_&|Nh49pMLzV&0j5zjGz0*hQe_s8MH@94P(M5)7a#Ppd zy?a|)T5i1YM()aQ-Logh`uD!v-$?l)Q>%~LT1goyOCjIZn%-p3X)Pb+7~7B7rykx-k#oIF#O(otKL}jCbdnho~iHN_4rf2{i~72b+gBQ zebsR%8kiD^HzagHqWO>l#|I0~C=Wx2?v|%4C5Wf)fd0DoHijjTALMr8KKgYUxH^GE z@*z9sXntK*K`h}0E~LwWJrEW4c6Wmv;o|};fl9FMP#c{!t7gK431nEgVnsuJ{gqc< z$$1?%XD}43udo09_rK3|2!K>^V+>$ASXZ}x{W|dI%{Sk)WXan=(#tQuyryQ>f&Ken zm*!ICMwiF{E?WxdT3w_5`^&>;jScj~9bE+6Fd8kpqfh(E+U~ub_S}%s^TDUQ6)@$d z*0JNp!91?1shK!&Qb$L}u_K3?n(C)jS3mIJgV$br?M*k|^l$(6?-dml3+B&Xxneo_ zqp=t>io?LHnpsHks;WlW@jlLfrHP(Hlcyhg<#+dl-&)l<^&6|4xfOPkZ3g-wL0W3I zqU7vlVwvj+sQj|F@axS@keXFC6%p~d>a65Ri^z)r0a9vs1Vy@38m2{3*?WqNsq{=6 zHC5H=3euR=hy>Lm)pFG-6}*X%>XMI0e|DS)4<3B;%{Mn}*syx_YLq({FJ64$zyaa( z`3ZTY1H%uGs%ez@&72alz;gr-u;|e|^_%%spAy_}k&xCANpbfvl`ZOiqr^`g7su5R zpF?h@G~1+*(fe8fLKfuBJt@3ra)#rjmZ!{1IVmBls|xh&cC0aD$ABHtLHyXqK8mpZ z<(FUDx^)YPXYAOqD_5?ZHho$+5^id0I&tDeV?$F*b8B-;>)g3#wzjox+PG=kwrv&V z6=*=l;;}Jf#$t|h?AWpK<0nKS;S(p0H#9V2e3K(HCN*mEn^j;JDm0yq?asf{ST|1( z0YDMV8)AoRIHsX5+}ZQpH9conneFjx=51G3cO)EU5TAekxyK%Rgn;?c#7UFxyz6eB zmXwrsclG?_M?d-Um%ai*-MxGF6Hol=yz?*MQ7{FIsoz6Tz8=;8bCyXWbro)`;b zH4)b^I6Khx=3igh*mPn^^@qOs-GAP)udWoIQ0{r6%cp91eI1Su2K4Zbs7L_nHHng_fP?VMOzryRt95@WP1`CLY+oUzFp0 zgz3hqR(Cxue8*H7eQL<$I&2TLmmwEN1@GeCA36C4s1l$ctcMned-4&6oUkVMreIXA zgcmBsV=5AI|54=ZMe1y$dOes=5#oLlD|oE4AOEk<{Oo5x`|_8+vSi7MmtR@<;~)L# zhd=niYp*VN>#esJELiZ^P9Gg&L92gr>j=2dGd*8o`3#@ zRjc0Jx^>&ag$tg2_8E$yHu~CYuYd7NU)iu>Q+atguNV^iZ^(^k`(Rv~9CH5ZoJc`P zi-Kcx(shO+Y?V`C$Xc@Ty$4)_(=M4f;P4ofho$N<}3 zI9SJy9qsGu1rcrS)x6clRk3Tgv?P_VA9PEZBey!Vm8Dbh&==ulwazI}%e zAEs-E4jtmCN%uKVHZ(Lq3OdW7kvs|;kRd4>X@&@p2x{-&zn_s3Y7^&lL_sR#;3@@k z-#dnqX6)FpgBB8@scI}xYoYPPX)29mCNRo$ibo1)QiMMt0-1rK%o!*{U({{t6d~T$ z*2cu>?-oW1jv6(JmVif5ov#>Kp_zKZPWZcM8^c@ILEXmWzXPLeFP!uMwK;|k?rAsN zublD!z^W!#cBg_t7`#6g?<+vFm^tM4B~NzOJ&dZVT(f$0M@MH(&5TJC$8FraZGYXt zn%QTZI8p!V!UfS-blUW4eno^}8b(h~cS%W6X=xF@hj#7W3(o~lLo1fAm{oJe(WA#+ zT{yp_xM9IFD!4@%8g<}Z%Jro zRx2nk_T}1?6c28bLjlk zQ%}9~&O73J7~=f?_rG7246nWR8U~KJ$D<51;{v#({qMc^9u1&XNXa*C+C=-om$Yr^ z(xo6#U^Lxitm!7>E5{Wk0FUS+PoWGF_Kh1iLL83G$RFf759ss43okIQ-g@h;b?eqC zuBv-^=lg{+8#ZoOv3#W-H^)|vGxY#1^pWvl4F#{F*-L~|&FZsud`KiaYh@)jcU9}9 z!8t(RH{Q*5x5pPT{op~dxxB=I`n_+f&y8r_J)i@>fh_ZE@`+{rUWyE?F^>FX5rjDe z^aM_@&hqEX8P&WIEBmst(yFRTxSJ?DvZl+P$3Pbs7qg?&<=JP~pfS z4T33GSWp10{OM1AQd(9DcMqZY!Gm=hH*AT|42*+VT6-}J{#V>s6+H2>b z0#{O6v1!xh?|kPwMMXta1Dv!I@%L)$w34x3ysWUUHTsFyd*@CyqLtHr@cr*@op&8H zFNj3a7}6w)jPiXHsQV~PP~14)2-*WM?yIe3LEv3L96pLGue!3Vw2Z!?DGO>u31sBR zk%9<4<|OJLk^!a{^AorL+(bw!T6&DsWUEbK) z(Q(F{GnOn_a?35Zpa#v0VV;1z@6s z7$AZ;$Bi2Y=0*jXfgpl|wtMcm2Qb>&+Da*?3cMo`aE9_X0|Y}9xDT$C5d_9j4=@gd z$Ga$XTJB&I48s5+A7`MixZ(=%D6@-}kaF|QH#6>hIMvnF;7ce_Sy{>GGu(890|_&S zC5sF<-EC{`4JB%hT+!NcLRSY?`fZqCZ8Dh~MlRIRwo% z)ot~VG}jZ}b!5u?z6Nip+y~u~Wk%(g^1d)~#DGJ!97rm0(h+77Nz*%*%=DLS&s_xZ zr#DmC5;z*gylJ3j z-D}rx=P1@%(j4ztj8Q^gMFA#=BN#<$&pN}O07|e0@8U(JrKKPK z@P}dVftC=_BF4quuCDF?=&HQD0xSY;fhMG%ciwpvr(sB|LH4wnwuv1c70O|fwhcM| zxU%BWFS-n(q8Gq%ItzpI(MKO$wrm-Y6hJ9MIUj60Ufq(-HQAg_ywIYI)tMP zN%1=T#1l_IBHX&6E&^wiQRAithJY7=dU=byG?!OTbCkO1qKn{P@^bmA?;rQqQ{NaHnPJ;~x-n3~P~Ospdl23gT^)W_=UMnk zRi4RJzw-V&20p=rTQ)4bIAsH!m5hGqD)V^6y-T@^3>E+O#irB6h;=*v@5X|PLcOO? zV+?r&5-kYodmCeSFKXAuSzU3)RW}A~BT=@BwfNUKavZxS{apkln+^gEFv1 zK~!)|&p6`@;0O>3+4PhtQ)_BwgMDGaR##7jF$Q0s)d{Rg3etb{8K@S~E$r1h?zjVd z2DF83#!Cgq4=sNtG#(0I5(nyHI8aMK9{pE;^;aM#9^HNS-LMP+TfjId$uQAPAR5eL zia-b9i6ZG{u%=C$h6H^2^yv_jN*GXx22KU7%AZ7XjMqi-#<`c#rz0RyxSRBs9&wzY zd9ZI8ed6?&mNSCjZ#vH51pYVIOfV-ow17M5`#I;F1NcTIgPA}Pur+g%SCGiNIJCe9 zW~Qah1TqLt<&cH5k=E#mMaN$HhpPXaSTtqPiLckTub)&jqc<*}^?*)#yk(e!Q2}0x zrXNVUode(OIrh^@DS=I@cs>k}iKXV1+Xucp9mWo>l^Tr9$*d>maJ`CFE{D#7Ih~75 zPS=Ypef9Cg(^rPi9BuW+9JNdaO|7HH{{DNNO;Nk1z-W!@rXS8b*~t4hKygz4R5=w> zQ&j`M4$I z)kmf4$PsJvmaXNbM@CeZjgHLS)Bg5}XzjaQ`yQTL!=!c$Ij;`*Xm_e5@6w;ss7@-> z%;K&>@5_y{=nI)Mso6Wxogs@JdA!b>P=0wYA972c_jvJD3(A+2!4D;UG<6a%nw5olbQ<*aVeK0Q5n>&%D)(z6lJYqp~kHFW*u9X&r-ADuHv z1BqHBc~c-aUtjV!?r3w$b%1A!+((-ER5_K)0~3 z=p(wG@+Z(!;0V8BSuaqGr-D|A@J5AW#Eq!9F(O@>2NdHMY)TOl)r*E=5R-7V(NCQ^ zm44Appqogm#imVMJCT_`0iEQ5ZbDVbK#HJ$$w`U~E6`2Sb5AAZ`UBu7BP%0LP-h$9 zrgA7IJa{36485qr6DUYGrHGma{6ZhepbEOVztjV8NAoxu>x-DhV*{U@uLV!^)_!%y z{K>^NF(+o~W^yGS5L@*1*I&1W(+25nIV+=e8XM`$&D{d-vp#0=>%$2+&-8Mgc7(jj zRogHQ?$3%|XNR$5DrWUm&yx{pSU1g9MQU>nw1p8I|%5*_J$*g zhnIJc9k2J=qz$e>Gn*0`WEF^<6%O}#Pz1;5$)H$t@~c)|IjLq|A@vYZk`_To@~3(i zAuStu)Ei|{Qkj){w2DhXQY12LmSP3Jr0;Z14NB^HK<$I6M35qilCoW4wF6YFw^ZK$L8n@*lX(I!j zeF-z!ND@Oqr>WEU=DY2hX^*nZqcJ@otL0z<+2#l9Y?^B){S?Uu6obbjLlzaLfd&;x zdz~8r6C{I2wZjI6dXI&N|6@frcg{gYC3jyudgPtxE|p;)lUlj*0VNDa4;Ua(+efJb z+-S>RakIB5KS#htp-)|Yczsd`WhV@xxlJb9DepRJ<3f$9GCStZjg}T(N z5O2zJ)e`ksr-aI&{4L90QcZehN7a(j5*2iE5>y6Naq8ay2mUnplR0FhwM)HDDwc@j z+a1X%e*R7!5Q!IpjRc z>PcTt6{fba#s2T}!dFcS^~T`XS)z|=8crgvKf9sxH`{tIs16+Ia{{u24CTPmr`Sc_ zoQV9b$oY^D9;=z!*A&JAP5HP!pm=Q!Co>b>u^p%b)eO^tQt~fV{2{lZrGzX{b!q{% zS<2?);ZVu@b@JHm-%2LK3O#}_u@VX%pK^@_1*UBsQ&~H%F*v-`Fi0Ol4A;!T4dl(e zSv^h4JweZ{k_2~~-Q(rB-XeJB9;sPsl<`*1Amx$ASo<`r4s1fpvLglY;)+D1zzK#))MHUS5qG2+!_L+|RdX~q zZ}j*WNjcT#J2IpEzhxkcUN|RN#8Tt=kU$WoC+X7^`|4dKW6I2)m}4+vfKl5D1)PH| z(N8bImy;Qb+r5b4bcj0SgPaVDiV7_GBsD#I7k>GW5BZSBgY!>^2m2~3Yp*VuiwGsd zsqz8t*i@Vd7l3ktjmN@=_685_wvN{tZHM))V_LjZi?#9M_l4E4B=XNl z6*Eg*{V6FbgDT~Ef>FHdRI#JJPh?-Co6*5dv%GYt}VG>d?*@ct+A7vX|tzgAes3Oc$5 z1})sUJhb~Ay?Hx8M+=l_fnqH@8pHz#^U35=(sOIWnT394_IZ5jh2&(2!Ts^5d19-1 z_}$R@cwy;`SoMY7XIg zCLa=xHY%XM*Jl6y?9j(*f(gea#n43~-3}S%OWV7@wkkSzig_aD3zUMX*(DWG}o7`dM&*EMXk403y;u>s~ywQcm@)(6QEU% z$OjC1=IPm2=zq{paZB_pRQLj6Cse3wV;BoP)*amVVsP^x3+CL~e)+9^VP{c1kWj>DNNt=`pwxgArPF>t7FpR%HKTs6byW=2H z2a2J~T^KYrAC2C&xO3zLqcd(>nqd!hGP?NgJw3fLH@q_&$)M#!KIFrIZ@3U{Mds=> z+$QC+ruRM_x-t_o-@OO}mxK~@o+Yi63U{n4UGPJ_Wsg=oSt}{05DTmx@5_z@m=FFl zY8_j*W8%_43l#7VR2tm$V&%?79XI`B$2nJMrlkW(4Pzj-CKf?%oq_maMa7a z7kX*rsRp$QcJn(Jj;0#6pq{Y9#zv8uLjA$Y#HCswq6sTBABM{Qn22hI z>5TeFc=^{WUjBvA)8zz$jBFMhH6nvkUv1!)OgS@<_lGT-dktNwFn=+a7m1vRp>623 zudC2Les&}r&|(P$^tvpv0aIIZIQsXCx~ETYx;Q6_ZS1fLx)>xiH@75jof)JMnEb_Sa- zCqFcR9YYrbreG3+57MJZKIB7QOh0+@WNQd9bNR6Y!IE`L3f}mvCP>s7x=1uHyLa?x zr!(f-(8|x27LRD1cl+=dN`>>}LM9Q}4<}1WaWCo@m9o#{Q!tXjacsr6O%cw3hm2Iv znc_Q5%IY9H2r>x2uBd|ry|(t4_LIwk7flHD#vRiT!$Q+CZM>`fa$VPoWA;VkjoLmZ zJRBwTNNv5&l0z-ac) z8p)QsyWQC?LSbAu6~Fo&t>i2R)>@t?IxO(0Hu~0r#h;0do!mM50$h*|l`-|+gh-bQ znKCsh^xwa)|2I~6tXY{GPG#G2|DBMDvOz2sJ9_Md72rQh^nhp}#-QO)kb^{5cQ*|V z1_H!8ySh!&(BAi2OnOI0=g7(tB_+j-@*qQ^PL-vv?RM^*sNGQ$)|@2e-`BVgYl)Y3 z^?qSx@3~X0x;{Ik8^e_)NWbOyPPfORN<#d4-(l8=wAtgl`DTAJxK~aNr)ivr-8Khd3L8x@P#<#Dp&pM4f z33-M0DKPazG<&*AmcF3%v^XP1>wO*KKy)aFe9)7wo#I;I+~U`N**9)#yts@nM&VKa zbU(5Od=l~II(RsXk;QKCxN}p#S<6!f*f28q(np=3z_A;GIBFogcKx279=4o2@3?K` z$dRO^s{A%KHipCDqM{<%v6`Bis;a7_lv=V_ySHuKx@O&m@#DsjXOQgEY)xgR(+rU4 zvOjZU@rXjJM|?Sb8_$Ay@iE^W5$f39(BnuaG|B8<;amEQ>RXiL?QyJ zcq64K!c%!~S63H#cwI$Bg%s4^4@$BjIE)m2X)p^E5tU9#M@I)wOG``n72txeR?-y= z8dNZppt#^$w{E4WQ>IKgcI+55FoINTDQb8Oon=xNeN~B8XorMg2ue-84^7e zP6ON3$3FJabIv(u-1~uLS|Zb@PX|4)8%>%t37j!)+BCK+7Hi2vU)b}5>U%oaxcdUhgUQe1QB^)heX`OwEZ?EdoY`xUfdL7ODb36U| z9fYy8X3ZM*b#`>10Q2g=fdk+GQPJVi&Ye5oefM4P&7a(GnMIp6ZF=sx=N2wpxOVMY z;KH_T+bDSa_;D)#!yo?e;)^c=J-2Mx0;C{6l^;5EX#V{9ufP5}Wji}NfAyoZclGMk)C_`IzkWTH$cyOI zU;_-o-UD3nOZS&AU;gmJ57RY>|EW)XitYf>e)`j&LN_SJ?^|!Z)!W-kDQL2I@#3HT z>}L$k6Hh#`W5*7PJpcUjzx?GdDNa?;WWj<3&p!JsM1!8+_{KK`+2`Kj5lwyh<(HWi zOa@v@gt4FtAY+>PIA-r&}(qmj|@f zP0r^p4qRIujwX%h3{#9hb>#7X+}icTme}lxW*b_h5Ne1U;hx^R@I(qs;4=rb0UVh& zoN(YQ0!c5u^iqy4sfy$LW^ylLb#-+~Ny*BUD}hj;!!yn}0~i4hk4K!5UVH5|Km#?y z@d89%c;SUW%(AjF<{s;eaQ-SQD*+{K?RRJDD4dKBo)1&uCtL`Q>DgX+|Cn z&rAsl!cC`}Fw2=aGF|D&s8ORhR5LgDlMXVhOfyd1+Gz@wFP8FI-{ayIAi4*ezirb( zThy$5(W$(Gi+oN25_Ruw`H(f8sRGI&9RQf^->kqyRy#y6P$b7SIy}DSCmxN>D5u zO;TX^QI=-Rn>P>0LWRhzVVF@B?E#g-5`#C!cMUE9Zi02@&Ydf&mM~U9bq_xHARIO7 zx%Jjt1y~O@?iHT0{ueh;dHQhwliBvhivy;ACVV|s^BDhY)xPwh;N%fjSKP4-odntz4(LbPqF;Qs zQ!6)0bf?kQOzIl`Qh8lAkW&YSKrJ9YHhUP2aN2;0#DR=#^J0f2s(v$O%m5txNiZjh zeV_g8XU{t8EO6xAci#=>fcFVjpf9F4;7pw98J&_ zOj+7PHX1_!R>BVh&CoEar6nL365*?XS%s4dA_2h&^AFg{i+CeUwJWc@lEc`dMT@|x zv}Evn?4lM4xo*Gxb|M0x36DJT2uPF^IGUhRC<$3m#Q~+!eTD;IcinZ@U31MfqR5L% z1C*($sR8FfIvApiBbXH=$1hMG@%Ifk+(3Hn?R)4WP!fpA5HnH$N37229kb%>v(Ki@ zoD=8~9TXtWiGs1?fCM&WOo8d}L@B~ai2-G}DGQLLDl$+xeJ2B51FSQ+!ayZ`(1Fn$ zt16#d4oD2Ux3;F>zW20((V874pPvB8uy}>mwqNVrMH94wGqj>{a;+$Tdi&UxL|3{; ze*X)))3Z&~GxaYHxj>3wcir%rg%K#Wj&2Dy9_yJn(}+hMJ*T$kJoVj}Px*La1ISj@ zGJD&3^80HgKo=CJIs3Qdy!{@0#F&JX^;dPUt+lnIvy){SOL|z_JWAfToJeaSNfgI+ z8QQpc=RPw>`}a#vDh%EdQ{Q+(``$&?l~W4(5}NW#WnqvJx1ZkJy?DQU!DQoLU&8wH z(78_}$4fY8zE>_Hb+}f^NfHnYCjwBY&fd>2a|1cA@I<}U$CXJO_(?D>bMmswE`u`) z%agZI7BC^}3GhNpn*R20|5kK?K%Am-ddVf12)CZMOE%Kg#+tUK0ZPbl-+lL~)3O9= zQ`@l^yTBtSkNbuK{^Gg!SR4>9>LQUWgCbf!fyD}g6-h{!60O?CjO>{hsNY|6U4M5Vov#Gtmff4mp8T8tpS`ny zj^jug@Ygf5vmmg{97|Trj3Gmqneq5SKO8fLnc*12=nEgj4zrm-X3LTVwk%kjnf|vk zPxJJTb$e@N5-HCry|*XJp&?~!3n+} zX#nr3xd-AtYunYNtHw@@ly#Nw?!axEkN7-y?o8XRfwm`F?uEODyF+C$-U9?6MlgYEV{1;q34?B*PLN|!l zW2ea^*g21y_i?#gGtr3BxQ)trG;G9hZA6Xa9>th!V8^rU-GpYK@De-_YP7ngR6R#S z1~Zl?qwE z3|gcMTErEUpALo-3B3AR)rC7_V0y(IRa>1ra0dZbPDe0IH!V=MONokU`M?hbuGKv%G@_Sk`)WsLqbO}1J)#TuHk*-zY6>Mso-S3g*a~za=Yw~?iR|eM=4Yc)` zy2YwIV+-(TJaf~v(%cJAAuglewCW77EGsL6C#oB&4z#;{xioGjmS?bfQ*e>)McWnP zQPO!}5Ih7KMka-ZZRxe!3H3rc2!a7kM+oAZ_{Kjd>BGI>WBs$pG>3hQFMS{F79Kd8 zp3~_&g2pQB1hcOr(aiG4h?Nm81dW;n3_X<@7f`vLO)t=UCNe{>QktuY_F(EQ?5tqx zTNIVGb4otq6iWKCYYSWdMag)iqZs46adeKpnVPL^e3jyI&_H@R#Yu3`Ec#r?-dZ-i zLSZSPnBv{_DrM(z&?VGtW7PxnIUXZS%^M6lmg(oxP{Z{tG z{2e8SC`z+{UPIZt3u$B9lng}(_NrN6_NRIoGrx&+SoJbaZ#11@6B$^_@JTdYj05Qw zg$xReB7JwImQG4Dik0zwg>+s#NdWFW_vg52nq9#p?O5uPyBl`CoB{1ot!@M9b7f_5 z-ahUl_ERdL6)ortkl;vqo8tZL)*~mx#tkx)8Mh54jw3^wh$rQ3@3o|1qCr(gMuN_u z?}p%8;O6G_kp7E~hsy^-)47npW;{%87C*l0O)3X*jw$3`DxC;Mu-^^)ZrPta>q1DW zC7KaNV1+rPL%4`-PjSk93_6HAzQM{rFzhT0lV^WUq>u}*X6!{QyO)dK#Eg(mF}RFy znCc7p1w8o^ib`?oScM|gui%VdaQKO2 zG87b2aWN150y{&zl8gV$wAmyR3cukz9=n0vt2pycjyO?C9*wf&LLRw++C`jsA4i;^ zMli!vUdZFOuw@=6-o>$J^2ckb-OS$Cxo`m?lj~=3$_<=+8QV89bT~yN>^PS{{8;Jj zh?9vHF#BYt9L|&XvwJhqUPwEbwmHJk;!VP`oUjlbS}iUz*cBLvdE|Dh&w`h)o%@tF z@Sx96=t*_8+A+Q57NcEl?AIqEJ2W*-wzl;291OU}s-E@f>+h05vLtF z*p%<@vA;3iJY|HNA|s@<6^W*1_spu6-z~K!57#Tx2cRV?fHqG}&<)+t4P6qn{P)Ms zab^gCL`x+R8bOV%hLW_vnCaA1v1I|JXJaSH#F>0HA3i}M&bY&=f@mS*XHd132YWKeV z$c1lm-*Gz007fr4U+dXNN7XTVT^2Y$d)zoC2#M}L8BZ}RRd zG&S(%OZ@pdn(8nMkv2gUB>r&XkwxJgw5fBRDH~>}>z_F3)RUr+NG-!g2 ztNHz<^dHBE57F-+PP%}BsOZvUg6%7r^>cQt#L6&jF3lh%6{~sp8}!zB+Gfn-3?9v< ze-i79V_}4eSF>#eb1q=|v9vVeNCuaaP>k%@#GkKH_TS^*Wx^W_8Ns^eDI9C(gm@FU?>x@zQ>4pke; zq^a7>+Yc*CI=C}>(HfluQi2AuGXq6}Z+qJ|c%07(xB|DG$fwt8|Fe9Q0yV7oI3;=C z?grW1(&px7$8oY3S&Z8bG!~2b5?s6hkU($0XWA)SrG%Iug{0p3?HSSXK6*TZE*ykr zJ5J2hYnw7RzSB%0VIkAqC6v4HzR?Zc&<#fLu8x2#TKCKhkU}`&h%TJ~GZ)Zw4AdF) z;m6aXoW^aG495tw{V66~O)SQy74!n3v3Cy|44eTv4Yf!~|C2F7gd-evF400VX=NR5 zSeUOFz9Sd-Hm#59kHn7p`8q$&6j_~u1YqqC02yn8bt?9BiTY97&r^75!+IX zC`LtNXNVN>KlhNaShrX)8U~I-F_>X$s~8UbMiDMj6EXTJf*l*_3j-z+AIk3amzg8iS9+d0fp!f&m3R5rSATWe20=cMw{D zkH#@0`_<%UUqT^7uohBK1xLL!*z9W#vAbHh6W_+80{myYRq= z^bvTNwy*o*!6%XrqY&OLKZ}1%A8+n1A^r*GoQ0nt_jV`tCpRF6-h9KlZ*%hIj_>l2 zcq;*DU-SO`iX6K2;eBe)spM8BB@hUSM5sUie1UxSL;peoWb25ZtXE$Lc6FnR?;-%o z7!4yG1js;!g-nuxM>GG=9Cj>UyPexlpn4?|dQ9W8A5gWO#ZOV9lSwmT93xI+`JYL` zSMMdAV)4ry^JPj$^1xASlJtS{lhGoC!Ckfvq?!p8fx>_Qhfs_iA93Ne3iH+JB;jC~ zumjy71&#y4%?AP-T8BbnM5z0KV}DAY0bEhYO0Zzw8bT&jP*cU^Los0GZ|OCKF( zH*Bw9)FcLuVA&t&RnFM6Sosi@TNHBWbcIaACD)TmvN}ufb0SfCAH;%(7&$~aT=&%A z0urH%#Y+0zua@=pF0}>?Qrl~m}Lmmn2ZQEY> zyI|z*)|R_#M*f3%ukGSw|JnFb`F9P!D;WGUYE@Zr;4)^sj`Dtcn~D z*N@CchwfYVMg8T+mFF{+>Mf$<#^}F`TvC|NsWIw(fjcDwuv!orSP(#}09KM{59(L) z@SR-x9d2C2rnP8-5#vcF`O9?}#V`UZLny?TuA%C3diPa^=?f1rxHxOYD#PxY3RWzn z-yr(->y4&|=-RBdHw8T|&cY6%XCF&x2e zjb~MiA;svHUMd>PmgOW``0j^PtWZ{I=?Iq9(+^(!17H6Ix2Vq0H)i0Du%-elJoRdK6vhf+|Wh#TtB zKsN|SL4t;@Bt*>!mFJX7an{!;8_U9f5U+QW`UwCecET4pCE$ON^YUp9eq(Cd~*LA9pHu zayv)!X_F>F1gXyeDuhU+K)5nViP#_cWalMz$u6H(mRp&@K5Gdg=kxt+^d?)UD?Xh% zqdAcmnMb#F?D5b(gOW3}M$M0kA zS&W&=x@Ell1o1`&%wpR|JorOS`U)c_(%8T&592sARdfHhIOR$X&WhK3Qm7)I( znre9VcN}xBvZRyE!7dt{gxzbPG$SINLhQGh=w1YGy#5@hRLg+hpYM*s;fgGBzv zdL!UN`|;r2(As79DW{`$k9(D;v>qpj96NBpPsh`0@LAot#g=W>Fn+4`O(B`@c~SfP zZKsLIp%C!>C-4ye)&uU z28JAuSwK30)kN5YV($7ruYI31LLZx-g|tZ} z_~ZE$Pa)bH=^zAFiXNkwe;xn$2IfH0RTu+^4dtNI`TK1+8G4RXuL%Bh3B?moj5dlf zP4O_6&g1Rt6@7X;T2G>7#QGEI&93#_GM5-6p{SIS(Zu@FT+iLd69px9A9_wB)`yne z+;ak96tcLSzK4@)RQQ?-Zao|wbO?_|)9F2pEsI$G8+y$`K#$?Pa6Lj-Q$w=sZ~w>M zS4TOHE8X8KJDsLs+?`qM$IQ&{haWRDGcz+YGc&_uW@ctuhT(>Qt@~|{PwS{t?X1?D zWG1t@fAmSqWmO3hUzb!Wy!SZoMV7`}sm5$77eh_I0n{wR`u<%E~};Ea$S-)pJ>v&ChS9 z?YU#U{*C~qJ90JIb+nsqyzv#Uc;)(d`F z-}hCqAWyR8@E`B){l*(Qk6M|#uB$l`AnuWH&aJMkWv!)mzT+Lg@$0`{mI4H_eim`- z0V^OZ&T{arEaYNAz{s4Cq*U1v0yyj69tnzq5KKb#kG88J>)xh`P(R4(FQvgAX!3)Z zaEbK{s#0I)Eo5*|C#1?VB|%{lSeZjeL?e*Zy{g8QVCe1Gws;H#a3}Jo*d#z;9rKjw zE^&B?9SwrDZ_B}cJ8%~Ep-dyADOjebV_Ed~A1;nPJiqQuo4l%`YZ#S(bRCNaaPQAX zzXKBaJjyQm8z8akF?j2%P?mV=lQF*!AY6w2I+&s8VQv{KpS>xW&B3|N4`m;F?+pP} z&QcPGp8?-TNOMna{(IypsFHcM9#`dgKTlFuK%nfQl05tr_+tBwJ?y^^_O5ISw;l;{ zQ`na%I#@o8U7xl2A)Bih_NL7I9^9)kuLYN(7Z-Lm3oA)xn+7Z$#PVmN=xvrm@FjeI zlaU|(U#QZA`eKtPho1tRmkS>*=A)@X z9=S{GFpqMR&$aiw=DAD% z{!Kdazt~#^9YzTO1T#R85B_V=Z7#=?SUijhDgm0iJmdk|*8|wshY%G6LIvPLRjD_U z@a1+_xd2z?(uDV5sETlzDXeS`g`s8#I4G_;Hp4c}0f0P41()O8$GeaDk`tf&6)cKM zJCY%3RGv{AXF87ccVBR&M%kQIvOe zRi}C@SY2K1_4;ArgOFEyzFih&uh-k;qh)ai-RyL_f*4lFw0ZlkUCY7GZQQ-XgLxC; zkp*zTd7!;H-gv$L&re?Xqdo)P)di}k7 zcOO4?tSEYUj3i$Kt9S>@ayO9obH~SaVm+_e|PZoqYHT-sKy$`E|FzOCAP98M zOPOO?>Tln1_E{hI4?5;f^wlDT8Q>g?!mq8b_j}!Hm>5V2!^=liB9Vk3iWp!n4C70L zMb`=EoS}@6 zRfO0i2^1riPf!D92h{^j5J(8sC=d`O>l8 z#o;X54rSHqAi+Vs7@TiG9fJg+`i_YWFs}%9ddIawae1R#$Y#ty-?uy#xTzW;aQ>icdoQ94}eAX$0T zCQnAw1J47;nvysbkPUb7ra7}kvQA(uLjVMQ9@v-Rwd?->9m&4@q3yXGojx)L$xCeK ze94Ep-}{R0%CT&4EN*Ju6={Me~Uz2xUqQRL!E3X~D4GDU;%+^jFNHFl< z98&=abZZZP^88yL!Hv_HTR<^ODRL>n!LO}8{!@Ib?YbQ}ccESKBM6^Q;Wy5?@trwJ zvcUoM!DSn2XnugkB*VoBvUc?CLDR81h9_rzUVa+|mEI?bsTqb}nuE@HpzDA1=}X7< z6H>lVZL=Cgvdws977P7@8#_K#|!&o&qC7X_gvl7y1=7kVd9fZ!j_} zWJE{qD82_EDXUim74zrV;>v6VJrLuX$st{8r-boQhYBUow$*l5)YF4pT;Zz4meHy$ zVS21+=iOM7LrWQgCBnuRMkZ? zg&zl=I+-&W2zY40;qABkKX`omF~{e-r5rcmg;s{O4*%c{tFJ#%Jo0FMV^&kP#uTS4J{aQh{*U=DjJHh{3S$Xg;G z^cs2;s|aQbV7!(cM$0zSb`Vtm)?p@$9pzAipx`tfFftNU^b#>}UYIQb6kL~~z1BM{ zqi*XDgF0gY6iq4%H`s4Nj;VoMS*||pNpm0j&bhbzl@6WXKRUxyLtb;sJoS~eVfy1w|T z>~rtGAgV0o2uTDS+_OHo`b%%>Mwc?Lt{LN){c=Fr|>xTIBjkEFC=k zY2Q@r-sgH9&|N47CMo^kPf4TN08p*e$0TX2U7mitXch90beMe2BOfM`J12wIwh>GT zIFr=aY^%knAenk(fz3=EK*-H8?o^@nZ79Y}Ckzp=g_Su-<-*Ar}@-A*)+E`VlghGLqM z*w<-&>p}q2$CQAXFg4?4kWZ6`$vM~S^!FV(^;zG(|8IYir$4SeSF_)NJV?wiH4s3} zEph#J_|B=%{mIVp71!B-b7PuaiPKDyy(^usG+UdlJfk-2=Hxx2HU;RYP9bRiYhdab zYa%E~p$+Mi%Kl4Q>RdP92&h(o5U?lb8$VJ0*Z*I7z>(HQp^O9|VJ_F1jpFBDvyL{F zsas0435|TW@pv$Kr#r*rGZAd!$K&0rhm9^ZZ%9hb3SuJzM|~HE6)I6F(<%($h3E&O zd7rR;d}&J>8>WWiljSv>v5-PW1fsbw!dk>!cjIUe$oIg>k#amupMZ>_g06??f zpNj!0*nCqDnXx|d&_pFhZnb>`t|BZZY zI#db*K72@Tyf@P7gQ`ATTDTIQd!wdxAK*AU3p5@68V&Pc#abLgo$Y*pezXpKoY$(en zKdCN?HE6^CLRkHTJH-53`++2;1fv>aNu#|hu|fwdWPHobS zyzt?7wcq=?{D!yU%tygRd1We{<&>GOZCzHF> z3Z%)99D&l%Kr3ctCgTAK_T(1>0ZlEppaaBy59A$`w0HQpd-zjYr*3WCesg}}rtIWR zuDjv7-S8-B_JvolC)_z!$gtjM*BU`XC}B@luBFZ-6lXw7$f(;0zBT9D^M3E4;^6WA zfy4a+mz4`k1XvX8_bO-Lgj1X+pWHP1W8~9Ua?7&J^L+Sv{g^sOQpJgDPA?keh8#)h z%p>8FQIyQThjq1t_>xp>O#R7I4MwmH0=XtAGqOjjwweNKKAK$HIU2-qg+K=GI0#QqXp+-Nv3>8gwnZChN#Y8J7t6JFavM11i zgoSE88?o@0q$uyb%bXmHxZ`3aI$lRxeDhg-$NgHLeBX9inMMy01flYe^&Hp`En`z}i4-p1Cn} zI89@R+vaylGB4Sh>(qxKOCtr^s?D^QCUL)oH+LEF*#5eV3=BOJgzLMmesF_if@d!= z%Tta^4|L!*XQRy@o1XuSf+PocUxMcC!`5k?i$Z|?*UB@<1@kNIfFmKriX@X9mOyM; zkQc~^?|L5=BZI48;NH+if{^0+CDs3)hZZs24{ABYWTJY*Qu0{yzXz6+vU9Z8>pACA zn9XS407*_JBTjmsSjJZGr_`NV9t6@EWFkFH&+=8bFhZb^_GNl^A1gV&`4J0CZEo~^ z<{XfDX|bi(U*G+j7p&g@>g<-D^2x7{Pa$khZ8fEH0#jtz?8x@%M1%aEN)uMPycHf> zV`=r0i7rB2fM^kpd**SZ6Dhx>PeNvt4g~{$(^DLT=aS!Y9Whk9W1WP(WUto92QZi~ zz*n33V!eQ3d2*mag~zWoMhfy8sDZKnh6t$9OSjY0nqz2u<)41m;Z(bPvrf;S-oRy;&~T&f?w!5g zpmmeVsD!x9GK(lZuGzQgw|uPX!kq-0nSUAgD>$HZ#nn; z8_I`V=5Fq@?I27ybRKRKtV+t#$K2iSX5LyZkOc3Ia6L$51js^?k}_qpZpCBxN;CyA zi;OD0JW>(A4YE>51hs_US}=0}h^?za=HNgOf=W+8ap!HB>>|UH7oBQiU^51a>-z9k zsCGG!4Bn8ivNx2d(L;oCM}h#n^J5un^o1HNUg zNB}!)RAeCQ_B`g414R-jC9ibP=)@Vo#qNs@`DrEyN#^*;hJiSV^hlER4-L_4<;QyB z?3i@bs2F`(2g{=Bc8=zGo^sq0$)qDx>Mil!r?1gZU@R;wvoxHqzGFjCv+$#Yfg_+~ z5AHx{1xXJa$n?5%`XBbb0!(gWS+}aXMMKNvHOK4NA!BlL@G>(q^L@s zz#aafAQDZ?b~S0VMrh&tE6uNb8p0(q`!sMs?{J2oOO@`o@?MH)JVr3=2GSYz0ySGto?_eA1j(Pa0ZNjZfh@}9wt;p50X2ma!GuPKpa2P^#D;~GC!%9^ESWI? zI8Y?Q*10gy#BLlmJe{HWgsn}s>WnY*R?`?#lk3{#5GxiskOOrNuV<8 zQ~`qw3xHIk0FeNO0FwaMu?zUjWdzKeTU|>bRX_rf8gB%V5*8qjh_5kBL{zyt0IXy5 z6P}BMVwC+nUk5TJW_%el0Ygimx0*xlcZ0yOMo>W!LO}GG4nWG!mj@t_JEstsK|mCd zWeJo*D*2l0AZ^Ej0IQbGit*D2s%mO1&?xKIRv2-eon62&s%v1vaB*b!(c;N1TfPP?6Qe#9|kw!#oEfHx_T9J2335H)$-XuT* z?ow)Dm5W1xiEuV1hY+m8c6n7^3jwf5W~?gkq;XCmA(B>#O4nRlo44*TAKC?w<(`8z zJDgJ!dOp%X!zyYV0Y-1h8zeyNk?02n3W)gHn&3Zkle%un2oy4!q~t=dkT>|0-hj&+ z4GKq<3IWLVEgcoOA5Bh=E@2%p`q#aF7O4)-iU%wivWsrx_P&sJ9b)@A4uCQeDlp?Lv_*ks9@7c`lcHT>kD*!f<0@N}Pb^@-f^CP8$AVgBu5JqgB|2Au_ z4gzP5yj*sqK-OJ~< zSs$Q$%SiC#2#KO!H#uES_%7@ekT~MpxU7Sukdz8Mc9BX{jpBG>ev`24U%s4FYf91T@`a>QTkT#b zGptY3`hvm|M_c)bDnZT7#YKHdpgJl_6Q@DKv&5IQ3TmBxDJ6gzwriQwf=f z&aGyDy4-3T))X_ip&~5bE&@OOxL6L8^*I&BS+85EH*A_3Yun8=Yx?-gJX!@_gcKn= zjB0A%LL;I~1075CRc=biB>H1(0oweO|E2`F9p0UYSyO$7AuBm7) z5E~a{r$z*&!>p6^g_5 zy^)0~k9gxKOzQRVs8a2P}VTjiDGugGd ze)oLcNsbUdc#+b4N{mrNtof*u9__*h2tajsiH^9}*9LMp)4?p}_pY>UH-F;7%WyaXiDFmZk zaqWjkeDVg9j7tDLLJJl&PJ`g-4*!$w`aizArZrjyg~9>|5EB04Q{6BB-S)wqdc^>5 z_@aId!#iOZXr*6#@%gvE{q2JxJAC-??Cfk11ZCh}MA9@pd-m*K{Ka2<>$iR@6!LkW z_qm_&37@#Mv@|wW*GlctT3_pS0?8ay zW7;<{mRWoTKq-|F!jN6^2U3Y6tyLI=&bb0Mxz%k-wy z$Q}g~2!e3M@oAMbk_Z8^JddL=H)e2f%{*rj@LmmrfQZ_?UL1zjxf5$`BN8E26xE_g zE2R|?4wnxRt*7B?%XSxWEaI}XUmd?3#bWbbng%*7wfI0bug8Yj3t$okXIrgE=|I8h zW^Yrak^~3{szA-)v7Q$IZ)3(BqTWAQivpcz_Uzi)F_sEx<0TYYhJhxJt zMA2%VwzF(oqwbs_VkHbjguF$Cc*_d43Itl+PQ6i`8=tCOzJTo&U7I~CxFQe|UK_n( zW`As%bK!oP^^NN~x7etoa3$20IL@uL&MEZi4+IEhpdXPkV>|tH*Otwz&DAF_F7K%% zd#gbK9`O{zWr$*MRxAwz>)wZw8eYx%7A%5RfRk}NSx?eDCsG4r`KMQ6^Sl$xiHy%uq zNcD232nxYCkVj9OFaN#nuI;+*zyPQ>?QD;tC{5E7=Z^h@fB26+_G3PJVPOFgo6TmP z=N|tdqSiW!;;mb^e94!7>4AfXf9aQg`Ou+*_Z~i2FR0T?7cUu;uZMI&Yh9^ScQ5VS zviLRo_V54i|LeP6eBrsJ-FrISu7|2#7*Qizr=M`hAhU=776b_pNhuZh%e!M~XT4Sj zfH+Am4>-`%ryVf#drBOLGyQg~6d;Nf1SCZ&P`NRklSg)@pa8OZWq$8o5O6jpfMv!P zEfH``Zbtc_ypU1|GF?x0@43BRujwFg&OP+NgK63aAs@TV+iNibBAI44K%CNA0D^$h zR-PYwX>$xFh3K}OjY?PqaGihpBf&YwV*-Y8T+_T3LIPBc>BiFT-BVMO)|#iEdiwO~ zQ&AW>=a`2tLMH7C^SC10UKPN_IMSrgo;f+*Tnhox7-sg~6KI{=9D#)a{fUTUTAg4x z>aOBEHobk@=XUSDz1eJua1_TczVQ6{bLWG?K+o`d0T9>A1Z0dzxvNa}#IYB~BkX5F z3-j|6+pM)BPCOk8h=L&gHt3WNPCBwE`wtvisMWUidr75oX?f-3@smnxXPpSYoJwB& z8b|@i1Z+0jUTL4b6avfx%-yv&j;p!JMJzfV(s+bElurUgSOXp#OUC!?(P5&ACi0$s z{K-zQ4@k^Tm`gAUAbyixAW%wA1bFn($L9bh04&0`!v_qDvvybsB?yH+1qg*`P1f1H zdv9M@m_<_EeDlSXm8Vah9wRmD^B%lAr0k>Y$x#VH-R!s9$B%6b@x&?Fw0&_Rnd`UK zBBd%yt>=kiFr7fF$|cA#-itQ8|(kqpOL zg^EK-RxYaLmP6=k*mU;+m-Pc-ak=extHlcjl=%aM2&lDQ+Ow;YBr`L!i&Nvwa{l}| zlVv%pCv)eD;hjX71#3adsyq$1S25f+*;RB)jU z|NK2In8OOd1uGGuywSrW*Owp&1{krqw)(B#`fc~#dv6fvUa#kzBSKY(|AwLWy{xm^;apa!Z2vHnw|{}!?2tr%-n9b2EXGtK78oVxBc(`{DVL6{SQ9)(C*v! zb~>GxDJY=6$tP>cfu$YJu>d+|cGg#$WqEG0yxD5~&2ukQtF{u5HSjM zty0liH^#;Xc9Bv;NCXH4)GqtxYNCF(x3qLyE!3H@HVlaZ_Amv86BUI$`{h{rxyiDt zmR)Ie9(v-bK&$D=iB7jytJmWs)=Cp897v&TNO*!EAtE`O&o4~X!+==2jwwkH$Y&sM z0gC*Ab8Zo_0N1A;<5PLOE(a9bz@xaxZ6FodZpFuR%!{b3!-3vc!Dq>rLS$4tcZ{b zmlTHD!ARXlkyhP2moQK|Vs;?F>_L|}KUxUvTy6%E_pN$G%j7@cSK^etO!p%7zjr_;@C{?f_Q zSDLFc6I1ATPU|R%gD6m>{FLylHYq9_N+_jx+qU4IyV2Uip*E;U2jZDbk0e>RbYP(_ z%~GYX)9XF>_!9s!K0e;<_ZQ<}F!PnxsE9#`G>D%J{x2jVVY_|PVxklgcJd6uCz=J(>iwvPTL?Glj>Yg#sr z$O;|ZEMl}$|AEozDCL!3?auzd0S|M@@v=N<2OyK~MI)fGNKf2~jgvx3f^wnn7s@A%n_LDHyT4#A? zjESNs%d&pI?@JGzbN*7DbJs*y<-PBD|MP$TfoTmL3m^IAU$%40CPXZtfF>-&s{$c_ zk}z&G8hM@)2_IieDuAT5 z_Az%Kfzi(fg;T7PR|H*}^05ya=7 zJ@TGE`m-HV;fc%nflvG7yYD>!B1&m2#;Sx+L!*4Hy;4b~f&j>(l*;lfOH&vE9&ed= z6^Q5x>sZ)X_x|_1=fwM-X=pfS;d8#~D+b9GB1MN2MDhs*1Z80b2_Vr}V=T=wYmKnP zNlY~GVbiY@$84?j)6x{^(C=k~NbOGN4}S4CYW?N~3)M}t@BECICJ*Q@!$OO@fy6;ft_!E+o41EDCJAG z0zlN>hh7mOfH=psN+pit+!zok##D7WZU5zESi@TD*?ndy=ls#(Gw`$r(f0dtOeqrCt zE70gpoPM&s`CTg4zQT>@ih7eNwxdhuZxA&bfrS7c=)$MY;aA?1C`Fm`n=PROscQP8 z=X?L^ug%_Vbiqi7AaBlih={~-^wNtj{KJ3vkM6tgK5Ojg#zdfAudUg< zpJj0zvvb#d%^)H!l1&#EH-FvNe(gX0$NxS{vp{R>pTxppsPo($JAT|*1BjYb!44u2 zg;9V4dDj1$k3BSB3)eX4&dlW5;MYKD?h#%=)``h;Vu_+qDOG9I2dq+_=g8n`Q|F9Q zYISvWfU7)9M2h@H>L3{WCd43&*qI43pYX}|k7>C8p{a#wdR1GRrH;kd+%U5-mJqZe zrL{0uE7e`QZd+MdVJ84E(2{0-B67~z0B3*2Z26y>eS#AwJzQwkAXb+P(e_MW6SQV z-@R{Xs@CmgXUFDqYfXP(*}$+=L;#hCye3ZpB?==|AZ(>n6vvwu76wTXxwW}5&N+qT zoaKTDM?cDfVHoPGcBvo=;yC=WckkOeS-sN9&R3&6H)*eDoa?8V01UH=0j$XjpNGB+ z*Z_=HD;14uVE$l?`f1P4C1>3_WlJJror|JKYaM9KN^hN={J2j#JYKCHTV74U^s>xl zX>LrK3}T}#K09~)?lqNt3a<#|@{ z`pP-0lnR0Xi4;;?iKC?QNgw^T9S!NF`SYv>wosAmn;L8KoJD-`fUoNFAb4@prh2Wm z)@-unB&k%ZmD6WV4cw@;UVjC$ferzOuv}{uXdT9tsi}!C{Mdbqjmo8-c`obvNnwn! z)@4}^07?_H6s~Xqq8?2TYLr!2DcJP{e$N9@c0T_6219~}gN?+H4(J?a21gkcy2fp3~Ph+?l^t<`m^ zz*{3O%sIRFjyt~bo4)*qe((ow+qK*ARUuTpG>@X-{`>CLVaUD%jtn8J6GnkM_U?@} zD#UTez1#w#aaJKd|J+MI^5Z`V(+jY2{tG|va}FHd=Xpwh^#$CN_3Bb&=FOWouQ%Nh zWT1jlwa)oTS3q05=gzxg#Q@lFkXh%sOaOT1$kCtr>7R$$MYweK3qSv}_wBoC z_H?X|rzaA*iSVL@8ozY)cW z5Fi7EhYm-`EV9XRW}VMG$&IzfzW;#-{@@S(1Qxf!g$sZ0o4#ss^J2M~{eYfFM9;k5 zefQnoSfrs?V_t4CK`8!nurmohA^@3kvei0fVHqYxq-p=J{_;J4_MXRJszz!4Prm-E zW~L|f=p6i;*f(#4yk=jHh$GH={gCvlJA{wcJDQ^!9Z7u4NIA`JJkw*emo`4&K6)r$ zr)w(%e?BgG^Xd@s6)!xaW3M-!7;_`dYhR;bDy_KAd84!-j;cu-Dc4=^<x?m0?*wh1$X_pb!JCP$VE71Zs8V!r$8uOIvFz zmp8$#&9z3|6yaR~L7?)fmBSL0Z=IRV7dB+~YPD~DDqSb05U=V~@G{$kxl_8WA zU{#=qiK7A##89aqia5{y{%+WFPvgZY6>OTX)oOV^1z`~10kp8FkUY@j=+Wed49b6MAB-Ra}{W-zCBzicD^nFD;jxA0YNp_PPQjzdRH|RF5lx`!|QD<`!m- zym&6Dht*2r>9>+oFYFR$*n$NB>)hDpMG;9mT|o)Ms1he<&z>{RYORG`F4z)b5RFIx zRH!Qm-DIi~{fqlyVY+_g#DypcE0t=$-xB~@cVIcYvMehO}==nJF5AgI);^OMzov!7;nG@g2rfS_87({7Ks%nu;v3Orq| zU!qNulUbetND{}!*wrg*X_l4^15#$^bz$jLOri*qWasSEzd8V$w$>haZ)U8m#Bo1O zOH!Og%5@5bIFTetCa0#_%{7m+vn)@0{q@z2X$npRMO1;3eG)}PI+~o=w|(lPI-T0) zrN92|$6ea3R2KE<8}Y6F^CR?*ZUZ?w$?OL0xNP8bZ_<{} zK0qH|xOnl7JMP(Y`yRM4F~;}+ZUH`qc*Un<7Vs2DIM_cU2W8psde^&u;TL|PUf+d? zxizz6jn!7`+kX7#j;vhylsk6awRbmq!VF&~ojotd0J*bxRjAuDyZ79=`|SrC0gf3y zV|1(8!UD63@U{8Y-dG>DzPNnlCx7L4jM6=u?U@=oe9t{f6A_l;E3rJAPfB0kUO&Ygew=_BVmePFk3tnv|u4@OZ$TKh{< zWovXKhiCy1>Ho5K6~K`zM|40ME&7--Yua1K-aBLXGcz+3hf@^hq?p4{T;UXlnHi4H zP)BBlgU;Gy3=V9V6zVHkov{)!;l&HQtpci+SY+6dD*^sJF zWj|6E!IAdcN6I)~SwkdX)xnHfNe;-~<8$-5Gktx%6ElX+b}-uA*0Lp;B$QC9Rf|($ zLIPW5={PwEE?Dl7`eW&imN=uN>-MQKD-??G*ei~clBMIS%li8-_4fClx;W@EqfYqm zXwUB6vl9ufQR$`XKF6zafQbAmmdt%ek2bb`G_E6~BnB-np9^5WfT@M}&0MlYD?mJV zdFbcA_@%6b>fU<$ZP8e)a+5Nug)-;LtSSV5$#J}5@xb9!D)XU)!C3pBYE3O$D9{t_P^T|ZQEL)jFds~{*k$^EmVci330+lgVwqToaDAjNv^Qi&* zf|8bse8<-I*Jls4WeknPy6+n|MTG|N%2v~F2x5alYBo&>QE#b@dP%^ruk_^T>jM1R zWm};_vnr9fQD@>ci1gw5m&vv>Jbid|uheoAe!qTSsLNJS(AN;*1{PO5#1MbqiNy9e zHOqof&?u9Lj!ur-&;QXpe1McW@&qCwgdLJe)xZ+obQh~~PWgrTM<0HqqOtHj|2kiU zeF|!%SS%JUa8_li=&Q680L~?2Mmn8V-3KVbHll{$ZTU;b?1}b{M~-`kS{&YQ!A(fNqNoZUOZmMj995``h*_Q(H_gOEeoKkYUYHh zrU_6sCChed_{tm4p4xYOOW*1I!F%t>WYR$+07@4PExlW*2TI11SfeG=HY@X@`k_dq zSXl5O+Z&2cm6VOfB3t6o-BXUQ-v~(wn3p#2$h@kL6Xu#V0dc&Ale$;Yoy$Pc7 zjXE0M3=O`zx0g|rZo-)GK8C2M84QKfq8l)^&Bx`d@Q5&8{`V^t2Uvd-(KYW}sAk{m zWjG)%5Tm3p>HX}U__4jLxVNDcoLL3SR7wgm=0v@vd#d63Y8zF zQVE8|i-xM&<+D>P76ro61ZPw? zB23dL+y;>h6OVh)gH3zo=i4?>(Y(sP!XFiO+>n?0(xbqzzU1Yv2Y)@wzIh*#K(=Ak zzEq4se)MG@LM!8tkivQsVR4wt{!%Ce4oACnd@|>MzLVYDVAvkCSrky%5Bd0q=gn_l z@Vn~iNEvCkmOLn2|1!vG!`_K2-NTv_feV&RU@I^xkXVxg0ln{2_4UP~X&4M)iYyyP znBV+ngGHJgj)X6;YHSHm0L%q{Q!Q;nu~Z@>1bw$bm@k;FS8DIS>pdR;Yd5~*tph~E|`~@nHipznfGy@m+=qmzAiJp zTxMow@R;o}4R=+g;%sdx`+Ra{S9N>(@_aM(O)8}TDMC65K{ja~qm37Q*;ih3-E|h` z1>9AB;c&$wgEZUWa;_qdN*S4hx197*^OYBk1a1$vc7{^fa!k2msaXnQQ8g@OU5#5c zTo>a6GjP?tx6}NB<3!lJHM3k1R&gEGG8lp(uv&hHgR-O0=)@}?cH;TBCy#Tqn+(_G z$a(IbRv1^OK$H!efF>A8yrh&GwJLb>#Pd?ZdGG-74FR?@0;LhuUL819DN^-{EtC&< z!JWoR=Pl3>IlKFzYmeIdpNf3;s*Ta@2XNEPH{Njc`UOHSH|B2a+t77g3uBAmba^9{ zHa9DR3V?$}r^;KwWzDDNo{J#h-+ZslXLDKy-<#CD;~nq%(?9!*QuY^q<>$ZqE5F^^ z?pjv|%ABWId$YRh-}~V4`2--kRwvgVs$F&G=q^yg&Ur{G`t>=rfL>Jm0^S_F2P^sv zctuBqRw#t0&Z8wM6JaDk#J7@7t`_s?dGfA*E zTj3vujbyL**z7l6a^ari%_CFu?LxLYwmZq)Y-#w+XkElD!%T0^L-O)2Q6YC|HF&p= ze{liLlTV#lfYD4Fr#zphi&Ks{11%yvxnNe4QsiuoV%lwPx5oQq#^k<8i5v!N+Z@f} zwxb7s=^LK+Enj-?g=Zdr>bkE;DQ(U!Aqu_7Gqj_LEk}8`ganI-0#(UyFQa-Jxk)Jp zi$|xF7-4YtWwzW-^Z);GfMh$HcHeT`+}w&J;`}pDU+L|^LkA+qIUCz}G~b-Uu+)Qs zyJnVETlE_OAIhs~204@hU@(hi&e@c)Oh^_6?=>U_or5B>1&x*(=+w8WoSL?RjAzY* z;X$}LNb~x#3}~1JhFy?ehG-kmxBQMB;h0Tlg5U_62U>$MR!w$HzQ_n)Rz=>bM;IuL z*a1YT+FCi%?tsIBs6yuG4-g`S?w{yyg{yiq0Tcy=%Q^GOoV;Q(I&#Hiu?zX|{{7{m z(+uQx21AZ)WILUbj1rM0u~oM@vcn0f4MrHONe$fdeD293ho?kFkS&oCrqj)0Vs6Me z$EdmP(Eh*r>F>Dh@V-;0pLySz(~JGJ8>4-O=rCxwna!pFfzkCng_?fVAM}lCNM!fa zhFwx+iYugrDDM9Hz@fh6Wv$67IJ$D2UbAvHEHeBej>Klf&;z$8y>nFH=7w5mMUR}vaR=G<=IUywCz&Q>Q>vCj^37sawbU`hU%=J_N(A- zXATT^EI6Jyb8cfYHo%!@`>vYIHYXo`Ww{qJX$t|(NrNTUw=AHf$dwv)mewpU^*MRr z+*f_gU55``IX`^MW6ykY{?1Q~CmXO1Ws(ICmiq4yTQZ_{d?0~l@FhPtA%ITBB}en1 zJfQsSGiK6qw0SzYc>a!qHgeBCzQWFKzWc?^#y(FCATBD|$q&P}h|~&e^UjUrPblfu zl+4syE02ZJp!@Rjl4K$6M9=rP@DXA^$=@JZhb4hz>N;K-K5~X)AW=W(}-c31Qs;ML7MF8*=%MC^}Uhqk8N3 zaw~EQI2k#o*`=$Qn?qN(W;YxepZ~<`+Q$zxNw^iAfuf5OyP;TZ5v+SFPpOzjXSZGR zlpe<%zI;87=+LzznFaIV>7^sb_8+)na%l0z($i<+JueyU+whdk)C_uAXimAKcyYmigsu$G;2l$LxhBB4iFVbPVt*xq!?{^naYzWU}g%>d?RiL}OT zbC&=5ZRbC7o_8Oz$LBV22F=#u(P39szuo(G?Y+;tBBES{_|#KRMZ|8p1$WoPUg%TQ z3_A!cTUi_de(-_&Zaa3OZF6$BuyJay-N++vgOwduw%i+)1lLGH*cA>;{K%D=c4;;T zaKoVu3z{)F--=pAXZwOygVlsWkVcpboDIejofz5bh1xv3I2~QNu@q~J14rCFw``3^ zuic**WRR`tyvZ=qrk)2zbRr7x09g{qO(FQP(#IfK*|~e61B!I1$4bjuL(v)FRHZ@r z*ScN|fvPE&e%0W$^9)CbDncygWYux^Ad6UaEi2xHL2v6Wm))ySZ4Xsr)sNS^+X#l;c-;|4ohcy|=;}29 zuzd$is|or5sZm9-rR$)cQK)QNGxE3|?4Sy>g0}+`s+(rDfv=nm4SKSEPWk_k3k+4t zYFAUbD9E*k286nZxKoN$Cq~1{D_Pc{N90P6t78!81c8xl+Xmo+av~nqwFzL5uW2NT z638Tiv3%v-ODSH8t5swJFg;eQd|uk!wtT;;m`X0$zOfzy!a({`yMPV4X3~c6i^a&0 z+Z4GSg54b<%ib66cYnow5Z8_HrZe$NFKmAF_A3k)nGTRfaOCNKKXU#r-a5VOw)DiD zV_0wHDc;9`erpr$#?PlwLxdnYPnLIl(YKz2_b`FsO zh#ZeR@`#zGjLv$$+OAcnL=mUm2 zI!xuJkT?v4N)i2jxe@?Ww7F`g3WC8{?>iL*s6`Mazvd8?h9M$%Uq&cPSIxd{R#qv= zBE;_P{zA=!F2Q zca*sO$UT)up=Z>PLRLEnL-p8;Dgixc6}#LOqRvIC$=M|t%(bbyc)>6xD%^q&SV4^1 zc~%=x_RS9eYOv(iBa{`WjH3sssbCanP1DeMm^NnSK{`A8ldD;B&+)+8P3+3`#XiK z(|J8$8YZq^xCd|_I467y#iTO2#3K6xh*)S2RPc4*zkRs0Fu% zc7>{0#HH+{m_HPttofq{f`z7PuDRZLP`?B_i(!RxhYOl0bjvSc7R$Fz6t#`a^0_|v zfkFOD4aTfuA(CG~8fDTuNJ3a)7|p(spQE!SlDQ}MUN8QP%(8yYIvS6)s%G>&aj99Ue6JDtyu9yuiLb+yu>)Ga8G5eBFVB=*NXaVn*B^4Kjo z!bq#30wbk#-vbYyJ$wH47o2FClyhjOQN7(HN66ypL&|lRN775})lpJdZyKX-@YMQcS#*Tw* zi7^P$%;&8c3)HR#QL7Ikpd?fnni1>|4;+qR0#`LwkbVk6Y`yi4uTevRE<=!MX;LJ| zZ&F$`!=fSXe8CC8-t&Qv9Nd5PtvBDWP;K$olj|I%1Q1rNM_ycy&30hWV{NJ`I~>pTTJe5t7m}!vX!SVsW^slI1VbcNZ>-wJ_bF<%tFMZY z@9L6`;qJy=Miwt?cQTVBc|LvG{{7oG?mXIDYGY|H$iYctPn>W6;*IAl`>_$8nA5S> zC2|0t#rqKIY6mcz%?|9}|KSgPaPdvZn{T=az^cqj8IQ-yQ@w3UNoSrmr&Hg>On|f| zrBkO){r7+W&y6?T91+`(E2w6f*zLZW^>0^9c475{P#^TO{jMjymC8C(x(Oiq!z{yW-qR7o zXAXD`YfN|00?M^rK!P9YY}}qo4@-5 zA9>>GGvD=1Uwz=3tEFDkq=;DlXGF4Xa{+BBxx;ggCZ%#ftj!sK1CKrN^k~#P@A$2w zrXeFobRSjP`c7`nF`Ku`%%Rf11wKdu8Eh}_JO%tTHrYWvaK1^)Z zi3C`gS1c(a=O`BoC--2K$3nr~Q%bfJ_3XI|ryhFjj^`hD$HM&PZBCwMoWJE=?>~9l z&5K&PcxkgVHDjxILP||Rx;esVLAqnX3ri!69GWwXmWjcozD5|5JC@=VO>@qMMYiNX z4z_Iuw(TT_feLIB{^w4iG81uB`&_tk(+=yWAs1E~QC6(6QdWtY1r>=ARe^U!?j_vX zLp&rut*7aSEMS%m2a>(>41Vu!|IU-+dB7NM2(#qKng9I$i+}fl{3XZz^o*A$$`H>f zaW9|h-Gd}*5dv7;>3!tL(SQDzf4TRbyN?|^Hk-~;N^1^UrIaR<$;FEo7Z*a69Z=KF z&Dm_au`yYH2U#pHWjufW{2Si*Ml;*Dv9WN~Itpmmf`e2F412ny8G!72{ee>X;&2gU z2%zL(qQ^Efn8u@Gv;)2au6hEtg_-O1-IMVTLD{yis(-WrsMOZ-6~ZcK-P2u$MykVA znTE{`GfE{6LX1PM!|tt~if>yEgTvsci5i}Z#SZPH+67RD4!Lq0lS9&~5O=pe1NZTG zJe$onuD&uythb_OH6c~8Vn2OaQh<#pjt(~m~*;5AqO zA9ZH|+{Ut{VN14U%eKhOjIqOb`7tarbHQ@q7A-ULZqY))GCgK~VYVGZ%*-G&$I?{t$U0vVsdVygcvBu*9%x&-P@>Dp*)wK;8KnlRe`qnnE zi$}1tq(q27Tb|NQBmv|ThftA;^pq0T*EX`VG70_xNFr|zEwPVMBa$r8IlR6~GGID= z1I;iA*48)qB!pMjINX_kC{CRDWQ?}Acjzy5(J6tL>l>TM3Uaopyo8p_&M%Uzs;s0i zKSWzd100(VuOc@{Q~p#?37e+%jV(_)!p|Wi#Ufa`zZhQ4^myo(Lcj=w`~IA4Sy%yh z+dEMakyjc(UW7@LWP?HC-Ti%Eb{5c(zS2CZ%kp~Z7kL?L4hW$=Sy`DpRr88AQ0(T` zHezHn0eIj@nnXnuOKbgf`ORi;GGvsaj!Q;73^bx)0x+Q73=ic}U~^p+nnYeIgfHX1 zyt2kbqU8$6GVy@v%PZ@M+Mkod(bEhM6*22p);45nF$E}u(I?INCIhrje`y#ushZ9* zZ-c%ZYN0WV8ok@x+S%IK$;rx+_QzTNls?;XX$o!UmDU-j8kSZrU3bXkm@%$ttX`do zXph)iTSpPLc~32}#|sH;2+d4jJtu=0-}@d&3eKkoDU znEz?+R0m9nj-E8zTidLsPYw>Yw>DVMT}~2_onCY|3lbe18vXX~_^!Km@A3(hRLbE( znF!jhz|V{L4Hb=POBbJ=GiR-Wrp6;K-FZ+rQFm0k#SRq?z&_{OrKM5oQ)!{P5g#rX z^(Jo|e4N5)zYKx2TX>Tr&YPyPMEz|!1I?pGcL|(6qno^031L~wK&6_WlUsGhIQBGd znGWDmcXx8B!Ap3@XyPvIPW)g*?)VNK>X8nzoplNlsw_P#bANdyBFJ4&u7~Op)+xy# z?JfszP0hx@xghIUM{Bs@ghnT3%1aAdn`*~r=0O9g+_fKf_YHUV4R!VoboUS6deGh3 zGjM>@ae5j${k!cwy#pg1-Tj@tgV%1i&o3+s>Y_~1U(YQr-+I^u;sG&mALeyrVj6TZ zJ~{i~(PMfCs)HTu=;?3o?tk#8@7kUA#ibQMDz!soe)-me-hok`qQkw@-VNNOe09PE zZNBrM8&xj_a;EL|dmWRr^B_e6!`^G}SqiTJWghho4h)YAtw>$6BFR~?!iXzxQ-B~9 z(HL5CucP<+-HyfORT{#zyt;P%ZhJ@X0FU^w1O&|Rgjd%mXXfDyxCuXMY4*+lJ6iR{ zn{;vL#{JIQ4;}%_cse>h4Z=ev*Y8ASg{=aJy{CWp&ckkUZEkLJA8AwIod;c@M#@1B zGqa0VZ$Iqn8{*-Od!2wORNKqpHK6L&iD^SNvH=)OEvvKpJ1Mn1iR zqqiS+-|Ogsh>EhjkNV)7X;N?h2x6IASiW|rqi<;9PJ0idKx-xHFB66qlJ|aRFCB5c z>E~8G!W0(2Sb3a3wm4T+hCarb%@1kbj)B^H~2!OO{yUj|FU0qmEq1 z>d;%83RdHiUP4Q1cXW~%kt-A-W@5ki?RZNsVe~UR{5;%0;5Ch- z!_pM%X-V1=J$p*U9D3vLT6m)Te^hdZOTbeYJa@6Q6>_MnZ+Ln(sysauWv<&bJ->AR zRP(8pMp!`b2Yk}$)X&Yx}pYl06zlW<@VQC7_NsH~`|u9*eN}m5T@{K`7vc%~J|d%vr% zzN!qHhpp|M*~KL!R$5#zGrt7pzIe6`Rv6$VdKZ4=g@QR*UH~OBgaw?MTf{N}rV}(j zIkRy2Tq^^FlmMmR>E`+xI7Q?ypAlN_w5X<{6jm6#SzpcYRYQ&<0pF$m{SB|QcMZ_r`kD%Qv5sxP^n6=WZFx!I{NmE!=+wnCEr@GoZn2|h zFc|RV1p_oDalG>Nx@7Rbc1Ttc)i2g=@^}SWPb^od$9-?=@bBL4xm=mCi#@3L1V(_Q z5lkZgseR+te9DD#_t;(}E0scBU*BUOj1&Bw6C`@Eg|4ot`H>-~F!KP%t9z z@G~kxb3{d>qocuKkXM7VhvK$M2*I@U^!!g+ndng2?scsV6Io-v*erZy1h6jugKY$3paLf6T9z*iqk`z%V87 z=*9LZIq~UwbLV$ciyCw6mg_=xPApFPPUX1b`aT|qLdM1rKmN>v?LE|^AS%@ZGoC77 z)bWICV^maJ_sBETDCa});ZbO1QlSco!VTz+G$m*QI|~XeKNNsU1msne7Ea8})l`;U2*Cer);KG;?W zv-;}F#icMfsUR;TBpHw)R(k|g2jYoDb=Jk>)AI-l+W_>%jrCRFJZ#IU1^C5%wNg?A z=Q0D!hR3G1wst@^b(Ljkf8iHFNVx%Dz?VbGHZ+k(^s0Eahg*6>HfO=)yEvG-AaVF!`>;h>xq8A)V zs{#6aI5RUnLBAj9#(f&b&D>xBB!nWqv?w2>2>QoDV0w1(Ol#A^VmK=^qq(6Lm2^f% zIMm%vu60>HZ@U?Av}^a4542(loh zT~0=kx5|dXJVFRio=ljcf;{HN+QtUp_;gDHqXz5TP*cee?CkAQDtuk zgA_0N5GUAYHZOrk$FqSmp{=@~$m#a_9Ru|!)0djsy1)7BzZ@AE{+4g~*82K-HlIvh zWpF|Q*(dW#&d$wuw0C^?BOkte`SPo;yj)ydEEd?x-7v74-TWZGSkVzpLzxs zVbk1AM-ItHT}U34CVJ)zsb3Vw{Gxm093?F&4f9uQfa`fWsG{XM*PtBBk`Rtl0ysTS zPWE1SO$-F%bVf0w3DzxI@dUDHX^oiSPD0YBsYDlohMZqs;no+f-;=T5+do)X3fEMY zW0}Mv1+)^CI+lkhM!BP2Y;jTI5ulHM@E+m~ za%o(sl9hQ}qa`Fd_0jR2(io`{Gere+m?pa-43u(P$5W#p8S zxx}wXT#jfDV2DiIqzdH5WCD-UQ~m<5LMz&}V-b<6T!K(Q(;G6zsN36 zoWX)%U}W;8^Cx+0A{3RLMvW2$EY-dv6;T|eaikyp#io@~xt~eD;Di`uI}2&qUm+rf zxTd@~;LBz#XqzRU=Wm`%Mko0+%GgWYc)`@L3JK&&Y`NoQ#%U=`mVN72F64x~?!BiG zIWe5zu-Trp-nsqnxw>6g;a)$q*x4i`H;4ED4jCQOn;|I@CSs3)q~&OJmX4a*`j3C? zqx|zDKlcsu@tfD`Jq}Z76>f1sqFIIc1T^9bRk}NJ4@AMY{^uudOMB& zI$$IxnpGENe5=ZM8T3tJat9?RmfYD%+WFF(|IDWbHqyr_fy)e|Z;YnFry6pWzg5Lr zfFSNF0#whbd*5kO(RmWQrI)Jjsu0s;34_T9yY#&Sc&J#E>m^e0dqK*qwmLvobS_3-bUOmR)#^4UKJsxG4>=3^ecJlJ;2I z!H;>N0Op%uTv#`fOwPfNBkzZ z$ylfD3+P8hvA>YHI5|Now>CF`t8nq*DMCi({Ueie3rk>nNWR(S6@1IQ-b}LNQ)Qqf ziH8O3W3c*$#`$>ER+S@9Mi4G@Xlx3cig3`sGq@cCBz`_Ye+GVRu2 zE0Mq2dj=Ml!;slX1}>Z*q#+~y5$#vN=VK;8GDD@)PIzvdcIhB!a&Tm_er=t>VhhB? z6aOR`9i>}fXptCV(T)t3UDGzH&YwEbw6pWMYj=sz)l^?Y%Yml|it_PtLne$4vtnp` zsvtjvG=TW%<>@ayirD4IsmJ_4m^1Us>=|&sW9P%b*{)sI=GGQZp{}iDwdXIMNi`K9 z{NqGSnz_DKmqU~6JBi6Anjd?PjMS8#iOB!HKkH1XXJ7WcmJ25(=GMk;%HOuHlQh?D zZLmwS0mt!KXXnUM39)zl8Mpjos3wP_L_PM!j<&hw1b_a=zyB-$G`F z^CqI)pO~1!=qTIv@H37Fl=vBzima<)Mbk4(0X~-jG0oX*ahbuE^-jk>z(R*Z`WYdy z!{D`Sa-e-m#FOnM5Fk5W^#O_%rZOu$9S0-mSXytc7S%qkZZ~2uLx$2)?iw98icp|Q zM9O*)dh1+CGIP#A!lie}(4CkkmgpVPUmRF%XN)dY9QUa~&?%2mw>(f$Vnk>< zoK{Vx{tUA@)bR97ibRX9uH ziU>~J+1nS=QNSzVM&PW#Os`!&i>WBE7&r(J#2H9@u|*J4IPfArH`LWPQV_)=?%YrS zq?jKH0x4()%On6!VlsjFc6Rq^wA()F0|X{V^jccbO^htbCEI;kNM8Pn5dx~`p8gS3 zx(FA0fYT@HZOZTv-*(bpz0;0^d~-t$r3tkFSVS2O{>DO-WEd~_eObcAQZMjT1_{C9 zv~JlR8GIfv9&PXHC$ttDgSq+TwwC(roUDSvyvDjpymP>9(A8vr<>G14?2k>&eg67g zEG#jZ1rzJj18;rs85AHvRpl5kj41B5cVE5rFgN61T3N^29UVQn0AbLX_%PwS!)HZM zAaY|Ms7oy$>VMovy^b{o`vg!aaTIuh*rU?hwa3woPe26FiDd^J3?o!44sB@UNrse2#*8@G zT>qde>iUKe2%?5jW=df33?Gk|6&s;tyT4d3fR8DP*otCpL-#TBfEJ}aSk}@P8g%7c z8}swV{jS2i(8V(+-i*xZ9E`?Ulau7m(_!gQ|8>-3%5KN(f@4dR+d<-|fm+Aysg+QH z7VQYQQywm-{Mz~S_cvx7%FYNh5n-Lhhur#b|Jpxy9G<97-GsbL+Om!83HfR`-!UMm z8kgfZ*E`&o>^S+2kBwyI1a`L8x!Kxwl8N2l_qe~WPtTa+50Q0gX&Hpt_qaF1n^RR$ zj#$IXOT!~$_wL=(6IWH&fMSP-2GcxQZ1cuOhhKg5^^MKV>6sZKpXdR-S!MZXqTr8WpA>#gOeIMe!BOOi$XtsmOL-JJYF5hE*~z>4@3 zlpa)6uh-z%q_JA4RVzZtDwSp8B?Hy2Mr3V$k3(emn=f;!ZD+-o z8rqkI(~`U{lkGIUx3wLE5e8lP;;C%X0BxNyX<}8KZd+&WOEjl%&COAys65>jmW?}Y zEaQYvsx@Le*|Zg|5kz-<0%(c6Nm02oGSm5z9^Dw3b3kf0)>_jR(#UOTjg++NC`{E; z9laYckG~xtqKSpG0~tc-q`J~odLu$g+H-6^^bS9t3oP(7qGI+RZ{59cs=27J082YQ z#$-qB6GR_+@eJR4aY8RIE+hca#PlpU0C)=9B+(q1?x$KBSftR5H`Z1{XUgfF&Gl6b zw)&7{XM(jn_=tcVMeU36BJ>r{uvolw=7f#vp3>uzqWm0xlp`b=_JY`Do@_}a7asB4 z5s0a}EEF2F+#6TUVz~$c#z6C>b0-NHB=o9_mPA=wHxn@3Nz@4St5mbbBSV{xE0P)YZHBZei zP!~3rK-ELL*C3~}C!2{~g-DSzv4k$4KZzXzy@2E_EiKB*_AV}lS;DTIKMBI43SJxH z;RE}yKn(@m7-jPQAd0fmA{xv_0>et_gl++hv_94eM)RH3hivZGJ4dskW*URmFu<3#Dou-VOvr&|E- zbdA*X2+uP%1-KcJzNxMX!P0Cmqj0v3O%Cp8;B`h8vr&n_aHh2pw-{Kgt&Lzo!I@E&+b)JrV?=Usru|CFYp&{ z0w^4ee*9)KWV0}%>F<2kyJu!*v%C%2IXTy_eVO~;`fcA44u{9b$5GawJ$nY7`}y6CAOD}bCJ?aS6H=^{X34GXdy=md?-7nnf3$YQ*@L=`L!g~a= zDQ%s>T^ga?U4}+nAr&L6Bi%QS%+#vU6y=gz-7<+z`IX8_rJ#)Xa4MCdB59A{70XmC zn_6RmX>Q}BP8}Q{IUrQsQYAj?wK9N{#V&n&=b(RdZtuw0^&Z-JbejgVMAc4B zkjz~)%h>-(2IbTv5P|PE`cQbI%jZsl_Cyg3h>3=0nwq)O-uo@@csUdb0AJ+nV-W{= zg^Yno#oYu$NYE|5;oKKuTw;&2gBNu$HwDCiO=%F&46PGx`yh$DpnrRJk8-dgzzLmX zN1Y`lTD}#77XqMVI#MI;pdzZ{tZE+6e$udL(pqDQ7h}+fomaI`lpx|>BfE9o)jC>~ zt?(zMdi{j7p_9@|h$-%qz@pf6BtZKjb1o4kQdGFeEL%p>{U7?(J zd%pjNTH8(??C;yUj<09bsZ5vkIBb3TeVOm7^KN4jYP*=gT4$!E%&i^%#3$Ciylb8I zrp&|A(f;GbS3jo5_lpfdp#Ga=X#zvX$439)5C1qnKcAZbN9fE?e)1FG&f?+{CU!?h z2g-V{*ZaB8eeTMYE3K`qANarr0)YT_qNwAqU%&QU-}T*-lM@>on{91vGcz-TgM%c4 zIv5!q=7ni$YJxGXs;UZwLd1Xm&<8*Gfe-v|Lqik0J{golE5hp0;)#SZ()}42QHYh3 zt~O_w=x@wQ*wm?82DY=aD+RkmQ;dkxTeCMsg2J6eB$GNlSUWY>9fQP?BS65Vcq>XMx zWiHn96v!AT(R4RH)QC{SSRx$77Ax$eLopJlR66j~6S<5QNqSX}KHNO9j5L&QKw1T7 zjY?D|qdKifHQOvM(YYHiG2#+GjmUwOvXAP|;v3T@d8!?suklUwrGDAYqdWaNsuatz00AgkRq9uamDpMN?L=gs+IdXauyJFTZ+Owf5q`M$xZ z{X+F`#>gS5gG4iVnl5>}q26emdB$0fe%uq*u3aAt8}b_oz{11O7Tjopv#!&3{ompj z-fn5?0HqI#bLu~M@{O-MVe&SIB%7vOB2@wu+;Y$}(kELZwx`xPnymoB#=B|bRUi8B zM@~NJq&wc}PFuHbZ8oP5IN-qH;o)aI{i*MH@B2gAq+sZ|diC(1|NN)rL(304{IFNO z@)h6w)^`H#3(;;E`Op2p2R|Ib-GBRA-#F^%V?$>Aj_;JVm)4S7jV@ie$PYDY4WX8v_Lu5J z&9h0$ihK0(6*3TxC8PM0VrPacZ6QM7RTk+Ys(krmM7o9y>|%7yo&=-hHC|fAXC`hX z$q~VKAd@ivaSldZvyE#fS}8P?>s}h()oZ?<1nNUPuc=q3L^EA5S!UM|xDu}Q0LX|b zc1vA#Wr-94Sl0j%ErhTXkilv3jWPoOT-|$2_0x ztq9>5Er5gp@0cU^E6C(aMCnCHKpe{JhrP`JDW0*;?HMp?NmI_3NAzTbJ0>|(ZVEXY zlBqZ^GhAb;8p#dlMQWJ^YQ{(^r1MDTstV?`ip#^c=O@e^_EDH0aL>`gEJ31n&5-CU znGaVG&YPW5EAf{HorTGSfy%lyT`J}AqwvV8`#ia2hvJ&&ws^Y|yOS+g#@Qf3;7GR%rFivvWWt84DuY4_kE_nG@H8(vnQZmX9Lfv`Bi zuP>Q=@OLLR9PY1gs=6Bemi|@1Xe822WNx`L@7Ou^#y7m~SHJqzeeZkUkUKt9j*gB5 zS~NHz1y1zROE0Wg3W zf_J_9y-AXsciwryjcI6T2tXiNgRj!YjhljI{?U(qbbz@>9C5@S|L})XPCYeE)6mL% zKZ$qyFY*oXjZ76JqS-*nOL@M6S${k5L0r@cwd9V}rlM0aIL9P#hck+E3y^3t$`Ozt z?6UQ%cxDU z`1{{RWR8U9+%n?vH_{+^qbH_~#daj4Y1R&W1+#h+!Mu>Vu@YfF@pvEcbCC@lgiyT} zkuH5VcvSp-hPB zDo6?}5otPc)9G99vwU=@HrYgG{35BkWes=Pb*%^gde_K-GSNcY`9unZ2e9W&T`LX1 zGNX||RH_>EMJJwk!r0i@2`8Lz!}xe`dq4Nwph`;ade^(0cG{`uop=6m#~mA#@4-7h zu&03;4OHk`-}?4vJmYCWO@H>;A)VXQij~8k|NQ44`N&5E_5BAw^x>yJ?I|Jq@)>8G zv2@w8-IJ4l`s42dx;_5*;{&(4ef#zRaKllJMuR%16ms$SM4Ii?5bp~-<3-So6D&F; z-9iW?UGR=MgQ$TonJ1E1<6oX}zF|^?o7Y=d+fz$xsT1nHiU$^?FhC%u(aSJYx+q#< z(0nT8g>a(VIf=EPBOwaCnZS7``2}i$YZ51my=1ESTEk0*N@tL$7gra~Jx9xFiD;c; zoPbznRP6o^F?r$M+j;VP&WQjfzloH?Pp~UE0RznE15@YZ zx@)hV|4yv~+ty)K2U0SX#yr_O2#@LwUU?6(AZ0- zO2;UQARDuL?DGyi_@IzdOBUQ{6wd8acc*Mizkbgpk6N?1nL;`X>l2UZ zwtMAo$3MNPy=JBCZ2LNSqxr)N1wk@GBy4OBCcU*hOp@)aX-MQnM zP;=lx2XEc7*-?Dsh{F%P;_^#fCd-zuf?{N3HGtym;@~E4zKORYcmf^r1e`F!EV*!{v!uv!zs^GTH(h1l;VE|BUQINPjAn|*k#K)tGFDPmDh{#|vVk^fe z5j)_R#K+m?VJwk^a(($6V8PZ@OigSgtf6(PSpACaS-`-!*>vWvdltRnyuE- zrOWPmmplLEFMn+`jtF?gEv%#nNK{T4PhYe)x!+NX6*=t*s5lYt@U8PEK7ID|y2EPM zwWJ|{>jNWJiT6nqYnE|g6LihRk{)^F(P6Q|?{;C=yVvMQFcnSHnWQ0&#(_zagz!&+ z;XZ!N+ID*;F?}d#ssXvKUVUspu0umh_t|H?rs=N9$>WY+<9%&vYImN_BbbKEsye5_ zQgvo@kXsukm>4U;xs+skv+#O)+cq~RCKt@;wi`)o>3h%uK`?EQXtKyM>BB%KcE0bRf`f*O_QWP zHa7l&4}bJ;fBDP$4gV8h$Aam#)nR2#&S~PPRDb-yl}C=$rrIh3agwHPXf)nu~JeDq}syh1=rB+sk za=@k`WNEN5ZMR$W0zuXIS*)pWczn({F@3Wwh;^8Er*Oh67CWTsm#|0Uj>Yg^{63EW zLi)Q`#;Kg;_>lMzvQ3eydE1oV(z_u2x&|rLz$jPSKYwx)k2`#%OoZ6-3?xpl#gZ=*e3%OgicIZcRWTl>V!}Vb2KS(;7Ut$8P}wE123Fz1a^)4|9-Q1 zB#wwjsX5$uy>Lh-4p8y(B1Jf%@@`}uvge^B1y2VEcz2a&KqQhm(fSPqTJXjjC-xp) zdC);KvG!)H0yO)VrqGo3tcF-pqS2n5Aj@i63fxwt3%a#Hs_Ilb>+F60VFhUJU1E>aX)n#O0BEOn znf@#Pm3e|u5wSpU@ZR)sS(rf3ajUxO=lzeC2nZhF%NT8>dz0+*AV3W5O(QAGG4r7# z)%g`$ALrep{423t1%DT!>N4BnVE}hw_^$$F1q((Q_{v@#dr)yO7owqrqLmNhZcRO5 zXj({6<~EznnVjZRP4E5K_;`qm{-;0w>540_a0?vu;1!f=hv#he8sM z-A(_lUtjs*OL2&Eo7^6d|H`UW!@)0V-+lKEIV^&0aq!J=G#d3xYPA}vQ^OjXXptf% z2c|f(0xZ`N-xK1wD-q`ujH7upyO;=3edIHFRm_&qMuxJUA0nlCR{=)h7}s!CVvtW^S+uZke5X(Su4xi+&- z6k|G4S=d2kumjl4VJ?Xq(Th=}&sQSc+nyIL-r()`|8pgtZ?K}vu+4pDm#>uJSS%Ba z`P~$@b9+sD`mUxkmhW7;(9%3+UtvTnL1rR%fRj77wK|b}Z~H|aOB789CMhDVh?LS% z<~emaeq`blX(rmnbgMZsI(qmKM?LnjkDHv_1x=mn+P)PIutqE_R7frbflHm+x1pCM zzL~;{Xx4j8FwxXo-_Ct2!#uDQI{U2fxHYIioOY}~#5?CLFsk6`C>&&$*)XX?&u**j z55^%8hMDz66SexVHkbU{6kG^9J%c-wq#k}UN%G`Ne{b(hlq5%SFx;Q#c>lND>lvp0 zjc{}ks{F^)U%)1vwbq=CNh|~wLgxvkj;y5wk)@1pt_2-NC#ig8mQdJzFrK8ykhJnd zb|3rBTU>BE!OPe(D%UtAlgXUzx2|egi+<*e;Ea>J*Om;GPH70_Y6L|Lu(4X#R-2WANAGWRUa$$y$+F zk8_q+pMG}$K6Ro$-SpZ%`t67QJS3MyA58BW$vooub&yI@@QeGCFDm%rwk|X(na5DM zn{*tSOkvLDhfK#|-p^gj+zGh2ek$2j-AVm)gG#1`Wf`2b%75n(5N2%k%Tg`;5uEqH zh)1%X5)k9uFE21w?*j9fboAD>R+fvBc@RY!k|xFd*Gw9(;7ZT1mb*uGUOOm^evw|9 z+#k88<4Ul>-Fb993}kGv+XoQRQxcH$%*nnDi!9cgi*!Erb;l^3+XTH6;`84Qk{_6Q}clJ`uiS_^7iSqq9^QY zAgs5)_bp48nDFfa^{B?9m%n3Znr4 zDl1pDiJcdJTDib(0|r)G|8cP;>S91OZ@|_5ac$pzPqz8fWj@P#u05^v&RPEdPRqV@ z!a4tq{@hrH}<52ecV=d1Itk4;{qIyt`j z^7jH~1Q=*Zi4P#Lk6o4a1(F<@K!{6M&Kl48T7^8%&-(Dow&AbD#~E1x=w4>cl77RG zo~XZVUN;D23G%-W2vvr`bhP-W*Md6&`|)4Pfg~K^fq4Nvg47XUSn+P?4c^*-rT#AD z`fs;!_|(RB8qoO|ynmkeczLBH`Qevg=ojIW_EQL{rY!NJ?vo`b-4CB}c{Qc+x6%@9I*$3&`Z1W_p{YNa6^H&n+$?bkkz4_oH3J1u~Zuni@(|61~aKrojyKmRas zW@6L#8RYLbi@^ueFmw?BjCG{MG2H$9^A6c7FtokpumkDMzWpykA=)nquYUjV$8$t%MxjP95Ga!btsN-bqzUlz&H zd$Qy`99L1bhE;O*K$;v!7gPG)?JWU7!N^RUThn~d^P@VhQuV>nXzK&cr{7;Lgn8$A zk2gTFVxI9(SPXvhMF6)@IAj<7&X6nhob}I-Ij^II>cN8~$97H_E#tc|S`UfBRa?sq zF90jk6`Q?d6>itV;t`QFOy;8N>~(AM2_#7^fUj07$YI`R)lu?OWT?spy}_+J#s8IQ zUFqc`i^|T+!OuIOCl?#v@^JL^8df=Sq)Zwx7m*?9)(E(SdV}xtZw?(+pHpTz0Xvm( z?0+tJzU^)P^Y4GISk$)}m#ldA&ZuW@XcZq%`?Mc!xV5(>tfR)^c zO*S2IZG_-nmo*bc$0-n_H@Qr%VqAj1q}<9pgXHAIZK&Q`p0kwJWu^XAQvWVKo~3#D zZP<5_J@Q090XFab%^wux!swW~-G7)LC~FhU0e{QQ^8UVpK9V=>E6A5;INuL9bPk|Gf5)fu%hTd8Ov3}-l4|txDzA)<8 zuB|}e2!OS(6V4Wi5t4QaqXQC;%hS(0M{DD5A74pTpW1&PkQ31Pj|)PzoAn3!=I`q5 z?L_sK)#8i2ag~^L0+HdU^$BEX^L|PBL(cOhg_Hs26VdyQn!ossZ0GSv(i)mrAC~eEk4>BsulpYJw13xC ztFQ0IJe>GF1P%+z!U_GL6fTlHscC1O9@wT%p%|ov$4_DJd=w zjU1TN`pj!tN2LlAALVtCe~Gn)6bp7W{UV8&Krzwf4k1+J-uZ13G34VDc%D zziyayII|ipQs0v2Y_W;oAUGs_Yhknt)1Lm$P2M^w?xr;^ELY8TLQ_XGcfKXLJgrar zVf)Ep1PrjX_m-9c*Nda`Xeil&KU{W;NH+6)1>Sko_jz;fFYdo#n(GS}Q!Z3%Piw%x zxFfC!eAj8TZm$pS^LoQLTiY?Fui!Xtn^YlrF{jybpr1w;#$SS#&~Q9i^fpisPvDqW zNl_nrR1xC z^5j9mIALj4;BY1oevI=`?V)3j)UW*H`0H#V(;D8e0s8wqZ^K$ z6a2-a>Bqr!vkJ-%*P36CQ&O;9l~+;f9rGhd<#nIv_mqfRiGDDoH%&;LZdCP zpIpn+(*VofGQfEa^b2{FjFtXhPr&CmM*;b0R-K<{PH(wk{cfC2 zf8hYkE8)Cz-bZud=Cn zzQX}jnWK(e!9xohK*7rVc;Nh-)>9wVja31uKoXUts&ekTi-F_skGNWIiEXDaJ99uZ%^P%p(~J zT2CgA37~P&#@X#Nu}uO!k;oe(R%tC8;5E}J=F~PiKW+XU0UBcqOBhtPsZ7R*IV2b0 zy!ZJV9!SjelJ*@@ZdbA(^Z{#cv-{h;JT$fcD7SezZu3#?j?z4+FA=^grdaN-a+PklC<9!ZO9G?Y)|>*FwZgO5y(Gtr{OwI@_(?_C0U%T_yY5}CdnxBb;MY)5?EK=U2#VUkjdvo(VI9IwhF zu^C!gZeaWAl`oK_&q_-wFEH(6j(Y*k^#_v9J`qo_(9iR)6IS^D0H4-ri020n>r<$%2IZV? z`aJ&h%|J~!y2K@V^k^BMBXqo@fHMCmdjLzsS)l)MC6Z7ODx0Ll054M>*+@oSPd=9gRI za{rSK>v_FsYro;eliqI)&a!RyVjy#7&7tNT@cIg#j^H)4jXM7tNr#)y&W)AhDf;)5 zG}B%j???69+V}3t4ep6fC9TQ(`2FEB`~3#k;84V~G-{p#g(}T^x7Sao Date: Tue, 23 Jun 2020 10:47:58 +0200 Subject: [PATCH 1186/1761] Rename to today --- ...x.markdown => 2020-06-23-growing-with-elixir-at-brex.markdown} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2020-06-25-growing-with-elixir-at-brex.markdown => 2020-06-23-growing-with-elixir-at-brex.markdown} (100%) diff --git a/_posts/2020-06-25-growing-with-elixir-at-brex.markdown b/_posts/2020-06-23-growing-with-elixir-at-brex.markdown similarity index 100% rename from _posts/2020-06-25-growing-with-elixir-at-brex.markdown rename to _posts/2020-06-23-growing-with-elixir-at-brex.markdown From e8e1ab06a29e78837a21721af7430862b478df02 Mon Sep 17 00:00:00 2001 From: Gabriel Madruga Date: Fri, 26 Jun 2020 08:01:43 -0300 Subject: [PATCH 1187/1761] Adds missing "be" (#1410) --- getting-started/mix-otp/config-and-releases.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index e1b0ebd94..67d21b73f 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -107,7 +107,7 @@ Note we removed `async: true` from `use ExUnit.Case`. Since the application envi ## Releases -Now that our application runs distributed, you may wondering how can we package our application to run in production. After all, all of our code so far depends on Erlang and Elixir versions that are installed in your current system. To achieve this goal, Elixir provides releases. +Now that our application runs distributed, you may be wondering how we can package our application to run in production. After all, all of our code so far depends on Erlang and Elixir versions that are installed in your current system. To achieve this goal, Elixir provides releases. A release is a self-contained directory that consists of your application code, all of its dependencies, plus the whole Erlang Virtual Machine (VM) and runtime. Once a release is assembled, it can be packaged and deployed to a target as long as the target runs on the same operating system (OS) distribution and version as the machine that assembled the release. From 3dafe09a6ee6990ec375b57890c5df6b14c18bbb Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Fri, 26 Jun 2020 06:11:40 -0500 Subject: [PATCH 1188/1761] Remove numbered redirect (#1411) It was left out by c6183c6daaf29b53b352e79792ca9207428d9976 --- getting-started/introduction.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 63f51a1d1..9e9ccbed4 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -1,7 +1,6 @@ --- layout: getting-started title: Introduction -redirect_from: /getting_started/1.html --- {% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} From 59f1297e15ce51a857ecbf16edf0c84951318863 Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Fri, 26 Jun 2020 06:12:43 -0500 Subject: [PATCH 1189/1761] Make valid HTML (#1412) --- getting-started/index.html | 6 ++++-- getting-started/meta/index.html | 6 ++++-- getting-started/mix-otp/index.html | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/getting-started/index.html b/getting-started/index.html index 00b1bd4e3..a5a74f690 100644 --- a/getting-started/index.html +++ b/getting-started/index.html @@ -1,5 +1,7 @@ - - + + + + Introduction - Elixir diff --git a/getting-started/meta/index.html b/getting-started/meta/index.html index e41e5b0a7..fd75cbd28 100644 --- a/getting-started/meta/index.html +++ b/getting-started/meta/index.html @@ -1,5 +1,7 @@ - - + + + + Quote and unquote - Elixir diff --git a/getting-started/mix-otp/index.html b/getting-started/mix-otp/index.html index 85516e00d..b2f271a12 100644 --- a/getting-started/mix-otp/index.html +++ b/getting-started/mix-otp/index.html @@ -1,5 +1,7 @@ - - + + + + Introduction to Mix - Elixir From c753f1ce4fbb83fe4f46c83eb97c99d9f6d5ac6a Mon Sep 17 00:00:00 2001 From: Derek Perez Date: Fri, 26 Jun 2020 11:46:43 -0700 Subject: [PATCH 1190/1761] Adding Alpine Linux installation instructions (#1413) --- install.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.markdown b/install.markdown index d19df60e6..6cba77869 100644 --- a/install.markdown +++ b/install.markdown @@ -29,6 +29,8 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel ### Unix (and Unix-like) + * Alpine Linux (Community repo) + * Run: `apk add elixir` * Arch Linux (Community repo) * Run: `pacman -S elixir` * openSUSE (and SLES) From b847c6ae47cd6faa1b65695820ec8655e880d3c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 28 Jun 2020 16:56:51 +0200 Subject: [PATCH 1191/1761] Add routing table for foo+bar, closes #1414 --- .../mix-otp/config-and-releases.markdown | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index 67d21b73f..4483442b5 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -72,17 +72,15 @@ This means we can also configure our `:routing_table` directly in the `config/co Currently we have two tests tagged with `@tag :distributed`. The "server interaction" test in `KVServerTest`, and the "route requests across nodes" in `KV.RouterTest`. Both tests are failing since they require a routing table, which is currently empty. -The `KV.RouterTest` truly has to be distributed, as its purpose is to test the distribution. However, the test in `KVServerTest` was only made distributed because we had a hardcoded distributed routing table, which we couldn't configure, but now we can! - -Therefore, in order to minimize the distributed tests, let's pick a routing table that does not require distribution. Then, for the distributed tests, we will programatically change the routing table. Back in `config/config.exs`, add this line: +For simplicity, we will define a routing table that always points to the current node. That's the table we will use for development and most of our tests. Back in `config/config.exs`, add this line: ```elixir config :kv, :routing_table, [{?a..?z, node()}] ``` -This configures a routing table that always points to the current node. Now remove `@tag :distributed` from the test in `test/kv_server_test.exs` and run the suite, the test should now pass. +With such a simple table available, we can now remove `@tag :distributed` from the test in `test/kv_server_test.exs`. If you run the complete suite, the test should now pass. -Now we only need to make `KV.RouterTest` pass once again. To do so, we will write a setup block that runs before all tests in that file. The setup block will change the application environment and revert it back once we are done, like this: +However, for the tests in `KV.RouterTest`, we effectively need two nodes in our routing table. To do so, we will write a setup block that runs before all tests in that file. The setup block will change the application environment and revert it back once we are done, like this: ```elixir defmodule KV.RouterTest do @@ -146,13 +144,18 @@ As a starting point, let's define a release that includes both `:kv_server` and That defines a release named `foo` with both `kv_server` and `kv` applications. Their mode is set to `:permanent`, which means that, if those applications crash, the whole node terminates. That's reasonable since those applications are essential to our system. -There is one thing we need to pay attention to. Our routing table config `config :kv, :routing_table, [{?a..?z, node()}]` in `config/config.exs` evaluates the `node()` to `:nonode@nohost`. However, releases start in distributed mode by default. A release named `foo` will use the name `:"foo@computer_name"`. Therefore we have to adjust the routing table to use the proper node name. For now, let's hardcode the node name under `config/config.exs` if the environment is production: +Before we assemble the release, let's also define our routing table for production. Given we expect to have two nodes, we want our routing table back in `config/config.exs` to look like this: if Mix.env() == :prod do - config :kv, :routing_table, [{?a..?z, :"foo@computer-name"}] + config :kv, :routing_table, [ + {?a..?m, :"foo@computer-name"}, + {?n..?z, :"bar@computer-name"} + ] end -While this will suffice for now, the computer name is usually not known upfront when deploying to production. For this purpose, we will later introduce [`config/releases.exs`](#runtime-configuration), which is a configuration file that is executed in the production machine before the system starts, giving you an opportunity to set the proper node name at the right time. +Note we have wrapped it in a `Mix.env() == :prod` check, so this configuration does not apply to other environments. + +While this will suffice for now, you may find the configuration a bit backwards. Usually, the computer name is usually not known upfront during development but only when deploying to production. For this purpose, we will later introduce [`config/releases.exs`](#runtime-configuration), which is a configuration file that is executed in the production machine before the system starts, giving you an opportunity to set the proper node name at the right time. With the configuration in place, let's give assembling the release another try: @@ -304,7 +307,7 @@ With releases, we were able to "cut different slices" of our project and prepare Releases also provide built-in hooks for configuring almost every need of the production system: - * `config/config.exs` (and `config/prod.exs`) - provides build-time application configuration, which is executed when the release is assembled + * `config/config.exs` - provides build-time application configuration, which is executed when the release is assembled. This file often imports configuration files based on the environment, such as `config/dev.exs` and `config/prod.exs` * `config/releases.exs` - provides runtime application configuration. It is executed every time the release boots and is further extensible via config providers From 6a57ee583342bad129f7d84d49225e0f7c1d5fae Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sun, 28 Jun 2020 16:04:42 -0500 Subject: [PATCH 1192/1761] Use double (#1416) Reference: https://www.w3.org/TR/html52/textlevel-semantics.html#elementdef-kbd > When the kbd element is nested inside another kbd element, it represents an actual key or other single unit of input as appropriate for the input mechanism. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86f052947..118813ef1 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ $ bundle exec jekyll serve ``` The generated site will be available at [http://localhost:4000](http://localhost:4000). You can stop the -server with Ctrl-C. +server with Ctrl+C. #### 5. Make your changes and push them From 71c079cc02158b5b316e57de17c9ff874ccd0f93 Mon Sep 17 00:00:00 2001 From: Eksperimental Date: Sun, 28 Jun 2020 16:23:01 -0500 Subject: [PATCH 1193/1761] Rebase and use repository intead of repo (#1415) --- install.markdown | 86 +++++++++++++++++++++++++++++------------------- 1 file changed, 53 insertions(+), 33 deletions(-) diff --git a/install.markdown b/install.markdown index 6cba77869..b0973b3f8 100644 --- a/install.markdown +++ b/install.markdown @@ -21,65 +21,85 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel ### macOS - * Homebrew + - Using **Homebrew**: * Update your homebrew to latest: `brew update` * Run: `brew install elixir` - * Macports + + - Using **Macports**: * Run: `sudo port install elixir` -### Unix (and Unix-like) +### GNU/Linux - * Alpine Linux (Community repo) + - **Alpine Linux** (Community repository) * Run: `apk add elixir` - * Arch Linux (Community repo) + + - **Arch Linux** (Community repository) * Run: `pacman -S elixir` - * openSUSE (and SLES) - * add Elixir/Erlang repo: `zypper ar -f obs://devel:languages:erlang/ Elixir-Factory` - * Run: `zypper in elixir` - * optional: if you want to use the latest Erlang, you can use this repo: `zypper ar -f obs://devel:languages:erlang:Factory Erlang-Factory` - * Gentoo - * Run: `emerge --ask dev-lang/elixir` - * GNU Guix - * Run: `guix package -i elixir` - * Fedora 21 (and older) + + - **Debian** + * _See bellow the instructions for Ubuntu_ + + - **Fedora 21 (and older)** * Run: `yum install elixir` - * Fedora 22 (and newer) + + - **Fedora 22 (and newer)** * Run `dnf install elixir` - * FreeBSD - * From ports: `cd /usr/ports/lang/elixir && make install clean` - * From pkg: `pkg install elixir` - * Solus + + - **Gentoo** + * Run: `emerge --ask dev-lang/elixir` + + - **GNU Guix** + * Run: `guix package -i elixir` + + - **openSUSE (and SLES)** + * Add Elixir/Erlang repository: `zypper ar -f obs://devel:languages:erlang/ Elixir-Factory` + * Run: `zypper in elixir` + * Optional: if you want to use the latest Erlang, you can use this repository: `zypper ar -f obs://devel:languages:erlang:Factory Erlang-Factory` + + - **Slackware** + * Using **Sbopkg**: + * Run: `sbopkg -ki "erlang-otp elixir"` + * **Manually**: + * Download, build and install from SlackBuilds.org: [`erlang-otp`](https://slackbuilds.org/repository/14.2/development/erlang-otp/), and [`elixir`](https://slackbuilds.org/repository/14.2/development/elixir) + + - **Solus** * Run: `eopkg install elixir` - * Ubuntu 14.04/16.04/17.04/18.04/19.04 or Debian 7/8/9/10 - * Add Erlang Solutions repo: `wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb` + + - **Ubuntu 14.04/16.04/17.04/18.04/19.04** or **Debian 7/8/9/10** + * Add Erlang Solutions repository: `wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb` * Run: `sudo apt-get update` * Install the Erlang/OTP platform and all of its applications: `sudo apt-get install esl-erlang` * Install Elixir: `sudo apt-get install elixir` - * Slackware - * Using [`sbopkg`](https://sbopkg.org/): `sbopkg -ki "erlang-otp elixir"` - **Or** - Manually download/build/install from SlackBuilds.org: [`erlang-otp`](https://slackbuilds.org/repository/14.2/development/erlang-otp/), [`elixir`](https://slackbuilds.org/repository/14.2/development/elixir) - * OpenBSD + +### BSD + - **FreeBSD** + * Using **ports**: + * Run: `cd /usr/ports/lang/elixir && make install clean` + * Using **pkg**: + * Run: `pkg install elixir` + + - **OpenBSD** * Run: `pkg_add elixir` ### Windows - * Web installer + - Using **our web installer**: * [Download the installer](https://repo.hex.pm/elixir-websetup.exe) * Click next, next, ..., finish - * Chocolatey - * `cinst elixir` + + - Using **Chocolatey**: + * Run: `cinst elixir` ### Raspberry Pi If necessary, replace "buster" with the name of your Raspbian release. * The Erlang Solutions repository has a prebuilt package for armhf. This saves a significant amount of time in comparison to recompiling natively - * Get Erlang key - * `echo "deb https://packages.erlang-solutions.com/debian buster contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` + * Get Erlang key and add it to the keychain: + * Run: `echo "deb https://packages.erlang-solutions.com/debian buster contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` * Run: `wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc` - * Add to keychain: `sudo apt-key add erlang_solutions.asc` - * Install Elixir + * Run: `sudo apt-key add erlang_solutions.asc` + * Install Elixir: * Update apt to latest: `sudo apt update` * Run: `sudo apt install elixir` From b82920e63035362cd8182343d74ecb47839fc2fd Mon Sep 17 00:00:00 2001 From: Matt Abrams <37156449+zuchka@users.noreply.github.com> Date: Thu, 2 Jul 2020 14:38:06 -1000 Subject: [PATCH 1194/1761] missing conjunction (#1418) --- getting-started/keywords-and-maps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 70b774e1e..a4d7b34be 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -56,7 +56,7 @@ query = from w in Weather, select: w ``` -These characteristics are what prompted keyword lists to be the default mechanism for passing options to functions in Elixir. In chapter 5, when we discussed the `if/2` macro, we mentioned the following syntax is supported: +These characteristics are what prompted keyword lists to be the default mechanism for passing options to functions in Elixir. In chapter 5, when we discussed the `if/2` macro, we mentioned that the following syntax is supported: ```elixir iex> if false, do: :this, else: :that From 842fd274841b75317e8a6b10146eb3d0281fb54e Mon Sep 17 00:00:00 2001 From: Matt Abrams <37156449+zuchka@users.noreply.github.com> Date: Thu, 2 Jul 2020 14:41:21 -1000 Subject: [PATCH 1195/1761] Fix three small typos (#1417) I propose to insert two missing words and replace one period with a colon. Colons introduce your codeblocks. --- getting-started/binaries-strings-and-char-lists.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index eb894fc4e..6cb6da44b 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -179,7 +179,7 @@ iex> <<0, 1>> <> <<2, 3>> <<0, 1, 2, 3>> ``` -Given strings are binaries, we can also pattern match on strings: +Given that strings are binaries, we can also pattern match on strings: ```elixir iex> <> = "banana" @@ -190,7 +190,7 @@ iex> rest "anana" ``` -However, remember binary pattern matching works on *bytes*, so matching on the string like "über" with multibyte characters won't match on the _character_, it will match on the _first byte of that character_: +However, remember that binary pattern matching works on *bytes*, so matching on the string like "über" with multibyte characters won't match on the _character_, it will match on the _first byte of that character_: ```elixir iex> "ü" <> <<0>> @@ -237,7 +237,7 @@ iex> List.first('hello') 104 ``` -You can see that instead of containing bytes, a charlist contains integer code points. By default, IEx will only output code points if any of the integers falls outside the ASCII range of 0 to 127. +You can see that instead of containing bytes, a charlist contains integer code points. By default, IEx will only output code points if any of the integers falls outside the ASCII range of 0 to 127: ```elixir iex> 'hello' From 02b7c31f62b009c1ee64d218bcb28b6eeeeb95c7 Mon Sep 17 00:00:00 2001 From: Daniel Del Rio Date: Fri, 3 Jul 2020 13:49:02 -0400 Subject: [PATCH 1196/1761] Correct a spelling mistake (#1419) --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index b0973b3f8..20e3a1ea1 100644 --- a/install.markdown +++ b/install.markdown @@ -37,7 +37,7 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Run: `pacman -S elixir` - **Debian** - * _See bellow the instructions for Ubuntu_ + * _See below the instructions for Ubuntu_ - **Fedora 21 (and older)** * Run: `yum install elixir` From 32bef93232b184370f9018379316ce3e0eca27b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 4 Jul 2020 13:23:38 +0200 Subject: [PATCH 1197/1761] Release v1.10.4 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 5b7855752..96d147bd5 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_10 v1_10: name: v1.10 minimum_otp: 21.0 - version: 1.10.3 + version: 1.10.4 docs_zip: true v1_9: diff --git a/elixir.csv b/elixir.csv index 8978e9729..00a0807f0 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.10.4,https://github.com/elixir-lang/elixir/releases/download/v1.10.4/Precompiled.zip,release,1,5b400c829c4f239ac89a7eb97aac642b961f38fd,9727ae96d187d8b64e471ff0bb5694fcd1009cdcfd8b91a6b78b7542bb71fca59869d8440bb66a2523a6fec025f1d23394e7578674b942274c52b44e19ba2d43 1.10.3,https://github.com/elixir-lang/elixir/releases/download/v1.10.3/Precompiled.zip,release,1,382fa22e6f184c0cc87fcfbfa0053c349d85f6f1,fc6d06ad4cc596b2b6e4f01712f718200c69f3b9c49c7d3b787f9a67b36482658490cf01109b0b0842fc9d88a27f64a9aba817231498d99fa01fa99688263d55 1.10.2,https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9 1.10.1,https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d From 6ad3ed598c6a4c0990a7047b99cd59f8d8d33573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 11 Jul 2020 00:41:12 +0200 Subject: [PATCH 1198/1761] characters -> graphemes were appropriate --- getting-started/basic-types.markdown | 4 ++-- getting-started/binaries-strings-and-char-lists.markdown | 8 +++++--- getting-started/protocols.markdown | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index a29516a51..d4c4d1da7 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -212,7 +212,7 @@ iex> byte_size("hellö") 6 ``` -Notice that the number of bytes in that string is 6, even though it has 5 characters. That's because the character "ö" takes 2 bytes to be represented in UTF-8. We can get the actual length of the string, based on the number of characters, by using the `String.length/1` function: +Notice that the number of bytes in that string is 6, even though it has 5 graphemes. That's because the grapheme "ö" takes 2 bytes to be represented in UTF-8. We can get the actual length of the string, based on the number of graphemes, by using the `String.length/1` function: ```elixir iex> String.length("hellö") @@ -436,6 +436,6 @@ iex> elem(tuple, 1) When counting the elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). As a mnemonic, both "length" and "linear" start with "l". -For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for tuple size), `length/1` (for list length) and `String.length/1` (for the number of graphemes in a string). We use `byte_size` to get the number of bytes in a string -- a cheap operation. Retrieving the number of Unicode characters, on the other hand, uses `String.length`, and may be expensive as it relies on a traversal of the entire string. +For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for tuple size), `length/1` (for list length) and `String.length/1` (for the number of graphemes in a string). We use `byte_size` to get the number of bytes in a string -- a cheap operation. Retrieving the number of Unicode graphemes, on the other hand, uses `String.length`, and may be expensive as it relies on a traversal of the entire string. Elixir also provides `Port`, `Reference`, and `PID` as data types (usually used in process communication), and we will take a quick look at them when talking about processes. For now, let's take a look at some of the basic operators that go with our basic types. diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 6cb6da44b..76808e3be 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -50,7 +50,9 @@ Now that we understand what the Unicode standard is and what code points are, we Elixir uses UTF-8 to encode its strings, which means that code points are encoded as a series of 8-bit bytes. UTF-8 is a **variable width** character encoding that uses one to four bytes to store each code point; it is capable of encoding all valid Unicode code points. -Because UTF-8 is a variable width encoding, the number of characters (i.e. code points) and the number of bytes in a string may not be 1:1. Consider the following: +Besides defining characters, UTF-8 also provides a notion of graphemes. Graphemes may consist of multiple characters that are often perceived as one. For example, `é` can be represented in Unicode as a single character. It can also be represented as the combination of the character `e` and the acute accent character `´` into a single grapheme. + +In other words, what we would expect to be a single character, such as `é` or `ł`, can in practice be multiple characters, each represented by potentially multple bytes. Consider the following: ```elixir iex> string = "hełło" @@ -61,7 +63,7 @@ iex> byte_size(string) 7 ``` -`String.length/1` counts characters, but `byte_size/1` reveals the number of underlying raw bytes needed to store the string when using UTF-8 encoding. UTF-8 requires one byte to represent the characters `h`, `e`, and `o`, but two bytes to represent `ł`. Some of the genius of UTF-8 is how it reserves certain bits to declare how many bytes are needed to represent a code point. +`String.length/1` counts graphemes, but `byte_size/1` reveals the number of underlying raw bytes needed to store the string when using UTF-8 encoding. UTF-8 requires one byte to represent the characters `h`, `e`, and `o`, but two bytes to represent `ł`. > Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering `iex` (`iex.bat`). @@ -202,8 +204,8 @@ false iex> rest <<188, 98, 101, 114>> ``` -Above, `x` matched on only the first byte of the multibyte `ü` character. +Above, `x` matched on only the first byte of the multibyte `ü` character. Therefore, when pattern matching on strings, it is important to use the `utf8` modifier: diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 543552d53..e8e5ab378 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -214,7 +214,7 @@ iex> Enum.reduce 1..3, 0, fn(x, acc) -> x + acc end 6 ``` -Another useful example is the `String.Chars` protocol, which specifies how to convert a data structure with characters to a string. It's exposed via the `to_string` function: +Another useful example is the `String.Chars` protocol, which specifies how to convert a data structure to its human representation as a string. It's exposed via the `to_string` function: ```elixir iex> to_string :hello From 9909d70c29758e2b4d2c2ff7fe775a7e8f24277e Mon Sep 17 00:00:00 2001 From: Mario Uher Date: Mon, 13 Jul 2020 08:27:01 +0200 Subject: [PATCH 1199/1761] Update basic-types.markdown (#1421) Split example into two lines to make it easier to understand. --- getting-started/basic-types.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index d4c4d1da7..e97abd030 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -173,7 +173,8 @@ iex> "hellö" Elixir also supports string interpolation: ```elixir -iex> "hellö #{:world}" +iex> string = :world +iex> "hellö #{string}" "hellö world" ``` From 6f2f6863d927b8e502d5cd149f02d1918dcd47a3 Mon Sep 17 00:00:00 2001 From: Artur Plysyuk Date: Mon, 13 Jul 2020 22:14:22 +0300 Subject: [PATCH 1200/1761] Simplify @moduleattribute example (#1422) --- getting-started/module-attributes.markdown | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 133141c4f..9eedecbbc 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -132,10 +132,9 @@ end Functions may be called when defining a module attribute, e.g. ```elixir -defmodule MyApp.Notification do - @service Application.get_env(:my_app, :email_service) - @message Application.get_env(:my_app, :welcome_email) - def welcome(email), do: @service.send_welcome_message(email, @message) +defmodule MyApp.Status do + @service URI.parse("https://example.com") + def status(email), do: SomeHttpClient.get(@service) end ``` From fed2153654562ab746062fdcdfcc2f4ad03f28b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 13 Jul 2020 21:42:05 +0200 Subject: [PATCH 1201/1761] Simplify module attributes section --- getting-started/module-attributes.markdown | 39 +++------------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 9eedecbbc..13bff2620 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -113,8 +113,6 @@ MyServer.first_data #=> 14 MyServer.second_data #=> 13 ``` -This is exactly how [ExUnit](https://hexdocs.pm/ex_unit/ExUnit.Case.html#module-tags) uses the `@tag` attribute to annotate tests (see the "temporary storage" section below for an example). - Every time an attribute is read inside a function, a snapshot of its current value is taken. In other words, the value is read at compilation time and not at runtime. As we are going to see, this also makes attributes useful as storage during module compilation. Normally, repeating a module attribute will cause its value to be reassigned, but there are circumstances where you may want to [configure the module attribute](https://hexdocs.pm/elixir/Module.html#register_attribute/3) so that its values are accumulated: @@ -144,49 +142,22 @@ When defining an attribute, do not leave a line break between the attribute name ## As temporary storage -One of the projects in the Elixir organization is [the `Plug` project](https://github.com/elixir-lang/plug), which is meant to be a common foundation for building web libraries and frameworks in Elixir. - -The Plug library allows developers to define their own plugs which can be run in a web server: - -```elixir -defmodule MyPlug do - use Plug.Builder - - plug :set_header - plug :send_ok - - def set_header(conn, _opts) do - put_resp_header(conn, "x-header", "set") - end - - def send_ok(conn, _opts) do - send_resp(conn, 200, "ok") - end -end - -IO.puts "Running MyPlug with Cowboy on http://localhost:4000" -Plug.Adapters.Cowboy.http MyPlug, [] -``` - -In the example above, we have used the `plug/1` macro to connect functions that will be invoked when there is a web request. Internally, every time you call `plug/1`, the Plug library stores the given argument in a `@plugs` attribute. Just before the module is compiled, Plug runs a callback that defines a function (`call/2`) which handles HTTP requests. This function will run all plugs inside `@plugs` in order. - -In order to understand the underlying code, we'd need macros, so we will revisit this pattern in the meta-programming guide. However, the focus here is on how using module attributes as storage allows developers to create DSLs. - -Another example comes from [the ExUnit framework](https://hexdocs.pm/ex_unit/) which uses module attributes as annotation and storage: +To see an example of using module attributes as for storage, look no futher than Elixir's unit test framework called [ExUnit](https://hexdocs.pm/ex_unit/). ExUnit uses module attributes for multiple different purposes: ```elixir defmodule MyTest do - use ExUnit.Case + use ExUnit.Case, async: true @tag :external + @tag os: :unix test "contacts external service" do # ... end end ``` -Tags in ExUnit are used to annotate tests. Tags can be later used to filter tests. For example, you can avoid running external tests on your machine because they are slow and dependent on other services, while they can still be enabled in your build system. +In the example above, `ExUnit` stores the value of `async: true` in a module attribute to change how the module is compiled. Tags are also defined as `accumulate: true` attributes, and they store tags that can be used to setup and filter tests. For example, you can avoid running external tests on your machine because they are slow and dependent on other services, while they can still be enabled in your build system. -We hope this section shines some light on how Elixir supports meta-programming and how module attributes play an important role when doing so. +In order to understand the underlying code, we'd need macros, so we will revisit this pattern in the meta-programming guide and learn how to use module attributes as storage to allow developers to create DSLs. In the next chapters, we'll explore structs and protocols before moving to exception handling and other constructs like sigils and comprehensions. From 3a943c60b2131fa3cb3b965eaccd36138686bb36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 16 Jul 2020 19:52:32 +0200 Subject: [PATCH 1202/1761] Clarify reasoning --- ...erty-based-testing-and-data-generation-for-elixir.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown index 9a430cbdb..7eb9d9ba1 100644 --- a/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown +++ b/_posts/2017-10-31-stream-data-property-based-testing-and-data-generation-for-elixir.markdown @@ -167,9 +167,9 @@ The reasons for writing a new property-based testing library from scratch are be ## Roadmap -**Update Jun/2020:** after careful consideration, the Elixir team decided to not include `StreamData` in Elixir itself, as it provides all of the feature set necessary as a package. +`stream_data` and the functionalities it includes are scheduled to be included in one of the next two Elixir releases, likely 1.6 but possibly 1.7. We have used the names `StreamData` and `ExUnitProperties` to avoid conflicts when those modules are eventually merged into Elixir. When merged, they will be renamed to the proper `Stream.Data` and `ExUnit.Properties` modules. Right now, all development is happening in the [stream_data][] repository, where we are discussing features and giving users a chance to try out the functionalities early on. We'd love for anyone to get involved in trying stream_data and we'd love feedback! -stream_data and the functionalities it includes are scheduled to be included in one of the next two Elixir releases, likely 1.6 but possibly 1.7. We have used the names `StreamData` and `ExUnitProperties` to avoid conflicts when those modules are eventually merged into Elixir. When merged, they will be renamed to the proper `Stream.Data` and `ExUnit.Properties` modules. Right now, all development is happening in the [stream_data][] repository, where we are discussing features and giving users a chance to try out the functionalities early on. We'd love for anyone to get involved in trying stream_data and we'd love feedback! +**Update Jun/2020:** after careful consideration, the Elixir team decided to not include `StreamData` in Elixir itself, and keep it as package, as it is able to provide all of the necessary features without a need for direct integration with the language. [stream_data]: https://github.com/whatyouhide/stream_data [quickcheck-paper]: http://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf From 8c8d56467957f7b1b246715730af13cb3c5f73ef Mon Sep 17 00:00:00 2001 From: michael-j1210 <65243932+michael-j1210@users.noreply.github.com> Date: Tue, 21 Jul 2020 11:32:09 +0100 Subject: [PATCH 1203/1761] Update conferences.html (#1424) Add next virtual conference and removed physical event for 2020 --- _includes/conferences.html | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/_includes/conferences.html b/_includes/conferences.html index eb57bee1c..b39a12467 100644 --- a/_includes/conferences.html +++ b/_includes/conferences.html @@ -4,11 +4,8 @@

Upcoming conferences

ElixirConf EU Virtual
- Online | Conference 18-19 June | Training 15-17 June + Online | Conference 7-8 October | Training 6 October
- - ElixirConf EU 2020
- Warsaw, Poland | Conference 7-8 October | Training 6 October -
+
From 3ad9e4be2cbd1de97c9ece023a0caabc234e237c Mon Sep 17 00:00:00 2001 From: David Dunn <26876072+doubledup@users.noreply.github.com> Date: Tue, 21 Jul 2020 15:10:56 +0200 Subject: [PATCH 1204/1761] Update link to full guard documentation (#1425) The previous link pointed at the guard documentation for Elixir v1.9.4. This was moved from a separate "Guards" page in v1.9.4 to the "Patterns and Guards" page in v1.10.4. --- getting-started/case-cond-and-if.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index 58dc413cf..78274ff0f 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -72,7 +72,7 @@ iex> case :ok do ** (CaseClauseError) no case clause matching: :ok ``` -Consult [the full documentation for guards](https://hexdocs.pm/elixir/guards.html) for more information about guards, how they are used, and what expressions are allowed in them. +Consult [the full documentation for guards](https://hexdocs.pm/elixir/patterns-and-guards.html#guards) for more information about guards, how they are used, and what expressions are allowed in them. Note anonymous functions can also have multiple clauses and guards: From 46449357088eafc3c63ac9f93593af2ab646663f Mon Sep 17 00:00:00 2001 From: Andrew Mark Allen Date: Sat, 25 Jul 2020 08:57:04 +0100 Subject: [PATCH 1205/1761] Update docs-tests-and-with.markdown (#1426) Fixed some confusing and incorrect language to be clearer: "Not only this test cannot run asynchronously, it also requires the expensive setup of stopping and starting the :kv application." -> "Not only can this test not run asynchronously, but it also requires the expensive setup of stopping and starting the `:kv` application." --- getting-started/mix-otp/docs-tests-and-with.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 19b044872..b11dc8c5c 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -444,7 +444,7 @@ In case the test crashes, you will see a report as follows: 13:44:10.035 [info] Application kv exited: :stopped ``` -With this simple integration test, we start to see why integration tests may be slow. Not only this test cannot run asynchronously, it also requires the expensive setup of stopping and starting the `:kv` application. In fact, your test suite may even fail and run into timeouts. If that's the case, you can tweak the `:gen_tcp.recv(socket, 0)` call to pass a third argument, which is the timeout in milliseconds. In the next chapter we will learn about application configuration, which we could use to make the timeout configurable, if desired. +With this simple integration test, we start to see why integration tests may be slow. Not only can this test not run asynchronously, but it also requires the expensive setup of stopping and starting the `:kv` application. In fact, your test suite may even fail and run into timeouts. If that's the case, you can tweak the `:gen_tcp.recv(socket, 0)` call to pass a third argument, which is the timeout in milliseconds. In the next chapter we will learn about application configuration, which we could use to make the timeout configurable, if desired. At the end of the day, it is up to you and your team to figure out the best testing strategy for your applications. You need to balance code quality, confidence, and test suite runtime. For example, we may start with testing the server only with integration tests, but if the server continues to grow in future releases, or it becomes a part of the application with frequent bugs, it is important to consider breaking it apart and writing more intensive unit tests that don't have the weight of an integration test. From 4989597e53f374947388b8fe54d7fd8459c6648d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2020 09:14:18 +0200 Subject: [PATCH 1206/1761] Bump json from 2.1.0 to 2.3.0 (#1427) Bumps [json](https://github.com/flori/json) from 2.1.0 to 2.3.0. - [Release notes](https://github.com/flori/json/releases) - [Changelog](https://github.com/flori/json/blob/master/CHANGES.md) - [Commits](https://github.com/flori/json/compare/v2.1.0...v2.3.0) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 04495537f..2bf1ed441 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -191,7 +191,7 @@ GEM gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (~> 3.0) - json (2.1.0) + json (2.3.0) kramdown (1.17.0) liquid (4.0.0) listen (3.1.5) From b89f888a4de59abecf0d9eb2838d682b69d1a33c Mon Sep 17 00:00:00 2001 From: tisd Date: Wed, 29 Jul 2020 21:40:53 +0500 Subject: [PATCH 1207/1761] Update recursion.markdown (#1428) --- getting-started/recursion.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 892fbe405..44dffb37a 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -17,7 +17,7 @@ for(i = 0; i < sizeof(array); i++) { } ``` -In the example above, we are mutating both the array and the variable `i`. Mutating is not possible in Elixir. Instead, functional languages rely on recursion: a function is called recursively until a condition is reached that stops the recursive action from continuing. No data is mutated in this process. Consider the example below that prints a string an arbitrary number of times: +In the example above, we are mutating both the array and the variable `i`. However, data structures in Elixir are immutable. For this reason, functional languages rely on recursion: a function is called recursively until a condition is reached that stops the recursive action from continuing. No data is mutated in this process. Consider the example below that prints a string an arbitrary number of times: ```elixir defmodule Recursion do From 0844c7e94ad0004237a57ddf15fa3a2e3dfc6c41 Mon Sep 17 00:00:00 2001 From: Felipe Lincoln <37600416+felipelincoln@users.noreply.github.com> Date: Sun, 2 Aug 2020 05:08:40 -0300 Subject: [PATCH 1208/1761] Fix a typo to "further" (#1429) --- getting-started/module-attributes.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 13bff2620..a6752096c 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -142,7 +142,7 @@ When defining an attribute, do not leave a line break between the attribute name ## As temporary storage -To see an example of using module attributes as for storage, look no futher than Elixir's unit test framework called [ExUnit](https://hexdocs.pm/ex_unit/). ExUnit uses module attributes for multiple different purposes: +To see an example of using module attributes as for storage, look no further than Elixir's unit test framework called [ExUnit](https://hexdocs.pm/ex_unit/). ExUnit uses module attributes for multiple different purposes: ```elixir defmodule MyTest do From 50599d9e5f5b7065ac4ae486561fa3f7642ddf85 Mon Sep 17 00:00:00 2001 From: Felipe Lincoln <37600416+felipelincoln@users.noreply.github.com> Date: Sun, 2 Aug 2020 09:10:30 -0300 Subject: [PATCH 1209/1761] Add missing elixir syntax highlighting (#1430) --- getting-started/structs.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index b0c7ca03a..0c2a025b1 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -139,7 +139,7 @@ iex> %User{} Doing it in reverse order will raise a syntax error: -``` +```elixir iex> defmodule User do ...> defstruct [name: "John", age: 27, :email] ...> end From 3b400110d6301aa4cbfb49b1992e900d8070a45c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 17 Jul 2020 19:12:32 +0200 Subject: [PATCH 1210/1761] Tidy up learning resources --- learning.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/learning.markdown b/learning.markdown index 2991ece98..6794a7ba9 100644 --- a/learning.markdown +++ b/learning.markdown @@ -107,23 +107,23 @@ If you're new to Elixir, you'll get step-by-step guidance in an engaging format
-

grox.io's Multi-Format Elixir Course

+

grox.io's Elixir Course

grox.io's Multi-Format Elixir Course -Learning complex concepts like programming languages is best with multiple formats. Groxio's learning method embraces an interactive mini-book for beginners, video overviews for novices, an online book for presenting higher level concepts, videos with live coding to simulate advanced pair programming through projects meaningful to beginners and experts. +Learning complex concepts like programming languages is best with multiple formats. Groxio's learning method embraces an interactive mini-book for beginners, video overviews for novices, an online book for presenting higher level concepts, videos with live coding to simulate advanced pair programming through projects meaningful to beginners and experts. -The Elixir module is a full program with a book with 80 pages, 8 videos, dozens of exercises, and two full test-first projects. Beginners can learn the language, and experts can fill in typical blind spots like writing sigils, building macros, and using streams. +The Elixir module is a full program with a book with 80 pages, 8 videos, dozens of exercises, and two full test-first projects. Beginners can learn the language, and experts can fill in typical blind spots like writing sigils, building macros, and using streams.
-

grox.io's Multi-Format OTP Course

+

grox.io's OTP Course

grox.io's Multi-Format OTP Course -The best seller Designing Elixir Systems with OTP teaches OTP from a design perspective by showing a system for breaking projects into layers. This course builds on those layering concepts with a 60 page book, 12 videos, projects, and curated links to go into deeper detail for tricky OTP concepts. +This course teaches OTP from a design perspective by showing a system for breaking projects into layers. This course builds on those layering concepts with a 60 page book, 12 videos, projects, and curated links to go into deeper detail for tricky OTP concepts. -Understand how back-pressure works, step inside supervision trees, and learn to build your dynamic supervisors. Learn OTP for the first time, or solidify your intuition by building the base concepts by reading a book, watching videos, and working through guided projects using Groxio's blend of media, designed to take you from novice to expert. +Understand how back-pressure works, step inside supervision trees, and learn to build your dynamic supervisors. Learn OTP for the first time, or solidify your intuition by building the base concepts by reading a book, watching videos, and working through guided projects using Groxio's blend of media, designed to take you from novice to expert.
From 9adb9290c238e4bc8e321c61746771dbec4ad104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 12 Aug 2020 12:53:25 +0200 Subject: [PATCH 1211/1761] Prepare blog post for next in the series --- _posts/2020-06-23-growing-with-elixir-at-brex.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2020-06-23-growing-with-elixir-at-brex.markdown b/_posts/2020-06-23-growing-with-elixir-at-brex.markdown index 86956dd51..7b4df1241 100644 --- a/_posts/2020-06-23-growing-with-elixir-at-brex.markdown +++ b/_posts/2020-06-23-growing-with-elixir-at-brex.markdown @@ -1,6 +1,6 @@ --- layout: post -title: Growing with Elixir at Brex +title: Elixir at fintech with Brex author: José Valim category: Cases excerpt: A case study of how Elixir is being used at Brex. From 6561b2a3c93668a99165c762de5c8917a69f6a2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 12 Aug 2020 17:26:31 +0200 Subject: [PATCH 1212/1761] Remove banner code --- _includes/top.html | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/_includes/top.html b/_includes/top.html index 17033fc1a..deb94fab6 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -19,21 +19,6 @@ -
- Please participate in the 2020 Elixir Ecosystem Survey! -
×
-
- -
- - - - diff --git a/_includes/top.html b/_includes/top.html index 7ec192fb6..3fed5d782 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -16,6 +16,9 @@ + + + {% seo title=false %} diff --git a/js/toc/toc.js b/js/toc/toc.js index 5f4cf9b6b..02edb8bc3 100644 --- a/js/toc/toc.js +++ b/js/toc/toc.js @@ -1,110 +1,129 @@ // https://github.com/ghiculescu/jekyll-table-of-contents -(function($){ - $.fn.toc = function(options) { - var defaults = { - title: '', - minimumHeaders: 3, - headers: 'h1, h2, h3, h4, h5, h6', - listType: 'ol', // values: [ol|ul] - - linkHeader: true, - linkHere: false, - linkHereText: '', - linkHereTitle: 'Link here', - backToTop: false, - backToTopId: '', - backToTopText: '', - backToTopTitle: 'Back to top', - backToTopDisplay: 'always', // values: [always|highest] - }, - settings = $.extend(defaults, options); - - var headers = $(settings.headers).filter(function() { - // get all headers with an ID - var previousSiblingName = $(this).prev().attr( "name" ); - if (!this.id && previousSiblingName) { - this.id = $(this).attr( "id", previousSiblingName.replace(/\./g, "-") ); - } - return this.id; - }), output = $(this); - - if (!headers.length || headers.length < settings.minimumHeaders || !output.length) { - return; - } - - var get_level = function(ele) { return parseInt(ele.nodeName.replace("H", ""), 10); } - var highest_level = headers.map(function(_, ele) { return get_level(ele); }).get().sort()[0]; - var level = get_level(headers[0]), - this_level, - html = settings.title + ' <'+settings.listType+' class="jekyll-toc">'; +$.fn.toc = function(options) { + var defaults = { + title: '', + minimumHeaders: 3, + headers: 'h1, h2, h3, h4, h5, h6', + listType: 'ol', // values: [ol|ul] - var back_to_top = function(id) { - return ''+settings.backToTopText+''; - } + linkHeader: true, + linkHere: false, + linkHereText: '', + linkHereTitle: 'Link here', + backToTop: false, + backToTopId: '', + backToTopText: '', + backToTopTitle: 'Back to top', + backToTopDisplay: 'always', // values: [always|highest] + }, + settings = $.extend(defaults, options); - var link_here = function(id) { - return ''+settings.linkHereText+''; + var headers = $(settings.headers).filter(function() { + // get all headers with an ID + var previousSiblingName = $(this).prev().attr( "name" ); + if (!this.id && previousSiblingName) { + this.id = $(this).attr( "id", previousSiblingName.replace(/\./g, "-") ); } + return this.id; + }), output = $(this); - function fixedEncodeURIComponent (str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { - return '%' + c.charCodeAt(0).toString(16); - }); - } + if (!headers.length || headers.length < settings.minimumHeaders || !output.length) { + return; + } - function force_update_hash(hash) { - if ( window.location.hash == hash ) { - window.location.hash = ''; - } - window.location.hash = hash; - + var get_level = function(ele) { return parseInt(ele.nodeName.replace("H", ""), 10); } + var highest_level = headers.map(function(_, ele) { return get_level(ele); }).get().sort()[0]; + + var level = get_level(headers[0]), + this_level, + html = settings.title + ' <'+settings.listType+' class="jekyll-toc">'; + + var back_to_top = function(id) { + return ''+settings.backToTopText+''; + } + + var link_here = function(id) { + return ''+settings.linkHereText+''; + } + + function fixedEncodeURIComponent (str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { + return '%' + c.charCodeAt(0).toString(16); + }); + } + + function force_update_hash(hash) { + if ( window.location.hash == hash ) { + window.location.hash = ''; } + window.location.hash = hash; - $(headers).each(function(_, header) { - this_level = get_level(header); - var header_id = $(header).attr('id'); - if (this_level === level) // same level as before; same indenting - html += "
  • " + header.innerHTML + ""; - else if (this_level <= level){ // higher level than before; end parent ol - for(i = this_level; i < level; i++) { - html += "
  • " - } - html += "
  • " + header.innerHTML + ""; - } - else if (this_level > level) { // lower level than before; expand the previous to contain a ol - for(i = this_level; i > level; i--) { - html += "<"+settings.listType+">
  • " - } - html += "" + header.innerHTML + ""; + } + + $(headers).each(function(_, header) { + this_level = get_level(header); + var header_id = $(header).attr('id'); + if (this_level === level) // same level as before; same indenting + html += "
  • " + header.innerHTML + ""; + else if (this_level <= level){ // higher level than before; end parent ol + for(i = this_level; i < level; i++) { + html += "
  • " } - level = this_level; // update for the next one - - // add links at the end (so we don't pulute header.innerHTML) - $(header).addClass('jekyll-toc-top-level-header').wrapInner('').append( link_here(header_id) ); - if (settings.backToTop) { - switch(settings.backToTopDisplay){ - case 'highest': - if ( this_level === highest_level ) { - $(header).append( back_to_top(settings.backToTopId) ); - } - break; - case 'always': - default: - $(header).append( back_to_top(settings.backToTopId) ); - } + html += "
  • " + header.innerHTML + ""; + } + else if (this_level > level) { // lower level than before; expand the previous to contain a ol + for(i = this_level; i > level; i--) { + html += "<"+settings.listType+">
  • " } + html += "" + header.innerHTML + ""; + } + level = this_level; // update for the next one - if (settings.linkHeader) { - $(header).addClass('jekyll-toc-header'); - $(header).children('span.jekyll-toc-wrapper').on( 'click', function( ) { - force_update_hash(fixedEncodeURIComponent(header_id)); - }); + // add links at the end (so we don't pulute header.innerHTML) + $(header).addClass('jekyll-toc-top-level-header').wrapInner('').append( link_here(header_id) ); + if (settings.backToTop) { + switch(settings.backToTopDisplay){ + case 'highest': + if ( this_level === highest_level ) { + $(header).append( back_to_top(settings.backToTopId) ); + } + break; + case 'always': + default: + $(header).append( back_to_top(settings.backToTopId) ); } - }); + } + + if (settings.linkHeader) { + $(header).addClass('jekyll-toc-header'); + $(header).children('span.jekyll-toc-wrapper').on( 'click', function( ) { + force_update_hash(fixedEncodeURIComponent(header_id)); + }); + } + }); + + html += ""; - html += ""; + output.html(html) +}; - output.html(html) - }; -})(jQuery); \ No newline at end of file +$(document).ready(function() { + $('.toc').toc({ + title: '', + listType: 'ol', + minimumHeaders: 2, + headers: 'h2, h3, h4, h5, h6', + linkHere: true, + linkHereTitle: 'Link here', + backToTop: true, + backToTopId: 'toc', + backToTopTitle: 'Back to Table of Contents', + }); + $('.jekyll-toc-header a.jekyll-toc-link-here span.jekyll-toc-icon').addClass('icon icon-link'); + $('.jekyll-toc-header a.jekyll-toc-back-to-top span.jekyll-toc-icon').addClass('icon icon-chevron-up'); + $('#top-banner .close').click(function() { + $(this).parent().slideUp(200); + document.cookie = 'topBannerDisabled=true'; + }) +}); \ No newline at end of file From ac83567fc3d4992d65617493c7893d23cd54bba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 9 Oct 2020 10:56:23 +0200 Subject: [PATCH 1237/1761] Link to plausible.io for now --- _includes/top.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/top.html b/_includes/top.html index 3fed5d782..471eda8bb 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -16,7 +16,7 @@ - + {% seo title=false %} From 03f2adbffd9773d11c6fa69d2dc6ac585a2fbbd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 9 Oct 2020 15:32:48 +0200 Subject: [PATCH 1238/1761] Revert "Link to plausible.io for now" This reverts commit ac83567fc3d4992d65617493c7893d23cd54bba5. --- _includes/top.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/top.html b/_includes/top.html index 471eda8bb..3fed5d782 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -16,7 +16,7 @@ - + {% seo title=false %} From 349b1a87e9687c6ff9336d1c48c03138367c1e99 Mon Sep 17 00:00:00 2001 From: JavierYazp Date: Sat, 10 Oct 2020 04:18:59 -0600 Subject: [PATCH 1239/1761] Add companies using Elixir in production section in home page (#1457) --- ...06-23-growing-with-elixir-at-brex.markdown | 2 + ...-08-20-embedded-elixir-at-farmbot.markdown | 2 + ...-09-24-paas-with-elixir-at-Heroku.markdown | 2 + ...n-at-scale-with-elixir-at-discord.markdown | 2 + bundle | 0 css/style.css | 68 ++++++++++++++++++ images/cases/logos/brex.png | Bin 0 -> 2881 bytes images/cases/logos/default-image.png | Bin 0 -> 3411 bytes images/cases/logos/discord.png | Bin 0 -> 5336 bytes images/cases/logos/farmbot.png | Bin 0 -> 4824 bytes images/cases/logos/heroku.png | Bin 0 -> 3776 bytes index.html | 29 ++++++++ 12 files changed, 105 insertions(+) create mode 100644 bundle create mode 100644 images/cases/logos/brex.png create mode 100644 images/cases/logos/default-image.png create mode 100644 images/cases/logos/discord.png create mode 100644 images/cases/logos/farmbot.png create mode 100644 images/cases/logos/heroku.png diff --git a/_posts/2020-06-23-growing-with-elixir-at-brex.markdown b/_posts/2020-06-23-growing-with-elixir-at-brex.markdown index 39b9bd37e..62ab66ed8 100644 --- a/_posts/2020-06-23-growing-with-elixir-at-brex.markdown +++ b/_posts/2020-06-23-growing-with-elixir-at-brex.markdown @@ -4,6 +4,8 @@ title: Elixir at fintech with Brex author: José Valim category: Cases excerpt: A case study of how Elixir is being used at Brex. +logo: /images/cases/logos/brex.png +tags: fintech phoenix grpc --- *Welcome to our series of case studies about companies using Elixir in production. We are glad to invite Brex as our first case.* diff --git a/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown b/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown index 2b55e3048..8ecb2ee14 100644 --- a/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown +++ b/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown @@ -4,6 +4,8 @@ title: Embedded Elixir at Farmbot author: José Valim category: Cases excerpt: A case study of how Elixir is being used at Farmbot. +logo: /images/cases/logos/farmbot.png +tags: embedded nerves --- [FarmBot](https://farm.bot/) is an open-source precision agriculture CNC farming project that includes a robot farming machine, software, and documentation including a farming data repository. FarmBot's machines use IoT technology to make it easy for farmers to remotely manage their gardens. diff --git a/_posts/2020-09-24-paas-with-elixir-at-Heroku.markdown b/_posts/2020-09-24-paas-with-elixir-at-Heroku.markdown index c4bed3eb4..186d19ced 100644 --- a/_posts/2020-09-24-paas-with-elixir-at-Heroku.markdown +++ b/_posts/2020-09-24-paas-with-elixir-at-Heroku.markdown @@ -4,6 +4,8 @@ title: PaaS with Elixir at Heroku author: José Valim category: Cases excerpt: A case study of how Elixir is being used at Heroku. +logo: /images/cases/logos/heroku.png +tags: paas phoenix --- [Heroku](https://www.heroku.com) provides services and tools to build, run, and scale web applications. They enable developers and teams to focus on the design and craft of their apps. Heroku started development back in 2007, focused on the Ruby programming language, and since then, they have expanded to support multiple runtimes, either officially or via buildpacks. diff --git a/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown b/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown index e90dc1d29..cdf14cf51 100644 --- a/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown +++ b/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown @@ -4,6 +4,8 @@ title: Real time communication at scale with Elixir at Discord author: José Valim category: Cases excerpt: A case study of how Elixir is being used at Discord. +logo: /images/cases/logos/discord.png +tags: real-time genstage --- Founded in 2015 by Jason Citron and Stan Vishnevskiy, [Discord](https://discord.com/) is a permanent, invite-only space for your communities and friends, where people can hop between voice, video, and text, depending on how they want to talk, letting them have conversations in a very natural or authentic way. Today, the service has over 100 million monthly active users from across the globe. Every day people spend 4 billion minutes in conversation on Discord servers, across 6.7 million active servers / communities. diff --git a/bundle b/bundle new file mode 100644 index 000000000..e69de29bb diff --git a/css/style.css b/css/style.css index 7f2679a6a..c97012dea 100644 --- a/css/style.css +++ b/css/style.css @@ -642,6 +642,74 @@ body.learning div.menu li.learning a { .entry-title a, .entry-title a:visited { color: #222; } .entry-title a:hover { color: #4e2a5e; } +/* Post Cases titles +-------------------------------------------------------------- */ +.cases-header { + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +/* Post Cases boxes +-------------------------------------------------------------- */ +.clases-boxes { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin-top: 1em; +} + +.clases-boxes a { + text-decoration: none; +} + +@media screen and (max-width: 480px) { + .clases-boxes { + justify-content: center; + width: 100%; + } +} + +.cases-image { + display: flex; + justify-content: center; + width: 175px; + height: 125px; + padding: 10px; + outline-style: solid; + outline-width: 1.5px; + outline-color: #E5E5E5; + margin: auto; +} + +.cases-image:hover { + outline-width: 2px; + outline-color: #4E2A8E; + background-color:#F6F4F9; +} + +.cases-tag { + display: flex; + flex-wrap: nowrap; + justify-content: center; + padding: 10px 5px 10px 0px; + margin: 0; +} + +.cases-tag span:hover { + background-color: #4E2A8E; +} + +.cases-tag span { + font-size: 12px; + text-decoration: none; + color: #ffffff; + padding: 2px 3px 2px 3px; + background-color: #9EB0C3; + border-radius: 3px; + margin: 5px 5px 0px 5px; +} + /* Post bylines/datelines -------------------------------------------------------------- */ .byline { diff --git a/images/cases/logos/brex.png b/images/cases/logos/brex.png new file mode 100644 index 0000000000000000000000000000000000000000..e84325221150fe41a5955f0faa96e9aeb4305e00 GIT binary patch literal 2881 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 XhQzAg3y5|8^S)Z2b3oOY`=$H`nl>dz literal 0 HcmV?d00001 diff --git a/images/cases/logos/default-image.png b/images/cases/logos/default-image.png new file mode 100644 index 0000000000000000000000000000000000000000..a395e771cbbd7d2a1268e45f6855042e430b95cd GIT binary patch literal 3411 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

    a>Xm9QLjMEyrD!bx literal 0 HcmV?d00001 diff --git a/images/cases/logos/discord.png b/images/cases/logos/discord.png new file mode 100644 index 0000000000000000000000000000000000000000..23e93025313befdb6a46fe2a1b3df1b1f13890d5 GIT binary patch literal 5336 zcmb_=S2P?9)GZ=P^dN{9U82Vb$q>;AgDBB^i4c8^-V#P1QNj?t*U@YA-n)pNF&K5U z(c8`Ua_?IA_5UCC+54Qc-_Kb)LQ`Fd?9tOlI5;?DD$4R&|Jd(85E1;Vr7SaT{|MJz zOGy?7F~+q0uaURWSFr_wa9;e=L^!x%pKHdH?|b@WFMQ*(r)7N zKmI-^JmGJqdwtumon44#i(|Pm)%F-u^ISF3ZP>XkxhrYksknbx@KyF5TNb4z5idRs z-Xq-5p#O0@z=tPU(X=5_Q{ww(JVExFaco|nO;RA%04>Fb_$+AE67vhAs!Er5FL*#P zUQ8u& z%vt9|9LPEzP+k6DBs!*X0FvN|AN+UeC4NEJcRI z)Ld&I;oHZ|4oY%Fx0oEs(*z~`j1J0xkPY2Q*kfFUiw}78_3M#`l_HSD4c!n{t{@9l z1Q7+Jm6Cxeig%h&@HP7BH2B-(S{UV5;_)-R4gx;j{7JHeI77HP>RAjuzlz;~zY~#0 z0+R(IVdn|rM4H9(w`-?Xe2sx3Cxn1Xxo3)7>5Xzb8|5Iv!GHbrAYm3AY~5Iz&~r>C z^+RHx`~F1yqFJY$hJ=#F?^7bGlQzCRLI9|3B+soUt-VFKWJki{h2SF zzPhuW%ahQ}K*{=7O5d=SeK7`4QTGuh%|;-Brv9@(V8Kh!z_pNF@H;Q{z>83fVG%J; zPACn~WX@oVc>npgdGwJoAXqAzo+v=h=zZcHyoS0xL@inphyWH&lzFu!>O>^P_(u2cNoQ!$NOPR!O4xBl(x`ykVnQmE-{*qB2+0 zVEB@XwKY_0o1^B6@&x zYxE#*0rIxS?{fZD@W+RxwZ=Y6)d#1*IjIBW+BP2ia_C zea=WjeS*^!Mp6U$>(Uj-e(j4*y_2Q4+kk+KtvY*XIdzf0eu-3t#?l^%0>@%iZap(2 zU|vt|ND9Ek&Hiqg{MF4x`8Rex8$GA-Tv&Lm|G1CJZw0dFz&zCP?fjfudxK8&&e!@0 zb)bg@2^%}pU$^?Y{Iv_2L7e$=PN&abm57x;LG?8rVWfVl!e*>X(FJLyuIV~jCs%#@ z2}u!zrG`OU#0CCptp?epThwJadrsF=;YfYdoRc3a@jE~JuX0gAa@wh=?E4%+1A zH{XyUo5gctuU)Asm{BKWAQJUJptuvp89wPe_=CL3_3H%?5K`C+U=Z>1u`A*84Pi~x zCT+DFlCc0emM}NiXX%W3Z1DY&5m89!(_5Euuy+St#u7&U^iNmy50lokHY4pkpV&e& z-5Ncb^kgC!Xjq#4_yXj#EZy$sOK`#!F%3ZhZ~g7*d7aqV>ROM+RC))`Vz0I~pDr#s zw4E1g5G#fpVqLmahXUv{;Iw}^FLkqUF2D-i+R=F zSRgGwUD8A^6O5)9OC%Z(*F7}#}^;Nf|(Z$}nKlQ_>x>u`9?h2HdpX?ZjH-ZWSm zs{3ZO=57Vp=GPN;T>5lj8158L9v}t|px5@Q6PUGWKk%N&7IJ^Q8!4RG$QEss-|7*+ zl*-(_`r~w8OcAUvx4`i3o&rijnf413IGX1V(jL7Sz3nY&F0^`qvVGVieHo_WlhMGE zxobgw%CZ>t2R8mej~@b&4F48Ib;hN3XkI=vEJAfnx$71C<#u$pRIef<^hd@D zGSgv2P$VjfwQuj<=o^D#H8*6*Borej7XMCKjvcLQh4cx^&b;rGwV-a~?# z^C7Af6f|HYe>A&fT8sat7GIaNC>W_$L`1>koY^!J%*OP_)%@eF+hhnP!}ob@`vW-% zozjlfAlXjfJ95Ie6l}sFsGEiZZ5>Z znb=sP>zMD$vv&IFNL#CXN8LXv6r@Pi#|c%5gHP;J17BieotxznyH3nwMruX14XXhL zEmp6R%virZ7yank{Te|Cby+JdF2J(&gMLppi$!P|uH>1Nb=`?9WQ)R4>P7*md36>0 zB~V6!VKj4%+(vGE7!Q7=%h&S!f-k|S1w9pH+oK$d?41J#q&o8L=j|s(;MI^;V4=1U zs4oA+V&5<?C(R3uW;py58WhD-@vqYJc=tA}#}$pFeZheppXr zyoqTofG@@Tp%ib|Nyo(0!m*yDkhe(B)xj-;AImXQ2|o?eTed#mY0Vchl}=!CONV_? zT5B6uIC27yVV8_GU&-WM&3MnC*Gccj6@xUyp+nLly*bmW*(s>FifQk^zsLNdE8$Gq z*11TK`Fqy87y2B9Dw21kSwz&Ml_f$ zH*va%e)egPRdw7n*^yPcAsZ#zNSOYeIeCXyvdLo6Ij|Mco*L3bp$% z2%f|2H_$i>KRYz-e6cwSnzfRKPdEBnr|qxON5CXH>ziG%Q5wc>i=P>hDxb+$?&iYf zh`HK$2r5+;OO@{h!D~N%+V_=n{oR~x(EAG>Jh$juav%6k{_Jnrf?<-ItvFYobKmn1 zR(fS8t6(S1C1e8qVri$j1J@E76)+x1^$N9|!K zh1jXtA?Voet;+Zm#QoY5Sn?{c2WF^w&ik)~iNW{$ zZ6B;Gw(R$1)T?M=#g1dMYU?){%C5x*KcW`Lxz8A4J0Fw#K{XW7 zX);Z^fO<0v`5e$zdG1vGhEwy0j^&SlfTc_R5@|7Xr$^j!)mUWF>lX45vh!F@WF5oy zg}z+!n*4IK__vmnM4p@SH|xCN8Bttj?Mph4z}ECCk!D*-iH3mO0}g`vqq7bVKsyxD z(EMW3RPBY zU9A1_$aFH)ypq&?(t2#Y9BwA}OztoVWDD$Jf#?rS&70L~wP)vqQJ3;4uJu|azq>*G z_8a=vHIh>P1_P6ECZt$Tj}Wjcc^(*pL6TmQnEdk0XK6nlCVX*l*KNlgpX;hjDfN5b zO~Al4a1Fd#)gj;+SUYPz+3@U->zO7jyLKS5e*cDUJ1e+#-q>g}>dKpJ-!YZSKN3np z(~`LMtlCWJJ`@N$6^%YvhU)f-#0q$0Gr~qUto= zs(PvNH=a>0P%i3m^JWsfxUdyD@Ft7DrM^h9MY<2BsUX>{P?OU*Z|yqcg$uqna5iqG zEYUBkNr8*9Y0fWkQeXEI#tthffQhTu&KHY zeTl`9N~B=mb$-cUj}W}&sT#fe%uW71+@>v;0gH_ssoT?lbGB5~Ud=eb8u~!c&@MBM zGe{t5@1L0YX)n^8HZSh%V8zJ?FE4}H!lb0UnKAyU!=o&d8cytXLyAX-?Ro|`#2M%> z3c0{{*z3Jzb?BAO$OQYi4D= z-ro^6_1nJ8AJesi)53I=z7bzi0WuB0n45h$5XfHan)F#;0|wquS`xs)ew zmOc6#{ZD3|CaHp9GesUnwZg)2wvy!PHQ!fe%rUg%4UR?5&GUQBBMOAr-L-STqQ6z5 zlv8(x7y5++Uh{yQq)F6BQ1huk8XKX|(EXnH-QtqFiS({j$8BeuuJev&gjpQxkK+>^b!44L0Lc`_s zs;$G}>k5vU4?LH|=oKL!90>w5@~Aqi!^%CSEb$!xa_Eku%fCBtt9C18P5`=ECwKrL zZL1DHgUiT7Z&wuw%%4m&WIkh1wP*H;lxYpk!^`V_gHUkF%Ab$7-nN2yR1&wUeQyPV zJ^kcwKm93wa7f>2JLw=`?4aNJV<+IH_LFtm;L}L6w|S@h4uS3^>j@h=0Yp>@L$ZPJ zjLU^khXHRdCnJ2Da9Y~fZv*z_PD_CJ+J3c+6pa#&AJl85)I*&f^TYLt_nKi}PhG;R zGqb`1fb9|q3nVFfnD{k+=`sivchVmjq?xDEZuwf|(hf<@I zl8?9!`rYjGt!=15V%I+^LfA!UhmLV%XOqd)#RX4Oc$cIK!+C!6Krf3sHZIPCE5f`x z;9$A=vzT}hO)2%tiX5qfE4(9ipiBkY}5k$}%I?+ zLXG4jZYu7iL22soaZW!^rQP9uI*OuIH3pLzD2c>XTH_D&(zM2|-)lOX!5I%j`3wre ziR-T;yZb+ehYmiaBN8$r>9~&6^y5A|#>`+140&rD5>Wf!OiV+x< z8QF%F5boj2s)mJKk4$V6WDlz1 zf>92x_N#lA_Co)3cub*9g{!J<0C=9J%q%Nur6^TZ$8D-pMxhQa*PMew%kB6C&F=J;G%k4(FM)d zTVSW@E$$|RF~Sp(7B!v)t1=VJHz4c%#vlsqnMH{aBx%5{L#s5S8K6O2Cc-cdC1|y@ zFc{w!a9=QFm?oZ_#Vq6b3Nve2UO09+(7=Qa8SUz2c5)6>QNwxEpnurWDAXopx&U~x z_nNKIG~ad$*0twf3ETFD5xJC7;uBN2k9!~C>$)Km&AA)=p2Ud!o!VwWPu~hzHf?2$ z*JvApCTXi1q};wIJBZ2>IW7$GUR&HJQ6>eJ;G$YeoS}~0M?cz+yz(x2 zw>*qY9vc{xV$K4PA?KRSrgD~xeyQ@j(9*xOP#B+iJ@iIkJSE*8sAiBNp*=S^Xi7oV z%PUI8E^Famy1{F+Txnbm6KF<;Un#(9HWQVK=lAwMn%i9t$|%R44Nb*oU#y59q%SOo+hJ}f)< z^6?R&Y8F}GYIq=Mbl{OUsx&Pv?MTR?VU0=-=5X}n=mxvG$`>aimN+tI3$HIAcb3%I zL;a+6YrI>G{%yI{;tP!j8}ZRc!62&#3FNze1+1zLDtg{oINxe4u zq^Q9*SMi&7*SWaE>07}?Np+$lsiUIK5vpi#1cSjmlYg#sxfTNndcjeg+s?FMCMNWL z*V=z;EUh)kHGY0{daywM=~HGN!z45V(m+=igwR!mgaELF-K3LTUDIe1R(VQ9A-0C4 zYtYD;?u7A=C9uUCxTk>qi5MLUq%vKd*UOc*2?QGRlR!m7bXJI%87{AN2y-dS#jWJRqzMsdh^pEW5<13Rlmo3W^U%rIBUsiq~Pu<&8WG9{&w`p)Uv*3?it=;^l9WN;F zm6)NsbA!+~G|?C7DkO6E#(BQJeow|2{PR=0`(l$f6p6RK(D*!KJrb}@Xhs4U=gNCT zs*FJ_cIiQw%HGQIEHNh*00Btv^c+xQOi>_l4;Q0%cTo7=TPbVTzbz~{zuluUd-DU% znVgqjbIt*4z1A?Ek-=t|G@pcnusItPWj)#T;?W<-kd(}+g={uFeQ{%nY-WDH zK)CzV-4nd4)9o`!pBXsk6PdJ!kinMQbontoaMD2ksPv8FOidvj02ENMKJI+h?)jL( z-*wbvpilzq)f$s3Om*zv(?pp>radnYFE)@uc5W;SE^m5XPT@0Y#!`0nESihFm540Y z5-s5qqE0AAc=gj0$0!n`+Kn_t^{unAvRVuFNS5Hv=TxT!>k$MH7$?VT_MJywz5sXi zkFUV>3?H_Z6B?b;l?)vrL5#$^y*u5Be> z^7ZSjdLEm;@ZP)_o}7g*f))2;R=I-jPr1+{W+hmg$rX;wb`QuWpyRV64Uay&83}Pr zLr_SbyF0mW-Nsgy^7*?DSFVmUM8XfIk_{&?GHkL8^DN?pv~Cr`m+flLhQ9l=@3cda zrFt>bgFtUQ=%o{S)E*#h3a8#WFz#7zt%wS`d6!J`37>~QD}EG)re0;(z~`*h%^v_X zJ1n)hl=qwh9szLw*mhdVpgOp+{oArOkQ?|KRH!z7Y|u=m2DfbxEPolpSJAz0(bpKN!b`=ub~jrh0~TrZi%Py zuW|28x+>i3T)IcQG*M;_3*W14Z~Bl^=EXr~^JDSx8q=u1Xq8pGum2i!Cbnv&w9qaN ze&)p#tKdL^7nq%jSK#M_(0n(2b1%th!pnYx*L@A}vS^g7_ITp0mVB2HU@rGj9r<{q zq|;;`Xz75T`2^H*`{$C`7{=mR#DRw~*NAVY2J6|-ZaHrK6x zU})qWOD;q!y8a#a8AfuOj-sVo1-nrcCahWi#J@gGh5t|SE4v(&7A2{-BJ^{c;e4#G zlCEjjYg>pLJUU9=o*79>0)!F_uelmWr?z1Exd-39L#_m}VTYljyKW9}@k2cr2s^Qrzl2;ydoJTTh!TojWl7uf%l75HipGZx9!dj`H zgq6MzmJPpAl%h5mmu^2hig0h3TU{3a5G!utjqJbB5Am*&&4p|Nvn`Vf;Y@i@c)e0x zy3ap|j?abi$0poKtBr7z{?yu9YJk$=cA6ZM`2KU$>ek9$zAUJA>1t@otOKOe6>5Frlx>`Gei*~6|n`$KY&vn)ZPR~nYw}-8cPad;X<)>$o8!{!}`>(swdI&$)8`9 zhma9|PB^e&2pjU?b6`VX zoRlQ&x%(&c_hkTm5+?Dxj9<2l3#6j$P%!_m*LgxtnPI3`c9~bX0aCMB;1$-n%CXiw zGbhHPl06M$riPt3{m6koz0ryZ0#1(z!^*mJXbJ2L@rdSoXsX6}{=u6FeM`Qzjkxpy zV4ljJwBXPBm-y9*c{G}(&KFcD)SI>BAP6^_8F7%yIyzBDmelr)Kk4pR<(Cb8r9ZvV zXvgD~(bgB81=QNV9pvWqH92mG6lG?yPE51D%95Wc#tgjcLliX&Y)UBK)@eJ(0auFh zO%Bh;%zrK46m)jNPKkF+S86lAuxKsZ=Bf87oVT(a=|Y7GCbdu6Uo&@ zi{@R@L7MmmvN1Dmz<6`miS+{pt4dW=hzwqSx}nhrc-H>PTQC7teX5eJV;E$#VjUop zOH7GX%{5@F!ZX6TUjFrEJQW3?`13GwTQZ-s3w{h$2N1Ha69;i@;ryq<&gPG!TJ zmS3pz*%0QfzU-QC00QEBhkr8j}%j<7UWa4C^1YdpN9kAP2YF z3I-3#H3=B}(zRHof4OnMmTJ{zM;W?Z4C0?YU)>I$wXzb`mey%ZXP5xoLdM(dCIFAjcSS)Xz`Eszr2GTMLBQy->_l74M3Ei2neob8cN z&flF@kR}u`7l=U>sqf15wY@?H0E?SP*`iM6-dTaPZ|UAuDo;+wTul0$wwZBY8!sy- z#AGN|?kiq~8VGuyP_WB)u#dtwD*^@8HmzZG@^8?&@V(M^wPTIOEd%Q-p+_Dn`8G_l zlCz_O<;e4Ub%E>mtJ7|2&qTgYS<+%ASdewgNfkEQL_XmffB%xTuiNNEXvQ4Qe*9Wz z#}-ETLmf71^#6a_Ni9w|*D};tk)tQ6cP8_5DhJAKoL5>#EB$1j+Sqx>BSyf=((RTN zuZCN{ncf-cwLZ|2ZfCUN!9-hgAtvOOd-?E3`;K1)&0_3wY_d%R2krY|D%Pgt z{)LREyF89A)dKIcPQ6w0%j17{y;i5oPAn;Ir}^bxL#H#MD!P=lg4te0$OBK8)x&)9(5FGdYi$+?{*oM|uXs`qNO_a@@Z z+aUgWC$w`XYjO<-SYtas9*n2d`i*vG)tpa&SE}4D2S`B-daiMs#h>JEro@+m-9Ss! zdl1ZIgG}CDBFhLdj5W$O6taz-v4+Z;CS)gDSt7d{Oc*=ag~>WY7+V>W!l3NS zm@GXh%XkQbSJ%7!1HTXVxzByh`EWkn=Q=5tFvAP10<1JNG#8AGpw{Oc`4`NL=dn(B z5_e9t!PbVlH0Tk*ALjxJcQAfrZcZa}o-@Y90Le`eqEyfAr>A#0guC4gFys{+xJR zgO^`3`^=6l+of{$yUXQfx*t^FEM~N&d_k1ZOOS3HueVavS$w%EF*x4d?cWYj*A519 z|BbTZ*Y6|)JTjWu9qyaC8UxmRwu}o;S;^AcLd~x{^pXobK@5OPr%56N2SXcNvQ1}XD5Ixh=VILdGY_TqZ-y~a zwW{e~qlufmq#4Jj18`S_yNaigil1mpi00ZKq>qlxLzIS*v$#cl?ch@YoEQ9#S@&i? zD6MtIhp9kA-2NRjQ$y{D>8FfCajmhYo?2hi(}a2sP=vI9vFJQg7lSTz)K;ZizlAk~ z&wx`XM<g87}EMZ#k5^7+UOR= zaI=|A%Y9dGyOMAf$OGqkClnYboL1@^&Zj#|4C2KD26HPq2Y_8BRsGD}}nk1DP7T*_ELpT4F*xVhiUE@tzzcy9%D)%gt&5jdc zqV^c7SI0(|r%8B$A!+JJYrAD_(`3%Pu9y06#R$LR{Aw12mK74v_mN7nG*xQcIynv z!qett#ZG!mSe`LP37^t+PBGP*N<^@WlN7`Imkz(yTrrHhzIwX6KBTLis7Q4p>wW7ZCx~qSb47ir$hZq@n;%597U)L%g1^mEPQtHwy5?O zDZhaJTqV~>Zshziyl%K4t(ms^%Q6;B-EJHPJ@D%8sE^gUnQCD#siMow;Bn)7Gx~rU zuIb6l7X(*?4t`pFS&1w9deGy*-8KBr@fPp+nQOu#=vn{!Td>mYJB`t{uT*%Pwhn*Y z$}lM~jobW%M9Riz&ZoCC@0fEPF!ErWA}6kJH||St`uQ5j*rYnNGmCQNpR$mzAtm}k z#?chGw7XYNe6*}njFvFKus!RcX#RH-^;2HLtWjKvuOVS%J#dw8Aw#@ic9FbwRO|3X zM&oId?fN0&=tSIEmULLkKG`wB%SI%0*OyIY{=tt=pUq0l=c-xf)pTkN|KSUJh37q$ zbvmJj3dM5?2Y-80y@<`IcV{>qx~i~6E*FjadU9HxvbEZdlPpaAhPljTffe2PLvfgP z%KilxJ~D?aagY3hYW-AgrQ0smnUG_nv5!JBfV(VQ_bfm-Nvh+du!i-@RqC;mbq}{6 zyI!AAc6h*p9Ow0lSK{HYK#y`q*~ ze<+PLRj<}YWtFX1-K|&i%sbHnayUw7fY}w>2rL;@fMnw)dsNc7Q-;|!h?w{LFFubr z_`Ygm(ZWoh7?20>$X@)MEz36L?kob?x|)Vn=JaiExkh-rvbXUB+<81DP6M8o`o2r% zXuq|ZdLg%`?s#*553M8C)7;xsuAw#+A*^Zs$(=-nsf8$0KGKhSdm+gsQArImCQ)Zg zF#A#CJ0rEsM~jZD zIWdKO@FpQrZbTJ&8j5|zvs^U~a#mDbn2QWo;V2d@EI19CyFJ~#8};RN2@`UO2-(}e z@K1U8c}HEfps0`d(i6}9VaWIDYSYr|OEb0P^e~9hP@?{@((xBf8>A<0KLjo951!F4 z{4KbY`0dyWOH~Da&;n4K`P*KeV7?QwP99yPH|P9P-06Ie(C$%xWBn~L`Z{A$xGRs{ zBA-6-!K|TJzypc~*flC5xzu@IKzAnX;gkt|;HmFP6ad}XCrkINDxOV5g4J(T)VGYOjal+2A98s1gd-G=Q6E{5Je((S!X~=)h6xC%D|8vu6SPL#*7cZ&pP zEwynTzYn;K_{?W>O^tJR(WXsR?fg=H_|xkb-L!j4>42f*cYBSM)?eo}fAqS14@BOE z#|7p8R-&xte$HZuC5 z1cn*ShuJkfrGh)Eri}%sonZujwbanIvO{@3qv#|mcF#SRBP>VkeOgJ_DO*gKIX)l8 zD_BM9dtGN0<3d~CQ|X4gqBDb#nOrj1WnE~M@B0)~)dJ_AC>K33)>TI7Xx$d9^lu}z zA4A+LH0kH#09ZtCp!(cc5SAM&VSBzRkD1NxT9xXU;V38UN~~ni#e3Hz5da+ONJpx(aAJXOR z!8WcF!19qu;kXDGt3;Z^gUg1kew#ECM(Plk`e$s!dzm^wYeu1d zvt-p6CLQYhP=vrIr6l=EoNVxjBDS^9sE<>d?@6>3V1bc zKzLn&M2Y0tJ9r8>!8d(u_e0%pO)Vi!n|`4&qf5WacEg1045Zzv=UP+zB|VZ}V<*5cB@<4Y(@h>&~>?vtDhk1zaLs$@Rk}rgjz@I0wVpyRC^V_YdW*0 zWQH?R7H6J!C=b9@n)cQf!YnE|?^^ju9r@7_(#oU?bmXY4j}JPiLxc3lMuhKgbF-xN zLHNY>7*I%>-=g_3>o48Tc6&P3xb|}d5?QOGY!Gt3Wm_d^)zfVN} zK?E1i;20sv3TXX`;f*XSxFrSp*XNEa9KYQ-WV=SKI> z@R!>K6$9XI#%qgso?F>o6=+7qDJ5IB7+F@U-MxF0)2U?zRl@&ky8odEs|U2L)huDS U>n+Ur_a&t<)`vmSx~_5m1=FVOn*aa+ literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 54428d0cb..28eeeec36 100644 --- a/index.html +++ b/index.html @@ -16,6 +16,35 @@

  • +
    + +
    +

    Companies using Elixir in production

    + See more cases → +
    + + +
    +

    Platform features

    From 9d5290c0e55262116094237ca4e00409c60906db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 10 Oct 2020 12:51:28 +0200 Subject: [PATCH 1240/1761] Make cases on the home page random --- _includes/top.html | 2 +- ...06-23-growing-with-elixir-at-brex.markdown | 2 +- ...-08-20-embedded-elixir-at-farmbot.markdown | 2 +- ...-09-24-paas-with-elixir-at-Heroku.markdown | 2 +- ...n-at-scale-with-elixir-at-discord.markdown | 4 +- css/style.css | 66 ++++++++++-------- images/cases/{ => bg}/brex.png | Bin images/cases/{ => bg}/discord.png | Bin images/cases/{ => bg}/farmbot.jpg | Bin images/cases/{ => bg}/heroku.png | Bin index.html | 33 ++++----- js/{toc/toc.js => index.js} | 28 +++++++- 12 files changed, 83 insertions(+), 56 deletions(-) rename images/cases/{ => bg}/brex.png (100%) rename images/cases/{ => bg}/discord.png (100%) rename images/cases/{ => bg}/farmbot.jpg (100%) rename images/cases/{ => bg}/heroku.png (100%) rename js/{toc/toc.js => index.js} (88%) diff --git a/_includes/top.html b/_includes/top.html index 3fed5d782..3d4d342e0 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -18,7 +18,7 @@ - + {% seo title=false %} diff --git a/_posts/2020-06-23-growing-with-elixir-at-brex.markdown b/_posts/2020-06-23-growing-with-elixir-at-brex.markdown index 62ab66ed8..181c99c22 100644 --- a/_posts/2020-06-23-growing-with-elixir-at-brex.markdown +++ b/_posts/2020-06-23-growing-with-elixir-at-brex.markdown @@ -12,7 +12,7 @@ tags: fintech phoenix grpc [Brex](https://brex.com/) is reimagining financial systems so every growing company can realize their full potential. New customers can get up and running in minutes with corporate credit cards and cash management in a single, strategic account. Launched in June 2018, Brex earned a $1.1 billion valuation with the [announcement of their Series C round](https://techcrunch.com/2018/10/05/how-the-22-year-old-founders-of-brex-built-a-billion-dollar-business-in-less-than-2-years/). By now, Brex is valued at $2.6 billion, with Elixir at the core of their technology stack. Approximately 90% of Brex’s backend codebase is written in Elixir. -![Brex website](/images/cases/brex.png) +![Brex website](/images/cases/bg/brex.png) ## Why Elixir? diff --git a/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown b/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown index 8ecb2ee14..8924c05b5 100644 --- a/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown +++ b/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown @@ -14,7 +14,7 @@ Farmbot is built with [Nerves](https://www.nerves-project.org/), an open-source When Connor Rigby, former embedded systems engineer at Farmbot, initially joined the company, his first project was to build a Farmbot application using Ruby. After completing the proof-of-concept, he knew that he needed a way to make the embedded development process more efficient, reliable, and secure. Connor had used Nerves before at a previous company and was a regular open-source contributor to Nerves, so he knew the platform would help him accomplish these goals. -![Farmbot](/images/cases/farmbot.jpg) +![Farmbot](/images/cases/bg/farmbot.jpg) ## How Nerves helped diff --git a/_posts/2020-09-24-paas-with-elixir-at-Heroku.markdown b/_posts/2020-09-24-paas-with-elixir-at-Heroku.markdown index 186d19ced..b57e869ba 100644 --- a/_posts/2020-09-24-paas-with-elixir-at-Heroku.markdown +++ b/_posts/2020-09-24-paas-with-elixir-at-Heroku.markdown @@ -12,7 +12,7 @@ tags: paas phoenix As the platform grew, their engineering teams also adopted different languages, one of them being Elixir. In this article, we will talk about how two distinct engineering teams at Heroku, the Front-end team and the Vault team, have adopted Elixir. -![Heroku](/images/cases/heroku.png) +![Heroku](/images/cases/bg/heroku.png) ## First steps with Elixir diff --git a/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown b/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown index cdf14cf51..8ae589752 100644 --- a/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown +++ b/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown @@ -5,14 +5,14 @@ author: José Valim category: Cases excerpt: A case study of how Elixir is being used at Discord. logo: /images/cases/logos/discord.png -tags: real-time genstage +tags: real-time genstage otp --- Founded in 2015 by Jason Citron and Stan Vishnevskiy, [Discord](https://discord.com/) is a permanent, invite-only space for your communities and friends, where people can hop between voice, video, and text, depending on how they want to talk, letting them have conversations in a very natural or authentic way. Today, the service has over 100 million monthly active users from across the globe. Every day people spend 4 billion minutes in conversation on Discord servers, across 6.7 million active servers / communities. From day one, Discord has used Elixir as the backbone of its chat infrastructure. When Discord first adopted the language, they were still working on building a viable business, with many questions and challenges in front of them. Elixir played a crucial role in giving them the desired technological flexibility to grow the company and also became the building block that would allow their systems to run on a massive scale. -![Discord](/images/cases/discord.png) +![Discord](/images/cases/bg/discord.png) ## Starting technologies diff --git a/css/style.css b/css/style.css index c97012dea..18404f3a4 100644 --- a/css/style.css +++ b/css/style.css @@ -642,7 +642,7 @@ body.learning div.menu li.learning a { .entry-title a, .entry-title a:visited { color: #222; } .entry-title a:hover { color: #4e2a5e; } -/* Post Cases titles +/* Cases -------------------------------------------------------------- */ .cases-header { display: flex; @@ -650,42 +650,39 @@ body.learning div.menu li.learning a { justify-content: space-between; } -/* Post Cases boxes --------------------------------------------------------------- */ -.clases-boxes { +.cases-boxes { display: flex; flex-wrap: wrap; justify-content: space-between; - margin-top: 1em; } -.clases-boxes a { +@media screen and (max-width: 959px) { + .cases-boxes { + justify-content: space-around; + } +} + +.cases-box { + margin: 1em 0.25em; text-decoration: none; + display: none; } -@media screen and (max-width: 480px) { - .clases-boxes { - justify-content: center; - width: 100%; - } +.cases-box:nth-child(-n+3) { + display: block; } .cases-image { - display: flex; - justify-content: center; - width: 175px; - height: 125px; - padding: 10px; - outline-style: solid; - outline-width: 1.5px; - outline-color: #E5E5E5; - margin: auto; -} - -.cases-image:hover { - outline-width: 2px; - outline-color: #4E2A8E; - background-color:#F6F4F9; + display: flex; + justify-content: center; + width: 175px; + height: 125px; + padding: 10px; + outline-style: solid; + outline-width: 1.5px; + outline-color: #E5E5E5; + margin: auto; + } .cases-tag { @@ -696,10 +693,6 @@ body.learning div.menu li.learning a { margin: 0; } -.cases-tag span:hover { - background-color: #4E2A8E; -} - .cases-tag span { font-size: 12px; text-decoration: none; @@ -710,6 +703,19 @@ body.learning div.menu li.learning a { margin: 5px 5px 0px 5px; } +.cases-box:hover .cases-image { + outline-width: 2px; + outline-color: #4E2A8E; +} + +.cases-box:hover img { + opacity: 1.0; +} + +.cases-box:hover .cases-tag span { + background-color: #4E2A8E; +} + /* Post bylines/datelines -------------------------------------------------------------- */ .byline { diff --git a/images/cases/brex.png b/images/cases/bg/brex.png similarity index 100% rename from images/cases/brex.png rename to images/cases/bg/brex.png diff --git a/images/cases/discord.png b/images/cases/bg/discord.png similarity index 100% rename from images/cases/discord.png rename to images/cases/bg/discord.png diff --git a/images/cases/farmbot.jpg b/images/cases/bg/farmbot.jpg similarity index 100% rename from images/cases/farmbot.jpg rename to images/cases/bg/farmbot.jpg diff --git a/images/cases/heroku.png b/images/cases/bg/heroku.png similarity index 100% rename from images/cases/heroku.png rename to images/cases/bg/heroku.png diff --git a/index.html b/index.html index 28eeeec36..4536adf95 100644 --- a/index.html +++ b/index.html @@ -17,28 +17,25 @@
    -
    -

    Companies using Elixir in production

    +

    Companies using Elixir in production

    See more cases →
    -
    - {% for post in site.categories.Cases limit: 3 %} - -
    -
    - {% if post.logo == nil %} - - {% else %} - - {% endif %} -
    -
    - {% for tag in post.tags %} - #{{tag}} - {% endfor %} -
    +
    + {% for post in site.categories.Cases %} + +
    + {% if post.logo == nil %} + + {% else %} + + {% endif %} +
    +
    + {% for tag in post.tags %} + #{{tag}} + {% endfor %}
    {% endfor %} diff --git a/js/toc/toc.js b/js/index.js similarity index 88% rename from js/toc/toc.js rename to js/index.js index 02edb8bc3..d9a7e83a2 100644 --- a/js/toc/toc.js +++ b/js/index.js @@ -1,5 +1,4 @@ // https://github.com/ghiculescu/jekyll-table-of-contents - $.fn.toc = function(options) { var defaults = { title: '', @@ -108,6 +107,27 @@ $.fn.toc = function(options) { output.html(html) }; +// https://css-tricks.com/snippets/jquery/shuffle-dom-elements/ +$.fn.shuffle = function() { + var allElems = this.get(), + getRandom = function(max) { + return Math.floor(Math.random() * max); + }, + shuffled = $.map(allElems, function(){ + var random = getRandom(allElems.length), + randEl = $(allElems[random]).clone(true)[0]; + allElems.splice(random, 1); + return randEl; + }); + + this.each(function(i){ + $(this).replaceWith($(shuffled[i])); + }); + + return $(shuffled); +}; + +// use plugins $(document).ready(function() { $('.toc').toc({ title: '', @@ -120,10 +140,14 @@ $(document).ready(function() { backToTopId: 'toc', backToTopTitle: 'Back to Table of Contents', }); + $('.jekyll-toc-header a.jekyll-toc-link-here span.jekyll-toc-icon').addClass('icon icon-link'); $('.jekyll-toc-header a.jekyll-toc-back-to-top span.jekyll-toc-icon').addClass('icon icon-chevron-up'); + $('#top-banner .close').click(function() { $(this).parent().slideUp(200); document.cookie = 'topBannerDisabled=true'; }) -}); \ No newline at end of file + + $("#shuffled-boxes").children().shuffle() +}); From 01af1d9f2a14956371361ef55c663ed415e565bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 10 Oct 2020 13:57:45 +0200 Subject: [PATCH 1241/1761] Add a page with all cases, restructure layout --- _includes/categories-list.html | 9 +++++- _includes/top.html | 1 + _layouts/getting-started.html | 11 +++++--- _layouts/post.html | 8 +++++- ...06-23-growing-with-elixir-at-brex.markdown | 2 +- ...-08-20-embedded-elixir-at-farmbot.markdown | 2 +- ...-09-24-paas-with-elixir-at-Heroku.markdown | 2 +- ...n-at-scale-with-elixir-at-discord.markdown | 2 +- cases.html | 28 +++++++++++++++++++ css/style.css | 18 +++++++++++- .../alias-require-and-import.markdown | 5 +--- getting-started/basic-operators.markdown | 5 +--- getting-started/basic-types.markdown | 5 +--- .../binaries-strings-and-char-lists.markdown | 5 +--- getting-started/case-cond-and-if.markdown | 5 +--- getting-started/comprehensions.markdown | 5 +--- getting-started/debugging.markdown | 5 +--- .../enumerables-and-streams.markdown | 5 +--- getting-started/erlang-libraries.markdown | 5 +--- getting-started/introduction.markdown | 5 +--- .../io-and-the-file-system.markdown | 5 +--- getting-started/keywords-and-maps.markdown | 5 +--- .../meta/domain-specific-languages.markdown | 6 ++-- getting-started/meta/macros.markdown | 6 ++-- .../meta/quote-and-unquote.markdown | 6 ++-- getting-started/mix-otp/agent.markdown | 6 ++-- .../mix-otp/config-and-releases.markdown | 5 +--- ...ependencies-and-umbrella-projects.markdown | 6 ++-- .../mix-otp/distributed-tasks.markdown | 5 +--- .../mix-otp/docs-tests-and-with.markdown | 6 ++-- .../mix-otp/dynamic-supervisor.markdown | 6 ++-- getting-started/mix-otp/ets.markdown | 6 ++-- getting-started/mix-otp/genserver.markdown | 6 ++-- .../mix-otp/introduction-to-mix.markdown | 6 ++-- .../supervisor-and-application.markdown | 6 ++-- .../mix-otp/task-and-gen-tcp.markdown | 6 ++-- getting-started/module-attributes.markdown | 5 +--- .../modules-and-functions.markdown | 5 +--- getting-started/pattern-matching.markdown | 5 +--- getting-started/processes.markdown | 5 +--- getting-started/protocols.markdown | 5 +--- getting-started/recursion.markdown | 5 +--- getting-started/sigils.markdown | 5 +--- getting-started/structs.markdown | 5 +--- getting-started/try-catch-and-rescue.markdown | 5 +--- .../typespecs-and-behaviours.markdown | 5 +--- getting-started/where-to-go-next.markdown | 5 +--- index.html | 6 ++-- install.markdown | 4 +-- js/index.js | 2 +- learning.markdown | 4 +-- 51 files changed, 127 insertions(+), 169 deletions(-) create mode 100644 cases.html diff --git a/_includes/categories-list.html b/_includes/categories-list.html index 0be2d86d8..ce8ef9fb8 100644 --- a/_includes/categories-list.html +++ b/_includes/categories-list.html @@ -3,7 +3,14 @@

    Blog Categories

    diff --git a/_includes/top.html b/_includes/top.html index 3d4d342e0..383747d88 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -39,6 +39,7 @@ + diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index 6f3c0e23f..536622e6a 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -1,7 +1,3 @@ ---- -section: getting-started ---- - {% include top.html %}
    - +
    Watch the Elixir
    mini-documentary!
    From cd17f52f1cc01301a3b8563291679d8eaa062c9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Aug 2021 15:50:55 +0200 Subject: [PATCH 1362/1761] Bump ini from 1.3.5 to 1.3.7 in /_epub (#1477) Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index 05142d48b..79c13db88 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -2762,9 +2762,9 @@ "dev": true }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, "inquirer": { From cfa3c17758f48d92f92969e4e320bd879e32c05d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 6 Aug 2021 12:00:16 +0200 Subject: [PATCH 1363/1761] Add a trademarks policy (#1550) --- README.md | 2 +- _includes/bottom.html | 5 ++-- css/style.css | 2 +- trademarks.markdown | 57 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 trademarks.markdown diff --git a/README.md b/README.md index 1439464d8..33359ee76 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ guide](https://github.com/elixir-lang/elixir/#contributing). ## License -* "Elixir" and the Elixir logo are copyrighted to the Elixir team. You may not reuse anything therein without permission. +* "Elixir" and the Elixir logo are registered trademarks of the Elixir team. See [our trademark policy](https://elixir-lang.org/trademarks). * The HTML and CSS are copyrighted to [AlienWp](http://alienwp.com/) under [GPL license, version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). diff --git a/_includes/bottom.html b/_includes/bottom.html index 03d2c25a8..bfc4fb987 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -2,8 +2,9 @@
    -
    diff --git a/css/style.css b/css/style.css index 009f5ae23..f4eb4ca81 100644 --- a/css/style.css +++ b/css/style.css @@ -762,7 +762,7 @@ body.learning div.menu li.learning a { text-decoration: underline; } -#copyright { +#trademark { text-align: center; font-size: 12px; padding: 0 0 10px; diff --git a/trademarks.markdown b/trademarks.markdown new file mode 100644 index 000000000..593bc7323 --- /dev/null +++ b/trademarks.markdown @@ -0,0 +1,57 @@ +--- +title: "Trademarks policy" +section: trademarks +layout: default +--- + +# {{ page.title }} + +This document outlines the policy for allowed usage of the "Elixir" word and the Elixir logo by other parties. + +"Elixir" and the Elixir logo are registered trademarks of the Elixir Team. The Elixir Team believes in a decentralized approach to growing the community and the ecosystem, independent of the Elixir project and the Elixir Team. + +Anyone can use the Elixir trademarks if that use of the trademark is nominative. The trademarks must not be used to disparage the project and its community, nor be used in any way to imply ownership, endorsement, or association with the Elixir project and the Elixir Team. + +You must not visually combine the Elixir logo with any other images, or change the logo in any way other than ways required by printing restrictions. If you want to create your own visual identity in relation to Elixir, you might design or combine your mark on top of any "water drop silhouette", as seen in many community projects and initiatives. You must not combine or modify the Elixir logo. + +## Nominative use + +The "nominative use" (or "nominative fair use") is a legal doctrine that authorizes everyone (even commercial companies) to use or refer to the trademark of another if: + + * The product or service in question must be one not readily identifiable without use of the trademark. + + * Only so much of the mark or marks may be used as is reasonably necessary to identify the product or service. + + * The organization using the mark must do nothing that would, in conjunction with the mark, suggest sponsorship or endorsement by the trademark holder. + +## Examples of permitted use + +All examples listed next must strictly adhere to the terms outlined in the previous sections: + + * Usage of the Elixir logo to say a technology is "powered by Elixir". Linking back to the Elixir website, if possible, is appreciated. + + * Usage of the Elixir logo to display it as a supported technology in a service or platform. For instance, you may say "we support Elixir" and list the Elixir logo, but you may not refer to yourself as "the Elixir platform" nor imply any form of endorsement or association with Elixir. + + * Usage of the Elixir logo in non-commercial community meetups, presentations, and courses when referring to the language and its ecosystem under nominative use. + + * Inclusion of the Elixir logo in icon libraries. Note users of the Elixir icon must still adhere to Elixir's trademark policies. + + * Usage of the Elixir word in book titles, conferences, and podcasts. You must not use the word in a way to imply uniqueness or endorsement from the Elixir team. "The Elixir book" and "The Elixir podcast" are not permitted, "Elixir in Action" and "Thinking Elixir" are. + +## Examples of not permitted use + + * Usage of the Elixir logo in book covers, conferences, and podcasts. + + * Usage of the Elixir logo as the mark of third-party projects, even in combination with other marks. + + * Naming any company or product after Elixir, such as "The Elixir Hosting", "The Elixir Consultants", etc. + +## Examples that require permission + + * Selling merchandise (stickers, t-shirts, mugs, etc). + +You can request permission by emailing trademarks@elixir-lang.org. + +## Disclaimer + +Nothing in this page shall be interpreted to allow any third party to claim any association with the Elixir project and the Elixir Team, or to imply any approval or support by the Elixir project and the Elixir Team for any third party products, services, or events. From a8dc6858675c00246a690ff9d0f678d507e5f910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 6 Aug 2021 12:03:18 +0200 Subject: [PATCH 1364/1761] Update trademarks.markdown --- trademarks.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/trademarks.markdown b/trademarks.markdown index 593bc7323..ac93739df 100644 --- a/trademarks.markdown +++ b/trademarks.markdown @@ -32,9 +32,9 @@ All examples listed next must strictly adhere to the terms outlined in the previ * Usage of the Elixir logo to display it as a supported technology in a service or platform. For instance, you may say "we support Elixir" and list the Elixir logo, but you may not refer to yourself as "the Elixir platform" nor imply any form of endorsement or association with Elixir. - * Usage of the Elixir logo in non-commercial community meetups, presentations, and courses when referring to the language and its ecosystem under nominative use. + * Usage of the Elixir logo in non-commercial community meetups, in presentations, and in courses when referring to the language and its ecosystem under nominative use. - * Inclusion of the Elixir logo in icon libraries. Note users of the Elixir icon must still adhere to Elixir's trademark policies. + * Inclusion of the Elixir logo in non-commercial icon sets. Note users of the Elixir icon must still adhere to Elixir's trademark policies. * Usage of the Elixir word in book titles, conferences, and podcasts. You must not use the word in a way to imply uniqueness or endorsement from the Elixir team. "The Elixir book" and "The Elixir podcast" are not permitted, "Elixir in Action" and "Thinking Elixir" are. From 65e707ea8ce2edec1a82de6fae3bfcfff5614d4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 6 Aug 2021 12:39:21 +0200 Subject: [PATCH 1365/1761] More examples --- trademarks.markdown | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/trademarks.markdown b/trademarks.markdown index ac93739df..2a6ff1710 100644 --- a/trademarks.markdown +++ b/trademarks.markdown @@ -28,15 +28,19 @@ The "nominative use" (or "nominative fair use") is a legal doctrine that authori All examples listed next must strictly adhere to the terms outlined in the previous sections: - * Usage of the Elixir logo to say a technology is "powered by Elixir". Linking back to the Elixir website, if possible, is appreciated. + * Usage of the Elixir logo to say a technology is "powered by Elixir" under nominative use. Linking back to the Elixir website, if possible, is appreciated. * Usage of the Elixir logo to display it as a supported technology in a service or platform. For instance, you may say "we support Elixir" and list the Elixir logo, but you may not refer to yourself as "the Elixir platform" nor imply any form of endorsement or association with Elixir. * Usage of the Elixir logo in non-commercial community meetups, in presentations, and in courses when referring to the language and its ecosystem under nominative use. - * Inclusion of the Elixir logo in non-commercial icon sets. Note users of the Elixir icon must still adhere to Elixir's trademark policies. + * Usage of the Elixir logo in non-commercial swag (stickers, t-shirts, mugs, etc) to promote the Elixir programming language. The Elixir marks must be the only marks featured in the product. For example, you need permission to make mugs with Elixir and other third-party marks in them. - * Usage of the Elixir word in book titles, conferences, and podcasts. You must not use the word in a way to imply uniqueness or endorsement from the Elixir team. "The Elixir book" and "The Elixir podcast" are not permitted, "Elixir in Action" and "Thinking Elixir" are. + * Inclusion of the Elixir logo in non-commercial icon sets. Note users of the Elixir icons must still adhere to Elixir's trademark policies. + + * Usage of the "Elixir" word in book titles, meetups, conferences, and podcasts. You must not use the word to imply uniqueness or endorsement from the Elixir team. "The Elixir book" and "The Elixir podcast" are not permitted. "Elixir in Action", "Thinking Elixir", and "Kraków Elixir User Group" are. + + * Usage of the "Elixir" word in the names of freely distributed software and hardware products is allowed when referring to use with or suitability for the Elixir programming language, such as wxElixir, Elixirsense, etc. ## Examples of not permitted use From 2b4da31477c51090a70f850172a6f01dc33a3f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 6 Aug 2021 12:45:40 +0200 Subject: [PATCH 1366/1761] More fixes --- trademarks.markdown | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/trademarks.markdown b/trademarks.markdown index 2a6ff1710..032a9ba3a 100644 --- a/trademarks.markdown +++ b/trademarks.markdown @@ -24,29 +24,31 @@ The "nominative use" (or "nominative fair use") is a legal doctrine that authori * The organization using the mark must do nothing that would, in conjunction with the mark, suggest sponsorship or endorsement by the trademark holder. +Our trademarks must be used to refer to the Elixir programming language. + ## Examples of permitted use All examples listed next must strictly adhere to the terms outlined in the previous sections: * Usage of the Elixir logo to say a technology is "powered by Elixir" under nominative use. Linking back to the Elixir website, if possible, is appreciated. - * Usage of the Elixir logo to display it as a supported technology in a service or platform. For instance, you may say "we support Elixir" and list the Elixir logo, but you may not refer to yourself as "the Elixir platform" nor imply any form of endorsement or association with Elixir. + * Usage of the Elixir logo to display it as a supported technology in a service or platform. For instance, you may say "we support Elixir" and use the Elixir logo, but you may not refer to yourself as "the Elixir platform" nor imply any form of endorsement or association with Elixir. * Usage of the Elixir logo in non-commercial community meetups, in presentations, and in courses when referring to the language and its ecosystem under nominative use. - * Usage of the Elixir logo in non-commercial swag (stickers, t-shirts, mugs, etc) to promote the Elixir programming language. The Elixir marks must be the only marks featured in the product. For example, you need permission to make mugs with Elixir and other third-party marks in them. + * Usage of the Elixir logo in non-commercial swag (stickers, t-shirts, mugs, etc) to promote the Elixir programming language. The Elixir marks must be the only marks featured in the product. You need permission to make swag that include Elixir and other third party marks in them. * Inclusion of the Elixir logo in non-commercial icon sets. Note users of the Elixir icons must still adhere to Elixir's trademark policies. * Usage of the "Elixir" word in book titles, meetups, conferences, and podcasts. You must not use the word to imply uniqueness or endorsement from the Elixir team. "The Elixir book" and "The Elixir podcast" are not permitted. "Elixir in Action", "Thinking Elixir", and "Kraków Elixir User Group" are. - * Usage of the "Elixir" word in the names of freely distributed software and hardware products is allowed when referring to use with or suitability for the Elixir programming language, such as wxElixir, Elixirsense, etc. + * Usage of the "Elixir" word in the names of freely distributed software and hardware products is allowed when referring to use with or suitability for the Elixir programming language, such as wxElixir, Elixirsense, etc. If the product includes Elixir itself, the version and the list of modifications, if any, must be included. ## Examples of not permitted use * Usage of the Elixir logo in book covers, conferences, and podcasts. - * Usage of the Elixir logo as the mark of third-party projects, even in combination with other marks. + * Usage of the Elixir logo as the mark of third party projects, even in combination with other marks. * Naming any company or product after Elixir, such as "The Elixir Hosting", "The Elixir Consultants", etc. From 90b497963df4a2a3bed1f20235bd7ecff6f804f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 6 Aug 2021 12:47:11 +0200 Subject: [PATCH 1367/1761] Mention the license --- trademarks.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trademarks.markdown b/trademarks.markdown index 032a9ba3a..b8875a819 100644 --- a/trademarks.markdown +++ b/trademarks.markdown @@ -42,7 +42,7 @@ All examples listed next must strictly adhere to the terms outlined in the previ * Usage of the "Elixir" word in book titles, meetups, conferences, and podcasts. You must not use the word to imply uniqueness or endorsement from the Elixir team. "The Elixir book" and "The Elixir podcast" are not permitted. "Elixir in Action", "Thinking Elixir", and "Kraków Elixir User Group" are. - * Usage of the "Elixir" word in the names of freely distributed software and hardware products is allowed when referring to use with or suitability for the Elixir programming language, such as wxElixir, Elixirsense, etc. If the product includes Elixir itself, the version and the list of modifications, if any, must be included. + * Usage of the "Elixir" word in the names of freely distributed software and hardware products is allowed when referring to use with or suitability for the Elixir programming language, such as wxElixir, Elixirsense, etc. If the product includes the Elixir programming language itself, the version and the list of modifications, if any, must be included [according to its license](https://github.com/elixir-lang/elixir/blob/master/LICENSE). ## Examples of not permitted use From 2199b6b645886071608378fece7198b4ebe4d25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 7 Aug 2021 13:10:19 +0200 Subject: [PATCH 1368/1761] Add logos --- logos/elixir-horizontal.png | Bin 0 -> 71992 bytes logos/elixir-vertical.png | Bin 0 -> 117947 bytes trademarks.markdown | 10 ++++++---- 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 logos/elixir-horizontal.png create mode 100644 logos/elixir-vertical.png diff --git a/logos/elixir-horizontal.png b/logos/elixir-horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..def5954736b462e8320ec5e0e7ec9928754b8dc9 GIT binary patch literal 71992 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%0D#YBTk<1lgT|}NuTX? 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

    Official Channels

      @@ -17,6 +15,11 @@

      Official Channels

    +
    +

    Upcoming events

    + {% include conferences.html %} +
    +

    Join the Community

    -
    +

    Join the Community

    diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html index b202de5a1..7883837c9 100644 --- a/_layouts/getting-started.html +++ b/_layouts/getting-started.html @@ -3,6 +3,8 @@

    Join the Community

    From 0ac69dfe712e7e891dc2a4f9a7923ccf74cb72ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 15 Jun 2022 07:58:42 +0200 Subject: [PATCH 1462/1761] More on distribution --- getting-started/mix-otp/distributed-tasks.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/distributed-tasks.markdown b/getting-started/mix-otp/distributed-tasks.markdown index 85d44bbe2..f41817166 100644 --- a/getting-started/mix-otp/distributed-tasks.markdown +++ b/getting-started/mix-otp/distributed-tasks.markdown @@ -335,11 +335,13 @@ We have only scratched the surface of what is possible when it comes to distribu In all of our examples, we relied on Erlang's ability to automatically connect nodes whenever there is a request. For example, when we invoked `Node.spawn_link(:"foo@computer-name", fn -> Hello.world() end)`, Erlang automatically connected to said and started a new process. However, you may also want to take a more explicit approach to connections, by using [`Node.connect/1`](https://hexdocs.pm/elixir/Node.html#connect/1) and [`Node.disconnect/1`](https://hexdocs.pm/elixir/Node.html#disconnect/1). +By default, Erlang establishes a fully meshed network, which means all nodes are connected to each other. Under this topology, the Erlang distribution is known to scale to several dozens of nodes in the same cluster. Erlang also has the concept of hidden nodes too which also allows developers to bring custom topologies, as seen [in the Partisan project](https://github.com/lasp-lang/partisan). + In production, you may have nodes connecting and disconnecting at any time. In such scenarios, you need to provide _node discoverability_. Libraries such as [libcluster](https://github.com/bitwalker/libcluster/) and [peerage](https://github.com/mrluc/peerage) provide several strategies for node discoverability using DNS, Kubernetes, etc. -Distributed key-value stores, used in real-life, need to consider the fact nodes may go up and down at any time and also migrate the bucket across nodes. Even further, buckets often need to be duplicated between nodes, so a failure in a node does not lead to the whole bucket being lost. This process is called *replication*. Our implementation won't attempt to tackle such problems. Instead, we assume there is a fixed number nodes and therefore used a fixed routing table. +Distributed key-value stores, used in real-life, need to consider the fact nodes may go up and down at any time and also migrate the bucket across nodes. Even further, buckets often need to be duplicated between nodes, so a failure in a node does not lead to the whole bucket being lost. This process is called *replication*. Our implementation won't attempt to tackle such problems. Instead, we assume there is a fixed number nodes and therefore use a fixed routing table. -These topics can be daunting at first but remember that most Elixir frameworks abstract those concerns for you. But if you are interested in distributed systems after all, there is much to explore. Here are some references: +These topics can be daunting at first but remember that most Elixir frameworks abstract those concerns for you. For example, when using [the Phoenix web framework](https://phoenixframework.org), its plug-and-play abstractions take care of sending messages and tracking how users join and leave a cluster. However, if you are interested in distributed systems after all, there is much to explore. Here are some additional references: * [The excellent Distribunomicon chapter from Learn You Some Erlang](http://learnyousomeerlang.com/distribunomicon) * [Erlang's global module](https://www.erlang.org/doc/man/global.html), which can provide global names and global locks, allowing unique names and unique locks in a whole cluster of machines From cf666080a03f9dad15fc674cb0d9d0e830b8bd3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 15 Jun 2022 08:06:52 +0200 Subject: [PATCH 1463/1761] Update distributed-tasks.markdown --- getting-started/mix-otp/distributed-tasks.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/distributed-tasks.markdown b/getting-started/mix-otp/distributed-tasks.markdown index f41817166..7042c4f8a 100644 --- a/getting-started/mix-otp/distributed-tasks.markdown +++ b/getting-started/mix-otp/distributed-tasks.markdown @@ -335,7 +335,7 @@ We have only scratched the surface of what is possible when it comes to distribu In all of our examples, we relied on Erlang's ability to automatically connect nodes whenever there is a request. For example, when we invoked `Node.spawn_link(:"foo@computer-name", fn -> Hello.world() end)`, Erlang automatically connected to said and started a new process. However, you may also want to take a more explicit approach to connections, by using [`Node.connect/1`](https://hexdocs.pm/elixir/Node.html#connect/1) and [`Node.disconnect/1`](https://hexdocs.pm/elixir/Node.html#disconnect/1). -By default, Erlang establishes a fully meshed network, which means all nodes are connected to each other. Under this topology, the Erlang distribution is known to scale to several dozens of nodes in the same cluster. Erlang also has the concept of hidden nodes too which also allows developers to bring custom topologies, as seen [in the Partisan project](https://github.com/lasp-lang/partisan). +By default, Erlang establishes a fully meshed network, which means all nodes are connected to each other. Under this topology, the Erlang distribution is known to scale to several dozens of nodes in the same cluster. Erlang also has the concept of hidden nodes, which can allow developers to assemble custom topologies as seen in projects such as [Partisan](https://github.com/lasp-lang/partisan). In production, you may have nodes connecting and disconnecting at any time. In such scenarios, you need to provide _node discoverability_. Libraries such as [libcluster](https://github.com/bitwalker/libcluster/) and [peerage](https://github.com/mrluc/peerage) provide several strategies for node discoverability using DNS, Kubernetes, etc. From ab5a132ceca3dfffdc7d754dca133360a3ba154b Mon Sep 17 00:00:00 2001 From: sharils <3063067+sharils@users.noreply.github.com> Date: Wed, 15 Jun 2022 19:48:18 +0800 Subject: [PATCH 1464/1761] Fix typo (#1614) --- getting-started/recursion.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 9dc747ff1..95d797ee1 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -41,7 +41,7 @@ When `print_multiple_times/2` is initially called in the example above, the argu The first clause has a guard which says "use this definition if and only if `n` is more than `0`". Since this is the case, it prints the `msg` and then calls itself passing `n - 1` (`2`) as the second argument. -Now we execute the same function again, starting from the first the clause. Given the second argument, `n`, is still more than 0, we print the message and call ourselves once more, now with the second argument set to `1`. Then we print the message one last time and call `print_multiple_times("Hello!", 0)`, starting from the top once again. +Now we execute the same function again, starting from the first clause. Given the second argument, `n`, is still more than 0, we print the message and call ourselves once more, now with the second argument set to `1`. Then we print the message one last time and call `print_multiple_times("Hello!", 0)`, starting from the top once again. When the second argument is zero, the guard `n > 0` evaluates to false, and the first function clause won't execute. Elixir then proceeds to try the next function clause, which explicitly matches on the case where `n` is `0`. This clause, also known as the termination clause, ignores the message argument by assigning it to the `_msg` variable and returns the atom `:ok`. From fa85cbddd84dffa3dea24e04de0c73cb89fda5cb Mon Sep 17 00:00:00 2001 From: Peter Solnica Date: Thu, 30 Jun 2022 15:44:00 +0200 Subject: [PATCH 1465/1761] Fix a typo in protocols intro (#1615) --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 00307d772..0aeac296d 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -14,7 +14,7 @@ defmodule Utility do end ``` -If the use of this module were confined to your own project, you would be able to keep defining new `type/1` functions for each new data type. However, this code could be problematic if it were shared as a dependency by multiple apps because there would be no easy way to extend its functionality. +If the use of this module were confined to your own project, you would be able to keep defining new `type/1` functions for each new data type. However, this code could be problematic if it was shared as a dependency by multiple apps because there would be no easy way to extend its functionality. This is where protocols can help us: protocols allow us to extend the original behavior for as many data types as we need. That's because **dispatching on a protocol is available to any data type that has implemented the protocol** and a protocol can be implemented by anyone, at any time. From 02e11a802e29f67f1280b4cd1fe3cb6d9e4f90c2 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Tue, 5 Jul 2022 02:45:32 -0400 Subject: [PATCH 1466/1761] Update telnet command to use port 4321 as specified by PORT env. variable (#1616) --- getting-started/mix-otp/task-and-gen-tcp.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index 4ed2f12b3..a90bca993 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -154,7 +154,7 @@ Insert these changes in your code and now you may start your application using t Now that the server is part of the supervision tree, it should start automatically when we run the application. Start your server, now passing the port, and once again use the `telnet` client to make sure that everything still works: ```console -$ telnet 127.0.0.1 4040 +$ telnet 127.0.0.1 4321 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. @@ -169,7 +169,7 @@ Yes, it works! However, does it *scale*? Try to connect two telnet clients at the same time. When you do so, you will notice that the second client doesn't echo: ```console -$ telnet 127.0.0.1 4040 +$ telnet 127.0.0.1 4321 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. From 51326213ef6c44111124df606b1992d0dc29336c Mon Sep 17 00:00:00 2001 From: Thiago Majesk Goulart Date: Sun, 10 Jul 2022 15:46:53 -0300 Subject: [PATCH 1467/1761] Update supervisor-and-application.markdown (#1618) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update supervisor-and-application.markdown Make the distinction that with could use `DynamicSupervisor` but we don't **have** to, because `Supervisor` can also start children dynamically. This is complementary to https://github.com/elixir-lang/elixir-lang.github.com/pull/1617. * Update getting-started/mix-otp/supervisor-and-application.markdown Co-authored-by: José Valim --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 569914812..22e157342 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -270,4 +270,4 @@ When we talk about applications, we talk about Date: Wed, 13 Jul 2022 21:31:12 +0200 Subject: [PATCH 1469/1761] Add an additional note explaining what the '-S mix' flag is for (#1619) --- getting-started/mix-otp/introduction-to-mix.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index ccfc4588a..05ed0aabc 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -155,7 +155,7 @@ Will output: The `lib/kv.ex` file was compiled, an application manifest named `kv.app` was generated. All compilation artifacts are placed inside the `_build` directory using the options defined in the `mix.exs` file. -Once the project is compiled, you can start an `iex` session inside the project by running: +Once the project is compiled, you can start an `iex` session inside the project by running the command below. The `-S mix` is necessary to load the project in the interactive shell: ```console $ iex -S mix From 96f3dee846df6ec7a05603e4e0e27948fdea69ad Mon Sep 17 00:00:00 2001 From: Thiago Majesk Goulart Date: Thu, 14 Jul 2022 03:38:35 -0300 Subject: [PATCH 1470/1761] Update dynamic-supervisor.markdown (#1617) Ads a small note about the purpose of `Supervisor` and `DynamicSupervisor` based on the previous improvements made https://github.com/elixir-lang/elixir/pull/11970 and https://github.com/elixir-lang/elixir/pull/11973. --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index 16a607d15..a24e6ba7e 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -46,7 +46,7 @@ Since the bucket terminated, the registry also stopped, and our test fails when test/kv/registry_test.exs:33: (test) ``` -We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. Opposite to the previous Supervisor we defined, the children are not known upfront, but they are rather started dynamically. For those situations, we use a `DynamicSupervisor`. The `DynamicSupervisor` does not expect a list of children during initialization; instead each child is started manually via `DynamicSupervisor.start_child/2`. +We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. Opposite to the previous Supervisor we defined, the children are not known upfront, but they are rather started dynamically. For those situations, we use a supervisor optimized to such use cases called `DynamicSupervisor`. The `DynamicSupervisor` does not expect a list of children during initialization; instead each child is started manually via `DynamicSupervisor.start_child/2`. ## The bucket supervisor From 621275d116a2d72c6ff3c26ca5e73781815d2678 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Sat, 16 Jul 2022 13:13:33 -0400 Subject: [PATCH 1471/1761] Update wording to make clear @moduletag is for the whole module (#1620) --- getting-started/mix-otp/docs-tests-and-with.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 4e9059184..9fa435076 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -420,7 +420,7 @@ This time, since our test relies on global data, we have not given `async: true` 18:12:10.698 [info] Application kv exited: :stopped ``` -To avoid printing log messages during tests, ExUnit provides a neat feature called `:capture_log`. By setting `@tag :capture_log` before each test or `@moduletag :capture_log` for the whole test case, ExUnit will automatically capture anything that is logged while the test runs. In case our test fails, the captured logs will be printed alongside the ExUnit report. +To avoid printing log messages during tests, ExUnit provides a neat feature called `:capture_log`. By setting `@tag :capture_log` before each test or `@moduletag :capture_log` for the whole test module, ExUnit will automatically capture anything that is logged while the test runs. In case our test fails, the captured logs will be printed alongside the ExUnit report. Between `use ExUnit.Case` and setup, add the following call: From 34b3b9ba910cf2661236f3809f1dbdebd3baf560 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Jul 2022 09:42:03 +0200 Subject: [PATCH 1472/1761] Bump tzinfo from 1.2.5 to 1.2.10 (#1622) Bumps [tzinfo](https://github.com/tzinfo/tzinfo) from 1.2.5 to 1.2.10. - [Release notes](https://github.com/tzinfo/tzinfo/releases) - [Changelog](https://github.com/tzinfo/tzinfo/blob/master/CHANGES.md) - [Commits](https://github.com/tzinfo/tzinfo/compare/v1.2.5...v1.2.10) --- updated-dependencies: - dependency-name: tzinfo dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b0be8bfc9..ee11838c9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -237,7 +237,7 @@ GEM thread_safe (0.3.6) typhoeus (1.3.1) ethon (>= 0.9.0) - tzinfo (1.2.5) + tzinfo (1.2.10) thread_safe (~> 0.1) unicode-display_width (1.6.0) From 2689775e0a34cee4ee580d2c0c04b5d9c92f79de Mon Sep 17 00:00:00 2001 From: stevensonmt Date: Mon, 1 Aug 2022 00:40:05 -0700 Subject: [PATCH 1473/1761] Mention other runtime configuration strategies (#1623) --- getting-started/mix-otp/config-and-releases.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index 436d3245f..33e750f68 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -105,6 +105,8 @@ defmodule KV.RouterTest do Note we removed `async: true` from `use ExUnit.Case`. Since the application environment is a global storage, tests that modify it cannot run concurrently. With all changes in place, all tests should pass, including the distributed one. +Details of other configuration strategies are beyond the scope of this document, but you should be aware that other sources of runtime configuration data can be specified as configuration providers in `mix.exs`. For more details see the documentation for the [Config.Provider module](https://hexdocs.pm/elixir/main/Config.Provider.html#content). Excellent libraries for many types of config providers can be found on [Hex](https://hex.pm). These can ease the use of environment variables and configuration files of various formats, such as TOML, YAML, INI, and JSON. + ## Releases Now that our application runs distributed, you may be wondering how we can package our application to run in production. After all, all of our code so far depends on Erlang and Elixir versions that are installed in your current system. To achieve this goal, Elixir provides releases. From 4120878ef98270ce2d3d9ead3c08d0d34339b048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 1 Aug 2022 14:53:43 +0200 Subject: [PATCH 1474/1761] Improve docs --- getting-started/binaries-strings-and-char-lists.markdown | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 09ef08c59..184192515 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -236,9 +236,9 @@ iex> rest Our tour of our bitstrings, binaries, and strings is nearly complete, but we have one more data type to explain: the charlist. -**A charlist is a list of integers where all the integers are valid code points.** In practice, you will not come across them often, except perhaps when interfacing with Erlang, in particular when using older libraries that do not accept binaries as arguments. +**A charlist is a list of integers where all the integers are valid code points.** In practice, you will not come across them often, only in specific scenarios such as interfacing with older Erlang libraries that do not accept binaries as arguments. -Whereas strings (i.e. binaries) are created using double-quotes, charlists are created with single-quoted literals: +Whereas double-quotes creates strings, single-quotes create charlist literals: ```elixir iex> 'hello' @@ -247,7 +247,9 @@ iex> [?h, ?e, ?l, ?l, ?o] 'hello' ``` -You can see that instead of containing bytes, a charlist contains integer code points. However, the list is only printed in single-quotes if all code points are within the ASCII range: +The key takeaway is that `"hello"` is not the same as `'hello'`. Generally speaking, **double-quotes must always be used to represent strings in Elixir**. In any case, let's learn how charlists work. + +Instead of containing bytes, a charlist contains integer code points. However, the list is only printed in single-quotes if all code points are within the ASCII range: ```elixir iex> 'hełło' From 9e323f0dbd96a144cfd5d584b2577a7282ac5fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 1 Aug 2022 22:53:33 +0200 Subject: [PATCH 1475/1761] Release v1.14.0-rc.0 --- elixir.csv | 1 + erlang.csv | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/elixir.csv b/elixir.csv index 4980a8323..73f9ab97b 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.14.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0-rc.0/elixir-otp-24.zip,prerelease,1,ff94d5869327cf182b3dbe7f1fc14844116adfd0,eec761277eb23315ba5919887220fbba2603a482bab1b249a00b06cd1b72cc6b 1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 1.13.2,https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2 diff --git a/erlang.csv b/erlang.csv index 415ce4594..d169112ce 100644 --- a/erlang.csv +++ b/erlang.csv @@ -1,5 +1,4 @@ version_otp,version_erts,url_win32,url_win64 -24.1,12.1,https://github.com/erlang/otp/releases/download/OTP-24.1.7/otp_win32_24.1.7.exe,https://github.com/erlang/otp/releases/download/OTP-24.1.7/otp_win64_24.1.7.exe -24.0,12.0,https://github.com/erlang/otp/releases/download/OTP-24.0.6/otp_win32_24.0.6.exe,https://github.com/erlang/otp/releases/download/OTP-24.0.6/otp_win64_24.0.6.exe +24.3,12.3,https://github.com/erlang/otp/releases/download/OTP-24.3.4.2/otp_win32_24.3.4.2.exe,https://github.com/erlang/otp/releases/download/OTP-24.3.4.2/otp_win64_24.3.4.2.exe 23.3,11.2,https://github.com/erlang/otp/releases/download/OTP-23.3.4.8/otp_win32_23.3.4.8.exe,https://github.com/erlang/otp/releases/download/OTP-23.3.4.8/otp_win64_23.3.4.8.exe 22.3,10.7,http://www.erlang.org/download/otp_win32_22.3.exe,http://www.erlang.org/download/otp_win64_22.3.exe From cbb8091aec4f97e21e91b886a8a49ed239f1e7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 2 Aug 2022 12:22:38 +0200 Subject: [PATCH 1476/1761] Have an explicit section for the Elixir team --- _includes/important-links.html | 2 +- development.markdown | 26 +++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index dec0e9c21..3e52794b3 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -1,7 +1,7 @@ diff --git a/development.markdown b/development.markdown index b3ad83cb1..76577a223 100644 --- a/development.markdown +++ b/development.markdown @@ -1,18 +1,20 @@ --- -title: "Development" +title: "Development & Team" section: development layout: default --- # {{ page.title }} -In this section we outline the language's past and future development. +## Development + +This section outlines the language's past and future development. José Valim created Elixir in 2012 as a Research and Development project inside Plataformatec. Elixir's goal is to be [a productive and extensible language](/blog/2013/08/08/elixir-design-goals/) for writing maintainable and reliable software. Elixir runs on top of the Erlang Virtual Machine, which provides a scalable and fault-tolerant foundation. Elixir was designed to leverage this foundation without performance costs and aims to contribute to the wider ecosystem whenever possible. -Elixir's source code is under the [Apache 2 License](https://github.com/elixir-lang/elixir/blob/main/LICENSE) and is maintained by the Elixir Core team, composed of four members: Andrea Leopardi, Eric Meadows-Jönsson, Fernando Tapia Rico, and José Valim. The source code and information for contributors can be found on [the language repository](https://github.com/elixir-lang/elixir). Special thanks go to Alexei Sholik, Michał Muskała, James Fish, and Aleksei Magusev who were previous members of the Elixir team. +Elixir's source code is under the [Apache 2 License](https://github.com/elixir-lang/elixir/blob/main/LICENSE) and is maintained by the [Elixir Team](#team). The source code and contribution guidelines can be found on [the language repository](https://github.com/elixir-lang/elixir). Elixir v1.0 was released in September 2014 and a new minor version is released every 6 months, around May and November of every year. New releases are announced in the read-only [announcements mailing list](https://groups.google.com/group/elixir-lang-ann) with a link to the complete CHANGELOG. All security releases [will be tagged with "[security]"](https://groups.google.com/forum/#!searchin/elixir-lang-ann/%5Bsecurity%5D%7Csort:date). Security vulnerabilities should be disclosed to [elixir-security@googlegroups.com](mailto:elixir-security@googlegroups.com). Our [compatibility and deprecation policies](https://hexdocs.pm/elixir/compatibility-and-deprecations.html#content) are also documented. @@ -32,3 +34,21 @@ Elixir also relies on a vibrant community to support its growth. The community i The best way to support the language is by getting involved in its community and contributing to the ecosystem. Welcome! + +## Team + +The Elixir Team is composed by: + + * José Valim + * Eric Meadows-Jönsson + * Andrea Leopardi + * Fernando Tapia Rico + +We are also indebted to the past members of the Elixir Team: + + * Alexei Sholik + * James Fish + * Aleksei Magusev + * Michał Muskała + +Finally, we thank all of our [contributors](https://github.com/elixir-lang/elixir/graphs/contributors). From e501877635439620c877759149c5c505ddefb79f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 2 Aug 2022 12:24:34 +0200 Subject: [PATCH 1477/1761] Final adjustments --- development.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/development.markdown b/development.markdown index 76577a223..33e2a81c6 100644 --- a/development.markdown +++ b/development.markdown @@ -6,9 +6,9 @@ layout: default # {{ page.title }} -## Development +This page outlines the language's past and future development. -This section outlines the language's past and future development. +## Development José Valim created Elixir in 2012 as a Research and Development project inside Plataformatec. Elixir's goal is to be [a productive and extensible language](/blog/2013/08/08/elixir-design-goals/) for writing maintainable and reliable software. @@ -44,7 +44,7 @@ The Elixir Team is composed by: * Andrea Leopardi * Fernando Tapia Rico -We are also indebted to the past members of the Elixir Team: +We are also grateful to the past members of the Elixir Team: * Alexei Sholik * James Fish From 8166828f2dd67eb1bd61d8fb2757f2615738db0f Mon Sep 17 00:00:00 2001 From: StrajnarFilip <46705237+StrajnarFilip@users.noreply.github.com> Date: Fri, 12 Aug 2022 10:36:13 +0200 Subject: [PATCH 1478/1761] Mention name casing rules for modules and functions (#1624) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Mention name casing rules for modules and functions It might be convenient to immediately notify the readers of this guide that modules and functions must be capitalized correctly. * Update getting-started/modules-and-functions.markdown Co-authored-by: José Valim --- getting-started/modules-and-functions.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/modules-and-functions.markdown b/getting-started/modules-and-functions.markdown index ea997d99f..75e7b4636 100644 --- a/getting-started/modules-and-functions.markdown +++ b/getting-started/modules-and-functions.markdown @@ -12,7 +12,7 @@ iex> String.length("hello") 5 ``` -In order to create our own modules in Elixir, we use the `defmodule` macro. We use the `def` macro to define functions in that module: +In order to create our own modules in Elixir, we use the `defmodule` macro. The first letter of the module must be in uppercase. We use the `def` macro to define functions in that module. The first letter of every function must be in lowercase (or underscore): ```elixir iex> defmodule Math do From d1a14e35d41cf46a990bc4d99342bf036f6bc94b Mon Sep 17 00:00:00 2001 From: dpreston Date: Sat, 13 Aug 2022 04:14:52 +1000 Subject: [PATCH 1479/1761] Correct inconsistent iex prompts (#1625) --- getting-started/debugging.markdown | 10 +++++----- getting-started/introduction.markdown | 4 ++-- getting-started/mix-otp/agent.markdown | 1 - .../mix-otp/supervisor-and-application.markdown | 16 ++++++++-------- getting-started/modules-and-functions.markdown | 2 +- getting-started/processes.markdown | 2 +- 6 files changed, 17 insertions(+), 18 deletions(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index dbf76cdef..b50f21a77 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -113,13 +113,13 @@ $ iex Then start the debugger: ```elixir -iex(1)> :debugger.start() +iex> :debugger.start() {:ok, #PID<0.87.0>} -iex(2)> :int.ni(Example) +iex> :int.ni(Example) {:module, Example} -iex(3)> :int.break(Example, 3) +iex> :int.break(Example, 3) :ok -iex(4)> Example.double_sum(1, 2) +iex> Example.double_sum(1, 2) ``` > If the `debugger` does not start, here is what may have happened: some package managers default to installing a minimized Erlang without WX bindings for GUI support. In some package managers, you may be able to replace the headless Erlang with a more complete package (look for packages named `erlang` vs `erlang-nox` on Debian/Ubuntu/Arch). In others managers, you may need to install a separate `erlang-wx` (or similarly named) package. @@ -134,7 +134,7 @@ For debugging complex systems, jumping at the code is not enough. It is necessar ```elixir $ iex -iex(1)> :observer.start() +iex> :observer.start() ``` > Similar to the `debugger` note above, your package manager may require a separate installation in order to run Observer. diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index df867d788..5119a7c8d 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -40,9 +40,9 @@ Open up `iex` and type the following expressions: Erlang/OTP {{ stable.minimum_otp }} [64-bit] [smp:2:2] [...] Interactive Elixir ({{ stable.version }}) - press Ctrl+C to exit -iex(1)> 40 + 2 +iex> 40 + 2 42 -iex(2)> "hello" <> " world" +iex> "hello" <> " world" "hello world" ``` diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 64320206d..603202eea 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -66,7 +66,6 @@ iex> Agent.update(agent, fn list -> [:nop | list] end) :ok iex> Agent.get(agent, fn content -> content end) [:nop, 12, %{a: 123}] -iex> ``` As you can see, we can modify the agent state in any way we want. Therefore, we most likely don't want to access the Agent API throughout many different places in our code. Instead, we want to encapsulate all Agent-related functionality in a single module, which we will call `KV.Bucket`. Before we implement it, let's write some tests which will outline the API exposed by our module. diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 22e157342..df621ea96 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -59,7 +59,7 @@ Once the supervisor starts, it will traverse the list of children and it will in The `child_spec/1` function returns the child specification which describes how to start the process, if the process is a worker or a supervisor, if the process is temporary, transient or permanent and so on. The `child_spec/1` function is automatically defined when we `use Agent`, `use GenServer`, `use Supervisor`, etc. Let's give it a try in the terminal with `iex -S mix`: ```elixir -iex(1)> KV.Registry.child_spec([]) +iex> KV.Registry.child_spec([]) %{id: KV.Registry, start: {KV.Registry, :start_link, [[]]}} ``` @@ -70,9 +70,9 @@ After the supervisor retrieves all child specifications, it proceeds to start it Let's take the supervisor for a spin: ```elixir -iex(1)> {:ok, sup} = KV.Supervisor.start_link([]) +iex> {:ok, sup} = KV.Supervisor.start_link([]) {:ok, #PID<0.148.0>} -iex(2)> Supervisor.which_children(sup) +iex> Supervisor.which_children(sup) [{KV.Registry, #PID<0.150.0>, :worker, [KV.Registry]}] ``` @@ -81,12 +81,12 @@ So far we have started the supervisor and listed its children. Once the supervis What happens if we intentionally crash the registry started by the supervisor? Let's do so by sending it a bad input on `call`: ```elixir -iex(3)> [{_, registry, _, _}] = Supervisor.which_children(sup) +iex> [{_, registry, _, _}] = Supervisor.which_children(sup) [{KV.Registry, #PID<0.150.0>, :worker, [KV.Registry]}] -iex(4) GenServer.call(registry, :bad_input) +iex GenServer.call(registry, :bad_input) 08:52:57.311 [error] GenServer KV.Registry terminating ** (FunctionClauseError) no function clause matching in KV.Registry.handle_call/3 -iex(5) Supervisor.which_children(sup) +iex Supervisor.which_children(sup) [{KV.Registry, #PID<0.157.0>, :worker, [KV.Registry]}] ``` @@ -250,9 +250,9 @@ When we `use Application`, we may define a couple of functions, similar to when Now that you have defined an application callback which starts our supervisor, we expect the `KV.Registry` process to be up and running as soon as we start `iex -S mix`. Let's give it another try: ```elixir -iex(1)> KV.Registry.create(KV.Registry, "shopping") +iex> KV.Registry.create(KV.Registry, "shopping") :ok -iex(2)> KV.Registry.lookup(KV.Registry, "shopping") +iex> KV.Registry.lookup(KV.Registry, "shopping") {:ok, #PID<0.88.0>} ``` diff --git a/getting-started/modules-and-functions.markdown b/getting-started/modules-and-functions.markdown index 75e7b4636..852b73482 100644 --- a/getting-started/modules-and-functions.markdown +++ b/getting-started/modules-and-functions.markdown @@ -186,7 +186,7 @@ iex> fun.(1) iex> fun2 = &"Good #{&1}" #Function<6.127694169/1 in :erl_eval.expr/5> -iex)> fun2.("morning") +iex> fun2.("morning") "Good morning" ``` diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index ab4900aff..6da747bb7 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -143,7 +143,7 @@ While other languages would require us to catch/handle exceptions, in Elixir we Tasks build on top of the spawn functions to provide better error reports and introspection: ```elixir -iex(1)> Task.start(fn -> raise "oops" end) +iex> Task.start(fn -> raise "oops" end) {:ok, #PID<0.55.0>} 15:22:33.046 [error] Task #PID<0.55.0> started from #PID<0.53.0> terminating From 2ad01ec8c7634ef03ab4757192d95acf86924626 Mon Sep 17 00:00:00 2001 From: dpreston Date: Sat, 13 Aug 2022 17:09:47 +1000 Subject: [PATCH 1480/1761] File.read(file) receives a PID instead of a path (#1626) And improve try-catch example vars. --- .../io-and-the-file-system.markdown | 18 +++++++++--------- getting-started/try-catch-and-rescue.markdown | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index ce9feaf10..32cc3dc4e 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -34,13 +34,13 @@ hello world The [`File`](https://hexdocs.pm/elixir/File.html) module contains functions that allow us to open files as IO devices. By default, files are opened in binary mode, which requires developers to use the specific `IO.binread/2` and `IO.binwrite/2` functions from the `IO` module: ```elixir -iex> {:ok, file} = File.open("hello", [:write]) +iex> {:ok, file} = File.open("path/to/file/hello", [:write]) {:ok, #PID<0.47.0>} iex> IO.binwrite(file, "world") :ok iex> File.close(file) :ok -iex> File.read("hello") +iex> File.read("path/to/file/hello") {:ok, "world"} ``` @@ -51,14 +51,14 @@ Besides functions for opening, reading and writing files, the `File` module has You will also notice that functions in the `File` module have two variants: one "regular" variant and another variant with a trailing bang (`!`). For example, when we read the `"hello"` file in the example above, we use `File.read/1`. Alternatively, we can use `File.read!/1`: ```elixir -iex> File.read("hello") +iex> File.read("path/to/file/hello") {:ok, "world"} -iex> File.read!("hello") +iex> File.read!("path/to/file/hello") "world" -iex> File.read("unknown") +iex> File.read("path/to/file/unknown") {:error, :enoent} -iex> File.read!("unknown") -** (File.Error) could not read file "unknown": no such file or directory +iex> File.read!("path/to/file/unknown") +** (File.Error) could not read file "path/to/file/unknown": no such file or directory ``` Notice that the version with `!` returns the contents of the file instead of a tuple, and if anything goes wrong the function raises an error. @@ -66,7 +66,7 @@ Notice that the version with `!` returns the contents of the file instead of a t The version without `!` is preferred when you want to handle different outcomes using pattern matching: ```elixir -case File.read(file) do +case File.read("path/to/file/hello") do {:ok, body} -> # do something with the `body` {:error, reason} -> # handle the error caused by `reason` end @@ -75,7 +75,7 @@ end However, if you expect the file to be there, the bang variation is more useful as it raises a meaningful error message. Avoid writing: ```elixir -{:ok, body} = File.read(file) +{:ok, body} = File.read("path/to/file/unknown") ``` as, in case of an error, `File.read/1` will return `{:error, reason}` and the pattern matching will fail. You will still get the desired result (a raised error), but the message will be about the pattern which doesn't match (thus being cryptic in respect to what the error actually is about). diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 190a929c7..ecfc4bb4f 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -274,11 +274,11 @@ Furthermore, variables defined in the do-block of `try` are not available inside ```elixir iex> try do ...> raise "fail" -...> what_happened = :did_not_raise +...> another_what_happened = :did_not_raise ...> rescue -...> _ -> what_happened +...> _ -> another_what_happened ...> end -** (RuntimeError) undefined function: what_happened/0 +** (RuntimeError) undefined function: another_what_happened/0 ``` This finishes our introduction to `try`, `catch`, and `rescue`. You will find they are used less frequently in Elixir than in other languages. From 5328663d7cbf7088c4a23e3a16811d792895f0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 17 Aug 2022 20:31:20 +0200 Subject: [PATCH 1481/1761] Release v1.14.0-rc.1 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 73f9ab97b..8a3da8cf5 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.14.0-rc.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.0-rc.1/elixir-otp-24.zip,prerelease,1,22c3b5a3f75091c228dce93b878939ac4bd62635,f2b1974d81169340e7bd9c144345fd389bc72c0bcbc0a224d5eaa1e205f807dd 1.14.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0-rc.0/elixir-otp-24.zip,prerelease,1,ff94d5869327cf182b3dbe7f1fc14844116adfd0,eec761277eb23315ba5919887220fbba2603a482bab1b249a00b06cd1b72cc6b 1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 From f48bdd272aa25b54b02228710ec6975c9b27a647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 18 Aug 2022 18:15:46 +0200 Subject: [PATCH 1482/1761] Improve language description --- index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 7f3b18b1f..f3f7fd449 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,9 @@
    Elixir is a dynamic, functional language for building scalable and maintainable applications.
    -

    Elixir leverages the Erlang VM, known for running low-latency, distributed, and fault-tolerant systems. Elixir is successfully used in web development, embedded software, data ingestion, and multimedia processing, across a wide range of industries. Here is a peek:

    +

    Elixir strikes a balance between expressiveness and readability. It runs on the Erlang VM, known for creating low-latency, distributed, and fault-tolerant systems. These capabilities allow Elixir developers to be productive in several domains, such as web development, embedded software, data pipelines, and multimedia processing, across a wide range of industries.

    + +

    Here is a peek:

    {% highlight elixir %} iex> "Elixir" |> String.graphemes() |> Enum.frequencies() From 074dd09e57e12e52cff877ed769eae3844817a9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 20 Aug 2022 09:45:21 +0200 Subject: [PATCH 1483/1761] Rewrite iodata/chardata section --- .../io-and-the-file-system.markdown | 86 ++++++++++++++++--- 1 file changed, 75 insertions(+), 11 deletions(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 32cc3dc4e..745a9ce6f 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -134,23 +134,87 @@ By modeling IO devices with processes, the Erlang ## `iodata` and `chardata` -In all of the examples above, we used binaries when writing to files. In the chapter ["Binaries, strings, and charlists"](/getting-started/binaries-strings-and-char-lists.html), we mentioned how strings are made of bytes while charlists are lists with Unicode codepoints. +In all of the examples above, we used binaries when writing to files. However, most of the IO functions in Elixir also accept either "iodata" or "chardata". -The functions in `IO` and `File` also allow lists to be given as arguments. Not only that, they also allow a mixed list of lists, integers, and binaries to be given: +One of the main reasons for using "iodata" and "chardata" is for performance. For example, +imagine you need to greet someone in your application: ```elixir -iex> IO.puts('hello world') -hello world -:ok -iex> IO.puts(['hello', ?\s, "world"]) -hello world -:ok +name = "Mary" +IO.puts("Hello " <> name <> "!") +``` + +Given strings in Elixir are immutable, as most data structures, the example above will copy the string "Mary" into the new "Hello Mary!" string. While this is unlikely to matter for the short string as above, copying can be quite expensive for large strings! For this reason, the IO functions in Elixir allow you to pass instead a list of strings: + +```elixir +name = "Mary" +IO.puts(["Hello ", name, "!"]) +``` + +In the example above, there is no copying. Instead we create a list that contains the original name. We call such lists either "iodata" or "chardata" and we will learn the precise difference between them soon. + +Those lists are very useful because it can actually simplify the processing strings in several scenarios. For example, imagine you have a list of values, such as `["apple", "banana", "lemon"]` that you want to write to disk separated by commas. How can you achieve this? + +One option is to use `Enum.join/2` and convert the values to a string: + +```elixir +iex> Enum.join(["apple", "banana", "lemon"], ",") +"apple,banana,lemon" +``` + +The above returns a new string by copying each value into the new string. However, with the knowledge in this section, we know that we can pass a list of strings to the IO/File functions. So instead we can do: + +```elixir +iex> Enum.intersperse(["apple", "banana", "lemon"], ",") +["apple", ",", "banana", ",", "lemon"] +``` + +"iodata" and "chardata" do not only contain strings, but they may contain arbitrary nested lists of strings too: + +```elixir +iex> IO.puts(["apple", [",", "banana", [",", "lemon"]]]) ``` -However, using lists in IO operations requires some attention. A list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as an argument; i.e., they expect a list of integers representing bytes or binaries to be given. +"iodata" and "chardata" may also contain integers. For example, we could print our comma separated list of values by using `?,` as separator, which is the integer representing a comma (`44`): + +```elixir +iex> IO.puts(["apple", ?,, "banana", ?,, "lemon"]) +``` + +The difference between "iodata" and "chardata" is precisely what said integer represents. For iodata, the integers represent bytes. For chardata, the integers represent Unicode codepoints. For ASCII characters, the byte representation is the same as the codepoint representation, so it fits both classifications. However, the default IO device works with chardata, which means we can do: + +```elixir +iex> IO.puts([?O, ?l, ?á, ?\s, "Mary", ?!]) +``` + +Overall, integers in a list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as an argument, where integers in the list would represent bytes. + +On the other hand, the default IO device (`:stdio`) and files opened with `:utf8` encoding work with the remaining functions in the `IO` module. Those functions expect a `chardata` as an argument, where integers represent codepoints. + +Although this is a subtle difference, you only need to worry about these details if you intend to pass lists containing integers to those functions. If you pass binaries, or list of binaries, then there is no ambiguity. + +Finally, there is one last construct called charlist, which is a special case of chardata where we have a list in which all of its values are integers representing Unicode codepoints. They can be created with the `~c` sigil: + +```elixir +iex> ~c"hello" +~c"hello" +``` + +> Note: the above is printed as 'hello' in Elixir v1.14 and earlier, which is the deprecated syntax for charlists. + +They mostly show up when interfacing with Erlang, as some Erlang APIs use charlist as their representation for strings. For this reason, any list containing printable ASCII codepoints will be printed as a charlist: + +```elixir +iex> [?a, ?b, ?c] +~c"abc" +``` + +We packed a lot into this small section, so let's break it down: + + * iodata and chardata are lists of binaries and integers. Those binaries and integers can be arbitrarily nested inside lists. Their goal is to give flexibility and performance when working with IO devices and files -On the other hand, `:stdio` and files opened with `:utf8` encoding work with the remaining functions in the `IO` module. Those functions expect a `chardata` as an argument, that is, a list of characters or strings. + * the choice between iodata and chardata depends on the encoding of the IO device. If the file is opened without encoding, the file expects iodata, and the functions in the `IO` module starting with `bin*` must be used. The default IO device (`:stdio`) and files opened with `:utf8` encoding work expect chardata and work with the remaining functions in the `IO` module -Although this is a subtle difference, you only need to worry about these details if you intend to pass lists to those functions. Binaries are already represented by the underlying bytes and as such their representation is always "raw". + * charlists are a special case of chardata, where it exclusively uses a list of integers Unicode codepoints. They can be created with the `~c` sigil. Lists of integers are automatically printed using the `~c` sigil if all integers in a list represent printable ASCII codepoints. This finishes our tour of IO devices and IO related functionality. We have learned about three Elixir modules - [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html), and [`Path`](https://hexdocs.pm/elixir/Path.html) - as well as how the VM uses processes for the underlying IO mechanisms and how to use `chardata` and `iodata` for IO operations. From 095aa14163264a4d94ad8af4d3501f87f061917b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 20 Aug 2022 09:48:33 +0200 Subject: [PATCH 1484/1761] More fixes --- getting-started/io-and-the-file-system.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 745a9ce6f..d4659964b 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -67,7 +67,7 @@ The version without `!` is preferred when you want to handle different outcomes ```elixir case File.read("path/to/file/hello") do - {:ok, body} -> # do something with the `body` + {:ok, body} -> # do something with the `body` {:error, reason} -> # handle the error caused by `reason` end ``` @@ -80,7 +80,7 @@ However, if you expect the file to be there, the bang variation is more useful a as, in case of an error, `File.read/1` will return `{:error, reason}` and the pattern matching will fail. You will still get the desired result (a raised error), but the message will be about the pattern which doesn't match (thus being cryptic in respect to what the error actually is about). -Therefore, if you don't want to handle the error outcomes, prefer using `File.read!/1`. +Therefore, if you don't want to handle the error outcomes, prefer use the functions ending with an exclamation mark, such as `File.read!/1`. ## The `Path` module @@ -95,7 +95,7 @@ iex> Path.expand("~/hello") Using functions from the `Path` module as opposed to directly manipulating strings is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slashes (`/`) into backslashes (`\`) on Windows when performing file operations. -With this, we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next sections, we will discuss some advanced topics regarding IO. Those sections are not necessary in order to write Elixir code, so feel free to skip them, but they do provide a nice overview of how the IO system is implemented in the VM and other curiosities. +With this, we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next section, we will peek a bit under the covers and learn how the IO system is implemented in the VM. ## Processes @@ -106,7 +106,7 @@ iex> {:ok, file} = File.open("hello", [:write]) {:ok, #PID<0.47.0>} ``` -That happens because the `IO` module actually works with processes (see [chapter 11](/getting-started/processes.html)). Given a file is a process, when you write to a file that has been closed, you are actually sending a message to a process which has been terminated: +This happens because the `IO` module actually works with processes (see [chapter 11](/getting-started/processes.html)). Given a file is a process, when you write to a file that has been closed, you are actually sending a message to a process which has been terminated: ```elixir iex> File.close(file) @@ -130,7 +130,7 @@ iex> IO.write(pid, "hello") After `IO.write/2`, we can see the request sent by the `IO` module printed out (a four-elements tuple). Soon after that, we see that it fails since the `IO` module expected some kind of result, which we did not supply. -By modeling IO devices with processes, the Erlang VM allows I/O messages to be routed between different nodes running Distributed Erlang or even exchange files to perform read/write operations across nodes. Neat! +By modeling IO devices with processes, the Erlang VM allows IO messages to be routed between different nodes running Distributed Erlang or even exchange files to perform read/write operations across nodes. Neat! ## `iodata` and `chardata` From 0508af4be60251de27b6318554029d0ed2e2685b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Dawczak?= Date: Sun, 28 Aug 2022 07:57:30 +0100 Subject: [PATCH 1485/1761] Fix `iex` syntax (#1627) --- getting-started/mix-otp/supervisor-and-application.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index df621ea96..c2b29d3ce 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -83,10 +83,10 @@ What happens if we intentionally crash the registry started by the supervisor? L ```elixir iex> [{_, registry, _, _}] = Supervisor.which_children(sup) [{KV.Registry, #PID<0.150.0>, :worker, [KV.Registry]}] -iex GenServer.call(registry, :bad_input) +iex> GenServer.call(registry, :bad_input) 08:52:57.311 [error] GenServer KV.Registry terminating ** (FunctionClauseError) no function clause matching in KV.Registry.handle_call/3 -iex Supervisor.which_children(sup) +iex> Supervisor.which_children(sup) [{KV.Registry, #PID<0.157.0>, :worker, [KV.Registry]}] ``` From 440a678b8ccabc1af10bdb93aa264af048225e2b Mon Sep 17 00:00:00 2001 From: Simon McConnell <22566656+simonmcconnell@users.noreply.github.com> Date: Tue, 30 Aug 2022 14:01:27 +0000 Subject: [PATCH 1486/1761] Favor Scoop install instructions for Windows (#1628) --- install.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.markdown b/install.markdown index 5d9076b36..72f92008d 100644 --- a/install.markdown +++ b/install.markdown @@ -94,8 +94,9 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Click next, next, ..., finish * If you run into issues, check out the [Windows Installer issues tracker](https://github.com/elixir-lang/elixir-windows-setup) - - Using Chocolatey: - * Run: `cinst elixir` + - Using Scoop: + * Install Erlang: `scoop install erlang` + * Install Elixir: `scoop install elixir` ### Raspberry Pi From 67193d51f8b2dd19f9efe9c6ebc4980b15e0f715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 1 Sep 2022 19:11:38 +0200 Subject: [PATCH 1487/1761] Update dependencies --- Gemfile.lock | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ee11838c9..8cd86b3d9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,8 +6,8 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) coffee-script (2.4.1) coffee-script-source execjs @@ -15,19 +15,19 @@ GEM colorator (1.1.0) commonmarker (0.17.13) ruby-enum (~> 0.5) - concurrent-ruby (1.1.5) + concurrent-ruby (1.1.10) dnsruby (1.61.2) addressable (~> 2.5) - em-websocket (0.5.1) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) + http_parser.rb (~> 0) ethon (0.12.0) ffi (>= 1.3.0) eventmachine (1.2.7) execjs (2.7.0) faraday (0.15.4) multipart-post (>= 1.2, < 3) - ffi (1.11.1) + ffi (1.15.5) forwardable-extended (2.6.0) gemoji (3.0.1) github-pages (198) @@ -84,7 +84,7 @@ GEM html-pipeline (2.11.0) activesupport (>= 2) nokogiri (>= 1.4) - http_parser.rb (0.6.0) + http_parser.rb (0.8.0) i18n (0.9.5) concurrent-ruby (~> 1.0) jekyll (3.8.5) @@ -206,7 +206,7 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.11.3) multipart-post (2.1.1) - nokogiri (1.13.6) + nokogiri (1.13.8) mini_portile2 (~> 2.8.0) racc (~> 1.4) octokit (4.14.0) @@ -215,8 +215,8 @@ GEM forwardable-extended (~> 2.6) public_suffix (3.1.1) racc (1.6.0) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) ffi (~> 1.0) rouge (2.2.1) ruby-enum (0.7.2) @@ -249,4 +249,4 @@ DEPENDENCIES json (>= 2.0.0) BUNDLED WITH - 2.0.2 + 2.1.4 From 825ffa061992d8d7d6f964f6430d280f9ee60600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 1 Sep 2022 20:17:44 +0200 Subject: [PATCH 1488/1761] Release v1.14.0 --- _data/elixir-versions.yml | 8 +++++++- elixir.csv | 3 +-- erlang.csv | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 5de459166..719776838 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,4 +1,10 @@ -stable: v1_13 +stable: v1_14 + +v1_14: + name: v1.14 + minimum_otp: 23.0 + version: 1.14.0 + docs_zip: true v1_13: name: v1.13 diff --git a/elixir.csv b/elixir.csv index 8a3da8cf5..30fa9dc64 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,6 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.14.0-rc.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.0-rc.1/elixir-otp-24.zip,prerelease,1,22c3b5a3f75091c228dce93b878939ac4bd62635,f2b1974d81169340e7bd9c144345fd389bc72c0bcbc0a224d5eaa1e205f807dd -1.14.0-rc.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0-rc.0/elixir-otp-24.zip,prerelease,1,ff94d5869327cf182b3dbe7f1fc14844116adfd0,eec761277eb23315ba5919887220fbba2603a482bab1b249a00b06cd1b72cc6b +1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 1.13.2,https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2 diff --git a/erlang.csv b/erlang.csv index d169112ce..b8885bb7e 100644 --- a/erlang.csv +++ b/erlang.csv @@ -1,4 +1,5 @@ version_otp,version_erts,url_win32,url_win64 +25.0,13.0,https://github.com/erlang/otp/releases/download/OTP-25.0.4/otp_win32_25.0.4.exe,https://github.com/erlang/otp/releases/download/OTP-25.0.4/otp_win64_25.0.4.exe 24.3,12.3,https://github.com/erlang/otp/releases/download/OTP-24.3.4.2/otp_win32_24.3.4.2.exe,https://github.com/erlang/otp/releases/download/OTP-24.3.4.2/otp_win64_24.3.4.2.exe 23.3,11.2,https://github.com/erlang/otp/releases/download/OTP-23.3.4.8/otp_win32_23.3.4.8.exe,https://github.com/erlang/otp/releases/download/OTP-23.3.4.8/otp_win64_23.3.4.8.exe 22.3,10.7,http://www.erlang.org/download/otp_win32_22.3.exe,http://www.erlang.org/download/otp_win64_22.3.exe From e0bcb1b1e6ab5c07fe515d2d676197076890c5bf Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Thu, 1 Sep 2022 20:18:32 +0200 Subject: [PATCH 1489/1761] Add v1.14 release announcement (#1629) --- _includes/search.html | 2 +- ...022-09-01-elixir-v1-14-0-released.markdown | 191 ++++++++++++++++++ 2 files changed, 192 insertions(+), 1 deletion(-) create mode 100644 _posts/2022-09-01-elixir-v1-14-0-released.markdown diff --git a/_includes/search.html b/_includes/search.html index c71a4ecdb..acf1a0b1a 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,6 @@ diff --git a/_posts/2022-09-01-elixir-v1-14-0-released.markdown b/_posts/2022-09-01-elixir-v1-14-0-released.markdown new file mode 100644 index 000000000..9584974cb --- /dev/null +++ b/_posts/2022-09-01-elixir-v1-14-0-released.markdown @@ -0,0 +1,191 @@ +--- +layout: post +title: Elixir v1.14 released +author: Andrea Leopardi +category: Releases +excerpt: Elixir v1.14 is out with a focus on debugging and developer experience +--- + +Elixir v1.14 has just been released. 🎉 + +Let's check out new features in this release. Like many of the past Elixir releases, this one has a strong focus on developer experience and developer happiness, through improvements to debugging, new debugging tools, and improvements to term inspection. Let's take a quick tour. + +Note: this announcement contains [asciinema](https://asciinema.org) snippets. You may need to enable 3rd-party JavaScript on this site in order to see them. If JavaScript is disabled, `noscript` tags with the proper links will be shown. + +## `dbg` + +[`Kernel.dbg/2`](https://hexdocs.pm/elixir/Kernel.html#dbg/2) is a new macro that's somewhat similar to [`IO.inspect/2`](https://hexdocs.pm/elixir/IO.html#inspect/2), but specifically tailored for **debugging**. + +When called, it prints the value of whatever you pass to it, plus the debugged code itself as well as its location. + + + +`dbg/2` can do more. It's a macro, so it *understands Elixir code*. You can see that when you pass a series of `|>` pipes to it. `dbg/2` will print the value for every step of the pipeline. + + + +## IEx + dbg + +Interactive Elixir (IEx) is Elixir's shell (also known as REPL). In v1.14, we have improved IEx breakpoints to also allow line-by-line stepping: + + + +We have also gone one step further and integrated this new functionality with `dbg/2`. + +`dbg/2` supports **configurable backends**. IEx automatically replaces the default backend by one that halts the code execution with IEx: + + + +We call this process "prying", as you get access to variables and imports, but without the ability to change how the code actually executes. + +This also works with pipelines: if you pass a series of `|>` pipe calls to `dbg` (or pipe into it at the end, like `|> dbg()`), you'll be able to step through every line in the pipeline. + + + +You can keep the default behavior by passing the `--no-pry` option to IEx. + +## dbg in Livebook + +[Livebook](https://livebook.dev/) brings the power of computation notebooks to Elixir. + +As an another example of the power behind `dbg`, the Livebook team has implemented a visual representation for `dbg` as a backend, where it prints each step of the pipeline as its distinct UI element. You can select an element to see its output or even re-order and disable sections of the pipeline on the fly: + + + +## PartitionSupervisor + +[`PartitionSupervisor`](https://hexdocs.pm/elixir/PartitionSupervisor.html) implements a new supervisor type. It is designed to help when you have a single supervised process that becomes a bottleneck. If that process' state can be easily partitioned, then you can use `PartitionSupervisor` to supervise multiple isolated copies of that process running concurrently, each assigned its own partition. + +For example, imagine you have a `ErrorReporter` process that you use to report errors to a monitoring service. + +```elixir +# Application supervisor: +children = [ + # ..., + ErrorReporter +] + +Supervisor.start_link(children, strategy: :one_for_one) +``` + +As the concurrency of your application goes up, the `ErrorReporter` process might receive requests from many other processes and eventually become a bottleneck. In a case like this, it could help to spin up multiple copies of the `ErrorReporter` process under a `PartitionSupervisor`. + +```elixir +# Application supervisor +children = [ + {PartitionSupervisor, child_spec: ErrorReporter, name: Reporters} +] +``` + +The `PartitionSupervisor` will spin up a number of processes equal to `System.schedulers_online()` by default (most often one per core). Now, when routing requests to `ErrorReporter` processes we can use a `:via` tuple and route the requests through the partition supervisor. + +```elixir +partitioning_key = self() +ErrorReporter.report({:via, PartitionSupervisor, {Reporters, partitioning_key}}, error) +``` + +Using `self()` as the partitioning key here means that the same process will always report errors to the same `ErrorReporter` process, ensuring a form of back-pressure. You can use any term as the partitioning key. + +### A common example + +A common and practical example of a good use case for `PartitionSupervisor` is partitioning something like a `DynamicSupervisor`. When starting many processes under it, a dynamic supervisor can be a bottleneck, especially if said processes take a long time to initialize. Instead of starting a single `DynamicSupervisor`, you can start multiple: + +```elixir +children = [ + {PartitionSupervisor, child_spec: DynamicSupervisor, name: MyApp.DynamicSupervisors} +] + +Supervisor.start_link(children, strategy: :one_for_one) +``` + +Now you start processes on the dynamic supervisor for the right partition. For instance, you can partition by PID, like in the previous example: + +```elixir +DynamicSupervisor.start_child( + {:via, PartitionSupervisor, {MyApp.DynamicSupervisors, self()}}, + my_child_specification +) +``` + +## Improved errors on binaries and evaluation + +Erlang/OTP 25 improved errors on binary construction and evaluation. These improvements apply to Elixir as well. Before v1.14, errors when constructing binaries would often be hard-to-debug, generic "argument errors". Erlang/OTP 25 and Elixir v1.14 provide more detail for easier debugging. This work is part of [EEP 54](https://www.erlang.org/eeps/eep-0054). + +Before: + +```elixir +int = 1 +bin = "foo" +int <> bin +#=> ** (ArgumentError) argument error +``` + +Now: + +```elixir +int = 1 +bin = "foo" +int <> bin +#=> ** (ArgumentError) construction of binary failed: +#=> segment 1 of type 'binary': +#=> expected a binary but got: 1 +``` + +Code evaluation (in IEx and Livebook) has also been improved to provide better error reports and stacktraces. + +## Slicing with Steps + +Elixir v1.12 introduced **stepped ranges**, which are ranges where you can specify the "step": + +```elixir +Enum.to_list(1..10//3) +#=> [1, 4, 7, 10] +``` + +Stepped ranges are particularly useful for numerical operations involving vectors and matrices (see [Nx](https://github.com/elixir-nx/nx), for example). However, the Elixir standard library was not making use of stepped ranges in its APIs. Elixir v1.14 starts to take advantage of steps with support for stepped ranges in a couple of functions. One of them is [`Enum.slice/2`](https://hexdocs.pm/elixir/Enum.html#slice/2): + +```elixir +letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] +Enum.slice(letters, 0..5//2) +#=> ["a", "c", "e"] +``` + +[`binary_slice/2`](https://hexdocs.pm/elixir/Kernel.html#binary_slice/2) (and [`binary_slice/3`](https://hexdocs.pm/elixir/Kernel.html#binary_slice/3) for completeness) has been added to the `Kernel` module, that works with bytes and also support stepped ranges: + +```elixir +binary_slice("Elixir", 1..5//2) +#=> "lxr" +``` + +## Expression-based Inspection and `Inspect` Improvements + +In Elixir, it's conventional to implement the `Inspect` protocol for opaque structs so that they're inspected with a special notation, resembling this: + +```elixir +MapSet.new([:apple, :banana]) +#MapSet<[:apple, :banana]> +``` + +This is generally done when the struct content or part of it is private and the `%name{...}` representation would reveal fields that are not part of the public API. + +The downside of the `#name<...>` convention is that *the inspected output is not valid Elixir code*. For example, you cannot copy the inspected output and paste it into an IEx session. + +Elixir v1.14 changes the convention for some of the standard-library structs. The `Inspect` implementation for those structs now returns a string with a valid Elixir expression that recreates the struct when evaluated. In the `MapSet` example above, this is what we have now: + +```elixir +fruits = MapSet.new([:apple, :banana]) +MapSet.put(fruits, :pear) +#=> MapSet.new([:apple, :banana, :pear]) +``` + +The `MapSet.new/1` expression evaluates to exactly the struct that we're inspecting. This allows us to hide the internals of `MapSet`, while keeping it as valid Elixir code. This expression-based inspection has been implemented for `Version.Requirement`, `MapSet`, and `Date.Range`. + +Finally, we have improved the `Inspect` protocol for structs so that fields are inspected in the order they are declared in `defstruct`. The option `:optional` has also been added when deriving the `Inspect` protocol, giving developers more control over the struct representation. See [the updated documentation for `Inspect`](https://hexdocs.pm/elixir/Inspect.html) for a general rundown on the approaches and options available. + +## Learn more + +For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.14.0). + +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. + +Happy debugging! From 2107a19da529cb4f0348d9037cba9f860ec7b516 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Thu, 1 Sep 2022 20:18:53 +0200 Subject: [PATCH 1490/1761] Add "dbg" section in the "Debugging" guide (#1621) --- getting-started/debugging.markdown | 54 ++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index b50f21a77..b4655f9bb 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -63,26 +63,60 @@ When `some_fun/3` is invoked with `:foo`, `"bar"`, `:baz` it prints: Please see [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2) to read more about other ways in which one could use this function. Also, in order to find a full list of other formatting options that one can use alongside `IO.inspect/2`, see [Inspect.Opts](https://hexdocs.pm/elixir/Inspect.Opts.html). -## `IEx.pry/0` and `IEx.break!/2` +## `dbg` -While `IO.inspect/2` is static, Elixir's interactive shell provides more dynamic ways to interact with debugged code. +Elixir v1.14 introduced `dbg/2`. `dbg` is similar to `IO.inspect/2`, but specifically tailored for debugging. It prints the value passed to it and returns it (just like `IO.inspect/2`), but it also prints the code and location. -The first one is with [`IEx.pry/0`](https://hexdocs.pm/iex/IEx.html#pry/0) which we can use instead of `IO.inspect binding()`: +```elixir +# In my_file.exs +feature = %{name: :dbg, inspiration: "Rust"} +dbg(feature) +dbg(Map.put(feature, :in_version, "1.14.0")) +``` + +The code above prints this: + +```shell +[my_file.exs:2: (file)] +feature #=> %{inspiration: "Rust", name: :dbg} +[my_file.exs:3: (file)] +Map.put(feature, :in_version, "1.14.0") #=> %{in_version: "1.14.0", inspiration: "Rust", name: :dbg} +``` + +When talking about `IO.inspect/2`, we mentioned its usefulness when placed between steps of `|>` pipelines. `dbg` does it better: it understands Elixir code, so it will print values at *every step of the pipeline*. ```elixir -def some_fun(a, b, c) do - require IEx; IEx.pry - ... -end +# In dbg_pipes.exs +__ENV__.file +|> String.split("/", trim: true) +|> List.last() +|> File.exists?() +|> dbg() +``` + +This code prints: + +```shell +[dbg_pipes.exs:5: (file)] +__ENV__.file #=> "/home/myuser/dbg_pipes.exs" +|> String.split("/", trim: true) #=> ["home", "myuser", "dbg_pipes.exs"] +|> List.last() #=> "dbg_pipes.exs" +|> File.exists?() #=> true ``` -Once the code above is executed inside an `iex` session, IEx will ask if we want to pry into the current code. If accepted, we will be able to access all variables, as well as imports and aliases from the code, directly From IEx. While pry is running, the code execution stops, until `continue` is called. Remember you can always run `iex` in the context of a project with `iex -S mix TASK`. +## Breakpoints + +When code calling `dbg` is executed via `iex`, IEx will ask you to "stop" the code execution where the `dbg` call is. If you accept, you'll be able to access all variables, as well as imports and aliases from the code, directly from IEx. This is called "prying". While the pry session is running, the code execution stops, until `continue` or `next` are called. Remember you can always run `iex` in the context of a project with `iex -S mix TASK`. + + + +`dbg` is the most common way to pry into code execution, but if you want to avoid printing debug information, you can use `IEx.pry/0` to set up a manual pry breakpoint. -Unfortunately, similar to `IO.inspect/2`, `IEx.pry/0` also requires us to change the code we intend to debug. Luckily IEx also provides a [`break!/2`](https://hexdocs.pm/iex/IEx.html#break!/2) function which allows you to set and manage breakpoints on any Elixir code without modifying its source: +`dbg` calls requires us to change the code we intend to debug. Luckily IEx also provides a [`break!/2`](https://hexdocs.pm/iex/IEx.html#break!/2) function which allows you to set and manage breakpoints on any Elixir code without modifying its source: -Similar to `IEx.pry/0`, once a breakpoint is reached code execution stops until `continue` is invoked. However, note `break!/2` does not have access to aliases and imports from the debugged code as it works on the compiled artifact rather than on source. +Similar to `dbg`, once a breakpoint is reached code execution stops until `continue` or `next` are invoked. However, `break!/2` does not have access to aliases and imports from the debugged code as it works on the compiled artifact rather than on source code. ## Debugger From fe1bb92ced1b8cbfa3bead5babcd8d6456b7092a Mon Sep 17 00:00:00 2001 From: Kerry Buckley Date: Sun, 4 Sep 2022 14:23:17 +0100 Subject: [PATCH 1491/1761] Link to correct precompiled binaries for supported OTP versions (#1633) --- _data/elixir-versions.yml | 1 + install.markdown | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 719776838..fbcd04055 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,6 +3,7 @@ stable: v1_14 v1_14: name: v1.14 minimum_otp: 23.0 + otp_versions: [23, 24, 25] version: 1.14.0 docs_zip: true diff --git a/install.markdown b/install.markdown index 72f92008d..0c3f908c8 100644 --- a/install.markdown +++ b/install.markdown @@ -125,7 +125,11 @@ The above will automatically point to the latest Erlang and Elixir available. Fo ## Precompiled package -Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the [Precompiled.zip file for the latest release](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/Precompiled.zip). +Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the appropriate `Precompiled.zip` file for the latest release, depending on which version of Erlang you are using: + + +{% for otp_version in stable.otp_versions %} + * [Elixir {{ stable.version }} on Erlang {{ otp_version }}](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/elixir-otp-{{ otp_version }}.zip){% endfor %} Once the release is unpacked, you are ready to run the `elixir` and `iex` commands from the `bin` directory, but we recommend you to [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. From c907718cfad299edae2a1ca467bbf39a7ce3e9ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 4 Sep 2022 15:23:33 +0200 Subject: [PATCH 1492/1761] Bump minimist from 1.2.0 to 1.2.6 in /_epub (#1630) Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index f05825c2a..76c6980fa 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -1979,12 +1979,6 @@ "vinyl-fs": "^0.3.0" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, "semver": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", @@ -2538,12 +2532,6 @@ "vinyl": "^0.5.0" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, "object-assign": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", @@ -3615,9 +3603,9 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "mixin-deep": { @@ -3642,12 +3630,12 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "^1.2.6" } }, "modify-filename": { From c5af44fb55772d8c7b1129b96eb237afa1ee2cc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 4 Sep 2022 15:23:42 +0200 Subject: [PATCH 1493/1761] Bump json-schema from 0.2.3 to 0.4.0 in /_epub (#1631) Bumps [json-schema](https://github.com/kriszyp/json-schema) from 0.2.3 to 0.4.0. - [Release notes](https://github.com/kriszyp/json-schema/releases) - [Commits](https://github.com/kriszyp/json-schema/compare/v0.2.3...v0.4.0) --- updated-dependencies: - dependency-name: json-schema dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index 76c6980fa..d7f5cb73d 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -3114,9 +3114,9 @@ "optional": true }, "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true, "optional": true }, @@ -3157,22 +3157,22 @@ "optional": true }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, "optional": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, "optional": true } From 3994b5558c2a92e2d5aef5b3fd89a9246c2dd2fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 4 Sep 2022 15:36:40 +0200 Subject: [PATCH 1494/1761] Refactor install instructions --- _data/elixir-versions.yml | 2 +- install.markdown | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index fbcd04055..c7f1b56b2 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,7 +3,7 @@ stable: v1_14 v1_14: name: v1.14 minimum_otp: 23.0 - otp_versions: [23, 24, 25] + otp_versions: [25, 24, 23] version: 1.14.0 docs_zip: true diff --git a/install.markdown b/install.markdown index 0c3f908c8..92df033af 100644 --- a/install.markdown +++ b/install.markdown @@ -125,13 +125,12 @@ The above will automatically point to the latest Erlang and Elixir available. Fo ## Precompiled package -Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download and unzip the appropriate `Precompiled.zip` file for the latest release, depending on which version of Erlang you are using: - +Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download the appropriate precompiled Elixir below. You can consult your Erlang/OTP version by running `erl -s halt`: {% for otp_version in stable.otp_versions %} * [Elixir {{ stable.version }} on Erlang {{ otp_version }}](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/elixir-otp-{{ otp_version }}.zip){% endfor %} -Once the release is unpacked, you are ready to run the `elixir` and `iex` commands from the `bin` directory, but we recommend you to [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. +Once the release is download, unpack it, and you are ready to run the `elixir` and `iex` commands from the `bin` directory. However, we recommend you to [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. ## Compiling with version managers From bce98ef1129829c734f809b27de8b5a69c0056de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 4 Sep 2022 16:43:34 +0100 Subject: [PATCH 1495/1761] Bump lodash and gulp in /_epub (#1632) Bumps [lodash](https://github.com/lodash/lodash) and [gulp](https://github.com/gulpjs/gulp). These dependencies needed to be updated together. Updates `lodash` from 4.17.11 to 4.17.21 - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.21) Updates `gulp` from 3.9.1 to 4.0.2 - [Release notes](https://github.com/gulpjs/gulp/releases) - [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md) - [Commits](https://github.com/gulpjs/gulp/compare/v3.9.1...v4.0.2) --- updated-dependencies: - dependency-name: lodash dependency-type: indirect - dependency-name: gulp dependency-type: direct:development ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 973 +++++++++++++++++++++++++--------------- _epub/package.json | 2 +- 2 files changed, 622 insertions(+), 353 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index d7f5cb73d..8a6254148 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -149,6 +149,36 @@ "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", "dev": true }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "requires": { + "buffer-equal": "^1.0.0" + } + }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", @@ -170,12 +200,30 @@ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -194,6 +242,41 @@ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", "dev": true }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "dev": true, + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, "array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", @@ -269,6 +352,33 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "dev": true, + "requires": { + "async-done": "^1.2.2" + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -321,6 +431,23 @@ "js-tokens": "^3.0.2" } }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "dev": true, + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -398,6 +525,22 @@ "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", "dev": true }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", @@ -457,6 +600,12 @@ "electron-to-chromium": "^1.2.7" } }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -553,6 +702,37 @@ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -674,6 +854,17 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -884,14 +1075,11 @@ } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "dev": true }, "define-properties": { "version": "1.1.3", @@ -964,12 +1152,6 @@ "dev": true, "optional": true }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", - "dev": true - }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", @@ -1077,23 +1259,12 @@ "dev": true }, "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { - "once": "~1.3.0" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, - "requires": { - "wrappy": "1" - } - } + "once": "^1.4.0" } }, "errno": { @@ -1147,6 +1318,18 @@ "es5-ext": "~0.10.14" } }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1531,6 +1714,13 @@ "object-assign": "^4.0.1" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -1554,12 +1744,6 @@ } } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -1595,12 +1779,6 @@ "parse-filepath": "^1.0.1" } }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, "flagged-respawn": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", @@ -1619,6 +1797,16 @@ "write": "^0.2.1" } }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -1668,12 +1856,33 @@ "map-cache": "^0.2.2" } }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -1686,15 +1895,6 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "dev": true, - "requires": { - "globule": "~0.1.0" - } - }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -1751,93 +1951,47 @@ "path-is-absolute": "^1.0.0" } }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" - }, - "dependencies": { - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "dev": true, - "requires": { - "brace-expansion": "^1.0.0" - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", "dev": true, "requires": { - "gaze": "^0.5.1" + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" } }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", "dev": true, "requires": { - "find-index": "^0.1.1" + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" } }, "global-modules": { @@ -1885,64 +2039,6 @@ } } }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, - "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - } - } - }, "glogg": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", @@ -1959,32 +2055,15 @@ "dev": true }, "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", "dev": true, "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" - }, - "dependencies": { - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - } + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" } }, "gulp-clean-css": { @@ -2879,6 +2958,15 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -2951,6 +3039,12 @@ "is-extglob": "^2.1.0" } }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -3053,6 +3147,12 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -3178,18 +3278,43 @@ } } }, + "just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, "lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -3199,6 +3324,15 @@ "invert-kv": "^1.0.0" } }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, "less": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", @@ -3262,22 +3396,6 @@ "type-check": "~0.3.2" } }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -3671,6 +3789,13 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nan": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", + "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", + "dev": true, + "optional": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -3690,12 +3815,6 @@ "to-regex": "^3.0.1" } }, - "natives": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", - "dev": true - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3720,12 +3839,27 @@ "validate-npm-package-license": "^3.0.1" } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", @@ -3840,6 +3974,16 @@ "isobject": "^3.0.1" } }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3872,29 +4016,15 @@ "wordwrap": "~1.0.0" } }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", "dev": true, "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" + "readable-stream": "^2.0.1" } }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -3954,6 +4084,12 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -4158,6 +4294,27 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -4208,6 +4365,17 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -4233,6 +4401,27 @@ "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", "dev": true }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -4346,6 +4535,15 @@ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -4524,12 +4722,6 @@ "sver-compat": "^1.5.0" } }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", - "dev": true - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -4574,12 +4766,6 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -4853,18 +5039,18 @@ } } }, - "stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", - "dev": true - }, "stream-counter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=", "dev": true }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", @@ -5072,13 +5258,14 @@ "xtend": "~4.0.1" } }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", "dev": true, "requires": { - "os-homedir": "^1.0.0" + "through2": "~2.0.0", + "xtend": "~4.0.0" } }, "time-stamp": { @@ -5096,6 +5283,16 @@ "os-tmpdir": "~1.0.2" } }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -5138,6 +5335,15 @@ "repeat-string": "^1.6.1" } }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "requires": { + "through2": "^2.0.3" + } + }, "tough-cookie": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", @@ -5210,6 +5416,38 @@ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, + "undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "dependencies": { + "fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true + } + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -5223,10 +5461,14 @@ } }, "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", - "dev": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } }, "unset-value": { "version": "1.0.0", @@ -5268,6 +5510,12 @@ } } }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -5280,12 +5528,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -5299,15 +5541,6 @@ "dev": true, "optional": true }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "requires": { - "user-home": "^1.1.1" - } - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -5318,6 +5551,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -5404,88 +5643,118 @@ } }, "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "dev": true, - "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" }, "dependencies": { "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "^1.1.0" - } + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + } + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true }, - "strip-bom": { + "clone-stats": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "dev": true, - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - } + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "remove-trailing-separator": "^1.0.1" } }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } } } diff --git a/_epub/package.json b/_epub/package.json index 7032910ed..c189168b3 100644 --- a/_epub/package.json +++ b/_epub/package.json @@ -20,7 +20,7 @@ "homepage": "https://github.com/elixir-lang/elixir-lang.github.com", "devDependencies": { "del": "^3.0.0", - "gulp": "^3.9.1", + "gulp": "^4.0.2", "gulp-cli": "^2.2.0", "gulp-clean-css": "^3.7.0", "gulp-eslint": "^4.0.0", From 2659e44bd5eccd3b3eb7091138167d80022d2b6f Mon Sep 17 00:00:00 2001 From: Michael Adkins Date: Tue, 6 Sep 2022 13:12:54 -0500 Subject: [PATCH 1496/1761] Add commas to bare usage of "however" where appropriate (#1634) --- crash-course.markdown | 2 +- getting-started/alias-require-and-import.markdown | 2 +- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- getting-started/typespecs-and-behaviours.markdown | 2 +- js/toc/README.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index 09fe6938a..f4d3dc95e 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -62,7 +62,7 @@ Hello world! :ok ``` -However notice that in Elixir you don't need to create a file only to create a new module, Elixir modules can be defined directly in the shell: +However, notice that in Elixir you don't need to create a file only to create a new module; Elixir modules can be defined directly in the shell: ```elixir defmodule MyModule do diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 78dacdd8b..7440a78ff 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -76,7 +76,7 @@ Public functions in modules are globally available, but in order to use macros, ```elixir iex> Integer.is_odd(3) -** (UndefinedFunctionError) function Integer.is_odd/1 is undefined or private. However there is a macro with the same name and arity. Be sure to require Integer if you intend to invoke this macro +** (UndefinedFunctionError) function Integer.is_odd/1 is undefined or private. However, there is a macro with the same name and arity. Be sure to require Integer if you intend to invoke this macro (elixir) Integer.is_odd(3) iex> require Integer Integer diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index a24e6ba7e..c76c1b69f 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -9,7 +9,7 @@ category: Mix and OTP We have now successfully defined our supervisor which is automatically started (and stopped) as part of our application lifecycle. -Remember however that our `KV.Registry` is both linking (via `start_link`) and monitoring (via `monitor`) bucket processes in the `handle_cast/2` callback: +Remember, however, that our `KV.Registry` is both linking (via `start_link`) and monitoring (via `monitor`) bucket processes in the `handle_cast/2` callback: ```elixir {:ok, bucket} = KV.Bucket.start_link([]) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 4a54e3b87..769fbc7d2 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -170,7 +170,7 @@ end If a module adopting a given behaviour doesn't implement one of the callbacks required by that behaviour, a compile-time warning will be generated. -Furthermore, with `@impl` you can also make sure that you are implementing the **correct** callbacks from the given behaviour in an explicit manner. For example, the following parser implements both `parse` and `extensions`, however thanks to a typo, `BADParser` is implementing `parse/0` instead of `parse/1`. +Furthermore, with `@impl` you can also make sure that you are implementing the **correct** callbacks from the given behaviour in an explicit manner. For example, the following parser implements both `parse` and `extensions`; however, thanks to a typo, `BADParser` is implementing `parse/0` instead of `parse/1`. ```elixir defmodule BADParser do diff --git a/js/toc/README.md b/js/toc/README.md index 4ad1f12f5..2d9412d0f 100644 --- a/js/toc/README.md +++ b/js/toc/README.md @@ -65,7 +65,7 @@ Will render this table of contents: #### List Type By default the table of contents is rendered as an `
      `, so you can change the number formatting using CSS. -However you can use the `
        ` tag, using the `listType` option: +However, you can use the `
          ` tag, using the `listType` option: ```javascript $('#toc').toc({ listType: 'ul' }); From 4e6a272ee07f85c60d5139e9f52782f5f7061f31 Mon Sep 17 00:00:00 2001 From: Michael Adkins Date: Tue, 6 Sep 2022 16:28:41 -0500 Subject: [PATCH 1497/1761] Add example with multiple nesting to `alias` guide (#1635) --- getting-started/alias-require-and-import.markdown | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 7440a78ff..57a4e1d3d 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -215,6 +215,21 @@ defmodule Foo do end ``` +Aliasing a nested module does not bring parent modules into scope. Consider the following example: + +```elixir +defmodule Foo do + defmodule Bar do + defmodule Baz do + end + end +end + +alias Foo.Bar.Baz +# The module `Foo.Bar.Baz` is now available as `Baz` +# However, the module `Foo.Bar` is *not* available as `Bar` +``` + As we will see in later chapters, aliases also play a crucial role in macros, to guarantee they are hygienic. ## Multi alias/import/require/use From 3907018336861adefc6afcaae2d9675177466078 Mon Sep 17 00:00:00 2001 From: Michael Adkins Date: Tue, 6 Sep 2022 16:29:07 -0500 Subject: [PATCH 1498/1761] Add `use` to sentence in multi-alias example (#1636) --- getting-started/alias-require-and-import.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 57a4e1d3d..ce2a364a8 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -234,7 +234,7 @@ As we will see in later chapters, aliases also play a crucial role in macros, to ## Multi alias/import/require/use -It is possible to alias, import or require multiple modules at once. This is particularly useful once we start nesting modules, which is very common when building Elixir applications. For example, imagine you have an application where all modules are nested under `MyApp`, you can alias the modules `MyApp.Foo`, `MyApp.Bar` and `MyApp.Baz` at once as follows: +It is possible to `alias`, `import`, `require`, or `use` multiple modules at once. This is particularly useful once we start nesting modules, which is very common when building Elixir applications. For example, imagine you have an application where all modules are nested under `MyApp`, you can alias the modules `MyApp.Foo`, `MyApp.Bar` and `MyApp.Baz` at once as follows: ```elixir alias MyApp.{Foo, Bar, Baz} From 2d3a8c71fecc52ddade840946d77297e0c6639b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 17 Sep 2022 19:10:24 +0200 Subject: [PATCH 1499/1761] Add more examples throughout the guides --- index.html | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index f3f7fd449..facb702f7 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@
          Elixir is a dynamic, functional language for building scalable and maintainable applications.
          -

          Elixir strikes a balance between expressiveness and readability. It runs on the Erlang VM, known for creating low-latency, distributed, and fault-tolerant systems. These capabilities allow Elixir developers to be productive in several domains, such as web development, embedded software, data pipelines, and multimedia processing, across a wide range of industries.

          +

          Elixir runs on the Erlang VM, known for creating low-latency, distributed, and fault-tolerant systems. These capabilities allow Elixir developers to be productive in several domains, such as web development, embedded software, data pipelines, and multimedia processing, across a wide range of industries.

          Here is a peek:

          @@ -92,7 +92,7 @@

          Fault-tolerance

          Supervisor.start_link(children, strategy: :one_for_one) {% endhighlight %} -

          The combination of fault-tolerance and event-driven programming via message passing makes Elixir an excellent choice for reactive programming and robust architectures.

          +

          The combination of fault-tolerance and event-driven programming via message passing makes Elixir an excellent choice for reactive programming and robust architectures. Frameworks, such as Nerves, build on this foundation to enable productive development of reliable embedded/IoT systems.

    @@ -144,7 +144,9 @@

    Extensibility and DSLs

    end {% endhighlight %} -

    The async: true option allows tests to run in parallel, using as many CPU cores as possible, while the assert functionality can introspect your code, providing great reports in case of failures. Those features are built using Elixir macros, making it possible to add new constructs as if they were part of the language itself.

    +

    The async: true option allows tests to run in parallel, using as many CPU cores as possible, while the assert functionality can introspect your code, providing great reports in case of failures.

    + +

    Other examples include using Elixir to write SQL queries, compiling a subset of Elixir to the GPU, and many more.

    @@ -185,6 +187,8 @@

    Interactive development

    iex> break! String.trim/1 # Sets a breakpoint in the String.trim/1 function iex> recompile # Recompiles the current project on the fly {% endhighlight %} + +

    Code notebooks like Livebook allow you to interact with Elixir directly from your browser, including support for plotting, flowcharts, data tables, machine learning, and much more!

    ?n* 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�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 Date: Mon, 9 Aug 2021 09:09:04 +0200 Subject: [PATCH 1369/1761] Add spawnfest --- _includes/conferences.html | 5 +++++ _includes/important-links.html | 7 +++++-- css/style.css | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/_includes/conferences.html b/_includes/conferences.html index e69de29bb..40e25794a 100644 --- a/_includes/conferences.html +++ b/_includes/conferences.html @@ -0,0 +1,5 @@ + + SpawnFest +
    + Sept 18th-19th, 2021 - Annual online software development contest where teams create the best BEAM-based applications in one weekend. +
    diff --git a/_includes/important-links.html b/_includes/important-links.html index 7d6049e98..0bb9e14ee 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -1,5 +1,3 @@ -{% include conferences.html %} -

    From 478ed1a9a9ab6ec3d7aa206484f1ae49786248de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 17 Sep 2022 19:18:31 +0200 Subject: [PATCH 1500/1761] Nit --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index facb702f7..c555e85e9 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@
    Elixir is a dynamic, functional language for building scalable and maintainable applications.
    -

    Elixir runs on the Erlang VM, known for creating low-latency, distributed, and fault-tolerant systems. These capabilities allow Elixir developers to be productive in several domains, such as web development, embedded software, data pipelines, and multimedia processing, across a wide range of industries.

    +

    Elixir runs on the Erlang VM, known for creating low-latency, distributed, and fault-tolerant systems. These capabilities and Elixir tooling allow developers to be productive in several domains, such as web development, embedded software, data pipelines, and multimedia processing, across a wide range of industries.

    Here is a peek:

    From b0ec6d5ce610287a93214e8e2a6019f4c4f48b33 Mon Sep 17 00:00:00 2001 From: Andrew France Date: Tue, 20 Sep 2022 19:22:09 +0200 Subject: [PATCH 1501/1761] Update Ubuntu/Debian install instructions (#1637) Unfortunately the Erlang Solutions package repository for Ubuntu and Debian packages has not been updated for recent Ubuntu releases or the latest LTS release. Simplify the instructions to use `apt-get` by default, while still providing an option for those on older releases to use the Erlang Solutions packages. Fixes #1575. --- install.markdown | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/install.markdown b/install.markdown index 92df033af..7f78e8cda 100644 --- a/install.markdown +++ b/install.markdown @@ -65,10 +65,14 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Run: `eopkg install elixir` - **Ubuntu** or **Debian** - * Add Erlang Solutions repository: `wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb` - * Run: `sudo apt-get update` - * Install the Erlang/OTP platform and all of its applications: `sudo apt-get install esl-erlang` - * Install Elixir: `sudo apt-get install elixir` + * From primary package repositories: + * Run: `sudo apt-get install elixir` + + * From Erlang Solutions, for more recent Elixir/Erlang versions on Ubuntu LTS (< 22.04) or Debian Stable releases: + * Add Erlang Solutions repository: `wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb` + * Run: `sudo apt-get update` + * Install the Erlang/OTP platform and all of its applications: `sudo apt-get install esl-erlang` + * Install Elixir: `sudo apt-get install elixir` - **Void Linux** * Run: `xbps-install -S elixir` From 031746384ee23b9be19298c92a9699c56cc05845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Dos=C3=A9?= Date: Wed, 21 Sep 2022 00:22:39 -0700 Subject: [PATCH 1502/1761] Format and clean up crash-course (#1638) --- crash-course.markdown | 110 +++++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 49 deletions(-) diff --git a/crash-course.markdown b/crash-course.markdown index f4d3dc95e..4eca6ced4 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -28,7 +28,7 @@ hello() -> Add your functions to it, save it to disk, run `erl` from the same directory and execute the `compile` command: ```erl -Eshell V5.9 (abort with ^G) +Eshell V13.0.4 (abort with ^G) 1> c(module_name). ok 1> module_name:hello(). @@ -46,7 +46,7 @@ Elixir too has an interactive shell called `iex`. Compiling Elixir code can be d # module_name.ex defmodule ModuleName do def hello do - IO.puts "Hello World" + IO.puts("Hello world!") end end ``` @@ -54,10 +54,10 @@ end And compiled from `iex`: ```elixir -Interactive Elixir +Interactive Elixir (1.14.0) - press Ctrl+C to exit (type h() ENTER for help) iex> c("module_name.ex") [ModuleName] -iex> ModuleName.hello +iex> ModuleName.hello() Hello world! :ok ``` @@ -65,11 +65,18 @@ Hello world! However, notice that in Elixir you don't need to create a file only to create a new module; Elixir modules can be defined directly in the shell: ```elixir -defmodule MyModule do - def hello do - IO.puts "Another Hello" - end -end +iex> defmodule MyModule do +...> def hello do +...> IO.puts("Another Hello") +...> end +...> end +{:module, MyModule, + <<70, 79, 82, 49, 0, 0, 5, 136, 66, 69, 65, 77, 65, 116, 85, 56, 0, 0, 0, 187, + 0, 0, 0, 19, 15, 69, 108, 105, 120, 105, 114, 46, 77, 121, 77, 111, 100, 117, + 108, 101, 8, 95, 95, 105, 110, 102, 111, ...>>, {:hello, 0}} +iex> MyModule.hello() +Another Hello +:ok ``` @@ -218,11 +225,11 @@ is_atom(''). %=> true **Elixir** ```elixir -is_atom :ok #=> true -is_atom :'ok' #=> true -is_atom Ok #=> true -is_atom :"Multiple words" #=> true -is_atom :"" #=> true +is_atom(:ok) #=> true +is_atom(:'ok') #=> true +is_atom(Ok) #=> true +is_atom(:"Multiple words") #=> true +is_atom(:"") #=> true ``` ### Tuples @@ -263,9 +270,9 @@ is_binary(<<"Hello">>). %=> true **Elixir** ```elixir -is_list 'Hello' #=> true -is_binary "Hello" #=> true -is_binary <<"Hello">> #=> true +is_list('Hello') #=> true +is_binary("Hello") #=> true +is_binary(<<"Hello">>) #=> true <<"Hello">> === "Hello" #=> true ``` @@ -274,11 +281,11 @@ In Elixir, the word **string** means a UTF-8 binary and there is a `String` modu Elixir also supports multiline strings (also called *heredocs*): ```elixir -is_binary """ +is_binary(""" This is a binary spanning several lines. -""" +""") #=> true ``` @@ -349,18 +356,18 @@ re:run("abc ", Pattern). **Elixir** ```elixir -Regex.run ~r/abc\s/, "abc " +Regex.run(~r/abc\s/, "abc ") #=> ["abc "] ``` Regexes are also supported in heredocs, which is convenient when defining multiline regexes: ```elixir -Regex.regex? ~r""" +Regex.regex?(~r""" This is a regex spanning several lines. -""" +""") #=> true ``` @@ -394,12 +401,12 @@ An Elixir equivalent to the Erlang above: defmodule HelloModule do # A "Hello world" function def some_fun do - IO.puts "Hello world!" + IO.puts("Hello world!") end # This one works only with lists def some_fun(list) when is_list(list) do - IO.inspect list + IO.inspect(list) end # A private function @@ -415,7 +422,7 @@ In Elixir, it is also possible to have multiple modules in one file, as well as defmodule HelloModule do defmodule Utils do def util do - IO.puts "Utilize" + IO.puts("Utilize") end defp priv do @@ -431,13 +438,14 @@ end defmodule ByeModule do end -HelloModule.dummy +HelloModule.dummy() #=> :ok -HelloModule.Utils.util -#=> "Utilize" +HelloModule.Utils.util() +# "Utilize" +#=> :ok -HelloModule.Utils.priv +HelloModule.Utils.priv() #=> ** (UndefinedFunctionError) undefined function: HelloModule.Utils.priv/0 ``` @@ -467,8 +475,8 @@ loop_through([]) -> ```elixir def loop_through([head | tail]) do - IO.inspect head - loop_through tail + IO.inspect(head) + loop_through(tail) end def loop_through([]) do @@ -541,13 +549,13 @@ def sum(a, b) when is_binary(a) and is_binary(b) do a <> b end -sum 1, 2 +sum(1, 2) #=> 3 -sum [1], [2] +sum([1], [2]) #=> [1, 2] -sum "a", "b" +sum("a", "b") #=> "ab" ``` @@ -560,8 +568,8 @@ def mul_by(x, n \\ 2) do x * n end -mul_by 4, 3 #=> 12 -mul_by 4 #=> 8 +mul_by(4, 3) #=> 12 +mul_by(4) #=> 8 ``` ### Anonymous functions @@ -588,7 +596,7 @@ sum.(4, 3) #=> 7 square = fn x -> x * x end -Enum.map [1, 2, 3, 4], square +Enum.map([1, 2, 3, 4], square) #=> [1, 4, 9, 16] ``` @@ -614,11 +622,12 @@ F({a, b}). ```elixir f = fn - {:a, :b} = tuple -> - IO.puts "All your #{inspect tuple} are belong to us" - [] -> - "Empty" - end + {:a, :b} = tuple -> + "All your #{inspect(tuple)} are belong to us" + + [] -> + "Empty" +end f.([]) #=> "Empty" @@ -659,7 +668,7 @@ defmodule Math do end end -Enum.map [1, 2, 3], &Math.square/1 +Enum.map([1, 2, 3], &Math.square/1) #=> [1, 4, 9] ``` @@ -669,10 +678,10 @@ Enum.map [1, 2, 3], &Math.square/1 Elixir supports partial application of functions which can be used to define anonymous functions in a concise way: ```elixir -Enum.map [1, 2, 3, 4], &(&1 * 2) +Enum.map([1, 2, 3, 4], &(&1 * 2)) #=> [2, 4, 6, 8] -List.foldl [1, 2, 3, 4], 0, &(&1 + &2) +List.foldl([1, 2, 3, 4], 0, &(&1 + &2)) #=> 10 ``` @@ -685,7 +694,7 @@ defmodule Math do end end -Enum.map [1, 2, 3], &Math.square/1 +Enum.map([1, 2, 3], &Math.square/1) #=> [1, 4, 9] ``` @@ -749,14 +758,17 @@ Test_fun(10). **Elixir** ```elixir -test_fun = fn(x) -> +test_fun = fn x -> cond do x > 10 -> :greater_than_ten + x < 10 and x > 0 -> :less_than_ten_positive + x < 0 or x === 0 -> :zero_or_negative + true -> :exactly_ten end @@ -810,9 +822,9 @@ end. **Elixir** ```elixir -pid = Kernel.self +pid = Kernel.self() -send pid, {:hello} +send(pid, {:hello}) receive do {:hello} -> :ok From 5daeec6f58f6954d96bf0662e27bd928e9dc397b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Vrba?= Date: Sat, 1 Oct 2022 10:18:39 +0200 Subject: [PATCH 1503/1761] Redirect http traffic to https (#1640) --- js/index.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/js/index.js b/js/index.js index a803ab892..cb605e3a8 100644 --- a/js/index.js +++ b/js/index.js @@ -151,3 +151,13 @@ $(document).ready(function() { $("#shuffled-cases").children().shuffle() }); + +// Automatically redirect to https +(function (){ + const location = window.location.href; + const localhost = /:\/\/(?:localhost|127.0.0.1|::1)/ + + if (location.startsWith("http://") && !localhost.test(location)) { + window.location.href = location.replace("http://", "https://"); + } +})(); \ No newline at end of file From b1a64a268e91442e748f4977475d71f5a8893dc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 5 Oct 2022 17:12:40 +0200 Subject: [PATCH 1504/1761] My future with Elixir: set-theoretic types --- ...e-with-elixir-set-theoretic-types.markdown | 141 ++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 _posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown diff --git a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown new file mode 100644 index 000000000..dd9d47cc9 --- /dev/null +++ b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown @@ -0,0 +1,141 @@ +--- +layout: post +title: My Future with Elixir: set-theoretic types +author: José Valim +category: Announcements +excerpt: We announce and explore the possibilities for bringing set-theoretic types into Elixir. +--- + +*This is a three-articles series on My Future with Elixir, containing excerpts from my keynotes at [ElixirConf Europe 2022](https://www.youtube.com/watch?v=Jf5Hsa1KOc8) and [ElixirConf US 2022](https://www.youtube.com/watch?v=KmLw58qEtuM).* + +In May 2022, we have celebrated 10 years since Elixir v0.5, the first public release of Elixir, was announced. + +At such occasions, it may be tempting to try to predict how Elixir will look in 10 years from now. However, I believe that would be a futile effort, because, 10 years ago, I would never have guessed Elixir would have gone [beyond excelling at web development](https://phoenixframework.org/), but also into domains such as [embedded software](https://www.nerves-project.org/) and making inroads into machine learning and data analysis with projects such as [Nx (Numerical Elixir)](https://github.com/elixir-nx/nx), [Explorer](https://github.com/elixir-nx/explorer), [Axon](https://github.com/elixir-nx/axon) and [Livebook](https://livebook.dev/). Elixir was designed to be extensible and how it will be extended has always been a community effort. + +For these reasons, I choose to focus on *My Future with Elixir*. Those are the projects I am personally excited about and working on alongside other community members. The topic of today's article is type systems, as discussed in my ElixirConf EU presentation in May 2022. + +## The elephant in the room: types + +Throughout the years, the Elixir Core Team has addressed the biggest needs of the community. [Elixir v1.6 introduced the Elixir code formatter](https://elixir-lang.org/blog/2018/01/17/elixir-v1-6-0-released/), as the growing community and large teams saw an increased need for style guides and conventions around large codebases. + +[Elixir v1.9 shipped with built-in support for releases](https://elixir-lang.org/blog/2019/06/24/elixir-v1-9-0-released/): self-contained archives that consist of your application code, all of its dependencies, plus the whole Erlang Virtual Machine (VM) and runtime. The goal was to address the perceived difficulty in deploying Elixir projects, by bringing tried approaches from both Elixir and Erlang communities into the official tooling. This paved the way to future automation, such as `mix phx.gen.release`, which automatically generates a Dockerfile tailored to your Phoenix applications. + +Given our relationship with the community, it would be disingenuous to talk about my future with Elixir without addressing what seems to be the biggest community need nowadays: static typing. However, when the community asks for static typing, what are we effectively expecting? And what is the Elixir community to gain from it? + +## Types and Elixir + +Different programming languages and platforms extract different values from types. These values may or may not apply to Elixir. + +For example, different languages can extract performance benefits from types. However, Elixir still runs on the Erlang VM, which is dynamically typed, so we should not expect any meaningful performance gain from typing Elixir code. + +Another benefit of types is to _aid_ documentation (emphasis on the word _aid_ as I don't believe types replace textual documentation). Elixir already reaps similar benefits from [typespecs](https://hexdocs.pm/elixir/typespecs.html) and I would expect an integrated type system to be even more valuable in this area. + +However, the upsides and downsides of static typing become fuzzier and prone to exaggerations once we discuss them in the context of code maintainance, in particular when comparing types with other software verification techniques, such as tests. In those situations, it is common to hear unrealistic claims such as "a static type system would catch 80% of my Elixir bugs" or that "you need to write fewer tests once you have static types". + +While [I explore why I don't believe those claims are true during the keynote](https://www.youtube.com/watch?v=Jf5Hsa1KOc8), saying a static type system helps catch bugs is not helpful unless we discuss exactly the type of bugs it is supposed to identify, and that's what we should focus on. + +For example, Rust's type system helps prevent bugs such as deallocating memory twice, dangling pointers, data races in threads, and more. But adding such type system to Elixir would be unproductive because those are not bugs that we run into in the first place, as those properties are guaranteed by the garbage collector and the Erlang runtime. + +This brings another discussion point: a type system naturally restricts the amount of code we can write because, in order to prove certain properties about our code, certain styles have to be rejected. However, I would prefer to avoid restricting the expressive power of Elixir, because I am honestly quite happy with the language semantics (which we mostly inherited from Erlang). + +For Elixir, the benefit of a type system would revolve mostly around contracts. If function `caller(arg)` calls a function named `callee(arg)`, we want to guarantee that, as both these functions change over time, that `caller` is passing valid arguments into `callee` and that the `caller` properly handles the return types from `callee`. + +This may seem like a simple guarantee to provide, but we'd run into tricky scenarios even on small code samples. For example, imagine that we define a `negate` function, that negates numbers. One may implement it like this: + +```elixir +def negate(x) when is_integer(x), do: -x +``` + +We could then say `negate` has the type `integer() -> integer()`. + +With our custom negation in hand, we can implement a custom subtraction: + +```elixir +def subtract(a, b) when is_integer(a) and is_integer(b) do + a + negate(b) +end +``` + +This would all work and typecheck as expected, as we are only working with integers. However, imagine in the future someone decides to make `negate` polymorphic, so it also negates booleans: + +```elixir +def negate(x) when is_integer(x), do: -x +def negate(x) when is_boolean(x), do: not x +``` + +If we were to naively say that `negate` now has the type `integer() | boolean() -> integer() | boolean()`, we would now get a false positive warning in our implementation of subtract: + +```elixir +Type warning: + + | + | def subtract(a, b) when is_integer(a) and is_integer(b) do + | a + negate(b) + ^ the operator + expects integer(), integer() as arguments, + but the second argument can be integer() | boolean() +``` + +**So we want a type system that can type contracts between functions but, at the same time, avoids false positives and does not restrict the Elixir language**. Balancing those trade-offs is not only a technical challenge but also one that needs to consider the needs of the community. The [Dialyzer project](https://www.erlang.org/doc/man/dialyzer.html), implemented in Erlang and available for Elixir projects, chose to have no false positives. However, that implies certain bugs may not be caught. + +At this point in time, it seems the overall community would prefer a system that flags more potential bugs, even if it means more false positives. This may be particularly tricky in the context of Elixir and Erlang because I like to describe them as [_assertive languages_](https://dashbit.co/blog/writing-assertive-code-with-elixir): we write code that will crash in face of unexpected scenarios because we rely on supervisors to restart parts of our application whenever that happens. This is the foundation of building self-healing and fault-tolerant systems in those languages. + +On the other hand, this is what makes a type system for Erlang/Elixir so exciting and unique: the ability to deal with failure modes both at compile-time and runtime elegantly. Because at the end of the day, regardless of the type system of your choice, you will run into unexpected scenarios, especially when interacting with external resources such as the filesystem, APIs, distributed nodes, etc. + +## The big announcement + +This brings me to the big announcement from ElixirConf EU 2022: **we have an on-going PhD scholarship to research and develop a type system for Elixir based on set-theoretic types**. Guillaume Duboc (PhD student) is the recipient of the scholarship, lead by Giuseppe Castagna (Senior Resercher) with support from José Valim (that's me). + +The scholarship is a partnership between the [CNRS](https://www.cnrs.fr/) and [Remote](https://remote.com/). It is sponsored by Supabase ([they are hiring!](https://supabase.com/company)), Fresha ([they are hiring!](https://www.fresha.com/careers/openings?department=engineering)), and [Dashbit](https://dashbit.co/), all heavily invested in Elixir's future. + +## Why set-theoretic types? + +We want a type system that can elegantly model all of Elixir idioms and, at a first glance, set-theoretic types were an excellent match. In set-theoretic types, we use set operations to define types and ensure that the types satisfy the associativity and distributivity properties of the corresponding set-theoretic operations. + +For example, numbers in Elixir can be integers _or_ floats, therefore we can write them as the union `integer() | float()` (which is equivalent to `float() | integer()`). + +Remember the `negate` function we wrote above? + +```elixir +def negate(x) when is_integer(x), do: -x +def negate(x) when is_boolean(x), do: not x +``` + +We could think of it as a function that has both types `(integer() -> integer())` and `(boolean() -> boolean())`, which is as an intersection. This would naturally solve the problem described in the previous section: when called with an integer, it can only return an integer. + +We also have a data-structure called atoms in Elixir. They uniquely represent a value which is given by their own name. Such as `:sunday` or `:banana`. You can think of the type `atom()` as the set of all atoms. In addition, we can think of the values `:sunday` and `:banana` as subtypes of `atom()`, as they are contained in the set of all atoms. `:sunday` and `:banana` are also known as singleton types (as they are made up of only one value). + +In fact, we could even consider each integer to be a singleton type that belongs to the `integer()` set. The choice of which values will become singletons in our typesystem will strongly depend on the trade-offs we defined in the previous sections. + +Furthermore, the type system has to be gradual, as any typed Elixir code would have to interact with untyped Elixir code. + +Personally, I find set-theoretical types an elegant and accessible approach to reason about types. At the end of the day, an Elixir developer won't have to think about intersections when writing a function with multiple clauses, but the modelling is straight-forward if they are ever to look under the hood. + +Despite the initial fit between Elixir semantics and set-theoretic types, there are open questions and existing challenges in putting the two together. Here are some examples: + + * Elixir has [an expressive collection of idioms used in pattern matching and guards](https://hexdocs.pm/elixir/patterns-and-guards.html), can we map them all to set-theoretic types? + + * Elixir associative data structures, [called maps](https://hexdocs.pm/elixir/Map.html), can be used both as records and as dictionaries. Would it be possible to also type them with a unified foundation? + + * Gradual type systems must introduce runtime type checks in order to remain sound. However, those type checks will happen in addition to the checks already done by the Erlang VM, which can degrade performance. Therefore, is it possible to leverage the existing runtime checks done by the Erlang VM so the resulting type system is still sound? + +Those challenges are precisely what makes me excited to work with Giuseppe Castagna and Guillaume Duboc, as we believe it is important to formalize those problems and their solutions, before we dig deep into the implementation. To get started with set-theoretic types, I recommend [Programming with union, intersection, and negation types by Giuseppe Castagna](https://www.irif.fr/~gc/papers/set-theoretic-types-2022.pdf). + +Finally, it is important to note there are areas we don't plan to tackle at the moment, such as typing of messages between processes. + +## Expectations and roadmap + +At this point, you may be expecting that Elixir will certainly become a gradually typed language at some moment in its future. However, it is important to note this may not be the case, as there is a long road ahead of us. + +One of the challenges in implementing a type system - at least for someone who doesn't have the relevant academic background like myself - is that it feels like a single indivisible step: you take a language without a type system and at the end you have one, without much insight or opportunity for feedback in the middle. Therefore, we have been planning to incorporate the type system into Elixir in steps, which I have been referring to as "a gradual gradual type system": one where we add gradual types to the language gradually. + +The first step, the one we are currently working on, is to leverage the existing type information found in Elixir programs. As previously mentioned, [we write assertive code](https://dashbit.co/blog/writing-assertive-code-with-elixir) in Elixir, which means there is a lot of type information in patterns and guards. We want to lift this information and use it to type check existing codebases. The Erlang compiler already does so to improve performance within a single module and we want to eventually do so across modules and applications too. + +During this phase, Elixir developers won't have to change a single line of code to levarage the benefits of the type system. Of course, we will catch only part of existing bugs, but this will allows us to stress test, benchmark, and collect feedback from developers, making improvements behind the scenes (or even revert the whole thing if we believe it won't lead us where we expect). + +The next step is to introduce typed structs into the language, allowing struct types to propagate throughout the system, as you pattern match on structs throughout the codebase. In this stage we will introduce a new API for defining structs, yet to be discussed, and developers will have to use the new API to reap its benefits. + +Then finally, once we are happy with the improvements and the feedback collected, we can migrate to introduce a new syntax for typing function signatures in Elixir codebases, including support for more advanced features such as polymorphic types. Those will allow us to type complex constructs such as the ones found in the `Enum` module. + +The important point to keep in mind is that those features will be explored and developed in steps, with plenty of opportunity to gather community feedback. I also hope our experience may be useful to other ecosystems who wish to gradually introduce type systems into existing programming languages, in a way that feels granular and participative. + +Thank you for reading and see you in a future article of the "My Future with Elixir" series. \ No newline at end of file From 4a34105307cf36408e086c507628972d0437916e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 5 Oct 2022 17:15:30 +0200 Subject: [PATCH 1505/1761] Fix title --- ...022-10-05-my-future-with-elixir-set-theoretic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown index dd9d47cc9..39d2ff987 100644 --- a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown +++ b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown @@ -1,6 +1,6 @@ --- layout: post -title: My Future with Elixir: set-theoretic types +title: "My Future with Elixir: set-theoretic types" author: José Valim category: Announcements excerpt: We announce and explore the possibilities for bringing set-theoretic types into Elixir. From 6242fef9649e87fdda8719e340f72567754c9325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 5 Oct 2022 17:15:44 +0200 Subject: [PATCH 1506/1761] Update events --- _includes/conferences.html | 8 -------- _includes/events.html | 4 ++++ _includes/important-links.html | 5 +---- 3 files changed, 5 insertions(+), 12 deletions(-) delete mode 100644 _includes/conferences.html create mode 100644 _includes/events.html diff --git a/_includes/conferences.html b/_includes/conferences.html deleted file mode 100644 index 824dcf3e5..000000000 --- a/_includes/conferences.html +++ /dev/null @@ -1,8 +0,0 @@ - - ElixirConf -
    -
      -
    • Aug 30 - Sep 2, 2022 - Gaylord Rockies, Aurora, CO.
    • -
    • 5 training classes, 60+ speakers
    • -
    -
    \ No newline at end of file diff --git a/_includes/events.html b/_includes/events.html new file mode 100644 index 000000000..0e764f8cb --- /dev/null +++ b/_includes/events.html @@ -0,0 +1,4 @@ + diff --git a/_includes/important-links.html b/_includes/important-links.html index 3e52794b3..f8f210d03 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -14,10 +14,7 @@

    Important links

    -
    -

    Upcoming events

    - {% include conferences.html %} -
    +{% include events.html %}

    Join the Community

    From 54f5b3e6a997605ac8164097664783c2d32d3f09 Mon Sep 17 00:00:00 2001 From: sabiwara Date: Sat, 8 Oct 2022 16:08:37 +0900 Subject: [PATCH 1507/1761] Fix small typos in post (#1642) --- ...10-05-my-future-with-elixir-set-theoretic-types.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown index 39d2ff987..38f24accf 100644 --- a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown +++ b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown @@ -30,7 +30,7 @@ For example, different languages can extract performance benefits from types. Ho Another benefit of types is to _aid_ documentation (emphasis on the word _aid_ as I don't believe types replace textual documentation). Elixir already reaps similar benefits from [typespecs](https://hexdocs.pm/elixir/typespecs.html) and I would expect an integrated type system to be even more valuable in this area. -However, the upsides and downsides of static typing become fuzzier and prone to exaggerations once we discuss them in the context of code maintainance, in particular when comparing types with other software verification techniques, such as tests. In those situations, it is common to hear unrealistic claims such as "a static type system would catch 80% of my Elixir bugs" or that "you need to write fewer tests once you have static types". +However, the upsides and downsides of static typing become fuzzier and prone to exaggerations once we discuss them in the context of code maintenance, in particular when comparing types with other software verification techniques, such as tests. In those situations, it is common to hear unrealistic claims such as "a static type system would catch 80% of my Elixir bugs" or that "you need to write fewer tests once you have static types". While [I explore why I don't believe those claims are true during the keynote](https://www.youtube.com/watch?v=Jf5Hsa1KOc8), saying a static type system helps catch bugs is not helpful unless we discuss exactly the type of bugs it is supposed to identify, and that's what we should focus on. @@ -104,7 +104,7 @@ We could think of it as a function that has both types `(integer() -> integer()) We also have a data-structure called atoms in Elixir. They uniquely represent a value which is given by their own name. Such as `:sunday` or `:banana`. You can think of the type `atom()` as the set of all atoms. In addition, we can think of the values `:sunday` and `:banana` as subtypes of `atom()`, as they are contained in the set of all atoms. `:sunday` and `:banana` are also known as singleton types (as they are made up of only one value). -In fact, we could even consider each integer to be a singleton type that belongs to the `integer()` set. The choice of which values will become singletons in our typesystem will strongly depend on the trade-offs we defined in the previous sections. +In fact, we could even consider each integer to be a singleton type that belongs to the `integer()` set. The choice of which values will become singletons in our type system will strongly depend on the trade-offs we defined in the previous sections. Furthermore, the type system has to be gradual, as any typed Elixir code would have to interact with untyped Elixir code. @@ -130,7 +130,7 @@ One of the challenges in implementing a type system - at least for someone who d The first step, the one we are currently working on, is to leverage the existing type information found in Elixir programs. As previously mentioned, [we write assertive code](https://dashbit.co/blog/writing-assertive-code-with-elixir) in Elixir, which means there is a lot of type information in patterns and guards. We want to lift this information and use it to type check existing codebases. The Erlang compiler already does so to improve performance within a single module and we want to eventually do so across modules and applications too. -During this phase, Elixir developers won't have to change a single line of code to levarage the benefits of the type system. Of course, we will catch only part of existing bugs, but this will allows us to stress test, benchmark, and collect feedback from developers, making improvements behind the scenes (or even revert the whole thing if we believe it won't lead us where we expect). +During this phase, Elixir developers won't have to change a single line of code to leverage the benefits of the type system. Of course, we will catch only part of existing bugs, but this will allows us to stress test, benchmark, and collect feedback from developers, making improvements behind the scenes (or even revert the whole thing if we believe it won't lead us where we expect). The next step is to introduce typed structs into the language, allowing struct types to propagate throughout the system, as you pattern match on structs throughout the codebase. In this stage we will introduce a new API for defining structs, yet to be discussed, and developers will have to use the new API to reap its benefits. From f9fb17ad4b09c18e739ca4f90005a8eed5288b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 10 Oct 2022 16:37:43 +0200 Subject: [PATCH 1508/1761] Release v1.14.1 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index c7f1b56b2..1daf12931 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_14: name: v1.14 minimum_otp: 23.0 otp_versions: [25, 24, 23] - version: 1.14.0 + version: 1.14.1 docs_zip: true v1_13: diff --git a/elixir.csv b/elixir.csv index 30fa9dc64..b16249e40 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5 1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 From e59e360987cbe9a138511a8d2624b97ca739924e Mon Sep 17 00:00:00 2001 From: ctstacey <51082452+ctstacey@users.noreply.github.com> Date: Mon, 17 Oct 2022 22:33:14 +1100 Subject: [PATCH 1509/1761] Improve 'Types and Specs' introduction (#1643) --- getting-started/typespecs-and-behaviours.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 769fbc7d2..a2c94b663 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -11,6 +11,8 @@ Elixir is a dynamically typed language, so all types in Elixir are checked at ru 1. declaring typed function signatures (also called specifications); 2. declaring custom types. +Typespecs are useful for code clarity and static code analysis (for example, Erlang's [Dialyzer](http://www.erlang.org/doc/man/dialyzer.html) tool). + ### Function specifications Elixir provides many [built-in types](https://hexdocs.pm/elixir/typespecs.html#built-in-types), such as `integer` or `pid`, that can be used to document function signatures. For example, the `round/1` function, which rounds a number to its nearest integer. As you can see [in its documentation](https://hexdocs.pm/elixir/Kernel.html#round/1), `round/1`'s typed signature is written as: From 1969ea84b447639e7a510b510c408eb61a095227 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Sun, 23 Oct 2022 14:28:11 +0300 Subject: [PATCH 1510/1761] Fix typos in the "IO and the filesystem" chapter (#1644) --- getting-started/io-and-the-file-system.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index d4659964b..1abe27aef 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -80,7 +80,7 @@ However, if you expect the file to be there, the bang variation is more useful a as, in case of an error, `File.read/1` will return `{:error, reason}` and the pattern matching will fail. You will still get the desired result (a raised error), but the message will be about the pattern which doesn't match (thus being cryptic in respect to what the error actually is about). -Therefore, if you don't want to handle the error outcomes, prefer use the functions ending with an exclamation mark, such as `File.read!/1`. +Therefore, if you don't want to handle the error outcomes, prefer to use the functions ending with an exclamation mark, such as `File.read!/1`. ## The `Path` module @@ -213,7 +213,7 @@ We packed a lot into this small section, so let's break it down: * iodata and chardata are lists of binaries and integers. Those binaries and integers can be arbitrarily nested inside lists. Their goal is to give flexibility and performance when working with IO devices and files - * the choice between iodata and chardata depends on the encoding of the IO device. If the file is opened without encoding, the file expects iodata, and the functions in the `IO` module starting with `bin*` must be used. The default IO device (`:stdio`) and files opened with `:utf8` encoding work expect chardata and work with the remaining functions in the `IO` module + * the choice between iodata and chardata depends on the encoding of the IO device. If the file is opened without encoding, the file expects iodata, and the functions in the `IO` module starting with `bin*` must be used. The default IO device (`:stdio`) and files opened with `:utf8` encoding expect chardata and work with the remaining functions in the `IO` module * charlists are a special case of chardata, where it exclusively uses a list of integers Unicode codepoints. They can be created with the `~c` sigil. Lists of integers are automatically printed using the `~c` sigil if all integers in a list represent printable ASCII codepoints. From f2ca1b604e8661ff74434ea646ec0d930f61e0f8 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Mon, 24 Oct 2022 10:54:50 +0300 Subject: [PATCH 1511/1761] Update structs.markdown (#1646) Update error messages to match the current versions Erlang/OTP 25, Elixir 1.14.1. --- getting-started/structs.markdown | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index cd813dba2..a01d7b718 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -32,7 +32,7 @@ The keyword list used with `defstruct` defines what fields the struct will have Structs take the name of the module they're defined in. In the example above, we defined a struct named `User`. -We can now create `User` structs by using a syntax similar to the one used to create maps (if you have defined the struct in a separate file, you can compile the file inside IEx before proceeding by running `c "file.exs"`; be aware you may get an error saying `the struct was not yet defined` if you try the below example in a file directly due to when definitions are resolved): +We can now create `User` structs by using a syntax similar to the one used to create maps: ```elixir iex> %User{} @@ -41,11 +41,13 @@ iex> %User{name: "Jane"} %User{age: 27, name: "Jane"} ``` +> Note: If you have defined the struct in a separate file, you can compile the file inside IEx before proceeding by running `c "file.exs"`. Be aware you may get an error saying `the struct was not yet defined` if you try the example above in a file directly due to when definitions are resolved. + Structs provide *compile-time* guarantees that only the fields (and *all* of them) defined through `defstruct` will be allowed to exist in a struct: ```elixir iex> %User{oops: :field} -** (KeyError) key :oops not found in: %User{age: 27, name: "John"} +** (KeyError) key :oops not found expanding struct: User.__struct__/1 ``` ## Accessing and updating structs @@ -96,7 +98,7 @@ iex> john[:name] ** (UndefinedFunctionError) function User.fetch/2 is undefined (User does not implement the Access behaviour) User.fetch(%User{age: 27, name: "John"}, :name) iex> Enum.each(john, fn {field, value} -> IO.puts(value) end) -** (Protocol.UndefinedError) protocol Enumerable not implemented for %User{age: 27, name: "John"} +** (Protocol.UndefinedError) protocol Enumerable not implemented for %User{age: 27, name: "John"} of type User (a struct) ``` However, since structs are just maps, they work with the functions from the `Map` module: @@ -140,7 +142,7 @@ Doing it in reverse order will raise a syntax error: iex> defmodule User do ...> defstruct [name: "John", age: 27, :email] ...> end -** (SyntaxError) iex:107: syntax error before: email +** (SyntaxError) iex:107: unexpected expression after keyword list. Keyword lists must always come last in lists and maps. ``` You can also enforce that certain keys have to be specified when creating the struct via the `@enforce_keys` module attribute: From 2a2bd1973032e960eef4bdad65ef8a76b7f4c351 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Tue, 25 Oct 2022 11:34:16 +0300 Subject: [PATCH 1512/1761] Update protocols.markdown (#1647) Change behavior to behaviour to match other usages in the chapter and other chapters of the guide. Update error messages to match the current Elixir version. --- getting-started/protocols.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 0aeac296d..4e782c4ce 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -4,7 +4,7 @@ layout: getting-started title: Protocols --- -Protocols are a mechanism to achieve polymorphism in Elixir when you want behavior to vary depending on the data type. We are already familiar with one way of solving this type of problem: via pattern matching and guard clauses. Consider a simple utility module that would tell us the type of input variable: +Protocols are a mechanism to achieve polymorphism in Elixir when you want behaviour to vary depending on the data type. We are already familiar with one way of solving this type of problem: via pattern matching and guard clauses. Consider a simple utility module that would tell us the type of input variable: ```elixir defmodule Utility do @@ -16,7 +16,7 @@ end If the use of this module were confined to your own project, you would be able to keep defining new `type/1` functions for each new data type. However, this code could be problematic if it was shared as a dependency by multiple apps because there would be no easy way to extend its functionality. -This is where protocols can help us: protocols allow us to extend the original behavior for as many data types as we need. That's because **dispatching on a protocol is available to any data type that has implemented the protocol** and a protocol can be implemented by anyone, at any time. +This is where protocols can help us: protocols allow us to extend the original behaviour for as many data types as we need. That's because **dispatching on a protocol is available to any data type that has implemented the protocol** and a protocol can be implemented by anyone, at any time. Here's how we could write the same `Utility.type/1` functionality as a protocol: @@ -98,7 +98,7 @@ Passing a data type that doesn't implement the protocol raises an error: ```elixir iex> Size.size([1, 2, 3]) -** (Protocol.UndefinedError) protocol Size not implemented for [1, 2, 3] +** (Protocol.UndefinedError) protocol Size not implemented for [1, 2, 3] of type List ``` It's possible to implement protocols for all Elixir data types: @@ -125,9 +125,9 @@ In the [previous chapter](/getting-started/structs.html), we have learned that a iex> Size.size(%{}) 0 iex> set = %MapSet{} = MapSet.new -#MapSet<[]> +MapSet.new([]) iex> Size.size(set) -** (Protocol.UndefinedError) protocol Size not implemented for #MapSet<[]> +** (Protocol.UndefinedError) protocol Size not implemented for MapSet.new([]) of type MapSet (a struct) ``` Instead of sharing protocol implementation with maps, structs require their own protocol implementation. Since a `MapSet` has its size precomputed and accessible through `MapSet.size/1`, we can define a `Size` implementation for it: @@ -231,7 +231,7 @@ The snippet above only works because numbers implement the `String.Chars` protoc iex> tuple = {1, 2, 3} {1, 2, 3} iex> "tuple: #{tuple}" -** (Protocol.UndefinedError) protocol String.Chars not implemented for {1, 2, 3} +** (Protocol.UndefinedError) protocol String.Chars not implemented for {1, 2, 3} of type Tuple ``` When there is a need to "print" a more complex data structure, one can use the `inspect` function, based on the `Inspect` protocol: From aed8bdb8fdfbd93e735cefcba385693a7a1bf7e1 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Thu, 27 Oct 2022 14:08:18 +0300 Subject: [PATCH 1513/1761] Update try-catch-and-rescue.markdown (#1648) Fix some typos. Update error messages to match the current Elixir version. --- getting-started/try-catch-and-rescue.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index ecfc4bb4f..184159023 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -90,7 +90,7 @@ For the cases where you do expect a file to exist (and the lack of that file is ```elixir iex> File.read!("unknown") -** (File.Error) could not read file unknown: no such file or directory +** (File.Error) could not read file "unknown": no such file or directory (elixir) lib/file.ex:272: File.read!/1 ``` @@ -102,11 +102,11 @@ Many functions in the standard library follow the pattern of having a counterpar One saying that is common in the Erlang community, as well as Elixir's, is "fail fast" / "let it crash". The idea behind let it crash is that, in case something _unexpected_ happens, it is best to let the exception happen, without rescuing it. -It is important to emphasize the word _unexpected_. For example, imagine you are building a script to process files. Your script receive filenames as inputs. It is expected that users may make mistakes and provide unknown filenames. In this scenario, while you could use `File.read!/1` to read files and let it crash in case of invalid filenames, it probably makes more sense to use `File.read/1` and provide users of your script with a clear and precise feedback of what went wrong. +It is important to emphasize the word _unexpected_. For example, imagine you are building a script to process files. Your script receives filenames as inputs. It is expected that users may make mistakes and provide unknown filenames. In this scenario, while you could use `File.read!/1` to read files and let it crash in case of invalid filenames, it probably makes more sense to use `File.read/1` and provide users of your script with a clear and precise feedback of what went wrong. Other times, you may fully expect a certain file to exist, and in case it does not, it means something terribly wrong has happened elsewhere. In such cases, `File.read!/1` is all you need. -The second approach also works because, as discussed in the [Processes](/getting-started/processes.html) chapter, all Elixir code runs inside processes that are isolated and don't share anything by default. Therefore, an unhandled exception in a process will never crash or corrupt the state of another process. This allows us to define supervisor processes, which are meant to observe when a process terminates unexpectedly, and starts a new one in its place. +The second approach also works because, as discussed in the [Processes](/getting-started/processes.html) chapter, all Elixir code runs inside processes that are isolated and don't share anything by default. Therefore, an unhandled exception in a process will never crash or corrupt the state of another process. This allows us to define supervisor processes, which are meant to observe when a process terminates unexpectedly, and start a new one in its place. At the end of the day, "fail fast" / "let it crash" is a way of saying that, when something _unexpected_ happens, it is best to start from scratch within a new processes, freshly started by a supervisor, rather than blindly trying to rescue all possible error cases without the full context of when and how they can happen. @@ -159,7 +159,7 @@ All Elixir code runs inside processes that communicate with each other. When a p ```elixir iex> spawn_link(fn -> exit(1) end) -** (EXIT from #PID<0.56.0>) evaluator process exited with reason: 1 +** (EXIT from #PID<0.56.0>) shell process exited with reason: 1 ``` In the example above, the linked process died by sending an `exit` signal with a value of 1. The Elixir shell automatically handles those messages and prints them to the terminal. @@ -183,7 +183,7 @@ It is exactly this supervision system that makes constructs like `try/catch` and ## After -Sometimes it's necessary to ensure that a resource is cleaned up after some action that could potentially raise an error. The `try/after` construct allows you to do that. For example, we can open a file and use an `after` clause to close it--even if something goes wrong: +Sometimes it's necessary to ensure that a resource is cleaned up after some action that could potentially raise an error. The `try/after` construct allows you to do that. For example, we can open a file and use an `after` clause to close it -- even if something goes wrong: ```elixir iex> {:ok, file} = File.open("sample", [:utf8, :write]) @@ -252,7 +252,7 @@ iex> try do ...> _ -> what_happened = :rescued ...> end iex> what_happened -** (RuntimeError) undefined function: what_happened/0 +** (CompileError) undefined function: what_happened/0 ``` Instead, you should return the value of the `try` expression: @@ -278,7 +278,7 @@ iex> try do ...> rescue ...> _ -> another_what_happened ...> end -** (RuntimeError) undefined function: another_what_happened/0 +** (CompileError) undefined function: another_what_happened/0 ``` This finishes our introduction to `try`, `catch`, and `rescue`. You will find they are used less frequently in Elixir than in other languages. From 274bd5194565f21e42f937914fe28026c405a889 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Sat, 29 Oct 2022 10:14:12 +0300 Subject: [PATCH 1514/1761] Update debugging.markdown (#1650) Fix some typos. --- getting-started/debugging.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index b4655f9bb..eb59f8993 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -112,7 +112,7 @@ When code calling `dbg` is executed via `iex`, IEx will ask you to "stop" the co `dbg` is the most common way to pry into code execution, but if you want to avoid printing debug information, you can use `IEx.pry/0` to set up a manual pry breakpoint. -`dbg` calls requires us to change the code we intend to debug. Luckily IEx also provides a [`break!/2`](https://hexdocs.pm/iex/IEx.html#break!/2) function which allows you to set and manage breakpoints on any Elixir code without modifying its source: +`dbg` calls require us to change the code we intend to debug. Luckily IEx also provides a [`break!/2`](https://hexdocs.pm/iex/IEx.html#break!/2) function which allows you to set and manage breakpoints on any Elixir code without modifying its source: @@ -158,7 +158,7 @@ iex> Example.double_sum(1, 2) > If the `debugger` does not start, here is what may have happened: some package managers default to installing a minimized Erlang without WX bindings for GUI support. In some package managers, you may be able to replace the headless Erlang with a more complete package (look for packages named `erlang` vs `erlang-nox` on Debian/Ubuntu/Arch). In others managers, you may need to install a separate `erlang-wx` (or similarly named) package. -When you start the debugger, a Graphical User Interface will open in your machine. We call `:int.ni(Example)` to prepare our module for debugging and then add a breakpoint to line 3 with `:int.break(Example, 3)`. After we call our function, we can see our process with break status in the debugger: +When you start the debugger, a Graphical User Interface will open on your machine. We call `:int.ni(Example)` to prepare our module for debugging and then add a breakpoint to line 3 with `:int.break(Example, 3)`. After we call our function, we can see our process with break status in the debugger: Debugger GUI GIF From ace20f90d33421c4b727496aff9341e8ee5f6513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 29 Oct 2022 09:15:06 +0200 Subject: [PATCH 1515/1761] Remove recommendation for exenv It is no longer maintained. Closes #1649. --- install.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/install.markdown b/install.markdown index 7f78e8cda..17822ae1d 100644 --- a/install.markdown +++ b/install.markdown @@ -141,7 +141,6 @@ Once the release is download, unpack it, and you are ready to run the `elixir` a There are many tools that allow developers to install and manage multiple Erlang and Elixir versions. They are useful if you have multiple projects running on different Elixir or Erlang versions, can't install Erlang or Elixir as mentioned above or if the version provided by your package manager is outdated. Here are some of those tools: * [asdf](https://github.com/asdf-vm/asdf) - install and manage different [Elixir](https://github.com/asdf-vm/asdf-elixir) and [Erlang](https://github.com/asdf-vm/asdf-erlang) versions - * [exenv](https://github.com/exenv/exenv) - install and manage different Elixir versions * [kiex](https://github.com/taylor/kiex) - install and manage different Elixir versions * [kerl](https://github.com/yrashk/kerl) - install and manage different Erlang versions From 553177d981dc99dc9c0bb5cffe5cf693b832ac27 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Sat, 5 Nov 2022 22:17:58 +0200 Subject: [PATCH 1516/1761] Update supervisor-and-application.markdown (#1652) Update output on child process crash to match the current Elixir version. --- getting-started/mix-otp/supervisor-and-application.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index c2b29d3ce..60a9b41d4 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -84,7 +84,7 @@ What happens if we intentionally crash the registry started by the supervisor? L iex> [{_, registry, _, _}] = Supervisor.which_children(sup) [{KV.Registry, #PID<0.150.0>, :worker, [KV.Registry]}] iex> GenServer.call(registry, :bad_input) -08:52:57.311 [error] GenServer KV.Registry terminating +08:52:57.311 [error] GenServer #PID<0.150.0> terminating ** (FunctionClauseError) no function clause matching in KV.Registry.handle_call/3 iex> Supervisor.which_children(sup) [{KV.Registry, #PID<0.157.0>, :worker, [KV.Registry]}] From 2f9956db470c0d9b4807107685c85594c58a3d92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 9 Nov 2022 11:12:43 +0100 Subject: [PATCH 1517/1761] Update elixir.csv --- elixir.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/elixir.csv b/elixir.csv index b16249e40..d6ebc12db 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,6 +1,6 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5 -1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 +1.14.1 (Erlang/OTP 25),https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5 +1.14.0 (Erlang/OTP 25),https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 1.13.2,https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2 From 5d7ec61df4498f1d299871cbe004658335a9b1e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 9 Nov 2022 11:18:13 +0100 Subject: [PATCH 1518/1761] Add OTP versions to Elixir installer version --- elixir.csv | 51 +++++++++++++++++++-------------------------------- 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/elixir.csv b/elixir.csv index d6ebc12db..ff6670c9b 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,35 +1,22 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 1.14.1 (Erlang/OTP 25),https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5 1.14.0 (Erlang/OTP 25),https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 -1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 -1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 -1.13.2,https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2 -1.13.1,https://github.com/elixir-lang/elixir/releases/download/v1.13.1/Precompiled.zip,release,1,40762ffbef86cbbfd0c79a94e057fb987dc882ff,bb02ead0d4ccf499ff0473fbbb17fd12de4ba476b463c0452138bc1ef9004547166e75ffe7c6f96b9497adc9fecbda4ad57bfe0f17f1ba95d8339a0e98c29b03 -1.13.0,https://github.com/elixir-lang/elixir/releases/download/v1.13.0/Precompiled.zip,release,1,0f196f4de406882b5a3bcee7ac9e9b0c61ed1459,58ffe87d6eb89435d8605aee04556aa1a1ba25cf2fa7688d0a5da162d7d7c57b47b2f726b365a7aeb18832bf08de3db5d3ec0ed45e13da276438679f29e5e3ac -1.12.3,https://github.com/elixir-lang/elixir/releases/download/v1.12.3/Precompiled.zip,release,1,db3c8a5470dee211168707c432a1f8002960e966,db092caa32b55195eeb24a17e0ab98bb2fea38d2f638bc42fee45a6dfcd3ba0782618d27e281c545651f93914481866b9d34b6d284c7f763d197e87847fdaef4 -1.12.2,https://github.com/elixir-lang/elixir/releases/download/v1.12.2/Precompiled.zip,release,1,051c2728bfd679d1d6f74d11f25ca679491cd6b4,38eb2281032b0cb096ef5e61f048c5374d6fb9bf4078ab8f9526a42e16e7c661732a632b55d6072328eedf87a47e6eeb3f0e3f90bba1086239c71350f90c75e5 -1.12.1,https://github.com/elixir-lang/elixir/releases/download/v1.12.1/Precompiled.zip,release,1,4a1269b95c719e0295cd6b57a1c447e1b91563ef,66e877486606f232f36cbe76cdd63bc4ee5e75e27d6292bb602ab2c88b4dd7da6684e6ff9cdb2020e7f916ee2d58016e2d1e2cbd5e579f297ab8eae660cb5dcb -1.12.0,https://github.com/elixir-lang/elixir/releases/download/v1.12.0/Precompiled.zip,release,1,b607b2d0e78e1ae6f9d112ba3e1b617a1ee7580b,57e970640f7e273a62fbde60545ed85c18d667e194d0d3483b941ea3164f12664cc0c186968c1f341253f1907157ae88953b5caa413204f93bba08710fdc0b50 -1.11.4,https://github.com/elixir-lang/elixir/releases/download/v1.11.4/Precompiled.zip,release,1,2b421e7f4b8d62af5c9238f5cf127938d3523f23,4d8ead533a7bd35b41669be0d4548b612d5cc17723da67cfdf996ab36522fd0163215915a970675c6ebcba4dbfc7a46e644cb144b16087bc9417b385955a1e79 -1.11.3,https://github.com/elixir-lang/elixir/releases/download/v1.11.3/Precompiled.zip,release,1,430735e03d8dfcba3324010d397ab7871b30d87d,16cdd30e41737ba9d659e506b4aa79465ede2d93d27a720d6a3649b8100da9f7dee154a913438724651a83aea77ddef33ac1489bb7ae283b39fbfe20dcd77db4 -1.11.2,https://github.com/elixir-lang/elixir/releases/download/v1.11.2/Precompiled.zip,release,1,1c54c01b5449d631e673e4aaf205522eaeb8dbdc,7b6ece70d2db6cf4b02c3e72f0ae2edc68e13a2651876525eab08e3c3c3f1f88d294e3f412c3fb736bc84ba4c2897930101b0ac715e322f1554f29c69e2d1e77 -1.11.1,https://github.com/elixir-lang/elixir/releases/download/v1.11.1/Precompiled.zip,release,1,f03301dd10072f3643a4c1e5f012a49bfc493608,c70e7d3e338ab2449301c7864a2dd96e8d474f3fee533a66706c67cd733db74c2d529b9887961db9f07530eeed4cce917c480e5e8c4201060c7fa494e8b376da -1.11.0,https://github.com/elixir-lang/elixir/releases/download/v1.11.0/Precompiled.zip,release,1,4654fed3bbd3e4ebc0c15cfaec003e84080eabd3,6293f2a0ca87872789a9b3909e782cde77409e8b3f1699f42c95ef55360bdba27c69fe6aaa1c843ef004cc4ded9d92e4cc0053f845c0208ec38f1d11945cae07 -1.10.4,https://github.com/elixir-lang/elixir/releases/download/v1.10.4/Precompiled.zip,release,1,5b400c829c4f239ac89a7eb97aac642b961f38fd,9727ae96d187d8b64e471ff0bb5694fcd1009cdcfd8b91a6b78b7542bb71fca59869d8440bb66a2523a6fec025f1d23394e7578674b942274c52b44e19ba2d43 -1.10.3,https://github.com/elixir-lang/elixir/releases/download/v1.10.3/Precompiled.zip,release,1,382fa22e6f184c0cc87fcfbfa0053c349d85f6f1,fc6d06ad4cc596b2b6e4f01712f718200c69f3b9c49c7d3b787f9a67b36482658490cf01109b0b0842fc9d88a27f64a9aba817231498d99fa01fa99688263d55 -1.10.2,https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9 -1.10.1,https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d -1.10.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 -1.9.4,https://github.com/elixir-lang/elixir/releases/download/v1.9.4/Precompiled.zip,release,1,ec4c7d15b28373b8fd7025b4502b7f2036229f20,f86170bde3b3ad3d1365f34f77ab9cb424c4638a4067fd7d509787c03dea0d40061ef1a2c8d1d9e42bec65b8cda8c1bf32801e4712531eeaef50e0cd53ac2369 -1.9.3,https://github.com/elixir-lang/elixir/releases/download/v1.9.3/Precompiled.zip,release,1,8bcf1cca9a946db02af570a78b007e9424cd933f,e5252721b5a08f48c5988027cb765f9317e7e271e52f3f4a3ebcb77581eb584c9aa0cdb216e12a3d626f725964fde2af84ce2241ac8b04d034dd461206c17f54 -1.9.2,https://github.com/elixir-lang/elixir/releases/download/v1.9.2/Precompiled.zip,release,1,d638cbc2a30a3ffd9b842e19c2cad62e9c3f303b,21f5fd086ec68b180857a839fdf0edfb594f33c85ce3fd9bdf5ec9122ee5513244bb3dd2d6c20ba3f162705cf26e89a79033e7938c370c6b7393bfe5aff288c9 -1.9.1,https://github.com/elixir-lang/elixir/releases/download/v1.9.1/Precompiled.zip,release,1,51520d0edf924f3c4620739cf2009d545eab6e99,14826fe295c19c9e331f2777f70a13ae55bf107ce043d0aeb747b5235de82bd6175c915f0bea63ffe0f87136357d76522c67bdd54fc61dd1f167afb4879a3845 -1.9.0,https://github.com/elixir-lang/elixir/releases/download/v1.9.0/Precompiled.zip,release,1,e9847341ca0484da0ade831bf5d714d9094629c1,89686dd150abbc3c65be373dedf60971801063537a3b32cccdcd7eda18e5a9b3b78012b11a2f06575824e0164fbf0b80178a7de943f508ec90ad9a74d8a1da05 -1.8.2,https://github.com/elixir-lang/elixir/releases/download/v1.8.2/Precompiled.zip,release,1,661dbf612c4b5fdb4390ff54121d82ff9452c3f3,f110669f99f8716e71f66b74d9604edabd1ed5b041e69962c01bae5274165e86ae95773d2e117ebf7f462fb68f3a2ae7891e50df372d676c2f1d975da59aa9e5 -1.8.1,https://github.com/elixir-lang/elixir/releases/download/v1.8.1/Precompiled.zip,release,1,9b9a15b299b15c78ec9c1c92cdcf293905290d09,17c2d07eb4bc259031e7b9f1449bc2a16745a6fb1f3685ed5153da624f87fe49cc61b304a0cb531cbda3407f041b517e2b508cf0b3aa9a998e23598c301c7886 -1.8.0,https://github.com/elixir-lang/elixir/releases/download/v1.8.0/Precompiled.zip,release,1,5710d486297c9aba6000d0b50ef15dba8d3effa8,2a003a34a98961dac758f51c46fc99f1fbb6e0bd9a35bb115cf0c7fb8ba11241b1636a0ca753f93d562fe705b325738ba19c6b83723c3be7ae8729a313a385f9 -1.7.4,https://github.com/elixir-lang/elixir/releases/download/v1.7.4/Precompiled.zip,release,1,eb328d3b071b33d80ad4cb4b3b203c1b2d7a5186,807002481ae129fa1610a1facabe19765e2542397923d5c89e16b58f54870f2e444973e136d6b1207190b3117c03a37430860b6e3e6b7d59b3afb1b01852c6e3 -1.7.3,https://github.com/elixir-lang/elixir/releases/download/v1.7.3/Precompiled.zip,release,1,9bfe816aaedeb9c5d40095b4eb4f5cb07eb33c2b,f8b0ac405531d46f4b65f459970c4b82892f8db51028f172072748269a922db65cb58e36239cd26dc39e5bdebd08a0e630ecbc267b6ff55a15d188483d78a0e5 -1.7.2,https://github.com/elixir-lang/elixir/releases/download/v1.7.2/Precompiled.zip,release,1,97051389559547248d7e7f497ed3866ef11e3072,e7ebdfcd301737967d0c04df50d3ba5b5a0663d2a2e2ac771cf61b9aa8d73a8f64dd9a408890ff0e2db4e48df8f94ff4d5fb7060f25592411e54910cdfc567a0 -1.7.1,https://github.com/elixir-lang/elixir/releases/download/v1.7.1/Precompiled.zip,release,1,fb06a3d238b65705a0e36fe9c308eef3d8bb5d46,75c1601d985988ecdfcd48892cde4058dd36e52a3aa1c2007290ce587d7fa131d066afc6c34ca9138cf66431de80369681c82cf6290c214853335471c1851deb -1.7.0,https://github.com/elixir-lang/elixir/releases/download/v1.7.0/Precompiled.zip,release,1,5be4b5d4f96d0269debe1cab0055401ae3c18bdd,56e6ee97fe8bc526e49a2ccdc80d9504777e656d8552ad9c7291ed105bec41ad2d5bf4c1beed59fed6a2b38784d3a01647dd034534944a93c7c707e86e565c1e +1.13.4 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 +1.13.3 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 +1.13.2 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2 +1.13.1 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.1/Precompiled.zip,release,1,40762ffbef86cbbfd0c79a94e057fb987dc882ff,bb02ead0d4ccf499ff0473fbbb17fd12de4ba476b463c0452138bc1ef9004547166e75ffe7c6f96b9497adc9fecbda4ad57bfe0f17f1ba95d8339a0e98c29b03 +1.13.0 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.0/Precompiled.zip,release,1,0f196f4de406882b5a3bcee7ac9e9b0c61ed1459,58ffe87d6eb89435d8605aee04556aa1a1ba25cf2fa7688d0a5da162d7d7c57b47b2f726b365a7aeb18832bf08de3db5d3ec0ed45e13da276438679f29e5e3ac +1.12.3 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.12.3/Precompiled.zip,release,1,db3c8a5470dee211168707c432a1f8002960e966,db092caa32b55195eeb24a17e0ab98bb2fea38d2f638bc42fee45a6dfcd3ba0782618d27e281c545651f93914481866b9d34b6d284c7f763d197e87847fdaef4 +1.12.2 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.12.2/Precompiled.zip,release,1,051c2728bfd679d1d6f74d11f25ca679491cd6b4,38eb2281032b0cb096ef5e61f048c5374d6fb9bf4078ab8f9526a42e16e7c661732a632b55d6072328eedf87a47e6eeb3f0e3f90bba1086239c71350f90c75e5 +1.12.1 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.12.1/Precompiled.zip,release,1,4a1269b95c719e0295cd6b57a1c447e1b91563ef,66e877486606f232f36cbe76cdd63bc4ee5e75e27d6292bb602ab2c88b4dd7da6684e6ff9cdb2020e7f916ee2d58016e2d1e2cbd5e579f297ab8eae660cb5dcb +1.12.0 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.12.0/Precompiled.zip,release,1,b607b2d0e78e1ae6f9d112ba3e1b617a1ee7580b,57e970640f7e273a62fbde60545ed85c18d667e194d0d3483b941ea3164f12664cc0c186968c1f341253f1907157ae88953b5caa413204f93bba08710fdc0b50 +1.11.4 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.4/Precompiled.zip,release,1,2b421e7f4b8d62af5c9238f5cf127938d3523f23,4d8ead533a7bd35b41669be0d4548b612d5cc17723da67cfdf996ab36522fd0163215915a970675c6ebcba4dbfc7a46e644cb144b16087bc9417b385955a1e79 +1.11.3 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.3/Precompiled.zip,release,1,430735e03d8dfcba3324010d397ab7871b30d87d,16cdd30e41737ba9d659e506b4aa79465ede2d93d27a720d6a3649b8100da9f7dee154a913438724651a83aea77ddef33ac1489bb7ae283b39fbfe20dcd77db4 +1.11.2 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.2/Precompiled.zip,release,1,1c54c01b5449d631e673e4aaf205522eaeb8dbdc,7b6ece70d2db6cf4b02c3e72f0ae2edc68e13a2651876525eab08e3c3c3f1f88d294e3f412c3fb736bc84ba4c2897930101b0ac715e322f1554f29c69e2d1e77 +1.11.1 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.1/Precompiled.zip,release,1,f03301dd10072f3643a4c1e5f012a49bfc493608,c70e7d3e338ab2449301c7864a2dd96e8d474f3fee533a66706c67cd733db74c2d529b9887961db9f07530eeed4cce917c480e5e8c4201060c7fa494e8b376da +1.11.0 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.0/Precompiled.zip,release,1,4654fed3bbd3e4ebc0c15cfaec003e84080eabd3,6293f2a0ca87872789a9b3909e782cde77409e8b3f1699f42c95ef55360bdba27c69fe6aaa1c843ef004cc4ded9d92e4cc0053f845c0208ec38f1d11945cae07 +1.10.4 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.4/Precompiled.zip,release,1,5b400c829c4f239ac89a7eb97aac642b961f38fd,9727ae96d187d8b64e471ff0bb5694fcd1009cdcfd8b91a6b78b7542bb71fca59869d8440bb66a2523a6fec025f1d23394e7578674b942274c52b44e19ba2d43 +1.10.3 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.3/Precompiled.zip,release,1,382fa22e6f184c0cc87fcfbfa0053c349d85f6f1,fc6d06ad4cc596b2b6e4f01712f718200c69f3b9c49c7d3b787f9a67b36482658490cf01109b0b0842fc9d88a27f64a9aba817231498d99fa01fa99688263d55 +1.10.2 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9 +1.10.1 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d +1.10.0 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 From dcd9dc4fa25b5b310f9eccf46f90c5eeb00a7042 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 9 Nov 2022 15:18:01 +0100 Subject: [PATCH 1519/1761] Remove OTP versions from Elixir info --- elixir.csv | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/elixir.csv b/elixir.csv index ff6670c9b..6174c2aeb 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,22 +1,22 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.14.1 (Erlang/OTP 25),https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5 -1.14.0 (Erlang/OTP 25),https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 -1.13.4 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 -1.13.3 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 -1.13.2 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2 -1.13.1 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.1/Precompiled.zip,release,1,40762ffbef86cbbfd0c79a94e057fb987dc882ff,bb02ead0d4ccf499ff0473fbbb17fd12de4ba476b463c0452138bc1ef9004547166e75ffe7c6f96b9497adc9fecbda4ad57bfe0f17f1ba95d8339a0e98c29b03 -1.13.0 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.13.0/Precompiled.zip,release,1,0f196f4de406882b5a3bcee7ac9e9b0c61ed1459,58ffe87d6eb89435d8605aee04556aa1a1ba25cf2fa7688d0a5da162d7d7c57b47b2f726b365a7aeb18832bf08de3db5d3ec0ed45e13da276438679f29e5e3ac -1.12.3 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.12.3/Precompiled.zip,release,1,db3c8a5470dee211168707c432a1f8002960e966,db092caa32b55195eeb24a17e0ab98bb2fea38d2f638bc42fee45a6dfcd3ba0782618d27e281c545651f93914481866b9d34b6d284c7f763d197e87847fdaef4 -1.12.2 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.12.2/Precompiled.zip,release,1,051c2728bfd679d1d6f74d11f25ca679491cd6b4,38eb2281032b0cb096ef5e61f048c5374d6fb9bf4078ab8f9526a42e16e7c661732a632b55d6072328eedf87a47e6eeb3f0e3f90bba1086239c71350f90c75e5 -1.12.1 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.12.1/Precompiled.zip,release,1,4a1269b95c719e0295cd6b57a1c447e1b91563ef,66e877486606f232f36cbe76cdd63bc4ee5e75e27d6292bb602ab2c88b4dd7da6684e6ff9cdb2020e7f916ee2d58016e2d1e2cbd5e579f297ab8eae660cb5dcb -1.12.0 (Erlang/OTP 22),https://github.com/elixir-lang/elixir/releases/download/v1.12.0/Precompiled.zip,release,1,b607b2d0e78e1ae6f9d112ba3e1b617a1ee7580b,57e970640f7e273a62fbde60545ed85c18d667e194d0d3483b941ea3164f12664cc0c186968c1f341253f1907157ae88953b5caa413204f93bba08710fdc0b50 -1.11.4 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.4/Precompiled.zip,release,1,2b421e7f4b8d62af5c9238f5cf127938d3523f23,4d8ead533a7bd35b41669be0d4548b612d5cc17723da67cfdf996ab36522fd0163215915a970675c6ebcba4dbfc7a46e644cb144b16087bc9417b385955a1e79 -1.11.3 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.3/Precompiled.zip,release,1,430735e03d8dfcba3324010d397ab7871b30d87d,16cdd30e41737ba9d659e506b4aa79465ede2d93d27a720d6a3649b8100da9f7dee154a913438724651a83aea77ddef33ac1489bb7ae283b39fbfe20dcd77db4 -1.11.2 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.2/Precompiled.zip,release,1,1c54c01b5449d631e673e4aaf205522eaeb8dbdc,7b6ece70d2db6cf4b02c3e72f0ae2edc68e13a2651876525eab08e3c3c3f1f88d294e3f412c3fb736bc84ba4c2897930101b0ac715e322f1554f29c69e2d1e77 -1.11.1 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.1/Precompiled.zip,release,1,f03301dd10072f3643a4c1e5f012a49bfc493608,c70e7d3e338ab2449301c7864a2dd96e8d474f3fee533a66706c67cd733db74c2d529b9887961db9f07530eeed4cce917c480e5e8c4201060c7fa494e8b376da -1.11.0 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.11.0/Precompiled.zip,release,1,4654fed3bbd3e4ebc0c15cfaec003e84080eabd3,6293f2a0ca87872789a9b3909e782cde77409e8b3f1699f42c95ef55360bdba27c69fe6aaa1c843ef004cc4ded9d92e4cc0053f845c0208ec38f1d11945cae07 -1.10.4 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.4/Precompiled.zip,release,1,5b400c829c4f239ac89a7eb97aac642b961f38fd,9727ae96d187d8b64e471ff0bb5694fcd1009cdcfd8b91a6b78b7542bb71fca59869d8440bb66a2523a6fec025f1d23394e7578674b942274c52b44e19ba2d43 -1.10.3 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.3/Precompiled.zip,release,1,382fa22e6f184c0cc87fcfbfa0053c349d85f6f1,fc6d06ad4cc596b2b6e4f01712f718200c69f3b9c49c7d3b787f9a67b36482658490cf01109b0b0842fc9d88a27f64a9aba817231498d99fa01fa99688263d55 -1.10.2 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9 -1.10.1 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d -1.10.0 (Erlang/OTP 21),https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 +1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5 +1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 +1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 +1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 +1.13.2,https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2 +1.13.1,https://github.com/elixir-lang/elixir/releases/download/v1.13.1/Precompiled.zip,release,1,40762ffbef86cbbfd0c79a94e057fb987dc882ff,bb02ead0d4ccf499ff0473fbbb17fd12de4ba476b463c0452138bc1ef9004547166e75ffe7c6f96b9497adc9fecbda4ad57bfe0f17f1ba95d8339a0e98c29b03 +1.13.0,https://github.com/elixir-lang/elixir/releases/download/v1.13.0/Precompiled.zip,release,1,0f196f4de406882b5a3bcee7ac9e9b0c61ed1459,58ffe87d6eb89435d8605aee04556aa1a1ba25cf2fa7688d0a5da162d7d7c57b47b2f726b365a7aeb18832bf08de3db5d3ec0ed45e13da276438679f29e5e3ac +1.12.3,https://github.com/elixir-lang/elixir/releases/download/v1.12.3/Precompiled.zip,release,1,db3c8a5470dee211168707c432a1f8002960e966,db092caa32b55195eeb24a17e0ab98bb2fea38d2f638bc42fee45a6dfcd3ba0782618d27e281c545651f93914481866b9d34b6d284c7f763d197e87847fdaef4 +1.12.2,https://github.com/elixir-lang/elixir/releases/download/v1.12.2/Precompiled.zip,release,1,051c2728bfd679d1d6f74d11f25ca679491cd6b4,38eb2281032b0cb096ef5e61f048c5374d6fb9bf4078ab8f9526a42e16e7c661732a632b55d6072328eedf87a47e6eeb3f0e3f90bba1086239c71350f90c75e5 +1.12.1,https://github.com/elixir-lang/elixir/releases/download/v1.12.1/Precompiled.zip,release,1,4a1269b95c719e0295cd6b57a1c447e1b91563ef,66e877486606f232f36cbe76cdd63bc4ee5e75e27d6292bb602ab2c88b4dd7da6684e6ff9cdb2020e7f916ee2d58016e2d1e2cbd5e579f297ab8eae660cb5dcb +1.12.0,https://github.com/elixir-lang/elixir/releases/download/v1.12.0/Precompiled.zip,release,1,b607b2d0e78e1ae6f9d112ba3e1b617a1ee7580b,57e970640f7e273a62fbde60545ed85c18d667e194d0d3483b941ea3164f12664cc0c186968c1f341253f1907157ae88953b5caa413204f93bba08710fdc0b50 +1.11.4,https://github.com/elixir-lang/elixir/releases/download/v1.11.4/Precompiled.zip,release,1,2b421e7f4b8d62af5c9238f5cf127938d3523f23,4d8ead533a7bd35b41669be0d4548b612d5cc17723da67cfdf996ab36522fd0163215915a970675c6ebcba4dbfc7a46e644cb144b16087bc9417b385955a1e79 +1.11.3,https://github.com/elixir-lang/elixir/releases/download/v1.11.3/Precompiled.zip,release,1,430735e03d8dfcba3324010d397ab7871b30d87d,16cdd30e41737ba9d659e506b4aa79465ede2d93d27a720d6a3649b8100da9f7dee154a913438724651a83aea77ddef33ac1489bb7ae283b39fbfe20dcd77db4 +1.11.2,https://github.com/elixir-lang/elixir/releases/download/v1.11.2/Precompiled.zip,release,1,1c54c01b5449d631e673e4aaf205522eaeb8dbdc,7b6ece70d2db6cf4b02c3e72f0ae2edc68e13a2651876525eab08e3c3c3f1f88d294e3f412c3fb736bc84ba4c2897930101b0ac715e322f1554f29c69e2d1e77 +1.11.1,https://github.com/elixir-lang/elixir/releases/download/v1.11.1/Precompiled.zip,release,1,f03301dd10072f3643a4c1e5f012a49bfc493608,c70e7d3e338ab2449301c7864a2dd96e8d474f3fee533a66706c67cd733db74c2d529b9887961db9f07530eeed4cce917c480e5e8c4201060c7fa494e8b376da +1.11.0,https://github.com/elixir-lang/elixir/releases/download/v1.11.0/Precompiled.zip,release,1,4654fed3bbd3e4ebc0c15cfaec003e84080eabd3,6293f2a0ca87872789a9b3909e782cde77409e8b3f1699f42c95ef55360bdba27c69fe6aaa1c843ef004cc4ded9d92e4cc0053f845c0208ec38f1d11945cae07 +1.10.4,https://github.com/elixir-lang/elixir/releases/download/v1.10.4/Precompiled.zip,release,1,5b400c829c4f239ac89a7eb97aac642b961f38fd,9727ae96d187d8b64e471ff0bb5694fcd1009cdcfd8b91a6b78b7542bb71fca59869d8440bb66a2523a6fec025f1d23394e7578674b942274c52b44e19ba2d43 +1.10.3,https://github.com/elixir-lang/elixir/releases/download/v1.10.3/Precompiled.zip,release,1,382fa22e6f184c0cc87fcfbfa0053c349d85f6f1,fc6d06ad4cc596b2b6e4f01712f718200c69f3b9c49c7d3b787f9a67b36482658490cf01109b0b0842fc9d88a27f64a9aba817231498d99fa01fa99688263d55 +1.10.2,https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9 +1.10.1,https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d +1.10.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 From c26d1766de668f6d2d73f77066f1789c3657b3c5 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Thu, 10 Nov 2022 12:08:29 +0200 Subject: [PATCH 1520/1761] Update dependencies-and-umbrella-projects.markdown (#1653) Add missing impl attribute. --- .../mix-otp/dependencies-and-umbrella-projects.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown index 3bbe2840a..32a6534bc 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown @@ -164,7 +164,7 @@ defmodule KVServer.MixProject do config_path: "../../config/config.exs", deps_path: "../../deps", lockfile: "../../mix.lock", - elixir: "~> 1.10", + elixir: "~> 1.14", start_permanent: Mix.env() == :prod, deps: deps() ] @@ -223,6 +223,7 @@ defmodule KVServer.Application do use Application + @impl true def start(_type, _args) do # List all child processes to be supervised children = [ From ac80aafc0d094bc6bcb634116079ac2392ff5d71 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Sat, 12 Nov 2022 18:09:21 +0200 Subject: [PATCH 1521/1761] Update docs-tests-and-with.markdown (#1654) Update doctest failure messages to match current Elixir version. --- getting-started/mix-otp/docs-tests-and-with.markdown | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 9fa435076..fcaff6e68 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -71,11 +71,15 @@ end Run the test suite and the doctest should fail: ``` - 1) test doc at KVServer.Command.parse/1 (1) (KVServer.CommandTest) + 1) doctest KVServer.Command.parse/1 (1) (KVServer.CommandTest) test/kv_server/command_test.exs:3 Doctest failed + doctest: + iex> KVServer.Command.parse("CREATE shopping\r\n") + {:ok, {:create, "shopping"}} code: KVServer.Command.parse "CREATE shopping\r\n" === {:ok, {:create, "shopping"}} - lhs: :not_implemented + left: :not_implemented + right: {:ok, {:create, "shopping"}} stacktrace: lib/kv_server/command.ex:7: KVServer.Command (module) ``` @@ -439,7 +443,7 @@ In case the test crashes, you will see a report as follows: The following output was logged: - 13:44:10.035 [info] Application kv exited: :stopped + 13:44:10.035 [notice] Application kv exited: :stopped ``` With this simple integration test, we start to see why integration tests may be slow. Not only can this test not run asynchronously, but it also requires the expensive setup of stopping and starting the `:kv` application. In fact, your test suite may even fail and run into timeouts. If that's the case, you can tweak the `:gen_tcp.recv(socket, 0)` call to pass a third argument, which is the timeout in milliseconds. In the next chapter we will learn about application configuration, which we could use to make the timeout configurable, if desired. From b42951ff830de93b4b52a8cb2938a99f5c5a7f93 Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Sun, 13 Nov 2022 22:30:15 +0200 Subject: [PATCH 1522/1761] Update distributed-tasks.markdown (#1655) Update output messages to match current Elixir version. Fix typos. --- .../mix-otp/distributed-tasks.markdown | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/getting-started/mix-otp/distributed-tasks.markdown b/getting-started/mix-otp/distributed-tasks.markdown index 7042c4f8a..400e6b74b 100644 --- a/getting-started/mix-otp/distributed-tasks.markdown +++ b/getting-started/mix-otp/distributed-tasks.markdown @@ -59,7 +59,7 @@ Note that inside this new IEx session, we cannot access `Hello.world/0`: ```elixir iex> Hello.world -** (UndefinedFunctionError) undefined function: Hello.world/0 +** (UndefinedFunctionError) function Hello.world/0 is undefined (module Hello is not available) Hello.world() ``` @@ -105,7 +105,7 @@ For our routing layer, we are going to use tasks, but feel free to explore the o ## async/await -So far we have explored tasks that are started and run in isolation, with no regard for their return value. However, sometimes it is useful to run a task to compute a value and read its result later on. For this, tasks also provide the `async/await` pattern: +So far we have explored tasks that are started and run in isolation, without regard to their return value. However, sometimes it is useful to run a task to compute a value and read its result later on. For this, tasks also provide the `async/await` pattern: ```elixir task = Task.async(fn -> compute_something_expensive() end) @@ -136,7 +136,12 @@ From inside `bar@computer-name`, we can now spawn a task directly on the other n iex> task = Task.Supervisor.async({KV.RouterTasks, :"foo@computer-name"}, fn -> ...> {:ok, node()} ...> end) -%Task{owner: #PID<0.122.0>, pid: #PID<12467.88.0>, ref: #Reference<0.0.0.400>} +%Task{ + mfa: {:erlang, :apply, 2}, + owner: #PID<0.122.0>, + pid: #PID<12467.88.0>, + ref: #Reference<0.0.0.400> +} iex> Task.await(task) {:ok, :"foo@computer-name"} ``` @@ -145,7 +150,12 @@ Our first distributed task retrieves the name of the node the task is running on ```elixir iex> task = Task.Supervisor.async({KV.RouterTasks, :"foo@computer-name"}, Kernel, :node, []) -%Task{owner: #PID<0.122.0>, pid: #PID<12467.89.0>, ref: #Reference<0.0.0.404>} +%Task{ + mfa: {Kernel, :node, 0}, + owner: #PID<0.122.0>, + pid: #PID<12467.89.0>, + ref: #Reference<0.0.0.404> +} iex> Task.await(task) :"foo@computer-name" ``` @@ -270,7 +280,7 @@ Excluding tags: [distributed: true] ....... Finished in 0.05 seconds -8 tests, 0 failures, 1 excluded +9 tests, 0 failures, 1 excluded ``` This time all tests passed and ExUnit warned us that distributed tests were being excluded. If you run tests with `$ elixir --sname foo -S mix test`, one extra test should run and successfully pass as long as the `bar@computer-name` node is available. @@ -333,13 +343,13 @@ However, keep in mind that by making the test distributed, we will likely run it We have only scratched the surface of what is possible when it comes to distribution. -In all of our examples, we relied on Erlang's ability to automatically connect nodes whenever there is a request. For example, when we invoked `Node.spawn_link(:"foo@computer-name", fn -> Hello.world() end)`, Erlang automatically connected to said and started a new process. However, you may also want to take a more explicit approach to connections, by using [`Node.connect/1`](https://hexdocs.pm/elixir/Node.html#connect/1) and [`Node.disconnect/1`](https://hexdocs.pm/elixir/Node.html#disconnect/1). +In all of our examples, we relied on Erlang's ability to automatically connect nodes whenever there is a request. For example, when we invoked `Node.spawn_link(:"foo@computer-name", fn -> Hello.world() end)`, Erlang automatically connected to said node and started a new process. However, you may also want to take a more explicit approach to connections, by using [`Node.connect/1`](https://hexdocs.pm/elixir/Node.html#connect/1) and [`Node.disconnect/1`](https://hexdocs.pm/elixir/Node.html#disconnect/1). By default, Erlang establishes a fully meshed network, which means all nodes are connected to each other. Under this topology, the Erlang distribution is known to scale to several dozens of nodes in the same cluster. Erlang also has the concept of hidden nodes, which can allow developers to assemble custom topologies as seen in projects such as [Partisan](https://github.com/lasp-lang/partisan). In production, you may have nodes connecting and disconnecting at any time. In such scenarios, you need to provide _node discoverability_. Libraries such as [libcluster](https://github.com/bitwalker/libcluster/) and [peerage](https://github.com/mrluc/peerage) provide several strategies for node discoverability using DNS, Kubernetes, etc. -Distributed key-value stores, used in real-life, need to consider the fact nodes may go up and down at any time and also migrate the bucket across nodes. Even further, buckets often need to be duplicated between nodes, so a failure in a node does not lead to the whole bucket being lost. This process is called *replication*. Our implementation won't attempt to tackle such problems. Instead, we assume there is a fixed number nodes and therefore use a fixed routing table. +Distributed key-value stores, used in real-life, need to consider the fact nodes may go up and down at any time and also migrate the bucket across nodes. Even further, buckets often need to be duplicated between nodes, so a failure in a node does not lead to the whole bucket being lost. This process is called *replication*. Our implementation won't attempt to tackle such problems. Instead, we assume there is a fixed number of nodes and therefore use a fixed routing table. These topics can be daunting at first but remember that most Elixir frameworks abstract those concerns for you. For example, when using [the Phoenix web framework](https://phoenixframework.org), its plug-and-play abstractions take care of sending messages and tracking how users join and leave a cluster. However, if you are interested in distributed systems after all, there is much to explore. Here are some additional references: From f3ac95193d0235dedfc8fac9e080daf16121625a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 14 Nov 2022 10:00:44 +0100 Subject: [PATCH 1523/1761] Release v1.14.2 --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 6174c2aeb..672b722ac 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 +1.14.2,https://github.com/elixir-lang/elixir/releases/download/v1.14.2/elixir-otp-25.zip,release,1,4bdbb762f102e6318388389a4b44e3a132534ae3,2ab159e875a8d407dde10ee279446d469022acf8128e4f390556ab44e8918a06 1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5 1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 From 4ad55ed7b5bc467df1d45f043641851bacc9c66b Mon Sep 17 00:00:00 2001 From: Artyom Nesterenko Date: Tue, 15 Nov 2022 14:02:10 +0200 Subject: [PATCH 1524/1761] Update config-and-releases.markdown (#1656) Update outputs to match current Elixir version. --- .../mix-otp/config-and-releases.markdown | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index 33e750f68..fb8f61076 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -172,7 +172,7 @@ With the configuration in place, let's give assembling the release another try: $ MIX_ENV=prod mix release foo * assembling foo-0.0.1 on MIX_ENV=prod - * skipping runtime configuration (config/releases.exs not found) + * skipping runtime configuration (config/runtime.exs not found) Release created at _build/prod/rel/foo! @@ -350,6 +350,7 @@ For instance, releases run using short-names (`--sname`). However, if you want t $ mix release.init * creating rel/vm.args.eex + * creating rel/remote.vm.args.eex * creating rel/env.sh.eex * creating rel/env.bat.eex @@ -358,16 +359,24 @@ If you open up `rel/env.sh.eex`, you will see: ```shell #!/bin/sh -# Sets and enables heart (recommended only in daemon mode) -# if [ "$RELEASE_COMMAND" = "daemon" ] || [ "$RELEASE_COMMAND" = "daemon_iex" ]; then -# HEART_COMMAND="$RELEASE_ROOT/bin/$RELEASE_NAME $RELEASE_COMMAND" -# export HEART_COMMAND -# export ELIXIR_ERL_OPTIONS="-heart" -# fi - -# Set the release to work across nodes +# # Sets and enables heart (recommended only in daemon mode) +# case $RELEASE_COMMAND in +# daemon*) +# HEART_COMMAND="$RELEASE_ROOT/bin/$RELEASE_NAME $RELEASE_COMMAND" +# export HEART_COMMAND +# export ELIXIR_ERL_OPTIONS="-heart" +# ;; +# *) +# ;; +# esac + +# # Set the release to load code on demand (interactive) instead of preloading (embedded). +# export RELEASE_MODE=interactive + +# # Set the release to work across nodes. +# # RELEASE_DISTRIBUTION must be "sname" (local), "name" (distributed) or "none". # export RELEASE_DISTRIBUTION=name -# export RELEASE_NODE=<%= @release.name %>@127.0.0.1 +# export RELEASE_NODE=<%= @release.name %> ``` The steps necessary to work across nodes is already commented out as an example. You can enable full distribution by uncommenting the last two lines by removing the leading `# `. @@ -376,9 +385,13 @@ If you are on Windows, you will have to open up `rel/env.bat.eex`, where you wil ```bat @echo off -rem Set the release to work across nodes +rem Set the release to load code on demand (interactive) instead of preloading (embedded). +rem set RELEASE_MODE=interactive + +rem Set the release to work across nodes. +rem RELEASE_DISTRIBUTION must be "sname" (local), "name" (distributed) or "none". rem set RELEASE_DISTRIBUTION=name -rem set RELEASE_NODE=<%= @release.name %>@127.0.0.1 +rem set RELEASE_NODE=<%= @release.name %> ``` Once again, uncomment the last two lines by removing the leading `rem ` to enable full distribution. And that's all! @@ -390,9 +403,6 @@ The `rel/vm.args.eex` allows you to specify low-level flags that control how the ## Customize flags given to the VM: https://www.erlang.org/doc/man/erl.html ## -mode/-name/-sname/-setcookie are configured via env vars, do not set them here - ## Number of dirty schedulers doing IO work (file, sockets, and others) - ##+SDio 5 - ## Increase number of concurrent ports/sockets ##+Q 65536 From 0774af5868b9dce8361bb555ed53e9a48482ddf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 17 Nov 2022 19:01:00 +0100 Subject: [PATCH 1525/1761] Improve installation instructions --- install.markdown | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/install.markdown b/install.markdown index 17822ae1d..5e15129cf 100644 --- a/install.markdown +++ b/install.markdown @@ -17,7 +17,7 @@ Note that Elixir {{ stable.name }} requires Erlang {{ stable.minimum_otp }} or l The preferred option for installing Elixir. Choose your operating system and tool. -If your distribution contains an old Elixir/Erlang version, see the sections below for installing Elixir/Erlang from version managers or from source. +**If your distribution contains an old Elixir/Erlang version, see the sections below for installing Elixir/Erlang from version managers or from source**. ### macOS @@ -36,7 +36,7 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel * Run: `pacman -S elixir` - **Debian** - * _See below the instructions for Ubuntu_ + * Run: `sudo apt-get install elixir` - **Fedora 21 (and older)** * Run: `yum install elixir` @@ -64,20 +64,14 @@ If your distribution contains an old Elixir/Erlang version, see the sections bel - **Solus** * Run: `eopkg install elixir` - - **Ubuntu** or **Debian** - * From primary package repositories: - * Run: `sudo apt-get install elixir` + - **Ubuntu** + * Run: `sudo apt-get install elixir` - * From Erlang Solutions, for more recent Elixir/Erlang versions on Ubuntu LTS (< 22.04) or Debian Stable releases: - * Add Erlang Solutions repository: `wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb` - * Run: `sudo apt-get update` - * Install the Erlang/OTP platform and all of its applications: `sudo apt-get install esl-erlang` - * Install Elixir: `sudo apt-get install elixir` - - **Void Linux** * Run: `xbps-install -S elixir` ### BSD + - **FreeBSD** * The latest Elixir release is named [lang/elixir-devel](https://freshports.org/lang/elixir-devel). The default Elixir, [lang/elixir](https://freshports.org/lang/elixir), may @@ -134,7 +128,21 @@ Elixir provides a precompiled package for every release. First [install Erlang]( {% for otp_version in stable.otp_versions %} * [Elixir {{ stable.version }} on Erlang {{ otp_version }}](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/elixir-otp-{{ otp_version }}.zip){% endfor %} -Once the release is download, unpack it, and you are ready to run the `elixir` and `iex` commands from the `bin` directory. However, we recommend you to [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. +Once you download the release, unpack it, and you are ready to run the `elixir` and `iex` commands from the `bin` directory. However, we recommend you to [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. + +### Mirrors and nightly builds + +The links above point directly to the GitHub release. We also host and mirror precompiled packages and nightly builds globally via `repo.hex.pm` using the following URL scheme: + + https://repo.hex.pm/builds/elixir/${ELIXIR_VERSION}-otp-${OTP_VERSION}.zip + +For example, to use Elixir v1.13.3 with Erlang/OTP 24.x, use: + + https://repo.hex.pm/builds/elixir/v1.13.3-otp-24.zip + +To use nightly for a given Erlang/OTP version (such as 25), use: + + https://repo.hex.pm/builds/elixir/main-otp-25.zip ## Compiling with version managers From 178a45ee389cf7dccee27f51ee9d77090df791dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 17 Nov 2022 19:07:32 +0100 Subject: [PATCH 1526/1761] Update Raspberry PI steps, closes #1510 --- install.markdown | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/install.markdown b/install.markdown index 5e15129cf..d2f8975fd 100644 --- a/install.markdown +++ b/install.markdown @@ -96,19 +96,11 @@ The preferred option for installing Elixir. Choose your operating system and too * Install Erlang: `scoop install erlang` * Install Elixir: `scoop install elixir` -### Raspberry Pi +### Raspberry Pi and embedded devices -If necessary, replace "buster" with the name of your Raspbian release. +To build and package an Elixir application, with the whole operating system, and burn that into a disk or deploy it overwhere, [check out the Nerves project](https://www.nerves-project.org). - * The Erlang Solutions repository has a prebuilt package for armhf. This saves a significant amount of time in comparison to recompiling natively - * Get Erlang key and add it to the keychain: - * Run: `echo "deb https://packages.erlang-solutions.com/debian buster contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list` - * Run: `wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc` - * Run: `cat erlang_solutions.asc | gpg --dearmor > erlang_solutions.gpg` - * Run: `sudo install -o root -g root -m 644 erlang_solutions.gpg /etc/apt/trusted.gpg.d/` - * Install Elixir: - * Update apt to latest: `sudo apt update` - * Run: `sudo apt install elixir` +If you want to install Elixir as part of an existing Operating System, please follow the relevant steps above for your Operating System or install from precompiled/source. ### Docker @@ -182,7 +174,7 @@ The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or * [Precompiled packages for some Unix-like installations](https://www.erlang-solutions.com/resources/download.html) * [A general list of installation methods from the Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/). -After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl`. You will see some information similar to: +After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl -s halt`. You will see some information similar to: Erlang/OTP {{ stable.minimum_otp }} [64-bit] [smp:2:2] [...] From 84ab22bff8ca00fe40d5ee20973dd4a212404431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 18 Nov 2022 23:21:24 +0100 Subject: [PATCH 1527/1761] Fix italic --- ...022-10-05-my-future-with-elixir-set-theoretic-types.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown index 38f24accf..7a7015f82 100644 --- a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown +++ b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown @@ -12,7 +12,7 @@ In May 2022, we have celebrated 10 years since Elixir v0.5, the first public rel At such occasions, it may be tempting to try to predict how Elixir will look in 10 years from now. However, I believe that would be a futile effort, because, 10 years ago, I would never have guessed Elixir would have gone [beyond excelling at web development](https://phoenixframework.org/), but also into domains such as [embedded software](https://www.nerves-project.org/) and making inroads into machine learning and data analysis with projects such as [Nx (Numerical Elixir)](https://github.com/elixir-nx/nx), [Explorer](https://github.com/elixir-nx/explorer), [Axon](https://github.com/elixir-nx/axon) and [Livebook](https://livebook.dev/). Elixir was designed to be extensible and how it will be extended has always been a community effort. -For these reasons, I choose to focus on *My Future with Elixir*. Those are the projects I am personally excited about and working on alongside other community members. The topic of today's article is type systems, as discussed in my ElixirConf EU presentation in May 2022. +For these reasons, I choose to focus on *My Future* with Elixir. Those are the projects I am personally excited about and working on alongside other community members. The topic of today's article is type systems, as discussed in my ElixirConf EU presentation in May 2022. ## The elephant in the room: types From 19269415e598232f1689fbdf97ecc23e8a40b11e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 29 Nov 2022 22:21:07 +0100 Subject: [PATCH 1528/1761] Add min Erlang/OTP version to csv --- elixir.csv | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/elixir.csv b/elixir.csv index 672b722ac..c16e30a43 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,23 +1,23 @@ -version,url_precompiled,release_type,windows_installer_compat,sha1,sha512 -1.14.2,https://github.com/elixir-lang/elixir/releases/download/v1.14.2/elixir-otp-25.zip,release,1,4bdbb762f102e6318388389a4b44e3a132534ae3,2ab159e875a8d407dde10ee279446d469022acf8128e4f390556ab44e8918a06 -1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5 -1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0 -1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619 -1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27 -1.13.2,https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2 -1.13.1,https://github.com/elixir-lang/elixir/releases/download/v1.13.1/Precompiled.zip,release,1,40762ffbef86cbbfd0c79a94e057fb987dc882ff,bb02ead0d4ccf499ff0473fbbb17fd12de4ba476b463c0452138bc1ef9004547166e75ffe7c6f96b9497adc9fecbda4ad57bfe0f17f1ba95d8339a0e98c29b03 -1.13.0,https://github.com/elixir-lang/elixir/releases/download/v1.13.0/Precompiled.zip,release,1,0f196f4de406882b5a3bcee7ac9e9b0c61ed1459,58ffe87d6eb89435d8605aee04556aa1a1ba25cf2fa7688d0a5da162d7d7c57b47b2f726b365a7aeb18832bf08de3db5d3ec0ed45e13da276438679f29e5e3ac -1.12.3,https://github.com/elixir-lang/elixir/releases/download/v1.12.3/Precompiled.zip,release,1,db3c8a5470dee211168707c432a1f8002960e966,db092caa32b55195eeb24a17e0ab98bb2fea38d2f638bc42fee45a6dfcd3ba0782618d27e281c545651f93914481866b9d34b6d284c7f763d197e87847fdaef4 -1.12.2,https://github.com/elixir-lang/elixir/releases/download/v1.12.2/Precompiled.zip,release,1,051c2728bfd679d1d6f74d11f25ca679491cd6b4,38eb2281032b0cb096ef5e61f048c5374d6fb9bf4078ab8f9526a42e16e7c661732a632b55d6072328eedf87a47e6eeb3f0e3f90bba1086239c71350f90c75e5 -1.12.1,https://github.com/elixir-lang/elixir/releases/download/v1.12.1/Precompiled.zip,release,1,4a1269b95c719e0295cd6b57a1c447e1b91563ef,66e877486606f232f36cbe76cdd63bc4ee5e75e27d6292bb602ab2c88b4dd7da6684e6ff9cdb2020e7f916ee2d58016e2d1e2cbd5e579f297ab8eae660cb5dcb -1.12.0,https://github.com/elixir-lang/elixir/releases/download/v1.12.0/Precompiled.zip,release,1,b607b2d0e78e1ae6f9d112ba3e1b617a1ee7580b,57e970640f7e273a62fbde60545ed85c18d667e194d0d3483b941ea3164f12664cc0c186968c1f341253f1907157ae88953b5caa413204f93bba08710fdc0b50 -1.11.4,https://github.com/elixir-lang/elixir/releases/download/v1.11.4/Precompiled.zip,release,1,2b421e7f4b8d62af5c9238f5cf127938d3523f23,4d8ead533a7bd35b41669be0d4548b612d5cc17723da67cfdf996ab36522fd0163215915a970675c6ebcba4dbfc7a46e644cb144b16087bc9417b385955a1e79 -1.11.3,https://github.com/elixir-lang/elixir/releases/download/v1.11.3/Precompiled.zip,release,1,430735e03d8dfcba3324010d397ab7871b30d87d,16cdd30e41737ba9d659e506b4aa79465ede2d93d27a720d6a3649b8100da9f7dee154a913438724651a83aea77ddef33ac1489bb7ae283b39fbfe20dcd77db4 -1.11.2,https://github.com/elixir-lang/elixir/releases/download/v1.11.2/Precompiled.zip,release,1,1c54c01b5449d631e673e4aaf205522eaeb8dbdc,7b6ece70d2db6cf4b02c3e72f0ae2edc68e13a2651876525eab08e3c3c3f1f88d294e3f412c3fb736bc84ba4c2897930101b0ac715e322f1554f29c69e2d1e77 -1.11.1,https://github.com/elixir-lang/elixir/releases/download/v1.11.1/Precompiled.zip,release,1,f03301dd10072f3643a4c1e5f012a49bfc493608,c70e7d3e338ab2449301c7864a2dd96e8d474f3fee533a66706c67cd733db74c2d529b9887961db9f07530eeed4cce917c480e5e8c4201060c7fa494e8b376da -1.11.0,https://github.com/elixir-lang/elixir/releases/download/v1.11.0/Precompiled.zip,release,1,4654fed3bbd3e4ebc0c15cfaec003e84080eabd3,6293f2a0ca87872789a9b3909e782cde77409e8b3f1699f42c95ef55360bdba27c69fe6aaa1c843ef004cc4ded9d92e4cc0053f845c0208ec38f1d11945cae07 -1.10.4,https://github.com/elixir-lang/elixir/releases/download/v1.10.4/Precompiled.zip,release,1,5b400c829c4f239ac89a7eb97aac642b961f38fd,9727ae96d187d8b64e471ff0bb5694fcd1009cdcfd8b91a6b78b7542bb71fca59869d8440bb66a2523a6fec025f1d23394e7578674b942274c52b44e19ba2d43 -1.10.3,https://github.com/elixir-lang/elixir/releases/download/v1.10.3/Precompiled.zip,release,1,382fa22e6f184c0cc87fcfbfa0053c349d85f6f1,fc6d06ad4cc596b2b6e4f01712f718200c69f3b9c49c7d3b787f9a67b36482658490cf01109b0b0842fc9d88a27f64a9aba817231498d99fa01fa99688263d55 -1.10.2,https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9 -1.10.1,https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d -1.10.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586 +version,url_precompiled,release_type,windows_installer_compat,sha1,sha512,min_otp_release +1.14.2,https://github.com/elixir-lang/elixir/releases/download/v1.14.2/elixir-otp-25.zip,release,1,4bdbb762f102e6318388389a4b44e3a132534ae3,2ab159e875a8d407dde10ee279446d469022acf8128e4f390556ab44e8918a06,25.0 +1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5,25.0 +1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0,25.0 +1.13.4,https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip,release,1,325fbdde4f0a5701bb8b9d455175b85ff41470d7,e64c714e80cd9657b8897d725f6d78f251d443082f6af5070caec863c18068c97af6bdda156c3b3390e0a2b84f77c2ad3378a42913f64bb583fb5251fa49e619,22.0 +1.13.3,https://github.com/elixir-lang/elixir/releases/download/v1.13.3/Precompiled.zip,release,1,7a2d0ff13beadcba3f566d692d960dcd785df5c8,93132c03a16479cfd48c509e2c5ee145b9062d77d528ac2eaeae460f4349f138286f14d34a1ee884e6c76081fe1bf52d27788b944ef06feaa40c07bec41a0a27,22.0 +1.13.2,https://github.com/elixir-lang/elixir/releases/download/v1.13.2/Precompiled.zip,release,1,53bf917f18fc210dcf252e346453fd8c04f2ac6b,74cc0b3d7ddb0156d6695b3b08319d0c01fcfac053407b0bf8b456013d21d1b37ffd5cba389557edfb6af329fbed07c8cd1061a6698b60e1b16a70c898720ec2,22.0 +1.13.1,https://github.com/elixir-lang/elixir/releases/download/v1.13.1/Precompiled.zip,release,1,40762ffbef86cbbfd0c79a94e057fb987dc882ff,bb02ead0d4ccf499ff0473fbbb17fd12de4ba476b463c0452138bc1ef9004547166e75ffe7c6f96b9497adc9fecbda4ad57bfe0f17f1ba95d8339a0e98c29b03,22.0 +1.13.0,https://github.com/elixir-lang/elixir/releases/download/v1.13.0/Precompiled.zip,release,1,0f196f4de406882b5a3bcee7ac9e9b0c61ed1459,58ffe87d6eb89435d8605aee04556aa1a1ba25cf2fa7688d0a5da162d7d7c57b47b2f726b365a7aeb18832bf08de3db5d3ec0ed45e13da276438679f29e5e3ac,22.0 +1.12.3,https://github.com/elixir-lang/elixir/releases/download/v1.12.3/Precompiled.zip,release,1,db3c8a5470dee211168707c432a1f8002960e966,db092caa32b55195eeb24a17e0ab98bb2fea38d2f638bc42fee45a6dfcd3ba0782618d27e281c545651f93914481866b9d34b6d284c7f763d197e87847fdaef4,22.0 +1.12.2,https://github.com/elixir-lang/elixir/releases/download/v1.12.2/Precompiled.zip,release,1,051c2728bfd679d1d6f74d11f25ca679491cd6b4,38eb2281032b0cb096ef5e61f048c5374d6fb9bf4078ab8f9526a42e16e7c661732a632b55d6072328eedf87a47e6eeb3f0e3f90bba1086239c71350f90c75e5,22.0 +1.12.1,https://github.com/elixir-lang/elixir/releases/download/v1.12.1/Precompiled.zip,release,1,4a1269b95c719e0295cd6b57a1c447e1b91563ef,66e877486606f232f36cbe76cdd63bc4ee5e75e27d6292bb602ab2c88b4dd7da6684e6ff9cdb2020e7f916ee2d58016e2d1e2cbd5e579f297ab8eae660cb5dcb,22.0 +1.12.0,https://github.com/elixir-lang/elixir/releases/download/v1.12.0/Precompiled.zip,release,1,b607b2d0e78e1ae6f9d112ba3e1b617a1ee7580b,57e970640f7e273a62fbde60545ed85c18d667e194d0d3483b941ea3164f12664cc0c186968c1f341253f1907157ae88953b5caa413204f93bba08710fdc0b50,22.0 +1.11.4,https://github.com/elixir-lang/elixir/releases/download/v1.11.4/Precompiled.zip,release,1,2b421e7f4b8d62af5c9238f5cf127938d3523f23,4d8ead533a7bd35b41669be0d4548b612d5cc17723da67cfdf996ab36522fd0163215915a970675c6ebcba4dbfc7a46e644cb144b16087bc9417b385955a1e79,21.0 +1.11.3,https://github.com/elixir-lang/elixir/releases/download/v1.11.3/Precompiled.zip,release,1,430735e03d8dfcba3324010d397ab7871b30d87d,16cdd30e41737ba9d659e506b4aa79465ede2d93d27a720d6a3649b8100da9f7dee154a913438724651a83aea77ddef33ac1489bb7ae283b39fbfe20dcd77db4,21.0 +1.11.2,https://github.com/elixir-lang/elixir/releases/download/v1.11.2/Precompiled.zip,release,1,1c54c01b5449d631e673e4aaf205522eaeb8dbdc,7b6ece70d2db6cf4b02c3e72f0ae2edc68e13a2651876525eab08e3c3c3f1f88d294e3f412c3fb736bc84ba4c2897930101b0ac715e322f1554f29c69e2d1e77,21.0 +1.11.1,https://github.com/elixir-lang/elixir/releases/download/v1.11.1/Precompiled.zip,release,1,f03301dd10072f3643a4c1e5f012a49bfc493608,c70e7d3e338ab2449301c7864a2dd96e8d474f3fee533a66706c67cd733db74c2d529b9887961db9f07530eeed4cce917c480e5e8c4201060c7fa494e8b376da,21.0 +1.11.0,https://github.com/elixir-lang/elixir/releases/download/v1.11.0/Precompiled.zip,release,1,4654fed3bbd3e4ebc0c15cfaec003e84080eabd3,6293f2a0ca87872789a9b3909e782cde77409e8b3f1699f42c95ef55360bdba27c69fe6aaa1c843ef004cc4ded9d92e4cc0053f845c0208ec38f1d11945cae07,21.0 +1.10.4,https://github.com/elixir-lang/elixir/releases/download/v1.10.4/Precompiled.zip,release,1,5b400c829c4f239ac89a7eb97aac642b961f38fd,9727ae96d187d8b64e471ff0bb5694fcd1009cdcfd8b91a6b78b7542bb71fca59869d8440bb66a2523a6fec025f1d23394e7578674b942274c52b44e19ba2d43,21.0 +1.10.3,https://github.com/elixir-lang/elixir/releases/download/v1.10.3/Precompiled.zip,release,1,382fa22e6f184c0cc87fcfbfa0053c349d85f6f1,fc6d06ad4cc596b2b6e4f01712f718200c69f3b9c49c7d3b787f9a67b36482658490cf01109b0b0842fc9d88a27f64a9aba817231498d99fa01fa99688263d55,21.0 +1.10.2,https://github.com/elixir-lang/elixir/releases/download/v1.10.2/Precompiled.zip,release,1,830264881231e711d8bade711ed2819a2d10b918,532f43f08a29b5cbfca5a544c337b4a6d336d372ba0a5b3393681426d57ecaa85960e8eb3548aea26f213cc36914c6b66b83707cd719e27dc34c40efadb9f0b9,21.0 +1.10.1,https://github.com/elixir-lang/elixir/releases/download/v1.10.1/Precompiled.zip,release,1,606ffaff6c7c3d278d7daa1fee653aa8183f225f,e8809aff909ca6e2271493690a6a095959e551f6d04e2d384ead0d6cfde23a3707492b53563b9a78080509b44728a63645dc37be108cd6ea3f9501f5d616fe1d,21.0 +1.10.0,https://github.com/elixir-lang/elixir/releases/download/v1.10.0/Precompiled.zip,release,1,0c3f2206131f6d50f9b4e3264dcb8757c52294e4,1e9286391281cd53e5cc5452cdf9ee586c50648800701a1ab80ef7a5a4ef4052f75149235ba348e560d8d5247a0f476c27f481f53e05cbe29244d0b1a25d6586,21.0 From 3020a9338cf5bc078bf76d94a079de8f8d8615de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Dec 2022 17:15:42 +0100 Subject: [PATCH 1529/1761] Bump decode-uri-component from 0.2.0 to 0.2.2 in /_epub (#1658) Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2. - [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases) - [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2) --- updated-dependencies: - dependency-name: decode-uri-component dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index 8a6254148..62ed0a1ce 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -1047,9 +1047,9 @@ "dev": true }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, "deep-is": { From 94f1d974b95324ef14a80cf110560444b3581c64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Dec 2022 17:22:24 +0100 Subject: [PATCH 1530/1761] Bump nokogiri from 1.13.8 to 1.13.9 (#1659) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.8 to 1.13.9. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.8...v1.13.9) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8cd86b3d9..5c0da6c06 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -206,7 +206,7 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.11.3) multipart-post (2.1.1) - nokogiri (1.13.8) + nokogiri (1.13.9) mini_portile2 (~> 2.8.0) racc (~> 1.4) octokit (4.14.0) From 4236da1d01660199f481d29c332cf86765f574a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Dec 2022 17:22:58 +0100 Subject: [PATCH 1531/1761] Bump minimatch from 3.0.4 to 3.1.2 in /_epub (#1660) Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2. - [Release notes](https://github.com/isaacs/minimatch/releases) - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2) --- updated-dependencies: - dependency-name: minimatch dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index 62ed0a1ce..b50386295 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -3712,9 +3712,9 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" From 87fe00f46d8c44f001aef27180b2fb40388816ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 6 Dec 2022 05:01:38 +0100 Subject: [PATCH 1532/1761] Update the Windows installer with v2.3 --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index d2f8975fd..ec26370af 100644 --- a/install.markdown +++ b/install.markdown @@ -88,7 +88,7 @@ The preferred option for installing Elixir. Choose your operating system and too ### Windows - Using our web installer: - * [Download the installer](https://github.com/elixir-lang/elixir-windows-setup/releases/download/v2.2/elixir-websetup.exe) + * [Download the installer](https://github.com/elixir-lang/elixir-windows-setup/releases/download/v2.3/elixir-websetup.exe) * Click next, next, ..., finish * If you run into issues, check out the [Windows Installer issues tracker](https://github.com/elixir-lang/elixir-windows-setup) From b8ae490a6900f41d27ab47302a04645af25850b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 22:00:04 +0100 Subject: [PATCH 1533/1761] Bump qs from 6.4.0 to 6.4.1 in /_epub (#1661) Bumps [qs](https://github.com/ljharb/qs) from 6.4.0 to 6.4.1. - [Release notes](https://github.com/ljharb/qs/releases) - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.4.0...v6.4.1) --- updated-dependencies: - dependency-name: qs dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index b50386295..7f54e8b26 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -4323,9 +4323,9 @@ "optional": true }, "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.1.tgz", + "integrity": "sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==", "dev": true, "optional": true }, From 5153365c78d51ec2f6798f6736661e499bfa251d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 7 Dec 2022 04:29:50 +0100 Subject: [PATCH 1534/1761] Remove link Closes #1662. --- cases.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/cases.html b/cases.html index abe10873d..63d5502f7 100644 --- a/cases.html +++ b/cases.html @@ -26,5 +26,3 @@

    Cases

    - -

    Want to see more companies? Check out the Elixir Companies website, which is maintained by the community.

    From a3016e923e50de2f695934d4280e677cfc498753 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Dec 2022 05:59:16 +0100 Subject: [PATCH 1535/1761] Bump nokogiri from 1.13.9 to 1.13.10 (#1663) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.9 to 1.13.10. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.9...v1.13.10) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c0da6c06..dc60a269b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -206,7 +206,7 @@ GEM jekyll-seo-tag (~> 2.1) minitest (5.11.3) multipart-post (2.1.1) - nokogiri (1.13.9) + nokogiri (1.13.10) mini_portile2 (~> 2.8.0) racc (~> 1.4) octokit (4.14.0) @@ -214,7 +214,7 @@ GEM pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (3.1.1) - racc (1.6.0) + racc (1.6.1) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) From 14cf73f9a4036545dba2af545c46dd918072488b Mon Sep 17 00:00:00 2001 From: Juha Date: Thu, 8 Dec 2022 14:22:42 +0200 Subject: [PATCH 1536/1761] Fix link for meetups in sidebar (#1664) --- _includes/important-links.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index f8f210d03..a9c101ec9 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -25,7 +25,7 @@

    Join the Community

  • Elixir Forum
  • Elixir on Slack
  • Elixir on Discord
  • -
  • Meetups around the world
  • +
  • Meetups around the world
  • Wiki with events and resources maintained by the community
  • From 960b8d7fb13fe871ae29bee4c5446317cc8f1aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 21 Dec 2022 17:30:28 -0300 Subject: [PATCH 1537/1761] Clarify dbg limitations --- getting-started/debugging.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index eb59f8993..5d6acde59 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -104,15 +104,15 @@ __ENV__.file #=> "/home/myuser/dbg_pipes.exs" |> File.exists?() #=> true ``` +Note `dbg` only supports stepping for pipelines (in other words, it can only step through the code it sees). For general stepping of functions, you will need to set breakpoints using `IEx.break!/4`. + ## Breakpoints When code calling `dbg` is executed via `iex`, IEx will ask you to "stop" the code execution where the `dbg` call is. If you accept, you'll be able to access all variables, as well as imports and aliases from the code, directly from IEx. This is called "prying". While the pry session is running, the code execution stops, until `continue` or `next` are called. Remember you can always run `iex` in the context of a project with `iex -S mix TASK`. -`dbg` is the most common way to pry into code execution, but if you want to avoid printing debug information, you can use `IEx.pry/0` to set up a manual pry breakpoint. - -`dbg` calls require us to change the code we intend to debug. Luckily IEx also provides a [`break!/2`](https://hexdocs.pm/iex/IEx.html#break!/2) function which allows you to set and manage breakpoints on any Elixir code without modifying its source: +`dbg` calls require us to change the code we intend to debug and has limited stepping functionality. Luckily IEx also provides a [`break!/2`](https://hexdocs.pm/iex/IEx.html#break!/2) function which allows you to set and manage breakpoints on any Elixir code without modifying its source: From 4502a86bc62e4e0565906cfc76da6f173ac865eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Bara=C3=BAna?= Date: Thu, 22 Dec 2022 07:40:23 -0300 Subject: [PATCH 1538/1761] ExDoc cheatsheets blog post (#1665) --- ...-improve-the-developer-experience.markdown | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 _posts/2022-12-22-cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience.markdown diff --git a/_posts/2022-12-22-cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience.markdown b/_posts/2022-12-22-cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience.markdown new file mode 100644 index 000000000..d397cecc5 --- /dev/null +++ b/_posts/2022-12-22-cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience.markdown @@ -0,0 +1,182 @@ +--- +layout: post +title: "Cheatsheets and other 8 ExDoc features that improve the developer experience" +author: Hugo Baraúna +category: Announcements +excerpt: This post explains the motivation behind the new ExDoc Cheatsheet feature. It also highlights other ExDoc features that show how ExDoc has been evolving to make the documentation experience in Elixir better and better. +--- + +ExDoc has a cool new feature, [cheatsheets](https://hexdocs.pm/ex_doc/cheatsheet.html)! + +In this blog post, we'll explain what that new feature is and the motivation behind it. We'll also take the opportunity to highlight other ExDoc features that show how it has been evolving to make the documentation experience in Elixir better and better. + +## What are ExDoc Cheatsheets and how they improve the documentation experience +ExDoc's Cheatsheets are Markdown files with the `.cheatmd` extension. You can see [an example](https://hexdocs.pm/ecto/crud.html) of how the Ecto project is using them. + +Writing and reading cheatsheets is not exactly new to developers. What ExDoc brings to the table is the possibility of integrating cheatsheets alongside the rest of the documentation of an Elixir project, instead of hosting it in a different place. + +Developers need different kinds of docs at different times. When one is learning about a new library, a guide format is proper. When one needs to know if a library can solve a specific problem, an API reference can be more appropriate. When someone wants to remember a couple of functions they already used from that library, a cheatsheet could be more practical. + +Imagine if you had to go to a different place for every type of documentation you're looking for. That would make a very fragmented experience, not only for readers of documentation but also for writers. + +ExDoc Cheatsheets represent one step further in the direction of making documentation in Elixir an even more comprehensive and integrated experience. + +ExDoc Cheatsheets are inspired by [devhints.io](https://devhints.io) from [Rico Sta. Cruz](https://twitter.com/rstacruz), and were contributed by [Paulo Valim](https://twitter.com/paulovalim) and [Yordis Prieto](https://twitter.com/alchemist_ubi). + + +## Eight features that show how ExDoc has improved developer experience over time + +We added Cheatsheets to ExDoc because we value developer experience and believe documentation is a core aspect of it. + +Since the beginning, one of Elixir's principles is that documentation should be a first-class citizen. What this idea means to us is that documentation should be easy to write and easy to read. ExDoc has been continuously evolving over the years, guided by this principle. + +Here are some of the features added to ExDoc over the years that make reading and writing documentation in Elixir a joy. + +### Beautiful and usable design +As developers, we may not have the skill to make beautifully designed UIs. That doesn't mean we don't appreciate it. + +Here's what ExDoc-based documentation looked like almost ten years ago, with its original layout based on [YARD](https://yardoc.org/). + +![](https://i.imgur.com/O9xKjR8.jpg) + +Here's what it looks like today: + +![](https://i.imgur.com/ZKI1T23.png) + +The evolution of ExDoc's design helped ExDoc-based documentation be more visually appealing and easier to read and navigate. + +### Links to source code + +Sometimes you're reading the docs of a library, and you want to know more about the implementation of a function. Or you found something in the documentation that could be improved and wants to help. + +In those situations, it's helpful to go from the documentation to the source code. ExDoc makes that dead easy. + +For every module, function, or page, ExDoc gives you a link that you can click to go directly to the project's source code inside Github: + +![](https://i.imgur.com/PXvoeDk.gif) + +### Guides +One of the most common formats of library documentation is an API reference. But depending on your needs, that's not the most approachable format. For example,it's not optimal when you're just getting started with a library or when you want to learn how to solve a specific problem using it. + +That's why ExDoc allows writing other types of docs besides API references, like Getting Started Guides or How-tos. + +Look at how [Ecto's documentation](https://hexdocs.pm/ecto/getting-started.html) uses that, for example: + +![](https://i.imgur.com/KInZb4x.gif) + +### Custom grouping of modules, functions, and pages in the sidebar + +Sometimes your library has dozens of modules. And sometimes, one given module has a large API surface area. In those situations showing the list of functions as a single large list may not be the most digestible way to be consumed. + +For those situations, ExDoc allows modules, functions, or extra pages to be grouped in the sidebar in a way that makes more sense semantically. + +Here's an example of how Ecto use grouped functions for its `Repo` module: + +![](https://i.imgur.com/ZE7N312.png) + +Instead of listing the ~40 functions of `Ecto.Repo` as a single extensive list, it presents them grouped by five cohesive topics: + +- Query API +- Schema API +- Transaction API +- Runtime API +- User callbacks + +The same functionality is available for modules and pages (guides, how-tos, etc). Phoenix is a [good example](https://hexdocs.pm/phoenix/overview.html) of how that's used. + +### Full-text search + +Sometimes you don't know or don't remember the name of the function that you're looking for. For example, let's say you're looking for a function for dealing with file system directories. + +Although there's no function or module called "directory" in Elixir, when you type "directory" in [Elixir's documentation](https://hexdocs.pm/elixir/search.html?q=directory), it will return all the entries that have the word "directory" inside the documentation. It will even return entries with variations of the word "directory", like "directories", doing a fuzzy search. + +![](https://i.imgur.com/IHHuej8.png) + +The search bar also supports autocompletion for module and function names: + +![](https://i.imgur.com/2cmsuDi.gif) + +The best part is that full-text search is fully implemented on the client-side, which means ExDoc pages can be fully hosted as static pages anywhere. + +### Keyboard shortcut to navigate to docs of other Hex packages + +It's usual for an application to have many dependencies. And while coding, we usually need to read the documentation of more than one of those dependencies. + +One solution is to keep a window open for each package documentation we need. But ExDoc offers another one, a keyboard shortcut to search and go to another package documentation within the same window. + +Here's what it looks like: + +![](https://i.imgur.com/I9uJxUF.gif[/img]) + +And there are more keyboard shortcuts to help you navigate within and between documentation: + +![](https://i.imgur.com/qdoNUx9.png) + +### A version dropdown to switch to other versions + +Keeping our application updated with the latest versions of all its dependencies can be challenging. So, it's common to need to look at the documentation of an older version of a library we're using. ExDoc makes it very simple to do that. + +When you access the documentation of a project, there's a dropdown that you can use to select the version you're looking for: + +![](https://i.imgur.com/1krcY5g.gif) + +### Livebook integration +[Livebook](https://livebook.dev/) is a web application for writing interactive and collaborative code notebooks in Elixir. + +One of the ways Elixir developers have been using Livebook is for documentation. Because of its interactivity capabilities, it enables the reader to play with the code right inside the documentation, which makes it great for tutorials and augmenting the user experience. + +With that in mind, ExDoc offers the possibility of integrating Livebook notebooks. That means one can host Livebook-based documentation together with the API reference. + +Here's an [example of using Livebook inside ExDoc for writing a Usage Guide](https://hexdocs.pm/req_sandbox/usage.html): + +![](https://i.imgur.com/FxOLs0Y.gif) + +### Bonus: Erlang support + +[EEP 48](https://www.erlang.org/eeps/eep-0048) proposed a standardized way for how BEAM languages could store API documentation. That allowed any BEAM language to read documentation generated by each other. + +By leveraging that work, ExDoc can generate docs for an Erlang project. For example, Telemetry is a library written in Erlang that has [its docs](https://hexdocs.pm/telemetry/readme.html) generated with ExDoc. + +![](https://i.imgur.com/C4Idbuh.png) + +By using ExDoc to also generate docs for Erlang-based projects, we can have more consistency in the user experience along the BEAM ecosystem. See the great [`rebar3_ex_doc`](https://hexdocs.pm/rebar3_ex_doc/) plugin to get started. + +### Bonus: Doctests + +When writing a function's documentation, it's helpful to offer code examples of how that function works. For example, here's the documentation of the `Enum.any?/1` function from Elixir's standard library: + +```elixir +@doc """ +Returns `true` if at least one element in `enumerable` is truthy. + +When an element has a truthy value (neither `false` nor `nil`) iteration stops +immediately and `true` is returned. In all other cases `false` is returned. + +## Examples + + iex> Enum.any?([false, false, false]) + false + + iex> Enum.any?([false, true, false]) + true + + iex> Enum.any?([]) + false + +""" +``` + +To ensure examples do not get out of date, Elixir's test framework (ExUnit) provides a feature called doctests that allows developers to test the examples in their documentation. Doctests work by parsing out code samples starting with `iex>` from the documentation. + +Although this is not a feature of ExDoc, it is an essential part of Elixir's developer and documentation experience. + +## Wrap up + +As we can see, ExDoc has evolved a lot throughout the years! + +As it continues to evolve into a more and more comprehensive documentation tool, we want to enable developers to keep investing more time writing the documentation itself instead of needing to spend time building custom documentation tools and websites. + +The best part is that all you need to do to leverage many of those features is to simply document your code using the `@doc` attribute! + + +Here's to a continuously improving documentation experience for the next years. From 8da3ed266d077d84d39e8fe4d6c306082736d4ff Mon Sep 17 00:00:00 2001 From: Andrea leopardi Date: Fri, 23 Dec 2022 07:59:30 +0100 Subject: [PATCH 1539/1761] Add alt text to all images in the "ExDoc cheatsheets" blog post --- ...-improve-the-developer-experience.markdown | 107 +++++++++--------- 1 file changed, 56 insertions(+), 51 deletions(-) diff --git a/_posts/2022-12-22-cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience.markdown b/_posts/2022-12-22-cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience.markdown index d397cecc5..0c029806c 100644 --- a/_posts/2022-12-22-cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience.markdown +++ b/_posts/2022-12-22-cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience.markdown @@ -10,69 +10,66 @@ ExDoc has a cool new feature, [cheatsheets](https://hexdocs.pm/ex_doc/cheatsheet In this blog post, we'll explain what that new feature is and the motivation behind it. We'll also take the opportunity to highlight other ExDoc features that show how it has been evolving to make the documentation experience in Elixir better and better. -## What are ExDoc Cheatsheets and how they improve the documentation experience -ExDoc's Cheatsheets are Markdown files with the `.cheatmd` extension. You can see [an example](https://hexdocs.pm/ecto/crud.html) of how the Ecto project is using them. +## What are ExDoc cheatsheets and how they improve the documentation experience -Writing and reading cheatsheets is not exactly new to developers. What ExDoc brings to the table is the possibility of integrating cheatsheets alongside the rest of the documentation of an Elixir project, instead of hosting it in a different place. +ExDoc's cheatsheets are Markdown files with the `.cheatmd` extension. You can see [an example](https://hexdocs.pm/ecto/crud.html) of how the Ecto project is using them. -Developers need different kinds of docs at different times. When one is learning about a new library, a guide format is proper. When one needs to know if a library can solve a specific problem, an API reference can be more appropriate. When someone wants to remember a couple of functions they already used from that library, a cheatsheet could be more practical. +Writing and reading cheatsheets is not exactly new to developers. What ExDoc brings to the table is the possibility of integrating cheatsheets alongside the rest of the documentation of an Elixir project, instead of hosting them in a different place. -Imagine if you had to go to a different place for every type of documentation you're looking for. That would make a very fragmented experience, not only for readers of documentation but also for writers. +Developers need different kinds of documentation at different times. When one is learning about a new library, a guide format is proper. When one needs to know if a library can solve a specific problem, an API reference can be more appropriate. When someone wants to remember a couple of functions they already used from that library, a cheatsheet could be more practical. -ExDoc Cheatsheets represent one step further in the direction of making documentation in Elixir an even more comprehensive and integrated experience. +Imagine if you had to go to a different place for every type of documentation you're looking for. That would make a very fragmented experience, not only for readers of documentation but also for writers. -ExDoc Cheatsheets are inspired by [devhints.io](https://devhints.io) from [Rico Sta. Cruz](https://twitter.com/rstacruz), and were contributed by [Paulo Valim](https://twitter.com/paulovalim) and [Yordis Prieto](https://twitter.com/alchemist_ubi). +ExDoc cheatsheets represent one step further in the direction of making documentation in Elixir an even more comprehensive and integrated experience. +ExDoc cheatsheets are inspired by [devhints.io](https://devhints.io) from [Rico Sta. Cruz](https://twitter.com/rstacruz), and were contributed by [Paulo Valim](https://twitter.com/paulovalim) and [Yordis Prieto](https://twitter.com/alchemist_ubi). ## Eight features that show how ExDoc has improved developer experience over time -We added Cheatsheets to ExDoc because we value developer experience and believe documentation is a core aspect of it. +We added cheatsheets to ExDoc because we value developer experience and believe documentation is a core aspect of it. Since the beginning, one of Elixir's principles is that documentation should be a first-class citizen. What this idea means to us is that documentation should be easy to write and easy to read. ExDoc has been continuously evolving over the years, guided by this principle. Here are some of the features added to ExDoc over the years that make reading and writing documentation in Elixir a joy. ### Beautiful and usable design -As developers, we may not have the skill to make beautifully designed UIs. That doesn't mean we don't appreciate it. -Here's what ExDoc-based documentation looked like almost ten years ago, with its original layout based on [YARD](https://yardoc.org/). +As developers, we may not have the skill to make beautifully designed UIs. That doesn't mean we don't appreciate it. Here's what documentation generated with ExDoc looked like almost ten years ago, with its original layout based on [YARD](https://yardoc.org/): -![](https://i.imgur.com/O9xKjR8.jpg) +![Screenshot of the Phoenix v0.5.0 documentation generated with an early version +of ExDoc](https://i.imgur.com/O9xKjR8.jpg) Here's what it looks like today: -![](https://i.imgur.com/ZKI1T23.png) +![Screenshot of the Phoenix v1.6.15 documentation generated with current +ExDoc](https://i.imgur.com/ZKI1T23.png) -The evolution of ExDoc's design helped ExDoc-based documentation be more visually appealing and easier to read and navigate. +The evolution of ExDoc's design helped documentation be more visually appealing and easier to read and navigate. ### Links to source code -Sometimes you're reading the docs of a library, and you want to know more about the implementation of a function. Or you found something in the documentation that could be improved and wants to help. - -In those situations, it's helpful to go from the documentation to the source code. ExDoc makes that dead easy. +Sometimes you're reading the documentation of a library, and you want to know more about the implementation of a function. Or, you found something in the documentation that could be improved and wants to help. In those situations, it's helpful to go from the documentation to the source code. ExDoc makes that dead easy. For every module, function, or page, ExDoc gives you a link that you can click to go directly to the project's source code on GitHub: -For every module, function, or page, ExDoc gives you a link that you can click to go directly to the project's source code inside Github: - -![](https://i.imgur.com/PXvoeDk.gif) +![Short screencast of a user clicking on the "link to source code" button on the +documentation for a function](https://i.imgur.com/PXvoeDk.gif) ### Guides -One of the most common formats of library documentation is an API reference. But depending on your needs, that's not the most approachable format. For example,it's not optimal when you're just getting started with a library or when you want to learn how to solve a specific problem using it. -That's why ExDoc allows writing other types of docs besides API references, like Getting Started Guides or How-tos. +One of the most common formats of library documentation is an API reference. But depending on your needs, that's not the most approachable format. For example, it's not optimal when you're just getting started with a library or when you want to learn how to solve a specific problem using it. That's why ExDoc allows writing other types of docs besides API references, like *"Getting started" guides* or *How-tos*. Look at how [Ecto's documentation](https://hexdocs.pm/ecto/getting-started.html) uses that, for example: -![](https://i.imgur.com/KInZb4x.gif) +![Screencast of a user exploring the guides in the Ecto +documentation](https://i.imgur.com/KInZb4x.gif) ### Custom grouping of modules, functions, and pages in the sidebar -Sometimes your library has dozens of modules. And sometimes, one given module has a large API surface area. In those situations showing the list of functions as a single large list may not be the most digestible way to be consumed. - -For those situations, ExDoc allows modules, functions, or extra pages to be grouped in the sidebar in a way that makes more sense semantically. +Sometimes your library has dozens of modules. Sometimes, one given module has a large API surface area. In those situations, showing the list of functions as a single large list may not be the most digestible way to be consumed. For those cases, ExDoc allows modules, functions, or extra pages to be grouped in the sidebar in a way that makes more sense semantically. Here's an example of how Ecto use grouped functions for its `Repo` module: -![](https://i.imgur.com/ZE7N312.png) +![Screenshot of the sidebar of the Ecto documentation, showing grouped functions +in the `Ecto.Repo` module](https://i.imgur.com/ZE7N312.png) Instead of listing the ~40 functions of `Ecto.Repo` as a single extensive list, it presents them grouped by five cohesive topics: @@ -82,7 +79,7 @@ Instead of listing the ~40 functions of `Ecto.Repo` as a single extensive list, - Runtime API - User callbacks -The same functionality is available for modules and pages (guides, how-tos, etc). Phoenix is a [good example](https://hexdocs.pm/phoenix/overview.html) of how that's used. +The same functionality is available for modules and pages (guides, how-tos, and so on). Phoenix is a [good example](https://hexdocs.pm/phoenix/overview.html) of how that's used. ### Full-text search @@ -90,37 +87,47 @@ Sometimes you don't know or don't remember the name of the function that you're Although there's no function or module called "directory" in Elixir, when you type "directory" in [Elixir's documentation](https://hexdocs.pm/elixir/search.html?q=directory), it will return all the entries that have the word "directory" inside the documentation. It will even return entries with variations of the word "directory", like "directories", doing a fuzzy search. -![](https://i.imgur.com/IHHuej8.png) +![Screenshot of the result of searching for "directory" in the Elixir +documentation](https://i.imgur.com/IHHuej8.png) The search bar also supports autocompletion for module and function names: -![](https://i.imgur.com/2cmsuDi.gif) +![Screencast of a user typing the word "Enum" in the search bar of Elixir's +documentation and letting it autocomplete the module. Then, the user types +"Range" and both modules and functions show +up.](https://i.imgur.com/2cmsuDi.gif) -The best part is that full-text search is fully implemented on the client-side, which means ExDoc pages can be fully hosted as static pages anywhere. +The best part is that full-text search is fully implemented on the client-side, which means ExDoc pages can be fully hosted as static websites (for example on GitHub Pages). -### Keyboard shortcut to navigate to docs of other Hex packages +### Keyboard shortcuts to navigate to docs of other Hex packages -It's usual for an application to have many dependencies. And while coding, we usually need to read the documentation of more than one of those dependencies. +It's common for an application to have dependencies. While coding, we usually need to read the documentation of more than one of those dependencies. -One solution is to keep a window open for each package documentation we need. But ExDoc offers another one, a keyboard shortcut to search and go to another package documentation within the same window. +One solution is to keep a window open for the documentation of each dependency. However, ExDoc offers another option: a keyboard shortcut to search and go to another package documentation within the same window. Here's what it looks like: -![](https://i.imgur.com/I9uJxUF.gif[/img]) +![Screencast of a user enabling the `g` shortcut to search through dependencies +documentation and then using it to search for "phoenix_live" in the +documentation for Nerves.](https://i.imgur.com/I9uJxUF.gif) -And there are more keyboard shortcuts to help you navigate within and between documentation: +There are more keyboard shortcuts to help you navigate within and between documentation: -![](https://i.imgur.com/qdoNUx9.png) +![Screenshot of the keyboard shortcuts that you can enable in +ExDoc](https://i.imgur.com/qdoNUx9.png) ### A version dropdown to switch to other versions -Keeping our application updated with the latest versions of all its dependencies can be challenging. So, it's common to need to look at the documentation of an older version of a library we're using. ExDoc makes it very simple to do that. +Keeping our application updated with the latest versions of all its dependencies can be challenging. So, it's common to need to look at the documentation of an older version of a library we're using. ExDoc makes it simple to do that. When you access the documentation of a project, there's a dropdown that you can use to select the version you're looking for: -![](https://i.imgur.com/1krcY5g.gif) +![Screencast of a user typing the version dropdown under the application name in +the "timex" documentation, revealing all the +versions.](https://i.imgur.com/1krcY5g.gif) ### Livebook integration + [Livebook](https://livebook.dev/) is a web application for writing interactive and collaborative code notebooks in Elixir. One of the ways Elixir developers have been using Livebook is for documentation. Because of its interactivity capabilities, it enables the reader to play with the code right inside the documentation, which makes it great for tutorials and augmenting the user experience. @@ -129,21 +136,24 @@ With that in mind, ExDoc offers the possibility of integrating Livebook notebook Here's an [example of using Livebook inside ExDoc for writing a Usage Guide](https://hexdocs.pm/req_sandbox/usage.html): -![](https://i.imgur.com/FxOLs0Y.gif) +![Screencast of a user navigating through the "req_sandbox" documentation, +finding a Livebook, clicking "Run in Livebook", and using the Livebook that +opens up on their local machine.](https://i.imgur.com/FxOLs0Y.gif) ### Bonus: Erlang support -[EEP 48](https://www.erlang.org/eeps/eep-0048) proposed a standardized way for how BEAM languages could store API documentation. That allowed any BEAM language to read documentation generated by each other. +[EEP 48](https://www.erlang.org/eeps/eep-0048) proposed a standardized way for how BEAM languages could store API documentation. This allows any BEAM language to read documentation generated by each other. -By leveraging that work, ExDoc can generate docs for an Erlang project. For example, Telemetry is a library written in Erlang that has [its docs](https://hexdocs.pm/telemetry/readme.html) generated with ExDoc. +By leveraging that work, ExDoc can generate documentation for an Erlang project. For example, Telemetry is a library written in Erlang that has [its documentation](https://hexdocs.pm/telemetry/readme.html) generated with ExDoc. -![](https://i.imgur.com/C4Idbuh.png) +![Screenshot of "telemetry" documentation generated with +ExDoc](https://i.imgur.com/C4Idbuh.png) -By using ExDoc to also generate docs for Erlang-based projects, we can have more consistency in the user experience along the BEAM ecosystem. See the great [`rebar3_ex_doc`](https://hexdocs.pm/rebar3_ex_doc/) plugin to get started. +By using ExDoc to also generate documentation for Erlang-based projects, we can have more consistency in the user experience along the BEAM ecosystem. See the great [`rebar3_ex_doc`](https://hexdocs.pm/rebar3_ex_doc/) plugin to get started. ### Bonus: Doctests -When writing a function's documentation, it's helpful to offer code examples of how that function works. For example, here's the documentation of the `Enum.any?/1` function from Elixir's standard library: +When writing documentation, it's helpful to offer code examples. For instance, here's the documentation of the `Enum.any?/1` function from Elixir's standard library: ```elixir @doc """ @@ -166,17 +176,12 @@ immediately and `true` is returned. In all other cases `false` is returned. """ ``` -To ensure examples do not get out of date, Elixir's test framework (ExUnit) provides a feature called doctests that allows developers to test the examples in their documentation. Doctests work by parsing out code samples starting with `iex>` from the documentation. +To ensure examples do not get out of date, Elixir's test framework ExUnit provides a feature called **doctests**. This allows developers to test the examples in their documentation. Doctests work by parsing out code samples starting with `iex>` from the documentation. Although this is not a feature of ExDoc, it is an essential part of Elixir's developer and documentation experience. ## Wrap up -As we can see, ExDoc has evolved a lot throughout the years! - -As it continues to evolve into a more and more comprehensive documentation tool, we want to enable developers to keep investing more time writing the documentation itself instead of needing to spend time building custom documentation tools and websites. - -The best part is that all you need to do to leverage many of those features is to simply document your code using the `@doc` attribute! - +As we saw, ExDoc has evolved a lot throughout the years! As it continues to evolve into a more and more comprehensive documentation tool, we want to enable developers to keep investing more time writing the documentation itself instead of needing to spend time building custom documentation tools and websites. The best part is that all you need to do to leverage many of those features is to simply document your code using the `@doc` attribute! Here's to a continuously improving documentation experience for the next years. From 0bda5b291727c388d532c207a8002484d5b605f6 Mon Sep 17 00:00:00 2001 From: Luke Bakken Date: Thu, 29 Dec 2022 14:49:54 -0800 Subject: [PATCH 1540/1761] Add chocolatey install instructions (#1666) https://github.com/chocolatey-beam/elixir-package --- install.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.markdown b/install.markdown index ec26370af..25f13bd8a 100644 --- a/install.markdown +++ b/install.markdown @@ -96,6 +96,9 @@ The preferred option for installing Elixir. Choose your operating system and too * Install Erlang: `scoop install erlang` * Install Elixir: `scoop install elixir` + - Using [Chocolatey](https://community.chocolatey.org/): + * Install Elixir (installs Erlang as a dependency): `choco install elixir` + ### Raspberry Pi and embedded devices To build and package an Elixir application, with the whole operating system, and burn that into a disk or deploy it overwhere, [check out the Nerves project](https://www.nerves-project.org). From 8dad1a0918f95200a7d8b9f28585d556e1e8ce67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 14 Jan 2023 16:32:11 +0100 Subject: [PATCH 1541/1761] Release v1.14.3 --- _data/elixir-versions.yml | 2 +- elixir.csv | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 1daf12931..58c8e5181 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_14: name: v1.14 minimum_otp: 23.0 otp_versions: [25, 24, 23] - version: 1.14.1 + version: 1.14.3 docs_zip: true v1_13: diff --git a/elixir.csv b/elixir.csv index c16e30a43..d0378d2b3 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512,min_otp_release +1.14.3,https://github.com/elixir-lang/elixir/releases/download/v1.14.3/elixir-otp-25.zip,release,1,f20a478e230be88c78a74976f4ef4452ca270585,7ad4377da7576d3a9147ccf39a0e05a82b2eb6767181c647d1fcc323ae005cdc,25.0 1.14.2,https://github.com/elixir-lang/elixir/releases/download/v1.14.2/elixir-otp-25.zip,release,1,4bdbb762f102e6318388389a4b44e3a132534ae3,2ab159e875a8d407dde10ee279446d469022acf8128e4f390556ab44e8918a06,25.0 1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5,25.0 1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0,25.0 From 309d2ceb38137499a0ac996c500b75adbba4ed12 Mon Sep 17 00:00:00 2001 From: Zachary LeFevre Date: Thu, 19 Jan 2023 17:50:38 -0600 Subject: [PATCH 1542/1761] Typo fix. "should we" => "we should" (#1667) --- getting-started/protocols.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 4e782c4ce..29193e918 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -166,7 +166,7 @@ end The implementation above is arguably not a reasonable one. For example, it makes no sense to say that the size of a `PID` or an `Integer` is `0`. -However, should we be fine with the implementation for `Any`, in order to use such implementation we would need to tell our struct to explicitly derive the `Size` protocol: +However, we should be fine with the implementation for `Any`, in order to use such implementation we would need to tell our struct to explicitly derive the `Size` protocol: ```elixir defmodule OtherUser do From d1a63f26fad142a5daabd855e476ce4f42da9ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 21 Jan 2023 11:12:47 +0100 Subject: [PATCH 1543/1761] Update install.markdown --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 25f13bd8a..b15b6cfcb 100644 --- a/install.markdown +++ b/install.markdown @@ -88,7 +88,7 @@ The preferred option for installing Elixir. Choose your operating system and too ### Windows - Using our web installer: - * [Download the installer](https://github.com/elixir-lang/elixir-windows-setup/releases/download/v2.3/elixir-websetup.exe) + * [Download the installer](https://github.com/elixir-lang/elixir-windows-setup/releases/download/v2.4/elixir-websetup.exe) * Click next, next, ..., finish * If you run into issues, check out the [Windows Installer issues tracker](https://github.com/elixir-lang/elixir-windows-setup) From 5acd2174a6f39ffaa0038107624cbffe22b33f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 29 Jan 2023 21:35:35 +0100 Subject: [PATCH 1544/1761] Add more information on :extra_applications --- getting-started/erlang-libraries.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index cf26c9982..5719d9175 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -69,6 +69,11 @@ def application do end ``` +Any module that is not part of the `:kernel` or `:stdlib` Erlang applications +must have their application explicitly listed in your `mix.exs`. You can find +the application name of any Erlang module in the Erlang documentation, immediately +below the Erlang logo in the sidebar. + ## The digraph module [The digraph module](http://www.erlang.org/doc/man/digraph.html) (as well as From 69d02c58c8f2e1ee4c16002467e21dc72fc93c50 Mon Sep 17 00:00:00 2001 From: Daniel <97473619+daniel-cavalcante@users.noreply.github.com> Date: Fri, 3 Feb 2023 12:01:43 -0300 Subject: [PATCH 1545/1761] Update keywords-and-maps.markdown (#1668) The phrase "In particular, keyword lists are 2-item tuples where the first element ..." states that a keyword list *is* a 2-item tuple. As someone who is just reading about such concepts for the first time, I have found it to be a source of confusion, because in reality a keyword list is a list where each element is a 2-item tuple (this is accurate). --- getting-started/keywords-and-maps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index b422bc770..861834796 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -39,7 +39,7 @@ iex> String.split("1 2 3", " ", trim: true) ["1", "2", "3"] ``` -As the name implies, keyword lists are simply lists. In particular, keyword lists are 2-item tuples where the first element (the key) is an atom and the second element can be any value. Both representations are the same: +As the name implies, keyword lists are simply lists. In particular, they are lists consisting of 2-item tuples where the first element (the key) is an atom and the second element can be any value. Both representations are the same: ```elixir iex> [{:trim, true}] == [trim: true] From c235ffdb6e8fa0c2264f2a04dada4f910ae60d78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 4 Feb 2023 09:58:51 +0100 Subject: [PATCH 1546/1761] Mention doctest/1 early on --- getting-started/mix-otp/docs-tests-and-with.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index fcaff6e68..b6280b96e 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -36,7 +36,9 @@ On the language homepage, we mention that Elixir makes documentation a first-cla In this section, we will implement the parsing functionality, document it and make sure our documentation is up to date with doctests. This helps us provide documentation with accurate code samples. -Let's create our command parser at `lib/kv_server/command.ex` and start with the doctest: +We need two steps to achieve this: first we write the documentation and then we instruct ExUnit to extract and run the examples in it by calling [`ExUnit.DocTest.doctest/1`])(https://hexdocs.pm/ex_unit/ExUnit.DocTest.html#doctest/1). + +Let's start by creating an empty definition of the parsing function with documentation at `lib/kv_server/command.ex`: ```elixir defmodule KVServer.Command do From cd7a6a197cbdad3f19b061c487f6d48f647edd86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 4 Feb 2023 09:59:06 +0100 Subject: [PATCH 1547/1761] Fix typo --- getting-started/mix-otp/docs-tests-and-with.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index b6280b96e..95153c9c5 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -36,7 +36,7 @@ On the language homepage, we mention that Elixir makes documentation a first-cla In this section, we will implement the parsing functionality, document it and make sure our documentation is up to date with doctests. This helps us provide documentation with accurate code samples. -We need two steps to achieve this: first we write the documentation and then we instruct ExUnit to extract and run the examples in it by calling [`ExUnit.DocTest.doctest/1`])(https://hexdocs.pm/ex_unit/ExUnit.DocTest.html#doctest/1). +We need two steps to achieve this: first we write the documentation and then we instruct ExUnit to extract and run the examples in it by calling [`ExUnit.DocTest.doctest/1`](https://hexdocs.pm/ex_unit/ExUnit.DocTest.html#doctest/1). Let's start by creating an empty definition of the parsing function with documentation at `lib/kv_server/command.ex`: From 6c0588634bb4302ea675b1af5d2b8e196eebb2c2 Mon Sep 17 00:00:00 2001 From: Luis Hankel Date: Mon, 6 Feb 2023 15:47:41 +0100 Subject: [PATCH 1548/1761] Fix typo (#1671) --- getting-started/try-catch-and-rescue.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 184159023..330bfabb9 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -108,7 +108,7 @@ Other times, you may fully expect a certain file to exist, and in case it does n The second approach also works because, as discussed in the [Processes](/getting-started/processes.html) chapter, all Elixir code runs inside processes that are isolated and don't share anything by default. Therefore, an unhandled exception in a process will never crash or corrupt the state of another process. This allows us to define supervisor processes, which are meant to observe when a process terminates unexpectedly, and start a new one in its place. -At the end of the day, "fail fast" / "let it crash" is a way of saying that, when something _unexpected_ happens, it is best to start from scratch within a new processes, freshly started by a supervisor, rather than blindly trying to rescue all possible error cases without the full context of when and how they can happen. +At the end of the day, "fail fast" / "let it crash" is a way of saying that, when something _unexpected_ happens, it is best to start from scratch within a new process, freshly started by a supervisor, rather than blindly trying to rescue all possible error cases without the full context of when and how they can happen. ### Reraise From 8dafd7e03720f53fc79d67365fca2553d3a2ab95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 19 Feb 2023 11:14:15 +0100 Subject: [PATCH 1549/1761] Clarify links --- getting-started/modules-and-functions.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/modules-and-functions.markdown b/getting-started/modules-and-functions.markdown index 852b73482..b561e95e7 100644 --- a/getting-started/modules-and-functions.markdown +++ b/getting-started/modules-and-functions.markdown @@ -122,7 +122,7 @@ IO.puts Math.zero?([1, 2, 3]) #=> ** (FunctionClauseError) IO.puts Math.zero?(0.0) #=> ** (FunctionClauseError) ``` -*The trailing question mark in `zero?` means that this function returns a boolean; see [Naming Conventions](https://hexdocs.pm/elixir/main/naming-conventions.html#trailing-question-mark-foo).* +The trailing question mark in `zero?` means that this function returns a boolean. To learn more about the naming conventions for modules, function names, variables and more in Elixir, see [Naming Conventions](https://hexdocs.pm/elixir/naming-conventions.html). Giving an argument that does not match any of the clauses raises an error. @@ -249,7 +249,7 @@ IO.puts Concat.join("Hello", "world", "_") #=> Hello_world IO.puts Concat.join("Hello") #=> Hello ``` -*The leading underscore in `_sep` means that the variable will be ignored in this function; see [Naming Conventions](https://hexdocs.pm/elixir/main/naming-conventions.html#underscore-_foo).* +When a variable is not used by a function or a clause, we add a leading underscore (`_`) to its name to signal this intent. This rule is also covered in our [Naming Conventions](https://hexdocs.pm/elixir/main/naming-conventions.html#underscore-_foo) document. When using default values, one must be careful to avoid overlapping function definitions. Consider the following example: From 3d749297928822fd894382d70f09624e9629bb96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 19 Feb 2023 11:17:01 +0100 Subject: [PATCH 1550/1761] Link to structural comparison --- getting-started/basic-operators.markdown | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 183279eea..676fa7702 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -93,17 +93,6 @@ iex> 1 === 1.0 false ``` -In Elixir, we can compare two different data types: - -```elixir -iex> 1 < :atom -true -``` - -The reason we can compare different data types is pragmatism. Sorting algorithms don't need to worry about different data types in order to sort. The sorting order, from lower to higher, is: - - number, atom, reference, function, port, pid, tuple, map, list, bitstring - -You don't actually need to memorize this; it's enough to know that it exists. For more information, check the [reference page on operators and ordering](https://hexdocs.pm/elixir/operators.html). +We say these operators perform _structural comparison_. For more information, you can read our dumcentation on [Structural vs Semantic comparisons](https://hexdocs.pm/elixir/Kernel.html#module-structural-comparison). In the next chapter, we are going to discuss pattern matching through the use of `=`, the match operator. From 37063abef750a4263d48ea4022634b804dea32ff Mon Sep 17 00:00:00 2001 From: Feynman Liang Date: Mon, 20 Feb 2023 10:52:50 -0800 Subject: [PATCH 1551/1761] Fix typo (#1672) --- getting-started/basic-operators.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 676fa7702..217814092 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -93,6 +93,6 @@ iex> 1 === 1.0 false ``` -We say these operators perform _structural comparison_. For more information, you can read our dumcentation on [Structural vs Semantic comparisons](https://hexdocs.pm/elixir/Kernel.html#module-structural-comparison). +We say these operators perform _structural comparison_. For more information, you can read our documentation on [Structural vs Semantic comparisons](https://hexdocs.pm/elixir/Kernel.html#module-structural-comparison). In the next chapter, we are going to discuss pattern matching through the use of `=`, the match operator. From f0493ab85b1a91b3352887ee407f8f0aa6fb4e99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 6 Mar 2023 14:21:23 +0100 Subject: [PATCH 1552/1761] Update optional syntax page --- getting-started/optional-syntax.markdown | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/getting-started/optional-syntax.markdown b/getting-started/optional-syntax.markdown index fab1292e8..d3220dae5 100644 --- a/getting-started/optional-syntax.markdown +++ b/getting-started/optional-syntax.markdown @@ -69,7 +69,11 @@ Now let's remove the conveniences one by one: if(variable?, [{:do, Call.this()}, {:else, Call.that()}]) ``` -That's it! Those four rules outline the optional syntax available in Elixir. Those rules apply everywhere consistently, regardless of the construct you are invoking. Whenever you have any questions, this quick walk-through has you covered. +That's it! Those four rules outline the optional syntax available in Elixir. + +To understand why these rules matter, we can briefly compare Elixir with many other programming languages. Most programming languages has several keywords for defining methods, functions, conditionals, loops, and so forth. Each of those keywords have their own syntax rules attached to them. + +However, in Elixir, the syntax for defining modules, functions, conditionals, and so on all use the syntax rules above! None of these language features require special "keywords" in the language. At the end, learning Elixir requires knowing less syntax because the language is built on fewer rules. The other benefit is that developers can also extend the language in a way that is consistent with the language itself, since the constructs for designing and extending the language are the same! At the end of the day, those rules are what enables us to write: @@ -89,4 +93,6 @@ defmodule(Math, [ ]) ``` +Whenever you have any questions, this quick walk-through has you covered. + Finally, if you are worried about when to apply those rules, keep in mind that those concerns are handled by the Elixir formatter. In our day to day, Elixir developers use the [`mix format`](https://hexdocs.pm/mix/Mix.Tasks.Format.html) task to format our codebases according to a well-defined set of rules defined by the Elixir team and the community. For instance, `mix format` will always add parentheses to function calls unless explicitly configured to not do so. This ensures all codebases in your company and in the community follow the same standards. From 52b1740da69133a5aadb9b2082e9855a4bc26fb9 Mon Sep 17 00:00:00 2001 From: Mikko Ahlroth Date: Tue, 7 Mar 2023 11:02:33 +0200 Subject: [PATCH 1553/1761] Fix version check command (#1673) The current command proposed for checking the Erlang version is `erl -s halt`, but that makes `init` call the module `halt`, which does not exist, and it results in a crash. This may mislead users into thinking their Erlang version is not working properly. In this change the module name is added so that it calls `erlang:halt` correctly. This results in no crash. --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index b15b6cfcb..c55efc619 100644 --- a/install.markdown +++ b/install.markdown @@ -177,7 +177,7 @@ The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or * [Precompiled packages for some Unix-like installations](https://www.erlang-solutions.com/resources/download.html) * [A general list of installation methods from the Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/). -After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl -s halt`. You will see some information similar to: +After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl -s erlang halt`. You will see some information similar to: Erlang/OTP {{ stable.minimum_otp }} [64-bit] [smp:2:2] [...] From fb825092586c7140af3959474827ed82561b6eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20Bara=C3=BAna?= Date: Thu, 9 Mar 2023 08:24:11 -0300 Subject: [PATCH 1554/1761] Add SparkMeter case (#1674) --- _posts/2023-03-10-sparkmeter-case.markdown | 123 ++++++++++++++++++ .../cases/bg/sparkmeter-new-architecture.png | Bin 0 -> 52110 bytes .../cases/bg/sparkmeter-old-architecture.png | Bin 0 -> 47124 bytes images/cases/logos/sparkmeter.png | Bin 0 -> 8104 bytes 4 files changed, 123 insertions(+) create mode 100644 _posts/2023-03-10-sparkmeter-case.markdown create mode 100644 images/cases/bg/sparkmeter-new-architecture.png create mode 100644 images/cases/bg/sparkmeter-old-architecture.png create mode 100644 images/cases/logos/sparkmeter.png diff --git a/_posts/2023-03-10-sparkmeter-case.markdown b/_posts/2023-03-10-sparkmeter-case.markdown new file mode 100644 index 000000000..e3c43c00a --- /dev/null +++ b/_posts/2023-03-10-sparkmeter-case.markdown @@ -0,0 +1,123 @@ +--- +layout: post +title: "Embedded and cloud Elixir for grid-management at Sparkmeter" +author: Hugo Baraúna +category: Elixir in Production +excerpt: A case study of how Elixir is being used at SparkMeter. +logo: /images/cases/logos/sparkmeter.png +tags: embedded nerves +--- + +*Welcome to our series of case studies about companies using Elixir in production. [See all](https://elixir-lang.org/cases.html) cases we have published so far.* + +[SparkMeter](https://www.sparkmeter.io/) is a company on a mission to increase access to electricity. They offer grid-management solutions that enable utilities in emerging markets to run financially-sustainable efficient, and reliable systems. + +Elixir has played an important role in simplifying SparkMeter systems by providing a unified developer experience across their products. Elixir's versatility in different domains, such as embedded software, data processing, and HTTP APIs, proved to be a valuable asset to a team who aims to release robust products quickly and confidently. + +Two of their products are smart electrical meters and grid-management software. These can be used to measure electricity usage, gather health information about an electrical grid, and manage billing. + +Here's an overview of their architecture: + +![SparkMeter architecture generation one](/images/cases/bg/sparkmeter-old-architecture.png) + +The meters are embedded devices responsible for collecting measures such as electricity usage. They communicate with each other via a mesh network and also communicate with the grid edge management unit. The grid edge management unit is an embedded system that receives and processes data from up to thousands of meters. The grid edge management unit also communicates with servers running in the cloud. Those servers send and receive data to the grid edge management units and process it for use by internal systems and user-facing software. + +## The challenge + +The infrastructure in which their embedded devices are deployed is not reliable. The cellular network used for communication between the ground and the cloud could fail, and the electricity supply to the embedded systems could go down. Therefore, their system needed to be fault-tolerant, and they needed to build equipment that didn't require constant field maintenance. + +In light of these requirements, they identified areas for improvement in the first generation of their product. One of the things they needed to improve was the development of a new grid edge management unit. Additionally, their product was mission-critical, so they wanted a technology they could confidently put into production and one that would not take more than a year of development and QA before releasing a new generation of their product. + +That's when they discovered Elixir and Nerves. + +## The trade-offs of adopting Elixir and Nerves +Nerves is an open-source platform that combines the Erlang virtual machine and Elixir ecosystem to build and deploy embedded systems. + +When considering the adoption of Elixir and [Nerves](https://nerves-project.org/), SparkMeter recognized many advantages the technologies offered. + +Elixir helped them meet the requirement of building a distributed and fault-tolerant system. That's because Elixir leverages the power of the Erlang VM and the OTP framework, which were designed with that requirement in mind. + +Regarding Nerves, they saw it as an entire ecosystem for doing embedded development with many advantages. For example, it has a good story for doing local development and going from that to [deploying](https://www.nerves-hub.org/) on an embedded device. It makes it easy to connect to an embedded device for iterative development. And it also enables fine-grained control of system boot, so they can handle scenarios when certain parts of the system won't start. + +That said, they had two concerns, the growth of Nerves and finding talent with expertise in the Elixir/Nerves stack. + +They wanted to ensure that Nerves would continue to grow. But they realized that even if it didn't, the benefits Nerves was already offering could give them a lot of leverage. Here are's what their senior VP of engineering, Jon Thacker, had to say about that: + +> Without Nerves, we would be on our own to figure out a lot. How to do distribution, the development environment, and how to support different architectures. So it really is a batteries-included framework for doing production-grade embedded systems. +> +> \- *Jon Thacker, Senior VP of Engineering* + +When we interviewed Jon for this case study, they had already been using Elixir and Nerves for more than two years. And with the benefit of hindsight, here's what he said about adopting Nerves: + +> Making sure that Nerves continued to grow was a concern. But it has done so and is showing a very positive trajectory. It was a calculated risk and, as it turns out, it was the correct choice. +> +> \- *Jon Thacker, Senior VP of Engineering* + +When it came to finding talent, they approached the problem in two ways. First, they started to build the pilot with a contractor to ensure that the staffing risk didn't affect their timeline. But they also wanted to have an internal team to take ownership of the product in the long term. So, shortly after finishing the first version of the new system, they hired two engineers with experience in Elixir, Michael Waud and Benjamin Milde. + +Besides hiring people with previous experience in Elixir, Jon noticed that training their embedded engineers in Elixir was also a viable option. Here's what he told us about that: + +> I'm traditionally an embedded engineer, and I only learned Elixir as part of this project. However, transferring my mental model was so easy that I do believe that we would be capable of training other embedded engineers as well. +> +> \- *Jon Thacker, Senior VP of Engineering* + +## The new system + +SparkMeter used Elixir for the ground (embedded) and cloud aspects of the new system they built. Here is an overview of the architecture: + +![SparkMeter architecture generation two](/images/cases/bg/sparkmeter-new-architecture.png) + +For the firmware of the grid edge management unit, they used Nerves. For the hardware, they built on top of a BeagleBone Black device. + +The communication between the grid edge management unit and the meters was via radio, using Rust to manage the radio hardware module inside the grid edge management unit. They used [Elixir Ports](https://hexdocs.pm/elixir/1.13.4/Port.html) to communicate with Rust and process the data from the meters. + +Elixir was also used for communication with the cloud servers via 3G or Edge. This communication required bandwidth usage optimization due to the cost of sending large volumes of data through the cellular network. They evaluated various solutions like REST, CoAP, MQTT, Kafka, and Websockets. Still, none fit their specific needs, so they created a custom protocol tailored to their use case, which involved designing a binary protocol and implementing a TCP server. Mike Waud discussed this in more detail in his talks at [ElixirConf 2021](https://www.youtube.com/watch?v=DJRL86mO4ks) and [2022](https://www.youtube.com/watch?v=BxTIUvyZHKw). + +The grid edge management unit also required a local web user interface that could be accessed on-site via Wi-Fi. For this, they used Phoenix and Liveview. + +The cloud aspect of the system is responsible for receiving data from the grid edge management units and sending control commands. It also runs a TCP server with their custom protocol, implemented in Elixir. The data received from the grid edge management units is stored in PostgreSQL and then consumed by a [Broadway-based](https://elixir-broadway.org/) data pipeline. + +The cloud system also exposes an HTTP API implemented with Phoenix. This API is consumed by other internal systems to interact with their PostgreSQL database. + +## Reaping the benefits + +During and after the development of the new generation of their system, SparkMeter observed many benefits. + +One of them was the reduction of the complexity of the grid edge management unit. The old version had more moving parts, using Ubuntu and Docker for the system level, Python/Celery and RabbitMQ for asynchronous processing, and Systemd for managing starting job processes. + +In the new version, they replaced all of that mainly with Elixir and Nerves. And for the parts where they needed tools that were not part of the BEAM stack, they could manage them like any other BEAM process by using [Elixir Ports](https://hexdocs.pm/elixir/1.13.4/Port.html). Here's what they said about that experience: + +> The new grid edge management unit has a very unified architecture. We can treat everything as an (Elixir) process. We have full control over the start and stop within a single ecosystem. It's just a very coherent storyline. +> +> \- *Jon Thacker, Senior VP Of Engineering* + +Another aspect they liked about Nerves was that it included security best practices. For example, they used SSL certificates on the client and the server side for communication between the ground and the cloud. Nerves made this easy through the [NervesKey component](https://github.com/nerves-hub/nerves_key), which enables the use of a hardware security module to protect the private key. Nerves also made it easy to keep up with system security patches, as the firmware generated by Nerves is a single bundle containing a minimal Linux platform and their application packaged as a [release](https://hexdocs.pm/mix/Mix.Tasks.Release.html). Here's what they said about security in Nerves: + +> It's easy enough to keep tracking upstream changes, so we're not getting behind the latest security patches. Nerves made that easy. Nerves just pushed us towards a good security model. +> +> \- *Jon Thacker, Senior VP Of Engineering* + +The communication between the ground and the cloud involved implementing a custom TCP server running in both parts of the system. Network programming is not an everyday task for many application developers, but Elixir helped them a lot with that: + +> I had never written a TCP client or a server before, it's just not something you even think about. But doing it in Elixir, particularly on the protocol level of sending binaries, was a pleasure to work with! Something that would be super tedious in an imperative language, with Elixir and pattern matching, is so clear! +> +> \- *Michael Waud, Senior Software Engineer* + +Another benefit they received from using Elixir on the ground and in the cloud was code reuse. For example, the encoding and decoding of their custom protocol were reused for both the embedded and cloud parts. + +> It would've been a much larger challenge if we hadn't been running Elixir in the cloud and on the grid edge management unit because we could write it once. The encoding and decoding we wrote once, we gained a lot from being able to share code. +> +> \- *Michael Waud, Senior Software Engineer* + +Michael also pointed out that by controlling the complete connection from the grid edge management unit up to the cloud, they could reduce bandwidth usage and improve resiliency, which were essential requirements for them. + +Finally, the new generation of their system also enabled them to release more often. Before, they were releasing new versions every quarter, but with the new system, they could release weekly when needed. + +## Summing up +In conclusion, SparkMeter's adoption of Elixir and Nerves has led to many benefits for their mission-critical grid-management system. + +Elixir was used to design elegant solutions across data processing, HTTP APIs, and within the embedded space. This unified development model led to a more productive and robust environment, with less complexity and fewer moving parts. + +Additionally, the ability to control the entire connection from the ground to the cloud resulted in reduced bandwidth usage and improved resiliency. Essential requirements, given the diversity of conditions and locations the grid edge management unit may be deployed at. + +The new system also allowed for more frequent releases, enabling SparkMeter to respond quickly to their business needs. \ No newline at end of file diff --git a/images/cases/bg/sparkmeter-new-architecture.png b/images/cases/bg/sparkmeter-new-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed82cabe2c3fabff737af8665051f911f7d4de1 GIT binary patch literal 52110 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 literal 0 HcmV?d00001 diff --git a/images/cases/bg/sparkmeter-old-architecture.png b/images/cases/bg/sparkmeter-old-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..a5acca6ba42b8d576f4b7eea52531cec29855209 GIT binary patch literal 47124 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 literal 0 HcmV?d00001 diff --git a/images/cases/logos/sparkmeter.png b/images/cases/logos/sparkmeter.png new file mode 100644 index 0000000000000000000000000000000000000000..500414dcbea4017e561ec486128f210a8100d4f8 GIT binary patch literal 8104 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 literal 0 HcmV?d00001 From c3b24610dae03d10e350dcd89fa0531cc12e0de7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 9 Mar 2023 12:39:31 +0100 Subject: [PATCH 1555/1761] Update Gemfile to run on Ruby 3.0 --- Gemfile | 2 + Gemfile.lock | 314 ++++++++++++++++++++++++++------------------------- 2 files changed, 165 insertions(+), 151 deletions(-) diff --git a/Gemfile b/Gemfile index 7d7467ebe..b3b1956fc 100644 --- a/Gemfile +++ b/Gemfile @@ -2,3 +2,5 @@ source 'https://rubygems.org' gem 'github-pages' gem 'json', '>= 2.0.0' + +gem "webrick", "~> 1.8" diff --git a/Gemfile.lock b/Gemfile.lock index dc60a269b..281b763e8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,11 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.11.1) - i18n (~> 0.7) - minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) - tzinfo (~> 1.1) + activesupport (7.0.4.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) addressable (2.8.1) public_suffix (>= 2.0.2, < 6.0) coffee-script (2.4.1) @@ -13,233 +13,244 @@ GEM execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.17.13) - ruby-enum (~> 0.5) - concurrent-ruby (1.1.10) - dnsruby (1.61.2) - addressable (~> 2.5) + commonmarker (0.23.8) + concurrent-ruby (1.2.2) + dnsruby (1.61.9) + simpleidn (~> 0.1) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) - ethon (0.12.0) - ffi (>= 1.3.0) + ethon (0.16.0) + ffi (>= 1.15.0) eventmachine (1.2.7) - execjs (2.7.0) - faraday (0.15.4) - multipart-post (>= 1.2, < 3) + execjs (2.8.1) + faraday (2.7.4) + faraday-net_http (>= 2.0, < 3.1) + ruby2_keywords (>= 0.0.4) + faraday-net_http (3.0.2) ffi (1.15.5) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (198) - activesupport (= 4.2.11.1) - github-pages-health-check (= 1.16.1) - jekyll (= 3.8.5) - jekyll-avatar (= 0.6.0) + github-pages (228) + github-pages-health-check (= 1.17.9) + jekyll (= 3.9.3) + jekyll-avatar (= 0.7.0) jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.1.5) + jekyll-commonmark-ghpages (= 0.4.0) jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.11.0) + jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.12.1) - jekyll-mentions (= 1.4.1) - jekyll-optional-front-matter (= 0.3.0) + jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.2.0) - jekyll-redirect-from (= 0.14.0) - jekyll-relative-links (= 0.6.0) - jekyll-remote-theme (= 0.3.1) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.5.0) - jekyll-sitemap (= 1.2.0) - jekyll-swiss (= 0.4.0) - jekyll-theme-architect (= 0.1.1) - jekyll-theme-cayman (= 0.1.1) - jekyll-theme-dinky (= 0.1.1) - jekyll-theme-hacker (= 0.1.1) - jekyll-theme-leap-day (= 0.1.1) - jekyll-theme-merlot (= 0.1.1) - jekyll-theme-midnight (= 0.1.1) - jekyll-theme-minimal (= 0.1.1) - jekyll-theme-modernist (= 0.1.1) - jekyll-theme-primer (= 0.5.3) - jekyll-theme-slate (= 0.1.1) - jekyll-theme-tactile (= 0.1.1) - jekyll-theme-time-machine (= 0.1.1) - jekyll-titles-from-headings (= 0.5.1) - jemoji (= 0.10.2) - kramdown (= 1.17.0) - liquid (= 4.0.0) - listen (= 3.1.5) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.12.0) + kramdown (= 2.3.2) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) mercenary (~> 0.3) - minima (= 2.5.0) - nokogiri (>= 1.8.5, < 2.0) - rouge (= 2.2.1) + minima (= 2.5.1) + nokogiri (>= 1.13.6, < 2.0) + rouge (= 3.26.0) terminal-table (~> 1.4) - github-pages-health-check (1.16.1) + github-pages-health-check (1.17.9) addressable (~> 2.3) dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 3.0) + public_suffix (>= 3.0, < 5.0) typhoeus (~> 1.3) - html-pipeline (2.11.0) + html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) http_parser.rb (0.8.0) - i18n (0.9.5) + i18n (1.12.0) concurrent-ruby (~> 1.0) - jekyll (3.8.5) + jekyll (3.9.3) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) - i18n (~> 0.7) + i18n (>= 0.7, < 2) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 2.0) - kramdown (~> 1.14) + kramdown (>= 1.17, < 3) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-avatar (0.6.0) - jekyll (~> 3.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.3.1) - commonmarker (~> 0.14) - jekyll (>= 3.7, < 5.0) - jekyll-commonmark-ghpages (0.1.5) - commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1) - rouge (~> 2) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.4.0) + commonmarker (~> 0.23.7) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) - jekyll-feed (0.11.0) - jekyll (~> 3.3) + jekyll-feed (0.15.1) + jekyll (>= 3.7, < 5.0) jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (2.12.1) - jekyll (~> 3.4) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) octokit (~> 4.0, != 4.4.0) - jekyll-mentions (1.4.1) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) html-pipeline (~> 2.3) - jekyll (~> 3.0) - jekyll-optional-front-matter (0.3.0) - jekyll (~> 3.0) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) jekyll-paginate (1.1.0) - jekyll-readme-index (0.2.0) - jekyll (~> 3.0) - jekyll-redirect-from (0.14.0) - jekyll (~> 3.3) - jekyll-relative-links (0.6.0) - jekyll (~> 3.3) - jekyll-remote-theme (0.3.1) - jekyll (~> 3.5) - rubyzip (>= 1.2.1, < 3.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.5.0) - jekyll (~> 3.3) - jekyll-sitemap (1.2.0) - jekyll (~> 3.3) - jekyll-swiss (0.4.0) - jekyll-theme-architect (0.1.1) - jekyll (~> 3.5) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.1.1) - jekyll (~> 3.5) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.1) - jekyll (~> 3.5) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.1) - jekyll (~> 3.5) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.1) - jekyll (~> 3.5) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.1) - jekyll (~> 3.5) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.1) - jekyll (~> 3.5) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.1) - jekyll (~> 3.5) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.1) - jekyll (~> 3.5) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.3) - jekyll (~> 3.5) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) jekyll-github-metadata (~> 2.9) jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.1.1) - jekyll (~> 3.5) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.1.1) - jekyll (~> 3.5) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.1) - jekyll (~> 3.5) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.1) - jekyll (~> 3.3) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - jemoji (0.10.2) + jemoji (0.12.0) gemoji (~> 3.0) html-pipeline (~> 2.2) - jekyll (~> 3.0) - json (2.3.0) - kramdown (1.17.0) - liquid (4.0.0) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) + jekyll (>= 3.0, < 5.0) + json (2.6.3) + kramdown (2.3.2) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - mini_portile2 (2.8.0) - minima (2.5.0) - jekyll (~> 3.5) + mini_portile2 (2.8.1) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.11.3) - multipart-post (2.1.1) - nokogiri (1.13.10) + minitest (5.18.0) + nokogiri (1.14.2) mini_portile2 (~> 2.8.0) racc (~> 1.4) - octokit (4.14.0) - sawyer (~> 0.8.0, >= 0.5.3) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.1.1) - racc (1.6.1) + public_suffix (4.0.7) + racc (1.6.2) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rouge (2.2.1) - ruby-enum (0.7.2) - i18n - ruby_dep (1.5.0) - rubyzip (2.0.0) + rexml (3.2.5) + rouge (3.26.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.2) + sawyer (0.9.2) addressable (>= 2.3.5) - faraday (> 0.8, < 2.0) + faraday (>= 0.17.3, < 3) + simpleidn (0.2.1) + unf (~> 0.1.4) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - typhoeus (1.3.1) + typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.10) - thread_safe (~> 0.1) - unicode-display_width (1.6.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (1.8.0) + webrick (1.8.1) PLATFORMS ruby @@ -247,6 +258,7 @@ PLATFORMS DEPENDENCIES github-pages json (>= 2.0.0) + webrick (~> 1.8) BUNDLED WITH - 2.1.4 + 2.3.7 From b174a2c207f628f19ee151517d769e47be92536a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 9 Mar 2023 12:39:42 +0100 Subject: [PATCH 1556/1761] Publish case --- ...3-03-09-embedded-and-cloud-elixir-at-sparkmeter.markdown} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename _posts/{2023-03-10-sparkmeter-case.markdown => 2023-03-09-embedded-and-cloud-elixir-at-sparkmeter.markdown} (98%) diff --git a/_posts/2023-03-10-sparkmeter-case.markdown b/_posts/2023-03-09-embedded-and-cloud-elixir-at-sparkmeter.markdown similarity index 98% rename from _posts/2023-03-10-sparkmeter-case.markdown rename to _posts/2023-03-09-embedded-and-cloud-elixir-at-sparkmeter.markdown index e3c43c00a..566105928 100644 --- a/_posts/2023-03-10-sparkmeter-case.markdown +++ b/_posts/2023-03-09-embedded-and-cloud-elixir-at-sparkmeter.markdown @@ -5,7 +5,7 @@ author: Hugo Baraúna category: Elixir in Production excerpt: A case study of how Elixir is being used at SparkMeter. logo: /images/cases/logos/sparkmeter.png -tags: embedded nerves +tags: nerves cloud phoenix --- *Welcome to our series of case studies about companies using Elixir in production. [See all](https://elixir-lang.org/cases.html) cases we have published so far.* @@ -114,10 +114,11 @@ Michael also pointed out that by controlling the complete connection from the gr Finally, the new generation of their system also enabled them to release more often. Before, they were releasing new versions every quarter, but with the new system, they could release weekly when needed. ## Summing up + In conclusion, SparkMeter's adoption of Elixir and Nerves has led to many benefits for their mission-critical grid-management system. Elixir was used to design elegant solutions across data processing, HTTP APIs, and within the embedded space. This unified development model led to a more productive and robust environment, with less complexity and fewer moving parts. -Additionally, the ability to control the entire connection from the ground to the cloud resulted in reduced bandwidth usage and improved resiliency. Essential requirements, given the diversity of conditions and locations the grid edge management unit may be deployed at. +Additionally, the ability to control the entire connection from the ground to the cloud resulted in reduced bandwidth usage and improved resiliency. This fulfills essential requirements, given the diversity of conditions and locations the grid edge management unit may be deployed at. The new system also allowed for more frequent releases, enabling SparkMeter to respond quickly to their business needs. \ No newline at end of file From 01a2b277d3da37649128a68ca8ad5d37736f2d9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 12:48:57 +0100 Subject: [PATCH 1557/1761] Bump acorn from 5.7.3 to 5.7.4 in /_epub (#1675) Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4. - [Release notes](https://github.com/acornjs/acorn/releases) - [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4) --- updated-dependencies: - dependency-name: acorn dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index 7f54e8b26..fe64d786d 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -27,9 +27,9 @@ } }, "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", "dev": true }, "acorn-jsx": { @@ -44,7 +44,7 @@ "acorn": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", "dev": true } } From 9aa4ec847d9dcd583dedc8663e1349dd440c2012 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 12:49:06 +0100 Subject: [PATCH 1558/1761] Bump kind-of from 6.0.2 to 6.0.3 in /_epub (#1676) Bumps [kind-of](https://github.com/jonschlinkert/kind-of) from 6.0.2 to 6.0.3. - [Release notes](https://github.com/jonschlinkert/kind-of/releases) - [Changelog](https://github.com/jonschlinkert/kind-of/blob/master/CHANGELOG.md) - [Commits](https://github.com/jonschlinkert/kind-of/compare/6.0.2...6.0.3) --- updated-dependencies: - dependency-name: kind-of dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- _epub/package-lock.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/_epub/package-lock.json b/_epub/package-lock.json index fe64d786d..90505fe7f 100644 --- a/_epub/package-lock.json +++ b/_epub/package-lock.json @@ -81,7 +81,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -2293,7 +2293,7 @@ "kind-of": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", "dev": true }, "plugin-error": { @@ -2416,7 +2416,7 @@ "kind-of": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", "dev": true }, "plugin-error": { @@ -2496,7 +2496,7 @@ "kind-of": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", "dev": true }, "plugin-error": { @@ -2731,7 +2731,7 @@ "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -2944,7 +2944,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -2985,7 +2985,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -3057,7 +3057,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -3285,9 +3285,9 @@ "dev": true }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "last-run": { @@ -3908,7 +3908,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -4653,7 +4653,7 @@ "kind-of": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", "dev": true }, "plugin-error": { @@ -4880,7 +4880,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -5305,7 +5305,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "requires": { "is-buffer": "^1.1.5" From 0c34ca2b675d5c3bbc6b2a04a5e0633aa7ebb160 Mon Sep 17 00:00:00 2001 From: Simon El Nahas Date: Sat, 11 Mar 2023 17:31:39 -0800 Subject: [PATCH 1559/1761] Fix typo in ets.markdown (#1678) --- getting-started/mix-otp/ets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index d5b5b52fd..06cabbe22 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -190,7 +190,7 @@ However, since `KV.Registry.create/2` is a cast operation, the command will retu 3. The command above returns `:error` 4. The registry creates the bucket and updates the cache table -To fix the failure we need to make `KV.Registry.create/2` synchronous by using `call/2` rather than `cast/2`. This will guarantee that the client will only continue after changes have been made to the table. Let's back to `lib/kv/registry.ex` and change the function and its callback as follows: +To fix the failure we need to make `KV.Registry.create/2` synchronous by using `call/2` rather than `cast/2`. This will guarantee that the client will only continue after changes have been made to the table. Let's go back to `lib/kv/registry.ex` and change the function and its callback as follows: ```elixir def create(server, name) do From 056f99c60c7147cc0a16fce9bbd5041099db8d4c Mon Sep 17 00:00:00 2001 From: Simon El Nahas Date: Sun, 12 Mar 2023 01:08:49 -0800 Subject: [PATCH 1560/1761] Update dependencies-and-umbrella-projects.markdown (#1677) --- .../mix-otp/dependencies-and-umbrella-projects.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown index 32a6534bc..6ffcedc29 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown @@ -198,7 +198,7 @@ deps_path: "../../deps", lockfile: "../../mix.lock", ``` -Those options mean all dependencies will be checked out to `kv_umbrella/deps`, and they will share the same build, config and lock files. We haven't talked about configuration yet, but from here we can build the intuition that all configuration and dependencies are shared across all projects in an umbrella, and it is not per application. +Those options mean all dependencies will be checked out to `kv_umbrella/deps`, and they will share the same build, config, and lock files. We haven't talked about configuration yet, but keep in mind all configuration and dependencies are shared across all projects in an umbrella, and it is not per application. The second change is in the `application` function inside `mix.exs`: From 4f0177fa095764f91250fb9f5ddf8d02eabcc075 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 09:55:51 +0100 Subject: [PATCH 1561/1761] Bump activesupport from 7.0.4.2 to 7.0.4.3 (#1679) Bumps [activesupport](https://github.com/rails/rails) from 7.0.4.2 to 7.0.4.3. - [Release notes](https://github.com/rails/rails/releases) - [Changelog](https://github.com/rails/rails/blob/v7.0.4.3/activesupport/CHANGELOG.md) - [Commits](https://github.com/rails/rails/compare/v7.0.4.2...v7.0.4.3) --- updated-dependencies: - dependency-name: activesupport dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 281b763e8..c2ab39fb5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.0.4.2) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) From 77b9691ef604e4d46cdc0f3be57ef6debafa0f95 Mon Sep 17 00:00:00 2001 From: Simon El Nahas Date: Fri, 17 Mar 2023 00:34:45 -0700 Subject: [PATCH 1562/1761] Suggestion for additional example for Macro.escape (#1680) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: José Valim --- getting-started/meta/quote-and-unquote.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown index 1374f475c..367ddbc1e 100644 --- a/getting-started/meta/quote-and-unquote.markdown +++ b/getting-started/meta/quote-and-unquote.markdown @@ -146,6 +146,8 @@ In some cases, you may need to inject such *values* into *quoted expressions*. T ```elixir iex> map = %{hello: :world} +iex> quote do: map +{:map, [], Elixir} iex> Macro.escape(map) {:%{}, [], [hello: :world]} ``` From 3ca21944490c0e7a8d9671bbbad50cc087f3593a Mon Sep 17 00:00:00 2001 From: Simon El Nahas Date: Fri, 17 Mar 2023 01:12:44 -0700 Subject: [PATCH 1563/1761] Update macros.markdown (#1681) As the example shows, and confirmed by executing the code locally it is a compile-time error. --- getting-started/meta/macros.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index fb81612f3..b522df71d 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -230,7 +230,7 @@ Many of the functions in the `Macro` module expect an environment. You can read Elixir also supports private macros via `defmacrop`. As private functions, these macros are only available inside the module that defines them, and only at compilation time. -It is important that a macro is defined before its usage. Failing to define a macro before its invocation will raise an error at runtime, since the macro won't be expanded and will be translated to a function call: +It is important that a macro is defined before its usage. Failing to define a macro before its invocation will raise a compilation error, since the macro won't be expanded and will be translated to a function call: ```elixir iex> defmodule Sample do From 99909c4526fab8a8bcc56e721489957c630ee13a Mon Sep 17 00:00:00 2001 From: Andrey Yugai Date: Mon, 20 Mar 2023 22:22:01 +0800 Subject: [PATCH 1564/1761] Point straight to elixir Slack workspace (#1682) --- _includes/important-links.html | 2 +- getting-started/introduction.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index a9c101ec9..55cceabc6 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -23,7 +23,7 @@

    Join the Community

  • @elixirlang on Twitter
  • #elixir on irc.libera.chat
  • Elixir Forum
  • -
  • Elixir on Slack
  • +
  • Elixir on Slack
  • Elixir on Discord
  • Meetups around the world
  • Wiki with events and resources maintained by the community
  • diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 5119a7c8d..821f95e16 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -75,7 +75,7 @@ When going through this getting started guide, it is common to have questions; a * [#elixir on irc.libera.chat](irc://irc.libera.chat/elixir) * [Elixir Forum](http://elixirforum.com) - * [Elixir on Slack](https://elixir-slackin.herokuapp.com/) + * [Elixir on Slack](https://elixir-lang.slack.com) * [Elixir on Discord](https://discord.gg/elixir) * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) From 5d6dd5b073edd17b832c677d8053fb4888202b29 Mon Sep 17 00:00:00 2001 From: code-anth Date: Tue, 21 Mar 2023 13:59:28 +0000 Subject: [PATCH 1565/1761] Update optional-syntax.markdown (#1683) --- getting-started/optional-syntax.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/optional-syntax.markdown b/getting-started/optional-syntax.markdown index d3220dae5..ca4ebfd0e 100644 --- a/getting-started/optional-syntax.markdown +++ b/getting-started/optional-syntax.markdown @@ -71,7 +71,7 @@ Now let's remove the conveniences one by one: That's it! Those four rules outline the optional syntax available in Elixir. -To understand why these rules matter, we can briefly compare Elixir with many other programming languages. Most programming languages has several keywords for defining methods, functions, conditionals, loops, and so forth. Each of those keywords have their own syntax rules attached to them. +To understand why these rules matter, we can briefly compare Elixir with many other programming languages. Most programming languages have several keywords for defining methods, functions, conditionals, loops, and so forth. Each of those keywords have their own syntax rules attached to them. However, in Elixir, the syntax for defining modules, functions, conditionals, and so on all use the syntax rules above! None of these language features require special "keywords" in the language. At the end, learning Elixir requires knowing less syntax because the language is built on fewer rules. The other benefit is that developers can also extend the language in a way that is consistent with the language itself, since the constructs for designing and extending the language are the same! From 404b088df07afb6a2823b7eb376e05ff8c178390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 22 Mar 2023 13:45:50 +0100 Subject: [PATCH 1566/1761] Remove Slack until situation is resolved --- _includes/important-links.html | 1 - getting-started/introduction.markdown | 1 - 2 files changed, 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index 55cceabc6..10671a616 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -23,7 +23,6 @@

    Join the Community

  • @elixirlang on Twitter
  • #elixir on irc.libera.chat
  • Elixir Forum
  • -
  • Elixir on Slack
  • Elixir on Discord
  • Meetups around the world
  • Wiki with events and resources maintained by the community
  • diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 821f95e16..48a86d546 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -75,7 +75,6 @@ When going through this getting started guide, it is common to have questions; a * [#elixir on irc.libera.chat](irc://irc.libera.chat/elixir) * [Elixir Forum](http://elixirforum.com) - * [Elixir on Slack](https://elixir-lang.slack.com) * [Elixir on Discord](https://discord.gg/elixir) * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) From 35fae883dbbd4a48de2581a02847d078aaa9b4dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 22 Mar 2023 17:25:19 +0100 Subject: [PATCH 1567/1761] Revert "Remove Slack until situation is resolved" This reverts commit 404b088df07afb6a2823b7eb376e05ff8c178390. --- _includes/important-links.html | 1 + getting-started/introduction.markdown | 1 + 2 files changed, 2 insertions(+) diff --git a/_includes/important-links.html b/_includes/important-links.html index 10671a616..55cceabc6 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -23,6 +23,7 @@

    Join the Community

  • @elixirlang on Twitter
  • #elixir on irc.libera.chat
  • Elixir Forum
  • +
  • Elixir on Slack
  • Elixir on Discord
  • Meetups around the world
  • Wiki with events and resources maintained by the community
  • diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 48a86d546..821f95e16 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -75,6 +75,7 @@ When going through this getting started guide, it is common to have questions; a * [#elixir on irc.libera.chat](irc://irc.libera.chat/elixir) * [Elixir Forum](http://elixirforum.com) + * [Elixir on Slack](https://elixir-lang.slack.com) * [Elixir on Discord](https://discord.gg/elixir) * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) From 86b983f0c38fa1810a538a7d2ccecc28bb471bdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 23 Mar 2023 15:53:35 +0100 Subject: [PATCH 1568/1761] Add note about Erlang/OTP 26 --- getting-started/introduction.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 821f95e16..80b58adf2 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -50,7 +50,7 @@ Please note that some details like version numbers may differ a bit in your sess It seems we are ready to go! We will use the interactive shell quite a lot in the next chapters to get a bit more familiar with the language constructs and basic types, starting in the next chapter. -> Note: if you are on Windows, you can also try `iex --werl` (`iex.bat --werl` on PowerShell) which may provide a better experience depending on which console you are using. +> Note: if you are on Windows and running on an Erlang/OTP version earlier than 26, you can also try `iex --werl` (`iex.bat --werl` on PowerShell) which may provide a better experience depending on which console you are using. ## Running scripts From b2d913f375e93a07e1f2bd90560365146a3f59e0 Mon Sep 17 00:00:00 2001 From: siiky <12852780+siiky@users.noreply.github.com> Date: Mon, 27 Mar 2023 16:09:11 +0100 Subject: [PATCH 1569/1761] Reorder `require` mention in `import` section (#1685) --- getting-started/alias-require-and-import.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index ce2a364a8..0008a54b2 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -90,7 +90,7 @@ Note that like the `alias` directive, `require` is also lexically scoped. We wil ## import -We use `import` whenever we want to access functions or macros from other modules without using the fully-qualified name. Note we can only import public functions, as private functions are never accessible externally. +We use `import` whenever we want to access functions or macros from other modules without using the fully-qualified name. Note we can only import public functions, as private functions are never accessible externally. `import`ing a module automatically `require`s it. For example, if we want to use the `duplicate/2` function from the `List` module several times, we can import it: @@ -114,7 +114,7 @@ defmodule Math do end ``` -In the example above, the imported `List.duplicate/2` is only visible within that specific function. `duplicate/2` won't be available in any other function in that module (or any other module for that matter). `import`ing a module automatically `require`s it. +In the example above, the imported `List.duplicate/2` is only visible within that specific function. `duplicate/2` won't be available in any other function in that module (or any other module for that matter). Note that `import`s are generally discouraged in the language. When working on your own code, prefer `alias` to `import`. From 55457887f82296527a7939c904240927bb9c923e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 3 Apr 2023 09:45:58 +0200 Subject: [PATCH 1570/1761] Release v1.14.4 --- _data/elixir-versions.yml | 2 +- elixir.csv | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 58c8e5181..424ff70c6 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_14: name: v1.14 minimum_otp: 23.0 otp_versions: [25, 24, 23] - version: 1.14.3 + version: 1.14.4 docs_zip: true v1_13: diff --git a/elixir.csv b/elixir.csv index d0378d2b3..765a9d9a2 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512,min_otp_release -1.14.3,https://github.com/elixir-lang/elixir/releases/download/v1.14.3/elixir-otp-25.zip,release,1,f20a478e230be88c78a74976f4ef4452ca270585,7ad4377da7576d3a9147ccf39a0e05a82b2eb6767181c647d1fcc323ae005cdc,25.0 +1.14.4,https://github.com/elixir-lang/elixir/releases/download/v1.14.4/elixir-otp-25.zip,release,1,2c52e5a2357030ecb31bbf3dff5835122b1658ab,a5b7aadfd896e691a6494f9079fcd6f1209adcbd93f2d40e5770d80edc0f33e6,25.0 1.14.2,https://github.com/elixir-lang/elixir/releases/download/v1.14.2/elixir-otp-25.zip,release,1,4bdbb762f102e6318388389a4b44e3a132534ae3,2ab159e875a8d407dde10ee279446d469022acf8128e4f390556ab44e8918a06,25.0 1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5,25.0 1.14.0,https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-25.zip,release,1,c7ff5116fed9ff7b34f07d3187a8c7c590a79626,55d5708605aa0c81c06acc284e1d40a2853942988f3a6c399759d8ad065e46d0,25.0 From 4183ffc858516c89d4c823289208be71ba2a488d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 5 Apr 2023 12:30:39 +0200 Subject: [PATCH 1571/1761] Update plausible reference --- _includes/top.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/top.html b/_includes/top.html index dfbab05d6..e030141aa 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -16,7 +16,7 @@ - + {% seo title=false %} From c4943c92fc651f726cb77a917305cbbc3eec3462 Mon Sep 17 00:00:00 2001 From: Taro <118569516+taronull@users.noreply.github.com> Date: Mon, 10 Apr 2023 13:03:54 -0400 Subject: [PATCH 1572/1761] Update typespecs-and-behaviours.markdown (#1688) --- getting-started/typespecs-and-behaviours.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index a2c94b663..38e84c1a5 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -142,6 +142,8 @@ end Modules adopting the `Parser` behaviour will have to implement all the functions defined with the `@callback` attribute. As you can see, `@callback` expects a function name but also a function specification like the ones used with the `@spec` attribute we saw above. Also note that the `term` type is used to represent the parsed value. In Elixir, the `term` type is a shortcut to represent any type. +`@callback` was initially for callbacks only. Then the idea evolved and people started using them for contract-driven programming. + ### Adopting behaviours Adopting a behaviour is straightforward: From fa981f844dc7e8fcf50ab020d8abd4425228c2e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 10 Apr 2023 19:04:51 +0200 Subject: [PATCH 1573/1761] Update typespecs-and-behaviours.markdown --- .../typespecs-and-behaviours.markdown | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 38e84c1a5..c54ebcc50 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -131,7 +131,7 @@ defmodule Parser do @doc """ Parses a string. """ - @callback parse(String.t) :: {:ok, term} | {:error, String.t} + @callback parse(String.t) :: {:ok, term} | {:error, atom} @doc """ Lists all supported file extensions. @@ -142,7 +142,36 @@ end Modules adopting the `Parser` behaviour will have to implement all the functions defined with the `@callback` attribute. As you can see, `@callback` expects a function name but also a function specification like the ones used with the `@spec` attribute we saw above. Also note that the `term` type is used to represent the parsed value. In Elixir, the `term` type is a shortcut to represent any type. -`@callback` was initially for callbacks only. Then the idea evolved and people started using them for contract-driven programming. +Behaviours are useful because you can now pass modules around as arguments and you can then _call back_ to any of the functions specified in the behaviour. For example, we can have a function that receives a filename, several parsers, and parses it with the appropriate parser based on its extension: + +```elixir +@spec parse_path(Path.t(), [module()]) :: {:ok, term} | {:error, atom} +def parse_path(filename, parsers) do + with {:ok, ext} <- parse_extension(filename), + {:ok, parser} <- find_parser(extension, parsers), + {:ok, contents} <- File.read(filename) do + parser.parse(contents) + end +end + +defp parse_extension(filename) do + if ext = Path.extname(filename) do + {:ok, ext} + else + {:error, :no_extension} + end +end + +defp find_parser(extension, parsers) do + if parser = Enum.find(parsers, fn parser -> ext in parser.extensions() end) do + {:ok, parser} + else + {:error, :no_matching_parser} + end +end +``` + +Of course, you could also invoke any parser directly: `CSVParser.parse(...)`. ### Adopting behaviours From 2fc094b12c4f02dc3686c5b724458b07dacc7f71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 10 Apr 2023 19:07:12 +0200 Subject: [PATCH 1574/1761] Update typespecs-and-behaviours.markdown --- .../typespecs-and-behaviours.markdown | 76 ++++++++----------- 1 file changed, 30 insertions(+), 46 deletions(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index c54ebcc50..62abc1485 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -142,40 +142,9 @@ end Modules adopting the `Parser` behaviour will have to implement all the functions defined with the `@callback` attribute. As you can see, `@callback` expects a function name but also a function specification like the ones used with the `@spec` attribute we saw above. Also note that the `term` type is used to represent the parsed value. In Elixir, the `term` type is a shortcut to represent any type. -Behaviours are useful because you can now pass modules around as arguments and you can then _call back_ to any of the functions specified in the behaviour. For example, we can have a function that receives a filename, several parsers, and parses it with the appropriate parser based on its extension: +### Implementing behaviours -```elixir -@spec parse_path(Path.t(), [module()]) :: {:ok, term} | {:error, atom} -def parse_path(filename, parsers) do - with {:ok, ext} <- parse_extension(filename), - {:ok, parser} <- find_parser(extension, parsers), - {:ok, contents} <- File.read(filename) do - parser.parse(contents) - end -end - -defp parse_extension(filename) do - if ext = Path.extname(filename) do - {:ok, ext} - else - {:error, :no_extension} - end -end - -defp find_parser(extension, parsers) do - if parser = Enum.find(parsers, fn parser -> ext in parser.extensions() end) do - {:ok, parser} - else - {:error, :no_matching_parser} - end -end -``` - -Of course, you could also invoke any parser directly: `CSVParser.parse(...)`. - -### Adopting behaviours - -Adopting a behaviour is straightforward: +Implementing a behaviour is straightforward: ```elixir defmodule JSONParser do @@ -185,7 +154,7 @@ defmodule JSONParser do def parse(str), do: {:ok, "some json " <> str} # ... parse JSON @impl Parser - def extensions, do: ["json"] + def extensions, do: [".json"] end ``` @@ -197,13 +166,13 @@ defmodule YAMLParser do def parse(str), do: {:ok, "some yaml " <> str} # ... parse YAML @impl Parser - def extensions, do: ["yml"] + def extensions, do: [".yml"] end ``` If a module adopting a given behaviour doesn't implement one of the callbacks required by that behaviour, a compile-time warning will be generated. -Furthermore, with `@impl` you can also make sure that you are implementing the **correct** callbacks from the given behaviour in an explicit manner. For example, the following parser implements both `parse` and `extensions`; however, thanks to a typo, `BADParser` is implementing `parse/0` instead of `parse/1`. +Furthermore, with `@impl` you can also make sure that you are implementing the **correct** callbacks from the given behaviour in an explicit manner. For example, the following parser implements both `parse` and `extensions`. However, thanks to a typo, `BADParser` is implementing `parse/0` instead of `parse/1`. ```elixir defmodule BADParser do @@ -220,22 +189,37 @@ end This code generates a warning letting you know that you are mistakenly implementing `parse/0` instead of `parse/1`. You can read more about `@impl` in the [module documentation](https://hexdocs.pm/elixir/main/Module.html#module-impl). -### Dynamic dispatch +### Using behaviours -Behaviours are frequently used with dynamic dispatching. For example, we could add a `parse!` function to the `Parser` module that dispatches to the given implementation and returns the `:ok` result or raises in cases of `:error`: +Behaviours are useful because you can now pass modules around as arguments and you can then _call back_ to any of the functions specified in the behaviour. For example, we can have a function that receives a filename, several parsers, and parses it with the appropriate parser based on its extension: ```elixir -defmodule Parser do - @callback parse(String.t) :: {:ok, term} | {:error, String.t} - @callback extensions() :: [String.t] +@spec parse_path(Path.t(), [module()]) :: {:ok, term} | {:error, atom} +def parse_path(filename, parsers) do + with {:ok, ext} <- parse_extension(filename), + {:ok, parser} <- find_parser(extension, parsers), + {:ok, contents} <- File.read(filename) do + parser.parse(contents) + end +end + +defp parse_extension(filename) do + if ext = Path.extname(filename) do + {:ok, ext} + else + {:error, :no_extension} + end +end - def parse!(implementation, contents) do - case implementation.parse(contents) do - {:ok, data} -> data - {:error, error} -> raise ArgumentError, "parsing error: #{error}" - end +defp find_parser(extension, parsers) do + if parser = Enum.find(parsers, fn parser -> ext in parser.extensions() end) do + {:ok, parser} + else + {:error, :no_matching_parser} end end ``` +Of course, you could also invoke any parser directly: `CSVParser.parse(...)`. + Note you don't need to define a behaviour in order to dynamically dispatch on a module, but those features often go hand in hand. From 138df8ea3452ac224ee0bd32c86745f8f4df8b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 10 Apr 2023 19:08:34 +0200 Subject: [PATCH 1575/1761] Update typespecs-and-behaviours.markdown --- getting-started/typespecs-and-behaviours.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 62abc1485..828761794 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -159,14 +159,14 @@ end ``` ```elixir -defmodule YAMLParser do +defmodule CSVParser do @behaviour Parser @impl Parser - def parse(str), do: {:ok, "some yaml " <> str} # ... parse YAML + def parse(str), do: {:ok, "some csv " <> str} # ... parse CSV @impl Parser - def extensions, do: [".yml"] + def extensions, do: [".csv"] end ``` @@ -191,7 +191,7 @@ You can read more about `@impl` in the [module documentation](https://hexdocs.pm ### Using behaviours -Behaviours are useful because you can now pass modules around as arguments and you can then _call back_ to any of the functions specified in the behaviour. For example, we can have a function that receives a filename, several parsers, and parses it with the appropriate parser based on its extension: +Behaviours are useful because you can pass modules around as arguments and you can then _call back_ to any of the functions specified in the behaviour. For example, we can have a function that receives a filename, several parsers, and parses the file based on its extension: ```elixir @spec parse_path(Path.t(), [module()]) :: {:ok, term} | {:error, atom} From d56e267a7d19c2b34a2da765fe3849dd7c894744 Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Mon, 10 Apr 2023 21:29:26 +0200 Subject: [PATCH 1576/1761] Update introduction in "IO and the file system" (#1689) Simplify the first two paragraphs, combining them into one. Closes #1687. --- getting-started/io-and-the-file-system.markdown | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 1abe27aef..1e6423216 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -4,9 +4,7 @@ layout: getting-started title: IO and the file system --- -This chapter is a quick introduction to input/output mechanisms and file-system-related tasks, as well as to related modules like [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html) and [`Path`](https://hexdocs.pm/elixir/Path.html). - -We had originally sketched this chapter to come much earlier in the getting started guide. However, we noticed the IO system provides a great opportunity to shed some light on some philosophies and curiosities of Elixir and the VM. +This chapter is an introduction to input/output mechanisms, file-system-related tasks, and related modules such as [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html), and [`Path`](https://hexdocs.pm/elixir/Path.html). The IO system provides a great opportunity to shed some light on some philosophies and curiosities of Elixir and the VM. ## The `IO` module From 4fb8e9491f54470024fed42c75f96437bda3435f Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Mon, 10 Apr 2023 21:35:40 +0200 Subject: [PATCH 1577/1761] Revise last paragraph in "Optional Syntax" (#1690) --- getting-started/optional-syntax.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/optional-syntax.markdown b/getting-started/optional-syntax.markdown index ca4ebfd0e..47d43f009 100644 --- a/getting-started/optional-syntax.markdown +++ b/getting-started/optional-syntax.markdown @@ -95,4 +95,4 @@ defmodule(Math, [ Whenever you have any questions, this quick walk-through has you covered. -Finally, if you are worried about when to apply those rules, keep in mind that those concerns are handled by the Elixir formatter. In our day to day, Elixir developers use the [`mix format`](https://hexdocs.pm/mix/Mix.Tasks.Format.html) task to format our codebases according to a well-defined set of rules defined by the Elixir team and the community. For instance, `mix format` will always add parentheses to function calls unless explicitly configured to not do so. This ensures all codebases in your company and in the community follow the same standards. +Finally, if you are concerned about when to apply these rules, it's worth noting that the Elixir formatter handles those concerns for you. Most Elixir developers use the [`mix format`](https://hexdocs.pm/mix/Mix.Tasks.Format.html) task to format their codebases according to a well-defined set of rules defined by the Elixir team and the community. For instance, `mix format` will always add parentheses to function calls unless explicitly configured not to do so. This helps to maintain consistency across all codebases within organizations and the wider community. From 565f2ed4acfb228aeb078bfb95fc3fb813adcacb Mon Sep 17 00:00:00 2001 From: stevensonmt Date: Tue, 11 Apr 2023 08:04:03 -0700 Subject: [PATCH 1578/1761] Fix a variable name in typespecs-and-behaviours.markdown (#1691) --- getting-started/typespecs-and-behaviours.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index 828761794..eb98df391 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -197,7 +197,7 @@ Behaviours are useful because you can pass modules around as arguments and you c @spec parse_path(Path.t(), [module()]) :: {:ok, term} | {:error, atom} def parse_path(filename, parsers) do with {:ok, ext} <- parse_extension(filename), - {:ok, parser} <- find_parser(extension, parsers), + {:ok, parser} <- find_parser(ext, parsers), {:ok, contents} <- File.read(filename) do parser.parse(contents) end From d1a20e6b1f1220804284a342faa7e250825dff9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Apr 2023 09:24:27 +0200 Subject: [PATCH 1579/1761] Bump commonmarker from 0.23.8 to 0.23.9 (#1692) Bumps [commonmarker](https://github.com/gjtorikian/commonmarker) from 0.23.8 to 0.23.9. - [Release notes](https://github.com/gjtorikian/commonmarker/releases) - [Changelog](https://github.com/gjtorikian/commonmarker/blob/main/CHANGELOG.md) - [Commits](https://github.com/gjtorikian/commonmarker/compare/v0.23.8...v0.23.9) --- updated-dependencies: - dependency-name: commonmarker dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c2ab39fb5..b3c34ff09 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,7 +13,7 @@ GEM execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.23.8) + commonmarker (0.23.9) concurrent-ruby (1.2.2) dnsruby (1.61.9) simpleidn (~> 0.1) From 6a721f82dcc7adb345baaac4e40f2c198f1cfb6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Apr 2023 09:25:01 +0200 Subject: [PATCH 1580/1761] Bump nokogiri from 1.14.2 to 1.14.3 (#1693) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.14.2 to 1.14.3. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.14.2...v1.14.3) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b3c34ff09..2e71f3824 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -212,7 +212,7 @@ GEM jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) minitest (5.18.0) - nokogiri (1.14.2) + nokogiri (1.14.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) octokit (4.25.1) From 4b093744e5bf6f634661c8cfb5d3c3f32f8c880d Mon Sep 17 00:00:00 2001 From: code-anth Date: Tue, 18 Apr 2023 16:37:26 +0100 Subject: [PATCH 1581/1761] Update config-and-releases.markdown (#1694) When `MIX_ENV=prod mix release foo` is run, there isn't an exclamantion mark at the end of the path. --- getting-started/mix-otp/config-and-releases.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index fb8f61076..d62265632 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -174,7 +174,7 @@ With the configuration in place, let's give assembling the release another try: * assembling foo-0.0.1 on MIX_ENV=prod * skipping runtime configuration (config/runtime.exs not found) - Release created at _build/prod/rel/foo! + Release created at _build/prod/rel/foo # To start your system _build/prod/rel/foo/bin/foo start From 142b6212dfee8664c2adbce567441a2e7d00bb86 Mon Sep 17 00:00:00 2001 From: Steve Walker Date: Sun, 23 Apr 2023 00:28:40 +0800 Subject: [PATCH 1582/1761] Update typespecs-and-behaviours.markdown (#1695) A very small typo, changed 'extension' to 'ext' --- getting-started/typespecs-and-behaviours.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index eb98df391..c931ba592 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -211,7 +211,7 @@ defp parse_extension(filename) do end end -defp find_parser(extension, parsers) do +defp find_parser(ext, parsers) do if parser = Enum.find(parsers, fn parser -> ext in parser.extensions() end) do {:ok, parser} else From cf2b5242011065025376411351409f9e6ca0951d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 26 Apr 2023 01:54:40 +0200 Subject: [PATCH 1583/1761] Updates --- index.html | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/index.html b/index.html index c555e85e9..77b11728e 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@
    Elixir is a dynamic, functional language for building scalable and maintainable applications.
    -

    Elixir runs on the Erlang VM, known for creating low-latency, distributed, and fault-tolerant systems. These capabilities and Elixir tooling allow developers to be productive in several domains, such as web development, embedded software, data pipelines, and multimedia processing, across a wide range of industries.

    +

    Elixir runs on the Erlang VM, known for creating low-latency, distributed, and fault-tolerant systems. These capabilities and Elixir tooling allow developers to be productive in several domains, such as web development, embedded software, machine learning, data pipelines, and multimedia processing, across a wide range of industries.

    Here is a peek:

    @@ -52,7 +52,6 @@

    Platform features

    Scalability

    -

    All Elixir code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages:

    {% highlight elixir %} @@ -69,9 +68,9 @@

    Scalability

    end {% endhighlight %} -

    Due to their lightweight nature, it is not uncommon to have hundreds of thousands of processes running concurrently in the same machine. Isolation allows processes to be garbage collected independently, reducing system-wide pauses, and using all machine resources as efficiently as possible (vertical scaling).

    +

    Due to their lightweight nature, you can hundreds of thousands of processes concurrently in the same machine, using all machine resources efficiently (vertical scaling). Processes may also communicate with other processes running on different machines to coordinate work across multiple nodes (horizontal scaling).

    -

    Processes are also able to communicate with other processes running on different machines in the same network. This provides the foundation for distribution, allowing developers to coordinate work across multiple nodes (horizontal scaling).

    +

    Together with projects such as Numerical Elixir, Elixir scales across cores, clusters, and GPUs.

    @@ -79,9 +78,9 @@

    Scalability

    Fault-tolerance

    -

    The unavoidable truth about software running in production is that things will go wrong. Even more when we take network, file systems, and other third-party resources into account.

    +

    The unavoidable truth about software in production is that things will go wrong. Even more when we take network, file systems, and other third-party resources into account.

    -

    To cope with failures, Elixir provides supervisors which describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work:

    +

    To react to failures, Elixir supervisors describe how to restart parts of your system when things go awry, going back to a known initial state that is guaranteed to work:

    {% highlight elixir %} children = [ @@ -92,7 +91,7 @@

    Fault-tolerance

    Supervisor.start_link(children, strategy: :one_for_one) {% endhighlight %} -

    The combination of fault-tolerance and event-driven programming via message passing makes Elixir an excellent choice for reactive programming and robust architectures. Frameworks, such as Nerves, build on this foundation to enable productive development of reliable embedded/IoT systems.

    +

    The combination of fault-tolerance and message passing makes Elixir an excellent choice for event-driven systems and robust architectures. Frameworks, such as Nerves, build on this foundation to enable productive development of reliable embedded/IoT systems.

    @@ -104,14 +103,7 @@

    Language features

    Functional programming

    -

    Functional programming promotes a coding style that helps developers write code that is short, concise, and maintainable. For example, pattern matching allows developers to easily destructure data and access its contents:

    - -{% highlight elixir %} -%User{name: name, age: age} = User.get("John Doe") -name #=> "John Doe" -{% endhighlight %} - -

    When mixed with guards, pattern matching allows us to elegantly match and assert specific conditions for some code to execute:

    +

    Functional programming promotes a coding style that helps developers write code that is short, concise, and maintainable. For example, pattern matching allows us to elegantly match and assert specific conditions for some code to execute:

    {% highlight elixir %} def drive(%User{age: age}) when age >= 16 do @@ -122,7 +114,7 @@

    Functional programming

    #=> Fails if the user is under 16 {% endhighlight %} -

    Elixir relies heavily on those features to ensure your software is working under the expected constraints. And when it is not, don't worry, supervisors have your back!

    +

    Elixir relies on those features to ensure your software is working under the expected constraints. And when it is not, don't worry, supervisors have your back!

    @@ -130,7 +122,7 @@

    Functional programming

    Extensibility and DSLs

    -

    Elixir has been designed to be extensible, letting developers naturally extend the language to particular domains, in order to increase their productivity.

    +

    Elixir has been designed to be extensible, allowing developers naturally extend the language to particular domains, in order to increase their productivity.

    As an example, let's write a simple test case using Elixir's test framework called ExUnit:

    @@ -146,7 +138,7 @@

    Extensibility and DSLs

    The async: true option allows tests to run in parallel, using as many CPU cores as possible, while the assert functionality can introspect your code, providing great reports in case of failures.

    -

    Other examples include using Elixir to write SQL queries, compiling a subset of Elixir to the GPU, and many more.

    +

    Other examples include using Elixir to write SQL queries, compiling a subset of Elixir to the GPU, and more.

    @@ -169,7 +161,7 @@

    A growing ecosystem

    1 test, 0 failures
    -

    Mix is also able to manage dependencies and integrates with the Hex package manager, which performs dependency resolution, fetches remote packages, and hosts documentation for the whole ecosystem.

    +

    Mix also integrates with the Hex package manager for dependency management and hosting documentation for the whole ecosystem.

    @@ -177,7 +169,7 @@

    A growing ecosystem

    Interactive development

    -

    Tools like IEx (Elixir's interactive shell) are able to leverage many aspects of the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation:

    +

    Tools like IEx (Elixir's interactive shell) leverage the language and platform to provide auto-complete, debugging tools, code reloading, as well as nicely formatted documentation:

    {% highlight text %} $ iex @@ -196,10 +188,10 @@

    Interactive development

    Erlang compatible

    -

    Elixir runs on the Erlang VM giving developers complete access to Erlang's ecosystem, used by companies like Heroku, WhatsApp, Klarna and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

    +

    Elixir runs on the Erlang VM giving developers complete access to Erlang's ecosystem, used by companies like WhatsApp, Klarna, and many more to build distributed, fault-tolerant applications. An Elixir programmer can invoke any Erlang function with no runtime cost:

    {% highlight elixir %} -iex> :crypto.hash(:md5, "Using crypto from Erlang OTP") +iex> :crypto.hash(:sha256, "Using crypto from Erlang OTP") <<192, 223, 75, 115, ...>> {% endhighlight %} From cd979aa273e979c76265caa9c05830ad55778c73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 26 Apr 2023 01:59:23 +0200 Subject: [PATCH 1584/1761] Trim down IEx examples --- index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 77b11728e..becfd05cd 100644 --- a/index.html +++ b/index.html @@ -174,10 +174,10 @@

    Interactive development

    {% highlight text %} $ iex Interactive Elixir - press Ctrl+C to exit (type h() ENTER for help) -iex> h String.trim # Prints the documentation for function -iex> i "Hello, World" # Prints information about the given data type -iex> break! String.trim/1 # Sets a breakpoint in the String.trim/1 function -iex> recompile # Recompiles the current project on the fly +iex> h String.trim # Prints the documentation +iex> i "Hello, World" # Prints information about a data type +iex> break! String.trim/1 # Sets a breakpoint +iex> recompile # Recompiles the current project {% endhighlight %}

    Code notebooks like Livebook allow you to interact with Elixir directly from your browser, including support for plotting, flowcharts, data tables, machine learning, and much more!

    From 30e37a801d774bab86fa6a465cd84bf072ddfe3e Mon Sep 17 00:00:00 2001 From: Venkatesh Prasad Kannan Date: Wed, 26 Apr 2023 11:41:52 +0100 Subject: [PATCH 1585/1761] Fix grammar on the landing page (#1696) --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index becfd05cd..6d733fda0 100644 --- a/index.html +++ b/index.html @@ -68,7 +68,7 @@

    Scalability

    end {% endhighlight %} -

    Due to their lightweight nature, you can hundreds of thousands of processes concurrently in the same machine, using all machine resources efficiently (vertical scaling). Processes may also communicate with other processes running on different machines to coordinate work across multiple nodes (horizontal scaling).

    +

    Due to their lightweight nature, you can run hundreds of thousands of processes concurrently in the same machine, using all machine resources efficiently (vertical scaling). Processes may also communicate with other processes running on different machines to coordinate work across multiple nodes (horizontal scaling).

    Together with projects such as Numerical Elixir, Elixir scales across cores, clusters, and GPUs.

    From e53267928cc3892a0c3fce8662b8bbbf8bbbcaac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 15 May 2023 21:44:25 +0200 Subject: [PATCH 1586/1761] Update optional-syntax.markdown --- getting-started/optional-syntax.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/optional-syntax.markdown b/getting-started/optional-syntax.markdown index 47d43f009..a24e85e4e 100644 --- a/getting-started/optional-syntax.markdown +++ b/getting-started/optional-syntax.markdown @@ -63,7 +63,7 @@ Now let's remove the conveniences one by one: if variable?, [{:do, Call.this()}, {:else, Call.that()}] ``` -4. Finally, parentheses are optional, but let's add them: +4. Finally, parentheses are optional on function calls, but let's add them: ```elixir if(variable?, [{:do, Call.this()}, {:else, Call.that()}]) From c192db9d075819f48b4fb75c8a9c0ccf82b92247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 16 May 2023 08:43:37 +0200 Subject: [PATCH 1587/1761] Link to meta-programming guide --- getting-started/optional-syntax.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/optional-syntax.markdown b/getting-started/optional-syntax.markdown index a24e85e4e..88160157b 100644 --- a/getting-started/optional-syntax.markdown +++ b/getting-started/optional-syntax.markdown @@ -73,7 +73,7 @@ That's it! Those four rules outline the optional syntax available in Elixir. To understand why these rules matter, we can briefly compare Elixir with many other programming languages. Most programming languages have several keywords for defining methods, functions, conditionals, loops, and so forth. Each of those keywords have their own syntax rules attached to them. -However, in Elixir, the syntax for defining modules, functions, conditionals, and so on all use the syntax rules above! None of these language features require special "keywords" in the language. At the end, learning Elixir requires knowing less syntax because the language is built on fewer rules. The other benefit is that developers can also extend the language in a way that is consistent with the language itself, since the constructs for designing and extending the language are the same! +However, in Elixir, none of these language features require special "keywords", instead they all build from this small set of rules. The other benefit is that developers can also extend the language in a way that is consistent with the language itself, since the constructs for designing and extending the language are the same. We further explore this topic in [the Meta-programming in Elixir guide](/getting-started/meta/quote-and-unquote.html). At the end of the day, those rules are what enables us to write: From 3675af2f284569612eff328d88c1f6899e15168d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 22 May 2023 16:53:41 +0200 Subject: [PATCH 1588/1761] Release v1.14.5 --- elixir.csv | 1 + erlang.csv | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index 765a9d9a2..48961d2c7 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512,min_otp_release +1.14.5,https://github.com/elixir-lang/elixir/releases/download/v1.14.5/elixir-otp-25.zip,release,1,6fc78c40bd13afbd8531dff6a08846d095c1d4ea,f3b35d9fa61da7e93c9979cb8a08f64a9ce7074aeda66fae994f2a4ea2e4f82e,25.0 1.14.4,https://github.com/elixir-lang/elixir/releases/download/v1.14.4/elixir-otp-25.zip,release,1,2c52e5a2357030ecb31bbf3dff5835122b1658ab,a5b7aadfd896e691a6494f9079fcd6f1209adcbd93f2d40e5770d80edc0f33e6,25.0 1.14.2,https://github.com/elixir-lang/elixir/releases/download/v1.14.2/elixir-otp-25.zip,release,1,4bdbb762f102e6318388389a4b44e3a132534ae3,2ab159e875a8d407dde10ee279446d469022acf8128e4f390556ab44e8918a06,25.0 1.14.1,https://github.com/elixir-lang/elixir/releases/download/v1.14.1/elixir-otp-25.zip,release,1,199e252f71ee82cd2a0026e496f230e9ccd8c1eb,40a880e817bc188469e0adf73f41acb82b6a5b9e5da5cbcb55d89d98dcafe5e5,25.0 diff --git a/erlang.csv b/erlang.csv index b8885bb7e..7f0e37d55 100644 --- a/erlang.csv +++ b/erlang.csv @@ -1,5 +1,5 @@ version_otp,version_erts,url_win32,url_win64 -25.0,13.0,https://github.com/erlang/otp/releases/download/OTP-25.0.4/otp_win32_25.0.4.exe,https://github.com/erlang/otp/releases/download/OTP-25.0.4/otp_win64_25.0.4.exe +25.3,13.3,https://github.com/erlang/otp/releases/download/OTP-25.3.1/otp_win32_25.3.1.exe,https://github.com/erlang/otp/releases/download/OTP-25.3.1/otp_win64_25.3.1.exe 24.3,12.3,https://github.com/erlang/otp/releases/download/OTP-24.3.4.2/otp_win32_24.3.4.2.exe,https://github.com/erlang/otp/releases/download/OTP-24.3.4.2/otp_win64_24.3.4.2.exe 23.3,11.2,https://github.com/erlang/otp/releases/download/OTP-23.3.4.8/otp_win32_23.3.4.8.exe,https://github.com/erlang/otp/releases/download/OTP-23.3.4.8/otp_win64_23.3.4.8.exe 22.3,10.7,http://www.erlang.org/download/otp_win32_22.3.exe,http://www.erlang.org/download/otp_win64_22.3.exe From c88f6c7581f4b22a9f847638d196539f46100e84 Mon Sep 17 00:00:00 2001 From: Jim Freeze Date: Wed, 7 Jun 2023 09:12:21 -0500 Subject: [PATCH 1589/1761] Add ElixirConf 2023 Event (#1698) --- _includes/events.html | 13 ++++++++++--- _includes/important-links.html | 8 +++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/_includes/events.html b/_includes/events.html index 0e764f8cb..e6845ed63 100644 --- a/_includes/events.html +++ b/_includes/events.html @@ -1,4 +1,11 @@ - + + ElixirConf +
    +
      +
    • Sep 5-8, 2023 - Orlando, FL.
    • +
    • 8 training classes, 60+ speakers
    • +
    +
    +
    \ No newline at end of file diff --git a/_includes/important-links.html b/_includes/important-links.html index 55cceabc6..b5f6a72da 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -26,10 +26,12 @@

    Join the Community

  • Elixir on Slack
  • Elixir on Discord
  • Meetups around the world
  • -
  • Wiki with events and resources maintained by the community
  • +
  • Wiki with events and resources maintained by + the community
  • - Join the Erlang Ecosystem Foundation -
    + Join the Erlang Ecosystem Foundation + \ No newline at end of file From 67195b26e72b0a6c6feff53dbeaf72bb97bcac51 Mon Sep 17 00:00:00 2001 From: David Tennant <40059359+David-Tennant@users.noreply.github.com> Date: Mon, 12 Jun 2023 12:44:53 +0200 Subject: [PATCH 1590/1761] Update alias-require-and-import.markdown (#1699) --- getting-started/alias-require-and-import.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 0008a54b2..0b6e6f88d 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -240,4 +240,4 @@ It is possible to `alias`, `import`, `require`, or `use` multiple modules at onc alias MyApp.{Foo, Bar, Baz} ``` -With this, we have finished our tour of Elixir modules. The last topic to cover is module attributes. +With this, we have finished our tour of Elixir modules. The next topic to cover is module attributes. From af150646c9a14e6e30572515b40184d2ef09db3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 14 Jun 2023 10:19:20 +0200 Subject: [PATCH 1591/1761] Update 2022-10-05-my-future-with-elixir-set-theoretic-types.markdown --- ...ture-with-elixir-set-theoretic-types.markdown | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown index 7a7015f82..15d873521 100644 --- a/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown +++ b/_posts/2022-10-05-my-future-with-elixir-set-theoretic-types.markdown @@ -6,11 +6,11 @@ category: Announcements excerpt: We announce and explore the possibilities for bringing set-theoretic types into Elixir. --- -*This is a three-articles series on My Future with Elixir, containing excerpts from my keynotes at [ElixirConf Europe 2022](https://www.youtube.com/watch?v=Jf5Hsa1KOc8) and [ElixirConf US 2022](https://www.youtube.com/watch?v=KmLw58qEtuM).* +*This is article contains excerpts from my keynotes at [ElixirConf Europe 2022](https://www.youtube.com/watch?v=Jf5Hsa1KOc8) and [ElixirConf US 2022](https://www.youtube.com/watch?v=KmLw58qEtuM).* In May 2022, we have celebrated 10 years since Elixir v0.5, the first public release of Elixir, was announced. -At such occasions, it may be tempting to try to predict how Elixir will look in 10 years from now. However, I believe that would be a futile effort, because, 10 years ago, I would never have guessed Elixir would have gone [beyond excelling at web development](https://phoenixframework.org/), but also into domains such as [embedded software](https://www.nerves-project.org/) and making inroads into machine learning and data analysis with projects such as [Nx (Numerical Elixir)](https://github.com/elixir-nx/nx), [Explorer](https://github.com/elixir-nx/explorer), [Axon](https://github.com/elixir-nx/axon) and [Livebook](https://livebook.dev/). Elixir was designed to be extensible and how it will be extended has always been a community effort. +At such occasions, it may be tempting to try to predict how Elixir will look in 10 years from now. However, I believe that would be a futile effort, because, 10 years ago, I would never have guessed Elixir would have gone [beyond excelling at web development](https://phoenixframework.org/), but also into domains such as [embedded software](https://www.nerves-project.org/) and making inroads into machine learning and data analysis with projects such as [Nx (Numerical Elixir)](https://github.com/elixir-nx/nx), [Explorer](https://github.com/elixir-nx/explorer), [Axon](https://github.com/elixir-nx/axon), and [Livebook](https://livebook.dev/) ([here is a summary of the main Numerical Elixir projects](https://github.com/elixir-nx/). Elixir was designed to be extensible and how it will be extended has always been a community effort. For these reasons, I choose to focus on *My Future* with Elixir. Those are the projects I am personally excited about and working on alongside other community members. The topic of today's article is type systems, as discussed in my ElixirConf EU presentation in May 2022. @@ -104,9 +104,7 @@ We could think of it as a function that has both types `(integer() -> integer()) We also have a data-structure called atoms in Elixir. They uniquely represent a value which is given by their own name. Such as `:sunday` or `:banana`. You can think of the type `atom()` as the set of all atoms. In addition, we can think of the values `:sunday` and `:banana` as subtypes of `atom()`, as they are contained in the set of all atoms. `:sunday` and `:banana` are also known as singleton types (as they are made up of only one value). -In fact, we could even consider each integer to be a singleton type that belongs to the `integer()` set. The choice of which values will become singletons in our type system will strongly depend on the trade-offs we defined in the previous sections. - -Furthermore, the type system has to be gradual, as any typed Elixir code would have to interact with untyped Elixir code. +In fact, we could even consider each integer to be a singleton type that belongs to the `integer()` set. The choice of which values will become singletons in our type system will strongly depend on the trade-offs we defined in the previous sections. The type system also has to be gradual, as typed Elixir code may interact with untyped Elixir code and vice-versa. Personally, I find set-theoretical types an elegant and accessible approach to reason about types. At the end of the day, an Elixir developer won't have to think about intersections when writing a function with multiple clauses, but the modelling is straight-forward if they are ever to look under the hood. @@ -126,16 +124,16 @@ Finally, it is important to note there are areas we don't plan to tackle at the At this point, you may be expecting that Elixir will certainly become a gradually typed language at some moment in its future. However, it is important to note this may not be the case, as there is a long road ahead of us. -One of the challenges in implementing a type system - at least for someone who doesn't have the relevant academic background like myself - is that it feels like a single indivisible step: you take a language without a type system and at the end you have one, without much insight or opportunity for feedback in the middle. Therefore, we have been planning to incorporate the type system into Elixir in steps, which I have been referring to as "a gradual gradual type system": one where we add gradual types to the language gradually. +One of the challenges in implementing a type system - at least for someone who doesn't have the relevant academic background like myself - is that it feels like a single indivisible step: you take a language without a type system and at the end you have one, without much insight or opportunity for feedback in the middle. Therefore we have been planning to incorporate the type system into Elixir in steps, which I have been referring to as "a gradual gradual type system": one where we add gradual types to the language gradually. The first step, the one we are currently working on, is to leverage the existing type information found in Elixir programs. As previously mentioned, [we write assertive code](https://dashbit.co/blog/writing-assertive-code-with-elixir) in Elixir, which means there is a lot of type information in patterns and guards. We want to lift this information and use it to type check existing codebases. The Erlang compiler already does so to improve performance within a single module and we want to eventually do so across modules and applications too. -During this phase, Elixir developers won't have to change a single line of code to leverage the benefits of the type system. Of course, we will catch only part of existing bugs, but this will allows us to stress test, benchmark, and collect feedback from developers, making improvements behind the scenes (or even revert the whole thing if we believe it won't lead us where we expect). +During this phase, Elixir developers won't have to change a single line of code to leverage the benefits of the type system. Of course, we will catch only part of existing bugs, but this will allows us to stress test, benchmark, and collect feedback from developers, making improvements behind the scenes (or even revert the whole thing if we believe it won't take us where we expect). The next step is to introduce typed structs into the language, allowing struct types to propagate throughout the system, as you pattern match on structs throughout the codebase. In this stage we will introduce a new API for defining structs, yet to be discussed, and developers will have to use the new API to reap its benefits. -Then finally, once we are happy with the improvements and the feedback collected, we can migrate to introduce a new syntax for typing function signatures in Elixir codebases, including support for more advanced features such as polymorphic types. Those will allow us to type complex constructs such as the ones found in the `Enum` module. +Finally, once we are happy with the improvements and the feedback collected, we can migrate to introduce a new syntax for typing function signatures in Elixir codebases, including support for more advanced features such as polymorphic types. Those will allow us to type complex constructs such as the ones found in the `Enum` module. The important point to keep in mind is that those features will be explored and developed in steps, with plenty of opportunity to gather community feedback. I also hope our experience may be useful to other ecosystems who wish to gradually introduce type systems into existing programming languages, in a way that feels granular and participative. -Thank you for reading and see you in a future article of the "My Future with Elixir" series. \ No newline at end of file +Thank you for reading and see you in future updates. From 5a3f259a471373cc9dbcea346f02a40d4d0ed7f4 Mon Sep 17 00:00:00 2001 From: David Tennant <40059359+David-Tennant@users.noreply.github.com> Date: Wed, 14 Jun 2023 14:21:29 +0200 Subject: [PATCH 1592/1761] Update structs.markdown (#1700) Remove ambiguity --- getting-started/structs.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index a01d7b718..f45868d28 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -43,7 +43,7 @@ iex> %User{name: "Jane"} > Note: If you have defined the struct in a separate file, you can compile the file inside IEx before proceeding by running `c "file.exs"`. Be aware you may get an error saying `the struct was not yet defined` if you try the example above in a file directly due to when definitions are resolved. -Structs provide *compile-time* guarantees that only the fields (and *all* of them) defined through `defstruct` will be allowed to exist in a struct: +Structs provide *compile-time* guarantees that only the fields defined through `defstruct` will be allowed to exist in a struct: ```elixir iex> %User{oops: :field} From e34933d611ec76ccf3ef09387c090df730ef39c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 19 Jun 2023 13:47:14 +0200 Subject: [PATCH 1593/1761] Elixir v1.15 (#1701) --- _data/elixir-versions.yml | 63 ++----- _includes/search.html | 13 +- ...023-06-19-elixir-v1-15-0-released.markdown | 169 ++++++++++++++++++ bundle | 0 development.markdown | 1 + docs.markdown | 43 ++--- images/contents/livebook-boot-1.15.png | Bin 0 -> 178195 bytes images/contents/livebook-compile-1.15.png | Bin 0 -> 181370 bytes install.markdown | 68 +++---- 9 files changed, 249 insertions(+), 108 deletions(-) create mode 100644 _posts/2023-06-19-elixir-v1-15-0-released.markdown delete mode 100644 bundle create mode 100644 images/contents/livebook-boot-1.15.png create mode 100644 images/contents/livebook-compile-1.15.png diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 424ff70c6..3fb159dd5 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,92 +1,61 @@ -stable: v1_14 +stable: v1_15 + +v1_15: + name: v1.15 + minimum_otp: 24.0 + otp_versions: [26, 25, 24] + version: 1.15.0 v1_14: name: v1.14 minimum_otp: 23.0 otp_versions: [25, 24, 23] - version: 1.14.4 - docs_zip: true + version: 1.14.5 v1_13: name: v1.13 minimum_otp: 22.0 + otp_versions: [24, 23, 22] version: 1.13.4 - docs_zip: true v1_12: name: v1.12 minimum_otp: 22.0 + otp_versions: [24, 23, 22] version: 1.12.3 - docs_zip: true v1_11: name: v1.11 minimum_otp: 21.0 + otp_versions: [23, 22, 21] version: 1.11.4 - docs_zip: true v1_10: name: v1.10 minimum_otp: 21.0 + otp_versions: [22, 21] version: 1.10.4 - docs_zip: true v1_9: name: v1.9 minimum_otp: 20.0 + otp_versions: [22, 21, 20] version: 1.9.4 - docs_zip: true v1_8: name: v1.8 minimum_otp: 20.0 + otp_versions: [22, 21, 20] version: 1.8.2 - docs_zip: true v1_7: name: v1.7 minimum_otp: 19.0 + otp_versions: [21, 20, 19] version: 1.7.4 - docs_zip: true v1_6: name: v1.6 minimum_otp: 19.0 + otp_versions: [21, 20, 19] version: 1.6.6 - docs_zip: true - -v1_5: - name: v1.5 - minimum_otp: 18.0 - version: 1.5.3 - docs_zip: true - -v1_4: - name: v1.4 - minimum_otp: 18.0 - version: 1.4.5 - docs_zip: true - -v1_3: - name: v1.3 - minimum_otp: 18.0 - version: 1.3.4 - docs_zip: true - -v1_2: - name: v1.2 - minimum_otp: 18.0 - version: 1.2.6 - docs_zip: true - -v1_1: - name: v1.1 - minimum_otp: 17.0 - version: 1.1.1 - docs_zip: true - -v1_0: - name: v1.0 - minimum_otp: 17.0 - version: 1.0.5 - docs_zip: false diff --git a/_includes/search.html b/_includes/search.html index acf1a0b1a..2ab39ede8 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,14 +1,15 @@ diff --git a/_posts/2023-06-19-elixir-v1-15-0-released.markdown b/_posts/2023-06-19-elixir-v1-15-0-released.markdown new file mode 100644 index 000000000..8db6c8737 --- /dev/null +++ b/_posts/2023-06-19-elixir-v1-15-0-released.markdown @@ -0,0 +1,169 @@ +--- +layout: post +title: Elixir v1.15 released +author: José Valim +category: Releases +excerpt: Elixir v1.15 with improvements to compilation and boot times. +--- + +Elixir v1.15 has just been released. 🎉 + +Elixir v1.15 is a smaller release with focused improvements +on compilation and boot times. This release also completes +our integration process with Erlang/OTP logger, bringing new +features such as log rotation and compression out of the box. + +You will also find additional convenience functions in `Code`, +`Map`, `Keyword`, all Calendar modules, and others. + +Finally, we are glad to welcome [Jean Klingler](https://github.com/sabiwara/) +as a member of the Elixir Core team. Thank you for your contributions! + +## Compile and boot-time improvements + +The last several releases brought improvements to compilation +time and this version is no different. In particular, Elixir +now caches and prunes load paths before compilation, ensuring your +project (and dependencies!) compile faster and in an environment +closer to production. + +In a nutshell, the Erlang VM loads modules from code paths. Each +application that ships with Erlang and Elixir plus each dependency +become an entry in your code path. The larger the code path, the +more work Erlang has to do in order to find a module. + +In previous versions, Mix would only add entries to the load paths. +Therefore, if you compiled 20 dependencies and you went to compile +the 21st, the code path would have 21 entries (plus all Erlang and +Elixir apps). This allowed modules from unrelated dependencies to +be seen and made compilation slower the more dependencies you had. +With this release, we will now prune the code paths to only the ones +listed as dependencies, bringing the behaviour closer to `mix release`. + +Furthermore, Erlang/OTP 26 allows us to start applications +concurrently and cache the code path lookups, decreasing the cost of +booting applications. The combination of Elixir v1.15 and Erlang/OTP 26 +should also reduce the boot time of applications, such as when starting +`iex -S mix` or running a single test with `mix test`. + +As an example, I have benchmarked [the Livebook application](https://github.com/livebook-dev/livebook) +on a M1 Max MacStudio across different Elixir and Erlang/OTP versions. +At the time of benchmarking, Livebook had ~200 source `.ex` files and +~35 dependencies. Compilation-times were improved by 16%: + +![Livebook compilation times](/images/contents/livebook-compile-1.15.png) + +Livebook saw an improvement of 30% on boot times: + +![Livebook boot times](/images/contents/livebook-boot-1.15.png) + +Different application will see different results. Our expectations +are the gains will be more meaningful the more dependencies you have, +the more files you have, and the more cores you have. We have even +received reports of up to 40% faster compilation times, although it +is yet unclear how generalizable this will be in practice. Note this +work does not improve the time to compile slow individual files. + +The compiler is also smarter in several ways: `@behaviour` declarations +no longer add compile-time dependencies and aliases in patterns and +guards add no dependency whatsoever, as no dispatching happens. Furthermore, +Mix now tracks the digests of `@external_resource` files, reducing the +amount of recompilation when swapping branches. Finally, dependencies +are automatically recompiled when their compile-time configuration changes, +providing a smoother development experience. + +##### Potential incompatibilities + +Due to the code path pruning, if you have an application or dependency +that does not specify its dependencies on Erlang/OTP and core Elixir applications, +which has always been erroneus behaviour, it may no longer compile +successfully in Elixir v1.15. You can temporarily disable code path pruning +by setting `prune_code_paths: false` in your `mix.exs`, although doing so +may lead to runtime bugs that are only manifested inside a `mix release`. + +## Compiler warnings and errors + +The Elixir compiler can now emit many errors for a single file, making +sure more feedback is reported to developers before compilation is aborted. + +In Elixir v1.14, an undefined function would be reported as: + + ** (CompileError) undefined function foo/0 (there is no such import) + my_file.exs:1 + +In Elixir v1.15, the new reports will look like: + + error: undefined function foo/0 (there is no such import) + my_file.exs:1 + + ** (CompileError) my_file.exs: cannot compile file (errors have been logged) + +A new function, called `Code.with_diagnostics/2`, has been added so this +information can be leveraged by editors, allowing them to point to several +errors at once. We have currently ongoing work and contribution to further +improve the compiler diagnostics in future Elixir releases. + +##### Potential incompatibilities + +As part of this effort, the behaviour where undefined variables were transformed +into nullary function calls, often leading to confusing error reports, has +been disabled during project compilation. You can invoke `Code.compiler_options(on_undefined_variable: :warn)` +at the top of your `mix.exs` to bring the old behaviour back. + +## Integration with Erlang/OTP logger + +This release provides additional features such as global logger +metadata and [file logging](https://hexdocs.pm/logger/Logger.html#module-erlang-otp-handlers) (with rotation and compression) out of the box! + +This release also soft-deprecates Elixir's Logger Backends in +favor of Erlang's Logger handlers. Elixir will automatically +convert your `:console` backend configuration into the new +configuration. Previously, you would set: + +```elixir +config :logger, :console, + level: :error, + format: "$time $message $metadata" +``` + +Which is now translated to the equivalent: + +```elixir +config :logger, :default_handler, + level: :error + +config :logger, :default_formatter, + format: "$time $message $metadata" +``` + +To replace the default console handler by one that writes to disk, +with log rotation and compression: + +```elixir +config :logger, :default_handler, + config: [ + file: ~c"system.log", + filesync_repeat_interval: 5000, + file_check: 5000, + max_no_bytes: 10_000_000, + max_no_files: 5, + compress_on_rotate: true + ] +``` + +Finally, the previous Logger Backends API is now soft-deprecated. +If you implement your own backends, you want to consider migrating to +[`:logger_backends`](https://github.com/elixir-lang/logger_backends) +in the long term. See the new [`Logger`](https://hexdocs.pm/logger) +documentation for more information on the new features and compatibility. + +## Learn more + +For a complete list of all changes, see the +[full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.15.0). + +Check [the Install section](/install.html) to get Elixir installed and +read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) +to learn more. + +Happy compiling! diff --git a/bundle b/bundle deleted file mode 100644 index e69de29bb..000000000 diff --git a/development.markdown b/development.markdown index 33e2a81c6..db2f9cd42 100644 --- a/development.markdown +++ b/development.markdown @@ -43,6 +43,7 @@ The Elixir Team is composed by: * Eric Meadows-Jönsson * Andrea Leopardi * Fernando Tapia Rico + * Jean Klingler We are also grateful to the past members of the Elixir Team: diff --git a/docs.markdown b/docs.markdown index bc430a9c9..1dfa34bd8 100644 --- a/docs.markdown +++ b/docs.markdown @@ -12,41 +12,36 @@ applications. For a general introduction to the language, see our [guides](/gett {% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} -

    Stable - {% if stable.docs_zip == true %} - (download) - {% endif %} -

    - -* [Elixir](https://hexdocs.pm/elixir/) - standard library -* [EEx](https://hexdocs.pm/eex/) - templating library -* [ExUnit](https://hexdocs.pm/ex_unit/) - unit test library -* [IEx](https://hexdocs.pm/iex/) - interactive shell -* [Logger](https://hexdocs.pm/logger/) - built-in Logger -* [Mix](https://hexdocs.pm/mix/) - build tool - -#### Development - -* [Elixir](https://hexdocs.pm/elixir/main/) - standard library -* [EEx](https://hexdocs.pm/eex/main/) - templating library -* [ExUnit](https://hexdocs.pm/ex_unit/main/) - unit test library -* [IEx](https://hexdocs.pm/iex/main/) - interactive shell -* [Logger](https://hexdocs.pm/logger/main/) - built-in Logger -* [Mix](https://hexdocs.pm/mix/main/) - build tool - {% for version in site.data.elixir-versions %} {% if version[0] == 'stable' %} {% continue %} {% endif %} -

    {{ version[1].name }} - {% if version[1].docs_zip == true %}(download){% endif %} +

    + {{ version[1].name }} + {% if version[1].version == stable.version %}(stable){% endif %} + (download)

    +{% if version[1].otp_versions %} +Supported Erlang/OTP versions: {% for otp in version[1].otp_versions reversed %}{{ otp }}{% if forloop.last %}{% else %}, {% endif %}{% endfor %}. +{% endif %} + * [Elixir](https://hexdocs.pm/elixir/{{ version[1].version }}/) - standard library * [EEx](https://hexdocs.pm/eex/{{ version[1].version }}/) - templating library * [ExUnit](https://hexdocs.pm/ex_unit/{{ version[1].version }}/) - unit test library * [IEx](https://hexdocs.pm/iex/{{ version[1].version }}/) - interactive shell * [Logger](https://hexdocs.pm/logger/{{ version[1].version }}/) - built-in Logger * [Mix](https://hexdocs.pm/mix/{{ version[1].version }}/) - build tool + +
    {% endfor %} + +#### Development + +* [Elixir](https://hexdocs.pm/elixir/main/) - standard library +* [EEx](https://hexdocs.pm/eex/main/) - templating library +* [ExUnit](https://hexdocs.pm/ex_unit/main/) - unit test library +* [IEx](https://hexdocs.pm/iex/main/) - interactive shell +* [Logger](https://hexdocs.pm/logger/main/) - built-in Logger +* [Mix](https://hexdocs.pm/mix/main/) - build tool diff --git a/images/contents/livebook-boot-1.15.png b/images/contents/livebook-boot-1.15.png new file mode 100644 index 0000000000000000000000000000000000000000..f603151fceca01860082cf9daf35bc16eedc4de7 GIT binary patch literal 178195 zcmeFYgOcHmgwK zFmr@a%K1{gPr$(82$y?O$s5DlkP{jCv5J{B@|6SXi_%C7BaHVJbIdW3U->B&x(@;u ziGKxbG<(ml4mK{xrb!B&%6hwTq9oYSzvU*(LrLHtB#pR${m8Yn_|ssHg32d{Mj*H3 zDx^5LxQG(mH+bRgvk(JgbL;gNoM;WYHB)@sJG_d9g2|TAHn5t<=1)5Ev`jez6Qzi@ za*J=6RQ*6F%+BJoTo{vv+t2&)8g3orxg%OKOP}tA>7ceHiP66#MPU!<(imRnWO=Ea zg=2*4gT~U)C*-QGY1Si8{S7~sgo&ghX`cpnps^n* zc~HxnTfRSbiD~rVk%@`jEuZ?L$1soc`43Yn1y}@Z!!hA^Z|`a(pFJ8B5KW?x?38+w z-|FaM_`HpP3lBbBC1$XVpjo%^ef_-xW>9cXFDJD-!~6|Qq?}#&p|$3Ewbj0RVrQ&MBN($a@bhj>#}%?96=TB@qut+zJt)2g9D zxmLCNXIZAzG9-dQPm?3=rEv4Wr6jkNY_vSt&VwVq*1gwa)`*9(4&0(0FG{D@**g7sDE6QT5ka z%{YaNHcm9kK?2dlD|rU9%VH=WKKC6r3OWe&V+U6e2A{|_kiI;rajMEh!6FVp`-m#M zD*Awk8r}V~px+|FueZ_Ha>O{;(C4^|uU;hF>3S}%Pbd;B^#r9Z)Z`<9b};%!N_x!R z2SQ@#{I7Tyv3{dTFQO*AVnLwAzB+x5_KKNaA-o`g_A?=koOJ?WSFkY)gc}9#wZ%sm zH!kTzQd{8~T%O?QkAelHMWKNq8uC=19G-}J5YYxd`Y8H?iyAZOIc*6pT}QG2x^>5m zs~DVGw(Ulc82!M-nkyaC7H!F#0-oME-FI_>2m2x zStME+UUFH9*eAolYY$#jz+pw;@Z!D>vwz6DL}?x=@IafLmc%4-sf&CW%i?Zj2rTU^ z;Y?RULql)qDZhdSbG>Pq_HODgokrBgcy^A&yHSeKY%0pL$`Q&`%BRXM-(FO)OlQ)o z4zaqhO}>S^WlECm(^}(Ooj#B{_dHlTP(P?&GrLPnPC%ZDr%LWd{+L{Y``0s=3d<9M zyZ7)Ss*;~+h^zm}jlKJfqLd<(e3YV|hfx=vcczA$|Ds^^OP5x^j>Ja~6}yD!oXw{O z+WekmwI6)bBosP-#@ad>;*|z_y_-;>)6spFRZd?Bf7obzUQ(rv`Ng83Lsv!XuC{pD z&*B5SH|zB4^fwuN?zHQ_vV_Vc^u|rzmwzaqDVWK

    CyB|B_r(Ctqr?^H#!ePFq?b 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 z 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 literal 0 HcmV?d00001 diff --git a/images/contents/livebook-compile-1.15.png b/images/contents/livebook-compile-1.15.png new file mode 100644 index 0000000000000000000000000000000000000000..58f41504f0a0cdf11130355b869f8a35e79bfdea GIT binary patch literal 181370 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%0Aw$U5E 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

    Gx2pq~8$)E$bzCh}e)c)uKF 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 Elixir versions are available in our [Releases](https://github.com/elixir-lang/elixir/releases) page. - - Using Scoop: + - Using [Scoop](https://scoop.sh/): * Install Erlang: `scoop install erlang` * Install Elixir: `scoop install elixir` - Using [Chocolatey](https://community.chocolatey.org/): * Install Elixir (installs Erlang as a dependency): `choco install elixir` +Elixir versions before v1.15 can also be installed using the deprecated [Online Elixir Installer](https://github.com/elixir-lang/elixir-windows-setup/releases/tag/v2.4). + ### Raspberry Pi and embedded devices To build and package an Elixir application, with the whole operating system, and burn that into a disk or deploy it overwhere, [check out the Nerves project](https://www.nerves-project.org). @@ -121,7 +139,7 @@ The above will automatically point to the latest Erlang and Elixir available. Fo Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download the appropriate precompiled Elixir below. You can consult your Erlang/OTP version by running `erl -s halt`: {% for otp_version in stable.otp_versions %} - * [Elixir {{ stable.version }} on Erlang {{ otp_version }}](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/elixir-otp-{{ otp_version }}.zip){% endfor %} + * [Elixir {{ stable.version }} on Erlang/OTP {{ otp_version }}](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/elixir-otp-{{ otp_version }}.zip){% endfor %} Once you download the release, unpack it, and you are ready to run the `elixir` and `iex` commands from the `bin` directory. However, we recommend you to [add Elixir's bin path to your PATH environment variable](#setting-path-environment-variable) to ease development. @@ -129,31 +147,19 @@ Once you download the release, unpack it, and you are ready to run the `elixir` The links above point directly to the GitHub release. We also host and mirror precompiled packages and nightly builds globally via `repo.hex.pm` using the following URL scheme: - https://repo.hex.pm/builds/elixir/${ELIXIR_VERSION}-otp-${OTP_VERSION}.zip + https://builds.hex.pm/builds/elixir/${ELIXIR_VERSION}-otp-${OTP_VERSION}.zip For example, to use Elixir v1.13.3 with Erlang/OTP 24.x, use: - https://repo.hex.pm/builds/elixir/v1.13.3-otp-24.zip + https://builds.hex.pm/builds/elixir/v1.13.3-otp-24.zip To use nightly for a given Erlang/OTP version (such as 25), use: - https://repo.hex.pm/builds/elixir/main-otp-25.zip - -## Compiling with version managers - -There are many tools that allow developers to install and manage multiple Erlang and Elixir versions. They are useful if you have multiple projects running on different Elixir or Erlang versions, can't install Erlang or Elixir as mentioned above or if the version provided by your package manager is outdated. Here are some of those tools: - - * [asdf](https://github.com/asdf-vm/asdf) - install and manage different [Elixir](https://github.com/asdf-vm/asdf-elixir) and [Erlang](https://github.com/asdf-vm/asdf-erlang) versions - * [kiex](https://github.com/taylor/kiex) - install and manage different Elixir versions - * [kerl](https://github.com/yrashk/kerl) - install and manage different Erlang versions - -Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Check the compatibility table](https://hexdocs.pm/elixir/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp) if you have questions or run into issues. - -If you would prefer to compile from source manually, don't worry, we got your back too. + https://builds.hex.pm/builds/elixir/main-otp-25.zip -## Compiling from source (Unix and MinGW) +## Compiling from source -You can download and compile Elixir in few steps. The first one is to [install Erlang](/install.html#installing-erlang). +You can download and compile Elixir in few steps. The first one is to [install Erlang](/install.html#installing-erlang). You will also need [make](https://www.gnu.org/software/make/) available. Next you should download source code ([.zip](https://github.com/elixir-lang/elixir/archive/v{{ stable.version }}.zip), [.tar.gz](https://github.com/elixir-lang/elixir/archive/v{{ stable.version }}.tar.gz)) of the [latest release](https://github.com/elixir-lang/elixir/releases/tag/v{{ stable.version }}), unpack it and then run `make` inside the unpacked directory (note: if you are running on Windows, [read this page on setting up your environment for compiling Elixir](https://github.com/elixir-lang/elixir/wiki/Windows)). @@ -175,7 +181,7 @@ The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or * [Source code distribution and Windows installers from Erlang's official website](http://www.erlang.org/downloads.html) * [Precompiled packages for some Unix-like installations](https://www.erlang-solutions.com/resources/download.html) - * [A general list of installation methods from the Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/). + * [A general list of installation methods from the Riak documentation](https://docs.riak.com/riak/kv/latest/setup/installing/source/erlang/) After Erlang is installed, you should be able to open up the command line (or command prompt) and check the Erlang version by typing `erl -s erlang halt`. You will see some information similar to: From aafd60ceb8e518e7f96bee58a9df87e70d917640 Mon Sep 17 00:00:00 2001 From: Suhas Vishwanath <568925+ashusvnath@users.noreply.github.com> Date: Mon, 19 Jun 2023 17:23:50 +0530 Subject: [PATCH 1594/1761] Fix possible typo in Processes section (#1697) --- getting-started/io-and-the-file-system.markdown | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 1e6423216..3a02f35f2 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -110,7 +110,12 @@ This happens because the `IO` module actually works with processes (see [chapter iex> File.close(file) :ok iex> IO.write(file, "is anybody out there") -{:error, :terminated} +** (ErlangError) Erlang error: :terminated: + + * 1st argument: the device has terminated + + (stdlib 5.0) io.erl:94: :io.put_chars(#PID<0.114.0>, "is anybody out there") + iex:4: (file) ``` Let's see in more detail what happens when you request `IO.write(pid, binary)`. The `IO` module sends a message to the process identified by `pid` with the desired operation. A small ad-hoc process can help us see it: From eb795f8e2173f429ee68311e3feae094c95d2b4d Mon Sep 17 00:00:00 2001 From: Jean Klingler Date: Mon, 19 Jun 2023 22:23:56 +0900 Subject: [PATCH 1595/1761] Update getting started charlists to use ~c (#1702) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update getting started charlists to use ~c * Update getting-started/basic-types.markdown Co-authored-by: José Valim --------- Co-authored-by: José Valim --- getting-started/basic-types.markdown | 17 +++++++--- .../binaries-strings-and-char-lists.markdown | 33 ++++++++++++------- getting-started/comprehensions.markdown | 2 +- getting-started/sigils.markdown | 10 +++--- 4 files changed, 41 insertions(+), 21 deletions(-) diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index ab2912b64..fa3f0be70 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -320,11 +320,18 @@ iex> hd([]) ** (ArgumentError) argument error ``` -Sometimes you will create a list and it will return a value in single quotes. For example: +Sometimes you will create a list and it will return a quoted value preceded by `~c`. For example: ```elixir iex> [11, 12, 13] -'\v\f\r' +~c"\v\f\r" +iex> [104, 101, 108, 108, 111] +~c"hello" +``` + +In Elixir versions before v1.15, this might be displayed as single quotes instead: + +```elixir iex> [104, 101, 108, 108, 111] 'hello' ``` @@ -332,9 +339,9 @@ iex> [104, 101, 108, 108, 111] When Elixir sees a list of printable ASCII numbers, Elixir will print that as a charlist (literally a list of characters). Charlists are quite common when interfacing with existing Erlang code. Whenever you see a value in IEx and you are not quite sure what it is, you can use the `i/1` to retrieve information about it: ```elixir -iex> i 'hello' +iex> i ~c"hello" Term - 'hello' + i ~c"hello" Data type List Description @@ -352,6 +359,8 @@ Keep in mind single-quoted and double-quoted representations are not equivalent ```elixir iex> 'hello' == "hello" false +iex> 'hello' == ~c"hello" +true ``` Single quotes are charlists, double quotes are strings. We will talk more about them in the ["Binaries, strings and charlists"](/getting-started/binaries-strings-and-char-lists.html) chapter. diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index 184192515..a461056d9 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -238,13 +238,22 @@ Our tour of our bitstrings, binaries, and strings is nearly complete, but we hav **A charlist is a list of integers where all the integers are valid code points.** In practice, you will not come across them often, only in specific scenarios such as interfacing with older Erlang libraries that do not accept binaries as arguments. -Whereas double-quotes creates strings, single-quotes create charlist literals: +```elixir +iex> ~c"hello" +~c"hello" +iex> [?h, ?e, ?l, ?l, ?o] +~c"hello" +``` + +The `~c` sigil (we'll cover sigils later in the ["Sigils"](/getting-started/sigils.html) section) +indicates the fact that we are dealing with a charlist and not a regular string. + +Whereas double-quotes creates strings, single-quotes create charlist literals. +Charlists used to be represented with single quotes in Elixir <1.15: ```elixir iex> 'hello' -'hello' -iex> [?h, ?e, ?l, ?l, ?o] -'hello' +~c"hello" ``` The key takeaway is that `"hello"` is not the same as `'hello'`. Generally speaking, **double-quotes must always be used to represent strings in Elixir**. In any case, let's learn how charlists work. @@ -252,9 +261,9 @@ The key takeaway is that `"hello"` is not the same as `'hello'`. Generally speak Instead of containing bytes, a charlist contains integer code points. However, the list is only printed in single-quotes if all code points are within the ASCII range: ```elixir -iex> 'hełło' +iex> ~c"hełło" [104, 101, 322, 322, 111] -iex> is_list('hełło') +iex> is_list(~c"hełło") true ``` @@ -262,7 +271,7 @@ Interpreting integers as code points may lead to some surprising behavior. For e ```elixir iex> heartbeats_per_minute = [99, 97, 116] -'cat' +~c"cat" ``` You can convert a charlist to a string and back by using the `to_string/1` and `to_charlist/1` functions: @@ -270,7 +279,7 @@ You can convert a charlist to a string and back by using the `to_string/1` and ` ```elixir iex> to_charlist("hełło") [104, 101, 322, 322, 111] -iex> to_string('hełło') +iex> to_string(~c"hełło") "hełło" iex> to_string(:hello) "hello" @@ -283,14 +292,14 @@ Note that those functions are polymorphic - not only do they convert charlists t String (binary) concatenation uses the `<>` operator but charlists, being lists, use the list concatenation operator `++`: ```elixir -iex> 'this ' <> 'fails' -** (ArgumentError) expected binary argument in <> operator but got: 'this ' +iex> ~c"this " <> ~c"fails" +** (ArgumentError) expected binary argument in <> operator but got: ~c"this " (elixir) lib/kernel.ex:1821: Kernel.wrap_concatenation/3 (elixir) lib/kernel.ex:1808: Kernel.extract_concatenations/2 (elixir) expanding macro: Kernel.<>/2 iex:1: (file) -iex> 'this ' ++ 'works' -'this works' +iex> ~c"this " ++ ~c"works" +~c"this works" iex> "he" ++ "llo" ** (ArgumentError) argument error :erlang.++("he", "llo") diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index d20b8638e..97e1f4bf5 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -44,7 +44,7 @@ Comprehensions discard all elements for which the filter expression returns `fal Comprehensions generally provide a much more concise representation than using the equivalent functions from the `Enum` and `Stream` modules. Furthermore, comprehensions also allow multiple generators and filters to be given. Here is an example that receives a list of directories and gets the size of each file in those directories: ```elixir -dirs = ['/home/mikey', '/home/james'] +dirs = ["/home/mikey", "/home/james"] for dir <- dirs, file <- File.ls!(dir), diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 7d2a67ae8..69c834223 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -65,11 +65,13 @@ iex> ~s(this is a string with "double" quotes, not 'single' ones) ### Char lists -The `~c` sigil is useful for generating char lists that contain single quotes: +The `~c` sigil is the regular way to represent charlists. ```elixir -iex> ~c(this is a char list containing 'single quotes') -'this is a char list containing \'single quotes\'' +iex> [?c, ?a, ?t] +~c"cat" +iex> ~c(this is a char list containing "double quotes") +~c"this is a char list containing \"double quotes\"" ``` ### Word lists @@ -214,7 +216,7 @@ iex> time_zone As hinted at the beginning of this chapter, sigils in Elixir are extensible. In fact, using the sigil `~r/foo/i` is equivalent to calling `sigil_r` with a binary and a char list as the argument: ```elixir -iex> sigil_r(<<"foo">>, 'i') +iex> sigil_r(<<"foo">>, ~c"i") ~r"foo"i ``` From 0a6be26da014634757ffe5c66954e9c1bd66ec4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 19 Jun 2023 15:29:45 +0200 Subject: [PATCH 1596/1761] Push v1.15.0 to the previous installer --- elixir.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/elixir.csv b/elixir.csv index 48961d2c7..d28528687 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,4 +1,5 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512,min_otp_release +1.15.0,https://github.com/elixir-lang/elixir/releases/download/v1.15.0/elixir-otp-25.zip,release,1,79d64b53b8cce7dbb300dcb79d13217ec2c2aede,8582b80cd32ce262d1fc9db8e1b2ef25d14b081c83c8392752e0376f5bebc51e,25.0 1.14.5,https://github.com/elixir-lang/elixir/releases/download/v1.14.5/elixir-otp-25.zip,release,1,6fc78c40bd13afbd8531dff6a08846d095c1d4ea,f3b35d9fa61da7e93c9979cb8a08f64a9ce7074aeda66fae994f2a4ea2e4f82e,25.0 1.14.4,https://github.com/elixir-lang/elixir/releases/download/v1.14.4/elixir-otp-25.zip,release,1,2c52e5a2357030ecb31bbf3dff5835122b1658ab,a5b7aadfd896e691a6494f9079fcd6f1209adcbd93f2d40e5770d80edc0f33e6,25.0 1.14.2,https://github.com/elixir-lang/elixir/releases/download/v1.14.2/elixir-otp-25.zip,release,1,4bdbb762f102e6318388389a4b44e3a132534ae3,2ab159e875a8d407dde10ee279446d469022acf8128e4f390556ab44e8918a06,25.0 From 3fb615b6de5085b4971ecfdbff2433187621a9fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 19 Jun 2023 15:31:09 +0200 Subject: [PATCH 1597/1761] Temporarily revert links to new installer --- install.markdown | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/install.markdown b/install.markdown index c974bc2e7..f11cb0a7d 100644 --- a/install.markdown +++ b/install.markdown @@ -102,11 +102,7 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se ### Windows - Using Windows installers: - * [Download and run the Erlang installer](https://www.erlang.org/downloads.html) - * Download and run the Elixir installer compatible with your Erlang/OTP version: -{% for otp_version in stable.otp_versions %} * [Elixir {{ stable.version }} on Erlang {{ otp_version }}](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/elixir-otp-{{ otp_version }}.exe) -{% endfor %} - Run `erl` in the terminal if you are unsure of your Erlang/OTP version.
    Previous Elixir versions are available in our [Releases](https://github.com/elixir-lang/elixir/releases) page. + * [Download and run the online Elixir installer](https://github.com/elixir-lang/elixir-windows-setup/releases/tag/v2.4) - Using [Scoop](https://scoop.sh/): * Install Erlang: `scoop install erlang` @@ -115,8 +111,6 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se - Using [Chocolatey](https://community.chocolatey.org/): * Install Elixir (installs Erlang as a dependency): `choco install elixir` -Elixir versions before v1.15 can also be installed using the deprecated [Online Elixir Installer](https://github.com/elixir-lang/elixir-windows-setup/releases/tag/v2.4). - ### Raspberry Pi and embedded devices To build and package an Elixir application, with the whole operating system, and burn that into a disk or deploy it overwhere, [check out the Nerves project](https://www.nerves-project.org). From 19faeadb9285177cbcd425f75693d9aa74d5e82e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 19 Jun 2023 16:08:29 +0200 Subject: [PATCH 1598/1761] Remove broken v1.15.0 from online installer --- elixir.csv | 1 - 1 file changed, 1 deletion(-) diff --git a/elixir.csv b/elixir.csv index d28528687..48961d2c7 100644 --- a/elixir.csv +++ b/elixir.csv @@ -1,5 +1,4 @@ version,url_precompiled,release_type,windows_installer_compat,sha1,sha512,min_otp_release -1.15.0,https://github.com/elixir-lang/elixir/releases/download/v1.15.0/elixir-otp-25.zip,release,1,79d64b53b8cce7dbb300dcb79d13217ec2c2aede,8582b80cd32ce262d1fc9db8e1b2ef25d14b081c83c8392752e0376f5bebc51e,25.0 1.14.5,https://github.com/elixir-lang/elixir/releases/download/v1.14.5/elixir-otp-25.zip,release,1,6fc78c40bd13afbd8531dff6a08846d095c1d4ea,f3b35d9fa61da7e93c9979cb8a08f64a9ce7074aeda66fae994f2a4ea2e4f82e,25.0 1.14.4,https://github.com/elixir-lang/elixir/releases/download/v1.14.4/elixir-otp-25.zip,release,1,2c52e5a2357030ecb31bbf3dff5835122b1658ab,a5b7aadfd896e691a6494f9079fcd6f1209adcbd93f2d40e5770d80edc0f33e6,25.0 1.14.2,https://github.com/elixir-lang/elixir/releases/download/v1.14.2/elixir-otp-25.zip,release,1,4bdbb762f102e6318388389a4b44e3a132534ae3,2ab159e875a8d407dde10ee279446d469022acf8128e4f390556ab44e8918a06,25.0 From 4b2c5cef62acc1135e1806c49dfb251f91ba475b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 19 Jun 2023 16:25:29 +0200 Subject: [PATCH 1599/1761] Revert "Temporarily revert links to new installer" This reverts commit 3fb615b6de5085b4971ecfdbff2433187621a9fe. --- install.markdown | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index f11cb0a7d..c974bc2e7 100644 --- a/install.markdown +++ b/install.markdown @@ -102,7 +102,11 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se ### Windows - Using Windows installers: - * [Download and run the online Elixir installer](https://github.com/elixir-lang/elixir-windows-setup/releases/tag/v2.4) + * [Download and run the Erlang installer](https://www.erlang.org/downloads.html) + * Download and run the Elixir installer compatible with your Erlang/OTP version: +{% for otp_version in stable.otp_versions %} * [Elixir {{ stable.version }} on Erlang {{ otp_version }}](https://github.com/elixir-lang/elixir/releases/download/v{{ stable.version }}/elixir-otp-{{ otp_version }}.exe) +{% endfor %} + Run `erl` in the terminal if you are unsure of your Erlang/OTP version.
    Previous Elixir versions are available in our [Releases](https://github.com/elixir-lang/elixir/releases) page. - Using [Scoop](https://scoop.sh/): * Install Erlang: `scoop install erlang` @@ -111,6 +115,8 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se - Using [Chocolatey](https://community.chocolatey.org/): * Install Elixir (installs Erlang as a dependency): `choco install elixir` +Elixir versions before v1.15 can also be installed using the deprecated [Online Elixir Installer](https://github.com/elixir-lang/elixir-windows-setup/releases/tag/v2.4). + ### Raspberry Pi and embedded devices To build and package an Elixir application, with the whole operating system, and burn that into a disk or deploy it overwhere, [check out the Nerves project](https://www.nerves-project.org). From fdc7a97ce97bfe95620e82684203951e6083aa19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 26 Jun 2023 23:34:53 +0200 Subject: [PATCH 1600/1761] Update keywords-and-maps.markdown --- getting-started/keywords-and-maps.markdown | 129 ++++++++++----------- 1 file changed, 62 insertions(+), 67 deletions(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 861834796..ffd4e75e0 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -106,9 +106,35 @@ iex> [b: b, a: a] = [a: 1, b: 2] In order to manipulate keyword lists, Elixir provides [the `Keyword` module](https://hexdocs.pm/elixir/Keyword.html). Remember, though, keyword lists are simply lists, and as such they provide the same linear performance characteristics as them: the longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly for passing optional values. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. -## Maps +### `do`-blocks and keywords -Whenever you need a key-value store, maps are the "go to" data structure in Elixir. A map is created using the `%{}` syntax: +As we have seen, keywords are mostly used in the language to pass optional values. In fact, we have used keywords before in this guide. For example, we have seen: + +```elixir +iex> if true do +...> "This will be seen" +...> else +...> "This won't" +...> end +"This will be seen" +``` + +It happens that `do` blocks are nothing more than a syntax convenience on top of keywords. We can rewrite the above to: + +```elixir +iex> if true, do: "This will be seen", else: "This won't" +"This will be seen" +``` + +Pay close attention to both syntaxes. In the keyword list format, we separate each key-value pair with commas, and each key is followed by `:`. In the `do`-blocks, we get rid of the colons, the commas, and separate each keyword by a newline. They are useful exactly because they remove the verbosity when writing blocks of code. Most of the time, you will use the block syntax, but it is good to know they are equivalent. + +Note that only a handful of keyword lists can be converted to blocks: `do`, `else`, `catch`, `rescue`, and `after`. Those are all the keywords used by Elixir control-flow constructs. We have already learned some of them and we will learn others in the future. + +With this out of the way, let's see how we can work with nested data structures. + +## Maps as key-value pairs + +Whenever you need to store key-value pairs, maps are the "go to" data structure in Elixir. A map is created using the `%{}` syntax: ```elixir iex> map = %{:a => 1, 2 => :b} @@ -141,20 +167,7 @@ iex> %{:c => c} = %{:a => 1, 2 => :b} As shown above, a map matches as long as the keys in the pattern exist in the given map. Therefore, an empty map matches all maps. -Variables can be used when accessing, matching and adding map keys: - -```elixir -iex> n = 1 -1 -iex> map = %{n => :one} -%{1 => :one} -iex> map[n] -:one -iex> %{^n => :one} = %{1 => :one, 2 => :two, 3 => :three} -%{1 => :one, 2 => :two, 3 => :three} -``` - -[The `Map` module](https://hexdocs.pm/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to manipulate maps: +[The `Map` module](https://hexdocs.pm/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to add, remove, and update maps keys: ```elixir iex> Map.get(%{:a => 1, 2 => :b}, :a) @@ -165,68 +178,39 @@ iex> Map.to_list(%{:a => 1, 2 => :b}) [{2, :b}, {:a, 1}] ``` -Maps have the following syntax for updating a key's value: +## Maps of fixed keys -```elixir -iex> map = %{:a => 1, 2 => :b} -%{2 => :b, :a => 1} +In the previous section, we have used maps as a key-value data structure where keys can be added or removed at any time. However, it is also common to create maps with a pre-defined set of keys. Their values may be updated, but new keys are never added nor removed. This is useful when we know the shape of the data we are working with and, if we get a different key, it likely means a mistake +was done elsewhere. -iex> %{map | 2 => "two"} -%{2 => "two", :a => 1} -iex> %{map | :c => 3} -** (KeyError) key :c not found in: %{2 => :b, :a => 1} -``` - -The syntax above requires the given key to exist. It cannot be used to add new keys. For example, using it with the `:c` key failed because there is no `:c` in the map. - -When all the keys in a map are atoms, you can use the keyword syntax for convenience: +We define such maps using the same syntax as in the previous section, except +that all keys must be atoms: ```elixir -iex> map = %{a: 1, b: 2} -%{a: 1, b: 2} +iex> map = %{:name => "John", :age => 23} +%{name: "John", age: 23} ``` -Another interesting property of maps is that they provide their own syntax for accessing atom keys: - -```elixir -iex> map = %{:a => 1, 2 => :b} -%{2 => :b, :a => 1} - -iex> map.a -1 -iex> map.c -** (KeyError) key :c not found in: %{2 => :b, :a => 1} -``` +As you can see from the printed result above, Elixir also allows you to +write maps of atom keys using the same `key: value` syntax as keyword lists. -This syntax has one large benefit in that it raises if the key does not exist in the map. Sometimes the Elixir compiler may even warn too. This makes it useful to get quick feedback and spot bugs and typos early on. - -Elixir developers typically prefer to use the `map.field` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post by José Valim](https://dashbit.co/blog/writing-assertive-code-with-elixir) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. - -## `do`-blocks and keywords - -As we have seen, keywords are mostly used in the language to pass optional values. In fact, we have used keywords before in this guide. For example, we have seen: +When the keys are atoms, we can also also access them using the `map.key` +syntax: ```elixir -iex> if true do -...> "This will be seen" -...> else -...> "This won't" -...> end -"This will be seen" -``` - -It happens that `do` blocks are nothing more than a syntax convenience on top of keywords. We can rewrite the above to: +iex> map = %{name: "John", age: 23} +%{name: "John", age: 23} -```elixir -iex> if true, do: "This will be seen", else: "This won't" -"This will be seen" +iex> map.name +"John" +iex> map.agee +** (KeyError) key :agee not found in: %{name: "John", age: 23} ``` -Pay close attention to both syntaxes. In the keyword list format, we separate each key-value pair with commas, and each key is followed by `:`. In the `do`-blocks, we get rid of the colons, the commas, and separate each keyword by a newline. They are useful exactly because they remove the verbosity when writing blocks of code. Most of the time, you will use the block syntax, but it is good to know they are equivalent. - -Note that only a handful of keyword lists can be converted to blocks: `do`, `else`, `catch`, `rescue`, and `after`. Those are all the keywords used by Elixir control-flow constructs. We have already learned some of them and we will learn others in the future. +This syntax has one large benefit in that it raises if the key does not exist in the map. Sometimes the Elixir compiler may even warn too. This makes it useful to get quick feedback and spot bugs and typos early on. This is also +the syntax used to power another Elixir feature called "Structs". -With this out of the way, let's see how we can work with nested data structures. +Elixir developers typically prefer to use the `map.key` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post by José Valim](https://dashbit.co/blog/writing-assertive-code-with-elixir) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. ## Nested data structures @@ -272,6 +256,17 @@ iex> users = update_in users[:mary].languages, fn languages -> List.delete(langu ] ``` -There is more to learn about `put_in/2` and `update_in/2`, including the `get_and_update_in/2` that allows us to extract a value and update the data structure at once. There are also `put_in/3`, `update_in/3` and `get_and_update_in/3` which allow dynamic access into the data structure. [Check their respective documentation in the `Kernel` module for more information](https://hexdocs.pm/elixir/Kernel.html). +There is more to learn about `put_in/2` and `update_in/2`, including the `get_and_update_in/2` that allows us to extract a value and update the data structure at once. There are also `put_in/3`, `update_in/3` and `get_and_update_in/3` which allow dynamic access into the data structure. [Check their respective documentation in the `Kernel` module for more information](https://hexdocs.pm/elixir/Kernel.html). Between the Access +module and pattern matching, Elixir developers have a rich set of tools +for manipulating nested and complex data structures. + +## Summary + +This concludes our introduction to associative data structures in Elixir. +As a summary, you should: + + * Use keyword lists for passing optional values to functions + + * Use maps for general key-value data structures and when working with known data (with fixed keys) -This concludes our introduction to associative data structures in Elixir. You will find out that, given keyword lists and maps, you will always have the right tool to tackle problems that require associative data structures in Elixir. +Now we can move on to talk about modules and functions. From 424a7406061ab66b9c83a4a9ab941182357dc7aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 27 Jun 2023 15:16:45 +0200 Subject: [PATCH 1601/1761] Avoid confusing note about importing also requiring --- getting-started/alias-require-and-import.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 0b6e6f88d..376b055a3 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -90,7 +90,7 @@ Note that like the `alias` directive, `require` is also lexically scoped. We wil ## import -We use `import` whenever we want to access functions or macros from other modules without using the fully-qualified name. Note we can only import public functions, as private functions are never accessible externally. `import`ing a module automatically `require`s it. +We use `import` whenever we want to access functions or macros from other modules without using the fully-qualified name. Note we can only import public functions, as private functions are never accessible externally. For example, if we want to use the `duplicate/2` function from the `List` module several times, we can import it: From 4ebc53755e566f1fe8946c76d92e677f18682258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 30 Jun 2023 18:21:51 +0200 Subject: [PATCH 1602/1761] Release v1.15.1 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 3fb159dd5..5ff9391d1 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_15: name: v1.15 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.15.0 + version: 1.15.1 v1_14: name: v1.14 From 9c5e946bcc2e7866f04a1332c349d1ba016dba8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 1 Jul 2023 22:28:57 +0200 Subject: [PATCH 1603/1761] Bump to Elixir v1.15.2 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 5ff9391d1..8059de3a0 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_15: name: v1.15 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.15.1 + version: 1.15.2 v1_14: name: v1.14 From 0ba0fc7bf7a6c16786750976c7914eb59a84e6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 3 Jul 2023 18:06:44 +0200 Subject: [PATCH 1604/1761] Type system updates (#1703) --- ...-type-system-updates-research-dev.markdown | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 _posts/2023-06-22-type-system-updates-research-dev.markdown diff --git a/_posts/2023-06-22-type-system-updates-research-dev.markdown b/_posts/2023-06-22-type-system-updates-research-dev.markdown new file mode 100644 index 000000000..98a6ec5e9 --- /dev/null +++ b/_posts/2023-06-22-type-system-updates-research-dev.markdown @@ -0,0 +1,84 @@ +--- +layout: post +title: "Type system updates: moving from research into development" +author: José Valim +category: Announcements +excerpt: A short status update on the effort to bring a type system into Elixir. +--- + +A year ago, at ElixirConf EU 2022, we announced an effort to research +and develop a type system for Elixir ([video presentation](https://www.youtube.com/watch?v=Jf5Hsa1KOc8)) +([written report](/blog/2022/10/05/my-future-with-elixir-set-theoretic-types/)). + +This work is happening under the lead of [Giuseppe Castagna](https://www.irif.fr/~gc/), +CNRS Senior Researcher, and taken by +[Guillaume Duboc](https://www.irif.fr/users/gduboc/index) as part of his +PhD studies, with further guidance from myself (José Valim). + +This article is a summary of where we are in our efforts and where we +are going. + +## Out of research + +Our main goal during research is to find a type system that can model +most of Elixir's functional semantics and develop brand new theory on +the areas we found to be incompatible or lacking. We believe we were +able to achieve this goal with a gradual set-theoretic type system +and we are now ready to head towards development. Over the last 2 months, +we have published plenty of resources on our results: + + * [A technical report on the design principles of the Elixir type system](https://arxiv.org/abs/2306.06391) + * [A technical presentation by Guillaume Duboc at ElixirConf 2023 on the work above](https://youtube.com/watch?v=gJJH7a2J9O8) + * [An informal discussion with Giuseppe Castagna, Guillaume Duboc, and José Valim on the SmartLogic podcast](https://smartlogic.io/podcast/elixir-wizards/s10-e12-jose-guillaume-giuseppe-types-elixir/) + * [An informal Q&A with Guillaume Duboc, José Valim, and the community on Twitch](https://www.twitch.tv/videos/1841707383) + +Our focus so far has been on the semantics. While we have introduced a +new syntax capable of expressing the semantics of the new set-theoretic +type system, the syntax is not final as there are still no concrete +plans for user-facing changes to the language. Once we are confident +those changes will happen, we will have plenty of discussion with the +community about the type system interface and its syntax. + +The work so far has been made possible thanks to a partnership between +the [CNRS](https://www.cnrs.fr/fr) and [Remote](https://remote.com), +with sponsorships from [Fresha](https://www.fresha.com), +[Supabase](https://supabase.com), and [Dashbit](https://dashbit.co). + +## Into development + +While there is still on-going research, our focus for the second semester +of 2023 onwards is on development. + +Incorporating a type system into a language used at scale can be a daunting +task. Our concerns range from how the community will interact and use the +type system to how it will perform on large codebases. Therefore, our plan +is to gradually introduce our gradual (pun intended) type system into the +Elixir compiler. + +In the first release, types will be used just internally by the compiler. +The type system will extract type information from patterns and guards to +find the most obvious mistakes, such as typos in field names or type +mismatches from attempting to add an integer to a string, without introducing +any user-facing changes to the language. At this stage, our main goal is +to assess the performance impact of the type system and the quality of +the reports we can generate in case of typing violations. If we are +unhappy with the results, we still have time to reassess our work or drop +the initiative altogether. + +The second milestone is to introduce type annotations only in structs, +which are named and statically-defined in Elixir codebases. Elixir programs +frequently pattern match on structs, which reveals information about +the struct fields, but it knows nothing about their respective types. +By propagating types from structs and their fields throughout the program, +we will increase the type system’s ability to find errors while further +straining our type system implementation. + +The third milestone is to introduce the (most likely) `$`-prefixed type +annotations for functions, with no or very limited type reconstruction: +users can annotate their code with types, but any untyped parameter +will be assumed to be of the `dynamic()` type. If successful, then we +will effectively have introduced a type system into the language. + +This new exciting development stage is sponsored by [Fresha](https://www.fresha.com) ([they are hiring!](https://www.fresha.com/careers/openings?department=engineering)), +[Starfish*](https://starfish.team) ([they are hiring!](https://starfish.team/jobs/experienced-elixir-developer)), +and [Dashbit](https://dashbit.co). From d61edbe735877aae94f0d14138622b82b4760a99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 5 Jul 2023 16:19:43 +0200 Subject: [PATCH 1605/1761] Move asking questions around --- getting-started/introduction.markdown | 16 -------------- install.markdown | 30 ++++++++++++++++++++------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 80b58adf2..a5e3b2c99 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -68,19 +68,3 @@ Hello world from Elixir ``` Later on we will learn how to compile Elixir code (in [Chapter 8](/getting-started/modules-and-functions.html)) and how to use the Mix build tool (in the [Mix & OTP guide](/getting-started/mix-otp/introduction-to-mix.html)). For now, let's move on to [Chapter 2](/getting-started/basic-types.html). - -## Asking questions - -When going through this getting started guide, it is common to have questions; after all, that is part of the learning process! There are many places where you can ask questions, here are some of them: - - * [#elixir on irc.libera.chat](irc://irc.libera.chat/elixir) - * [Elixir Forum](http://elixirforum.com) - * [Elixir on Slack](https://elixir-lang.slack.com) - * [Elixir on Discord](https://discord.gg/elixir) - * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) - -When asking questions, remember these two tips: - - * Instead of asking "how to do X in Elixir", ask "how to solve Y in Elixir". In other words, don't ask how to implement a particular solution, instead describe the problem at hand. Stating the problem gives more context and less bias for a correct answer. - - * In case things are not working as expected, please include as much information as you can in your report, for example: your Elixir version, the code snippet and the error message alongside the error stacktrace. Use sites like [Gist](https://gist.github.com/) to paste this information. diff --git a/install.markdown b/install.markdown index c974bc2e7..5c481ddc7 100644 --- a/install.markdown +++ b/install.markdown @@ -9,13 +9,15 @@ layout: default {% include toc.html %} -The quickest way to install Elixir is through a distribution or using one of the available installers. If not available, then we recommend the precompiled packages or compiling it. +The quickest way to install Elixir is through a distribution or using one of the available installers. If such an option is not available, then we recommend using the precompiled packages or compiling the language yourself. All of these options are detailed next. -Note that Elixir {{ stable.name }} requires Erlang {{ stable.minimum_otp }} or later. Many of the instructions below will automatically install Erlang for you. In case they do not, read the "Installing Erlang" section. +Note that Elixir {{ stable.name }} requires Erlang {{ stable.minimum_otp }} or later. Many of the instructions below will automatically install Erlang for you. If they do not, the "Installing Erlang" section has you covered. + +If you are not sure if you have Elixir installed or not, you can run `elixir --version` in your terminal. ## By Operating System -Choose your operating system and tool. +Install Elixir according to your operating system and tool of choice. ### macOS @@ -170,11 +172,9 @@ In case you are feeling a bit more adventurous, you can also compile from main: ```bash $ git clone https://github.com/elixir-lang/elixir.git $ cd elixir -$ make clean test +$ make clean compile ``` -If the tests pass, you are ready to go. Otherwise, feel free to open an issue [in the issues tracker on GitHub](https://github.com/elixir-lang/elixir). - ## Installing Erlang The only prerequisite for Elixir is Erlang, version {{ stable.minimum_otp }} or later. When installing Elixir, Erlang is generally installed automatically for you. However, if you want to install Erlang manually, you might check: @@ -201,6 +201,20 @@ On Unix systems, you need to [find your shell profile file](https://unix.stackex export PATH="$PATH:/path/to/elixir/bin" ``` -## Checking the installed version of Elixir +## Asking questions + +After Elixir is up and running, it is common to have questions as you learn and use the language. There are many places where you can ask questions, here are some of them: + + * [#elixir on irc.libera.chat](irc://irc.libera.chat/elixir) + * [Elixir Forum](http://elixirforum.com) + * [Elixir on Slack](https://elixir-lang.slack.com) + * [Elixir on Discord](https://discord.gg/elixir) + * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) + +When asking questions, remember these two tips: + + * Instead of asking "how to do X in Elixir", ask "how to solve Y in Elixir". In other words, don't ask how to implement a particular solution, instead describe the problem at hand. Stating the problem gives more context and less bias for a correct answer. + + * In case things are not working as expected, please include as much information as you can in your report, for example: your Elixir version, the code snippet and the error message alongside the error stacktrace. -Once you have Elixir installed, you can check its version by running `elixir --version`. +Enjoy! From a1b3721a38e6fa6e6ac57ed8db0583d91432f93d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 6 Jul 2023 16:05:09 +0200 Subject: [PATCH 1606/1761] Update docs.markdown --- docs.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs.markdown b/docs.markdown index 1dfa34bd8..67f3b6ce1 100644 --- a/docs.markdown +++ b/docs.markdown @@ -8,7 +8,8 @@ layout: default The Elixir programming language is broken into 6 applications. The links below reference the documentation for the modules and functions in each of those -applications. For a general introduction to the language, see our [guides](/getting-started/introduction.html). +applications. For guides, books, courses, and other resources, visit our +[Learning](/learning.html) page. {% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} From de0365f7ec331e6759d062bd45c1bdc9a3bd515a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 6 Jul 2023 16:19:11 +0200 Subject: [PATCH 1607/1761] Remove epub generation as it has been moved to ExDoc --- _config.yml | 1 - _epub/.eslintrc | 6 - _epub/.formatter.exs | 4 - _epub/.gitignore | 20 - _epub/README.md | 10 - _epub/assets/less/app.less | 109 - _epub/gulpfile.js | 61 - _epub/lib/elixir_lang_guide.ex | 322 -- _epub/lib/templates/page.eex | 19 - _epub/mix.exs | 33 - _epub/mix.lock | 10 - _epub/package-lock.json | 5900 --------------------------- _epub/package.json | 39 - _epub/priv/app-23242f2084.css | 1 - images/contents/debugger-elixir.png | Bin 117136 -> 0 bytes 15 files changed, 6535 deletions(-) delete mode 100644 _epub/.eslintrc delete mode 100644 _epub/.formatter.exs delete mode 100644 _epub/.gitignore delete mode 100644 _epub/README.md delete mode 100644 _epub/assets/less/app.less delete mode 100644 _epub/gulpfile.js delete mode 100644 _epub/lib/elixir_lang_guide.ex delete mode 100644 _epub/lib/templates/page.eex delete mode 100644 _epub/mix.exs delete mode 100644 _epub/mix.lock delete mode 100644 _epub/package-lock.json delete mode 100644 _epub/package.json delete mode 100644 _epub/priv/app-23242f2084.css delete mode 100644 images/contents/debugger-elixir.png diff --git a/_config.yml b/_config.yml index c71405db3..4481c167a 100644 --- a/_config.yml +++ b/_config.yml @@ -7,7 +7,6 @@ repository: elixir-lang/elixir-lang.github.com url: https://elixir-lang.org exclude: - _build/ - - _epub/ - vendor/ - Gemfile - Gemfile.lock diff --git a/_epub/.eslintrc b/_epub/.eslintrc deleted file mode 100644 index 535509b69..000000000 --- a/_epub/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "standard", - "env": { - "browser": true - } -} diff --git a/_epub/.formatter.exs b/_epub/.formatter.exs deleted file mode 100644 index d2cda26ed..000000000 --- a/_epub/.formatter.exs +++ /dev/null @@ -1,4 +0,0 @@ -# Used by "mix format" -[ - inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] -] diff --git a/_epub/.gitignore b/_epub/.gitignore deleted file mode 100644 index 392973856..000000000 --- a/_epub/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# The directory Mix will write compiled artifacts to. -/_build/ - -# The directory Mix downloads your dependencies sources to. -/deps/ - -# Ignore .fetch files in case you like to edit your project deps locally. -/.fetch - -# If the VM crashes, it generates a dump, let's ignore it too. -erl_crash.dump - -# Also ignore archive artifacts (built via "mix archive.build"). -*.ez - -# Ignore epub artifacts -*.epub - -# Ignore node deps -/node_modules/ \ No newline at end of file diff --git a/_epub/README.md b/_epub/README.md deleted file mode 100644 index adece76a2..000000000 --- a/_epub/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Elixir Lang Guides (EPUB format) - -Generate EPUB documents for Elixir guides: - - $ mix epub - -To rebuild assets: - - $ npm install - $ npm run build \ No newline at end of file diff --git a/_epub/assets/less/app.less b/_epub/assets/less/app.less deleted file mode 100644 index 28dcb1820..000000000 --- a/_epub/assets/less/app.less +++ /dev/null @@ -1,109 +0,0 @@ -// Inline code -code.inline { - font-family: courier, monospace; - font-style: normal; - background-color: #f7f9fc; - vertical-align: baseline; - border-radius: 2px; - padding: .1em .2em; -} - -// Block code -pre code { - font-family: courier, monospace; - font-style: normal; - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fdf6e3; - color: #657b83; - .unselectable { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } -} - -@default-text-color: #4d4d4c; -/* https://tmbb.github.io/makeup_demo/elixir.html#tango */ -.makeup { - .hll {background-color: #ffffcc} - .bp {color: #3465a4; } /* :name_builtin_pseudo */ - .c {color: #999999; } /* :comment */ - .c1 {color: #999999; } /* :comment_single */ - .ch {color: #999999; } /* :comment_hashbang */ - .cm {color: #999999; } /* :comment_multiline */ - .cp {color: #999999; } /* :comment_preproc */ - .cpf {color: #999999; } /* :comment_preproc_file */ - .cs {color: #999999; } /* :comment_special */ - .dl {color: #4e9a06; } /* :string_delimiter */ - .err {color: #a40000; border: #ef2929; } /* :error */ - .fm {color: @default-text-color; } /* :name_function_magic */ - .g {color: @default-text-color; } /* :generic */ - .gd {color: #a40000; } /* :generic_deleted */ - .ge {color: @default-text-color; font-style: italic; } /* :generic_emph */ - .gh {color: #000080; font-weight: bold; } /* :generic_heading */ - .gi {color: #00A000; } /* :generic_inserted */ - .go {color: @default-text-color; font-style: italic; } /* :generic_output */ - .gp {color: #999999; } /* :generic_prompt */ - .gr {color: #ef2929; } /* :generic_error */ - .gs {color: @default-text-color; font-weight: bold; } /* :generic_strong */ - .gt {color: #a40000; font-weight: bold; } /* :generic_traceback */ - .gu {color: #800080; font-weight: bold; } /* :generic_subheading */ - .il {color: #0000cf; font-weight: bold; } /* :number_integer_long */ - .k {color: #204a87; } /* :keyword */ - .kc {color: #204a87; } /* :keyword_constant */ - .kd {color: #204a87; } /* :keyword_declaration */ - .kn {color: #204a87; } /* :keyword_namespace */ - .kp {color: #204a87; } /* :keyword_pseudo */ - .kr {color: #204a87; } /* :keyword_reserved */ - .kt {color: #204a87; } /* :keyword_type */ - .l {color: @default-text-color; } /* :literal */ - .ld {color: #cc0000; } /* :literal_date */ - .m {color: #2937ab; } /* :number */ - .mb {color: #2937ab; } /* :number_bin */ - .mf {color: #2937ab; } /* :number_float */ - .mh {color: #2937ab; } /* :number_hex */ - .mi {color: #2937ab; } /* :number_integer */ - .mo {color: #2937ab; } /* :number_oct */ - .n {color: @default-text-color; } /* :name */ - .na {color: #c4a000; } /* :name_attribute */ - .nb {color: #204a87; } /* :name_builtin */ - .nc {color: #0000cf; } /* :name_class */ - .nd {color: #5c35cc; font-weight: bold; } /* :name_decorator */ - .ne {color: #cc0000; font-weight: bold; } /* :name_exception */ - .nf {color: #f57900; } /* :name_function */ - .ni {color: #ce5c00; } /* :name_entity */ - .nl {color: #f57900; } /* :name_label */ - .nn {color: @default-text-color; } /* :name_namespace */ - .no {color: #c17d11; } /* :name_constant */ - .nt {color: #204a87; font-weight: bold; } /* :name_tag */ - .nv {color: @default-text-color; } /* :name_variable */ - .nx {color: @default-text-color; } /* :name_other */ - .o {color: #ce5c00; } /* :operator */ - .ow {color: #204a87; } /* :operator_word */ - .p {color: @default-text-color; } /* :punctuation */ - .py {color: @default-text-color; } /* :name_property */ - .s {color: #4e9a06; } /* :string */ - .s1 {color: #4e9a06; } /* :string_single */ - .s2 {color: #4e9a06; } /* :string_double */ - .sa {color: #4e9a06; } /* :string_affix */ - .sb {color: #4e9a06; } /* :string_backtick */ - .sc {color: #4e9a06; } /* :string_char */ - .sd {color: #8f5902; font-style: italic; } /* :string_doc */ - .se {color: #204a87; } /* :string_escape */ - .sh {color: #4e9a06; } /* :string_heredoc */ - .si {color: #204a87; } /* :string_interpol */ - .sr {color: #cc0000; } /* :string_regex */ - .ss {color: #c17d11; } /* :string_symbol */ - .sx {color: #4e9a06; } /* :string_other */ - .sx {color: #4e9a06; } /* :string_sigil */ - .vc {color: @default-text-color; } /* :name_variable_class */ - .vg {color: @default-text-color; } /* :name_variable_global */ - .vi {color: @default-text-color; } /* :name_variable_instance */ - .vm {color: @default-text-color; } /* :name_variable_magic */ - .x {color: @default-text-color; } /* :other */ -} diff --git a/_epub/gulpfile.js b/_epub/gulpfile.js deleted file mode 100644 index a59647d7a..000000000 --- a/_epub/gulpfile.js +++ /dev/null @@ -1,61 +0,0 @@ -// Dependencies -// ------------ - -var gulp = require('gulp') -var $ = require('gulp-load-plugins')({camelize: true}) -var sequence = require('run-sequence') -var del = require('del') -var LessPluginNpmImport = require('less-plugin-npm-import') -var LessPluginAutoPrefix = require('less-plugin-autoprefix') - -// Config -// ------ - -// Set variable via $ gulp --type production -var environment = $.util.env.type || 'development' -var isProduction = environment === 'production' -var distPath = 'priv' - -var npmPlugin = new LessPluginNpmImport() -var autoprefixPlugin = new LessPluginAutoPrefix({ - browsers: ['last 2 versions'] -}) - -// Tasks -// ----- - -gulp.task('clean', function () { - return del(distPath) -}) - -gulp.task('less', function () { - return less({src: 'assets/less/app.less', dest: distPath}) -}) - -gulp.task('build', function (done) { - sequence( - 'clean', - ['less'], - done - ) -}) - -gulp.task('default', ['lint', 'build']) - -var less = function (options) { - return gulp.src(options.src) - .pipe($.less({ - plugins: [ - npmPlugin, - autoprefixPlugin - ] - })) - .pipe($.plumber()) - .pipe($.if(isProduction, $.cleanCss({ - compatibility: 'ie8', - processImport: false - }))) - .pipe($.if(isProduction, $.rev())) - .pipe($.size({title: 'less'})) - .pipe(gulp.dest(options.dest)) -} diff --git a/_epub/lib/elixir_lang_guide.ex b/_epub/lib/elixir_lang_guide.ex deleted file mode 100644 index db7f1d50d..000000000 --- a/_epub/lib/elixir_lang_guide.ex +++ /dev/null @@ -1,322 +0,0 @@ -defmodule ElixirLangGuide do - @moduledoc """ - Generate EPUB documents for Elixir guides. - """ - - @type config :: %{ - guide: String.t(), - homepage: String.t(), - output: Path.t(), - root_dir: Path.t(), - scripts: [Path.t()], - styles: [Path.t()], - images: [Path.t()] - } - - @doc "Generate all guides" - @spec run(Path.t()) :: :ok - def run(source) do - config = %{ - guide: nil, - homepage: "http://elixir-lang.org", - output: "../downloads/books", - root_dir: source, - scripts: [], - styles: assets("priv/app-*.css"), - images: [] - } - - for guide <- ~w(getting_started meta mix_otp) do - config |> Map.put(:guide, guide) |> to_epub() |> log() - end - - :ok - end - - defp assets(path) do - :elixir_lang_guide - |> Application.app_dir(path) - |> Path.wildcard() - end - - defp log(file) do - Mix.shell().info([:green, "Generated guide at #{inspect(file)}"]) - end - - @spec to_epub(config) :: String.t() - defp to_epub(options) do - nav = - options.root_dir - |> Path.expand() - |> Path.join("_data/getting-started.yml") - |> YamlElixir.read_from_file!() - |> generate_nav(options) - - elixir_versions = - options.root_dir - |> Path.expand() - |> Path.join("_data/elixir-versions.yml") - |> YamlElixir.read_from_file!() - - options = Map.put(options, :elixir_versions, elixir_versions) - - nav - |> convert_markdown_pages(options) - |> to_epub(nav, options) - end - - defp generate_nav(yaml, options) do - yaml = - case options.guide do - "getting_started" -> Enum.at(yaml, 0) - "mix_otp" -> Enum.at(yaml, 1) - "meta" -> Enum.at(yaml, 2) - _ -> raise "invalid guide, allowed: `mix_otp`, `meta` or `getting_started`" - end - - for section <- List.wrap(yaml), - %{"slug" => slug, "title" => title} <- section["pages"] do - %{ - id: slug, - label: title, - content: slug <> ".xhtml", - dir: section["dir"], - scripts: List.wrap(options.scripts), - styles: List.wrap(options.styles) - } - end - end - - defp convert_markdown_pages(config, options) do - config - |> Enum.map(&Task.async(fn -> to_xhtml(&1, options) end)) - |> Enum.map(&Task.await(&1, :infinity)) - end - - defp to_xhtml(%{content: path, dir: dir} = nav, options) do - content = - options.root_dir - |> Path.expand() - |> Path.join("#{dir}#{path}") - |> String.replace(".xhtml", ".markdown") - |> File.read!() - |> clean_markdown(options) - |> Earmark.to_html() - |> apply_makeup() - |> to_page(nav) - - unless File.exists?(Path.join(options.output, dir)) do - File.mkdir_p(Path.join(options.output, dir)) - end - - file_path = "#{options.output}#{dir}#{path}" - File.write!(file_path, content) - file_path - end - - defp to_epub(files, nav, options) do - title = - case options.guide do - "getting_started" -> "Elixir Getting Started Guide" - "meta" -> "Meta-programming in Elixir" - "mix_otp" -> "Mix and OTP" - _ -> raise "invalid guide, allowed: `mix_otp`, `meta` or `getting_started`" - end - - images = - case options.guide do - "getting_started" -> - [ - Path.join(options.root_dir, "images/contents/kv-observer.png"), - Path.join(options.root_dir, "images/contents/debugger-elixir.png") - ] - - "mix_otp" -> - [ - Path.join(options.root_dir, "images/contents/kv-observer.png") - ] - - "meta" -> - [] - end - - config = %BUPE.Config{ - title: title, - creator: "elixir-lang.org", - unique_identifier: title_to_filename(title), - source: "#{options.homepage}/getting-started/", - pages: files, - scripts: options.scripts, - styles: options.styles, - images: images, - nav: nav - } - - output_file = "#{options.output}/#{title_to_filename(title)}.epub" - BUPE.build(config, output_file) - delete_generated_files(files) - Path.relative_to_cwd(output_file) - end - - defp delete_generated_files(files) do - Enum.map(files, &File.rm!(&1)) - end - - defp title_to_filename(title) do - title |> String.replace(" ", "-") |> String.downcase() - end - - defp clean_markdown(content, options) do - content - |> remove_includes() - |> remove_variables(options) - |> remove_span_hidden_hack() - |> remove_raw_endraw_tags() - |> remove_frontmatter() - |> fix_backslashes() - |> fix_images() - |> fix_js() - |> map_links(options) - end - - defp remove_includes(content) do - content - |> String.replace("{% include toc.html %}", "") - |> String.replace("{% include mix-otp-preface.html %}", "") - end - - defp remove_variables(content, options) do - %{"stable" => current_stable_version} = elixir_versions = Map.get(options, :elixir_versions) - stable = elixir_versions[current_stable_version] - - content - |> String.replace( - "{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %}", - "" - ) - |> String.replace("{{ stable.version }}", "#{stable["version"]}") - |> String.replace("{{ stable.minimum_otp }}", "#{stable["minimum_otp"]}") - end - - # The is a hack used in pattern-matching.md - defp remove_span_hidden_hack(content) do - String.replace(content, ~r/# {{ page.title }}(

    ([^<]*)<\/code><\/pre>/,
    -      page,
    -      &highlight_code_block/3
    -    )
    -  end
    -
    -  @makeup_options [lexer: Makeup.Lexers.ElixirLexer, formatter_options: [highlight_tag: "samp"]]
    -
    -  defp highlight_code_block(_html, _tag, code) do
    -    highlighted =
    -      code
    -      |> unescape_html()
    -      |> IO.iodata_to_binary()
    -      |> Makeup.highlight_inner_html(@makeup_options)
    -
    -    ~s(
    #{highlighted}
    ) - end - - entities = [{"&", ?&}, {"<", ?<}, {">", ?>}, {""", ?"}, {"'", ?'}] - - for {encoded, decoded} <- entities do - defp unescape_html(unquote(encoded) <> rest) do - [unquote(decoded) | unescape_html(rest)] - end - end - - defp unescape_html(<>) do - [c | unescape_html(rest)] - end - - defp unescape_html(<<>>) do - [] - end - - require EEx - page = Path.expand("templates/page.eex", __DIR__) - EEx.function_from_file(:defp, :to_page, page, [:content, :config]) -end diff --git a/_epub/lib/templates/page.eex b/_epub/lib/templates/page.eex deleted file mode 100644 index 388e412e3..000000000 --- a/_epub/lib/templates/page.eex +++ /dev/null @@ -1,19 +0,0 @@ - - - - - <%= config.label %> - - <%= for style <- config.styles do %> - - <% end %> - <%= for script <- config.scripts do %> - - <% end %> - - -

    <%= config.label %>

    - <%= content %> - - diff --git a/_epub/mix.exs b/_epub/mix.exs deleted file mode 100644 index 2e80604e3..000000000 --- a/_epub/mix.exs +++ /dev/null @@ -1,33 +0,0 @@ -defmodule ElixirLangGuide.Mixfile do - use Mix.Project - - def project do - [ - app: :elixir_lang_guide, - version: "0.1.0", - elixir: "~> 1.4", - build_embedded: Mix.env() == :prod, - start_permanent: Mix.env() == :prod, - deps: deps(), - aliases: [epub: &epub/1] - ] - end - - def application do - [extra_applications: [:logger]] - end - - defp epub(_args) do - Mix.Task.run("app.start") - ElixirLangGuide.run("..") - end - - defp deps do - [ - {:yaml_elixir, "~> 2.0"}, - {:earmark, "~> 1.0"}, - {:bupe, "~> 0.3.0"}, - {:makeup_elixir, "~> 0.14"} - ] - end -end diff --git a/_epub/mix.lock b/_epub/mix.lock deleted file mode 100644 index faca3b468..000000000 --- a/_epub/mix.lock +++ /dev/null @@ -1,10 +0,0 @@ -%{ - "bupe": {:hex, :bupe, "0.3.0", "3d6d02a0ea67f3441f985ecaf17acdcb56a2deedbdc0b5974ee6e87da66b69f0", [:mix], [], "hexpm", "138e9eb64bf82d2b0878e6b0aac9b69a6f5eba972812614f508c827958064f6a"}, - "earmark": {:hex, :earmark, "1.0.3", "89bdbaf2aca8bbb5c97d8b3b55c5dd0cff517ecc78d417e87f1d0982e514557b", [:mix], [], "hexpm", "0fdcd651f9689e81cda24c8e5d06947c5aca69dbd8ce3d836b02bcd0c6004592"}, - "ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, repo: "hexpm", optional: false]}], "hexpm"}, - "makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"}, - "makeup_elixir": {:hex, :makeup_elixir, "0.14.0", "cf8b7c66ad1cff4c14679698d532f0b5d45a3968ffbcbfd590339cb57742f1ae", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "d4b316c7222a85bbaa2fd7c6e90e37e953257ad196dc229505137c5e505e9eff"}, - "nimble_parsec": {:hex, :nimble_parsec, "1.2.0", "b44d75e2a6542dcb6acf5d71c32c74ca88960421b6874777f79153bbbbd7dccc", [:mix], [], "hexpm", "52b2871a7515a5ac49b00f214e4165a40724cf99798d8e4a65e4fd64ebd002c1"}, - "yamerl": {:hex, :yamerl, "0.8.1", "07da13ffa1d8e13948943789665c62ccd679dfa7b324a4a2ed3149df17f453a4", [:rebar3], [], "hexpm", "96cb30f9d64344fed0ef8a92e9f16f207de6c04dfff4f366752ca79f5bceb23f"}, - "yaml_elixir": {:hex, :yaml_elixir, "2.8.0", "c7ff0034daf57279c2ce902788ce6fdb2445532eb4317e8df4b044209fae6832", [:mix], [{:yamerl, "~> 0.8", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm", "4b674bd881e373d1ac6a790c64b2ecb69d1fd612c2af3b22de1619c15473830b"}, -} diff --git a/_epub/package-lock.json b/_epub/package-lock.json deleted file mode 100644 index 90505fe7f..000000000 --- a/_epub/package-lock.json +++ /dev/null @@ -1,5900 +0,0 @@ -{ - "name": "elixir_getting_started_guide_epub", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "accord": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/accord/-/accord-0.28.0.tgz", - "integrity": "sha512-sPF34gqHegaCSryKf5wHJ8wREK1dTZnHmC9hsB7D8xjntRdd30DXDPKf0YVIcSvnXJmcYu5SCvZRz28H++kFhQ==", - "dev": true, - "requires": { - "convert-source-map": "^1.5.0", - "glob": "^7.0.5", - "indx": "^0.2.3", - "lodash.clone": "^4.3.2", - "lodash.defaults": "^4.0.1", - "lodash.flatten": "^4.2.0", - "lodash.merge": "^4.4.0", - "lodash.partialright": "^4.1.4", - "lodash.pick": "^4.2.1", - "lodash.uniq": "^4.3.0", - "resolve": "^1.5.0", - "semver": "^5.3.0", - "uglify-js": "^2.8.22", - "when": "^3.7.8" - } - }, - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", - "dev": true - } - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "requires": { - "browserslist": "^1.7.6", - "caniuse-db": "^1.0.30000634", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^5.2.16", - "postcss-value-parser": "^3.2.3" - } - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true, - "optional": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "caniuse-db": { - "version": "1.0.30000977", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000977.tgz", - "integrity": "sha512-V+FisJLGKnEZg7Dmc1QxKEM62LJKOYIF8xEFCg9N98nCdac1gBZioxtYOXcscZtKwsoLcwyA+YFrgIMZ43ENfA==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "optional": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", - "dev": true, - "requires": { - "each-props": "^1.3.2", - "is-plain-object": "^5.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.x.x" - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "optional": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - } - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "electron-to-chromium": { - "version": "1.3.173", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.173.tgz", - "integrity": "sha512-weH16m8as+4Fy4XJxrn/nFXsIqB7zkxERhvj/5YX2HE4HB8MCu98Wsef4E3mu0krIT27ic0bGsr+TvqYrUn6Qg==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "optional": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.50", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", - "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "^1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "optional": true - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true - }, - "fork-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz", - "integrity": "sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA=", - "dev": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - } - }, - "gulp-clean-css": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.10.0.tgz", - "integrity": "sha512-7Isf9Y690o/Q5MVjEylH1H7L8WeZ89woW7DnhD5unTintOdZb67KdOayRgp9trUFo+f9UyJtuatV42e/+kghPg==", - "dev": true, - "requires": { - "clean-css": "4.2.1", - "plugin-error": "1.0.1", - "through2": "2.0.3", - "vinyl-sourcemaps-apply": "0.2.1" - }, - "dependencies": { - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - } - } - }, - "gulp-cli": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", - "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "v8flags": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", - "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - } - } - }, - "gulp-eslint": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-4.0.2.tgz", - "integrity": "sha512-fcFUQzFsN6dJ6KZlG+qPOEkqfcevRUXgztkYCvhNvJeSvOicC8ucutN4qR/ID8LmNZx9YPIkBzazTNnVvbh8wg==", - "dev": true, - "requires": { - "eslint": "^4.0.0", - "fancy-log": "^1.3.2", - "plugin-error": "^1.0.0" - } - }, - "gulp-if": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", - "integrity": "sha1-pJe351cwBQQcqivIt92jyARE1ik=", - "dev": true, - "requires": { - "gulp-match": "^1.0.3", - "ternary-stream": "^2.0.1", - "through2": "^2.0.1" - } - }, - "gulp-less": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-3.5.0.tgz", - "integrity": "sha512-FQLY7unaHdTOXG0jlwxeBQcWoPPrTMQZRA7HfYwSNi9IPVx5l7GJEN72mG4ri2yigp/f/VNGUAJnFMJHBmH3iw==", - "dev": true, - "requires": { - "accord": "^0.28.0", - "less": "2.6.x || ^2.7.1", - "object-assign": "^4.0.1", - "plugin-error": "^0.1.2", - "replace-ext": "^1.0.0", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - } - } - }, - "gulp-load-plugins": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gulp-load-plugins/-/gulp-load-plugins-1.6.0.tgz", - "integrity": "sha512-HlCODki0WHJvQIgAsJYOTkyo0c7TsDCetvfhrdGz9JYPL6A4mFRMGmKfoi6JmXjA/vvzg+fkT91c9FBh7rnkyg==", - "dev": true, - "requires": { - "array-unique": "^0.2.1", - "fancy-log": "^1.2.0", - "findup-sync": "^3.0.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "micromatch": "^3.1.10", - "resolve": "^1.1.7" - }, - "dependencies": { - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "gulp-match": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.0.3.tgz", - "integrity": "sha1-kcfA1/Kb7NZgbVfYCn+Hdqh6uo4=", - "dev": true, - "requires": { - "minimatch": "^3.0.3" - } - }, - "gulp-plumber": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz", - "integrity": "sha512-mctAi9msEAG7XzW5ytDVZ9PxWMzzi1pS2rBH7lA095DhMa6KEXjm+St0GOCc567pJKJ/oCvosVAZEpAey0q2eQ==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "fancy-log": "^1.3.2", - "plugin-error": "^0.1.2", - "through2": "^2.0.3" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - } - } - }, - "gulp-rev": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/gulp-rev/-/gulp-rev-8.1.1.tgz", - "integrity": "sha1-sRBr+qVlMQahHRYS6wz/3lQMsZY=", - "dev": true, - "requires": { - "modify-filename": "^1.1.0", - "plugin-error": "^0.1.2", - "rev-hash": "^2.0.0", - "rev-path": "^2.0.0", - "sort-keys": "^2.0.0", - "through2": "^2.0.0", - "vinyl": "^2.1.0", - "vinyl-file": "^3.0.0" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "gulp-size": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gulp-size/-/gulp-size-2.1.0.tgz", - "integrity": "sha1-HCtk8X+QcdWr2Z0VS3s0gfj7oSg=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "gulp-util": "^3.0.0", - "gzip-size": "^3.0.0", - "object-assign": "^4.0.1", - "pretty-bytes": "^3.0.1", - "stream-counter": "^1.0.0", - "through2": "^2.0.0" - } - }, - "gulp-uglify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", - "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "extend-shallow": "^3.0.2", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "isobject": "^3.0.1", - "make-error-cause": "^1.1.1", - "safe-buffer": "^5.1.2", - "through2": "^2.0.0", - "uglify-js": "^3.0.5", - "vinyl-sourcemaps-apply": "^0.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "uglify-js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", - "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", - "dev": true, - "requires": { - "commander": "~2.20.0", - "source-map": "~0.6.1" - } - } - } - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - }, - "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, - "gzip-size": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", - "dev": true, - "requires": { - "duplexer": "^0.1.1" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "optional": true, - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true, - "optional": true - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indx": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/indx/-/indx-0.2.3.tgz", - "integrity": "sha1-Fdz1bunPZcAjTFE8J/vVgOcPvFA=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "optional": true - }, - "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true, - "optional": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "optional": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "optional": true - } - } - }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "less": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", - "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", - "dev": true, - "requires": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.2.11", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "2.81.0", - "source-map": "^0.5.3" - } - }, - "less-plugin-autoprefix": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/less-plugin-autoprefix/-/less-plugin-autoprefix-1.5.1.tgz", - "integrity": "sha1-vKTlsuSMrGlloXgxQuOzLDwAzgc=", - "dev": true, - "requires": { - "autoprefixer": "^6.0.0", - "postcss": "^5.0.0" - } - }, - "less-plugin-npm-import": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz", - "integrity": "sha1-gj5phskzGKmBccqFiEi2vq1Vvz4=", - "dev": true, - "requires": { - "promise": "~7.0.1", - "resolve": "~1.1.6" - }, - "dependencies": { - "promise": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz", - "integrity": "sha1-Nj6EpMNsg1a4kP7WLJHOhdAu1Tk=", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.partialright": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz", - "integrity": "sha1-ATDYDoM2MmTUAHTzKbij56ihzEs=", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", - "dev": true - }, - "make-error-cause": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", - "dev": true, - "requires": { - "make-error": "^1.2.0" - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - } - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true, - "optional": true - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dev": true, - "optional": true, - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "modify-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz", - "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true, - "requires": { - "duplexer2": "0.0.2" - } - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", - "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "pretty-bytes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", - "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "optional": true, - "requires": { - "asap": "~2.0.3" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "optional": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.1.tgz", - "integrity": "sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==", - "dev": true, - "optional": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rev-hash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/rev-hash/-/rev-hash-2.0.0.tgz", - "integrity": "sha1-dyCiNu0MJY3z5kvsA+wEiwW5JMQ=", - "dev": true - }, - "rev-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/rev-path/-/rev-path-2.0.0.tgz", - "integrity": "sha512-G5R2L9gYu9kEuqPfIFgO9gO+OhBWOAT83HyauOQmGHO6y9Fsa4acv+XsmNhNDrod0HDh1/VxJRmsffThzeHJlQ==", - "dev": true, - "requires": { - "modify-filename": "^1.0.0" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-sequence": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/run-sequence/-/run-sequence-2.2.1.tgz", - "integrity": "sha512-qkzZnQWMZjcKbh3CNly2srtrkaO/2H/SI5f2eliMCapdRD3UhMrwjfOAZJAnZ2H8Ju4aBzFZkBGXUqFs9V0yxw==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "fancy-log": "^1.3.2", - "plugin-error": "^0.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - } - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "*" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "optional": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-counter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", - "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=", - "dev": true - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", - "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-bom-buf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", - "dev": true, - "requires": { - "is-utf8": "^0.2.1" - } - }, - "strip-bom-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", - "dev": true, - "requires": { - "first-chunk-stream": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "first-chunk-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "ternary-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ternary-stream/-/ternary-stream-2.0.1.tgz", - "integrity": "sha1-Bk5Im0tb9gumpre8fy9cJ07Pgmk=", - "dev": true, - "requires": { - "duplexify": "^3.5.0", - "fork-stream": "^0.0.4", - "merge-stream": "^1.0.0", - "through2": "^2.0.1" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "optional": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", - "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "dependencies": { - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", - "dev": true - } - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "optional": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true, - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - }, - "vinyl-file": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", - "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.3.0", - "strip-bom-buf": "^1.0.0", - "strip-bom-stream": "^2.0.0", - "vinyl": "^2.0.1" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - } - } - }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "requires": { - "source-map": "^0.5.1" - } - }, - "when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } - } - } -} diff --git a/_epub/package.json b/_epub/package.json deleted file mode 100644 index c189168b3..000000000 --- a/_epub/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "elixir_getting_started_guide_epub", - "version": "0.1.0", - "description": "Elixir Getting Started Guide (EPUB)", - "main": "index.js", - "directories": { - "doc": "doc", - "test": "test" - }, - "scripts": { - "lint": "gulp lint", - "test": "gulp test", - "build": "gulp build --type production" - }, - "keywords": [ - "elixir" - ], - "author": "", - "license": "Apache-2.0", - "homepage": "https://github.com/elixir-lang/elixir-lang.github.com", - "devDependencies": { - "del": "^3.0.0", - "gulp": "^4.0.2", - "gulp-cli": "^2.2.0", - "gulp-clean-css": "^3.7.0", - "gulp-eslint": "^4.0.0", - "gulp-if": "^2.0.1", - "gulp-less": "^3.1.0", - "gulp-load-plugins": "^1.3.0", - "gulp-plumber": "^1.1.0", - "gulp-rev": "^8.0.0", - "gulp-size": "^2.1.0", - "gulp-uglify": "^3.0.0", - "gulp-util": "^3.0.7", - "less-plugin-autoprefix": "^1.5.1", - "less-plugin-npm-import": "^2.1.0", - "run-sequence": "^2.1.0" - } -} diff --git a/_epub/priv/app-23242f2084.css b/_epub/priv/app-23242f2084.css deleted file mode 100644 index 255d76615..000000000 --- a/_epub/priv/app-23242f2084.css +++ /dev/null @@ -1 +0,0 @@ -code.inline{font-family:courier,monospace;font-style:normal;background-color:#f7f9fc;vertical-align:baseline;border-radius:2px;padding:.1em .2em}pre code{font-family:courier,monospace;font-style:normal;display:block;overflow-x:auto;padding:.5em;background:#fdf6e3;color:#657b83}pre code .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.makeup .hll{background-color:#ffc}.makeup .bp{color:#3465a4}.makeup .c{color:#999}.makeup .c1{color:#999}.makeup .ch{color:#999}.makeup .cm{color:#999}.makeup .cp{color:#999}.makeup .cpf{color:#999}.makeup .cs{color:#999}.makeup .dl{color:#4e9a06}.makeup .err{color:#a40000;border:#ef2929}.makeup .fm{color:#4d4d4c}.makeup .g{color:#4d4d4c}.makeup .gd{color:#a40000}.makeup .ge{color:#4d4d4c;font-style:italic}.makeup .gh{color:navy;font-weight:700}.makeup .gi{color:#00a000}.makeup .go{color:#4d4d4c;font-style:italic}.makeup .gp{color:#999}.makeup .gr{color:#ef2929}.makeup .gs{color:#4d4d4c;font-weight:700}.makeup .gt{color:#a40000;font-weight:700}.makeup .gu{color:purple;font-weight:700}.makeup .il{color:#0000cf;font-weight:700}.makeup .k{color:#204a87}.makeup .kc{color:#204a87}.makeup .kd{color:#204a87}.makeup .kn{color:#204a87}.makeup .kp{color:#204a87}.makeup .kr{color:#204a87}.makeup .kt{color:#204a87}.makeup .l{color:#4d4d4c}.makeup .ld{color:#c00}.makeup .m{color:#2937ab}.makeup .mb{color:#2937ab}.makeup .mf{color:#2937ab}.makeup .mh{color:#2937ab}.makeup .mi{color:#2937ab}.makeup .mo{color:#2937ab}.makeup .n{color:#4d4d4c}.makeup .na{color:#c4a000}.makeup .nb{color:#204a87}.makeup .nc{color:#0000cf}.makeup .nd{color:#5c35cc;font-weight:700}.makeup .ne{color:#c00;font-weight:700}.makeup .nf{color:#f57900}.makeup .ni{color:#ce5c00}.makeup .nl{color:#f57900}.makeup .nn{color:#4d4d4c}.makeup .no{color:#c17d11}.makeup .nt{color:#204a87;font-weight:700}.makeup .nv{color:#4d4d4c}.makeup .nx{color:#4d4d4c}.makeup .o{color:#ce5c00}.makeup .ow{color:#204a87}.makeup .p{color:#4d4d4c}.makeup .py{color:#4d4d4c}.makeup .s{color:#4e9a06}.makeup .s1{color:#4e9a06}.makeup .s2{color:#4e9a06}.makeup .sa{color:#4e9a06}.makeup .sb{color:#4e9a06}.makeup .sc{color:#4e9a06}.makeup .sd{color:#8f5902;font-style:italic}.makeup .se{color:#204a87}.makeup .sh{color:#4e9a06}.makeup .si{color:#204a87}.makeup .sr{color:#c00}.makeup .ss{color:#c17d11}.makeup .sx{color:#4e9a06}.makeup .sx{color:#4e9a06}.makeup .vc{color:#4d4d4c}.makeup .vg{color:#4d4d4c}.makeup .vi{color:#4d4d4c}.makeup .vm{color:#4d4d4c}.makeup .x{color:#4d4d4c} \ No newline at end of file diff --git a/images/contents/debugger-elixir.png b/images/contents/debugger-elixir.png deleted file mode 100644 index 3feda1a3e6da5daf051541b9afffb01cbbb4b303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117136 zcmYJabzBo**Z;4gB7!2K0#Ygh5`uJtN=r#IVu+M+T@+^3DVE{$+ugIH=EjbwH*o(G}UwG<^Dy-08suB zCPUVA{w5p^-I{9NdC=jHn)@?qr;Wx+?T@*aXCAeK&aYwh(K-IhVDt=9To;h6SlJ3q92w@Rx2&f zG&Hm|Z|+j6!^&D7EtoMpOoRqEjrozmjiw`M4%Zs-V(T#E7~GPibJri84GXj~FK?E8 z9$>^w7WR&p#X>>NIsP25mou_F=YxC7E@bgcP;&W3MuBX!&Y{~fG471xD#cB!kucvL!}ro2m{xicb}6U_wwJ; z#cS84+E=+Z3*SDCMu%KDkRO#*^fH|pHTpVUb{j2P7nV
    $6hSq}VkAF0=7vF8t8j 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 ~sslN*5D7%`La${D5yFd>V}&vpkQB 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 A8vp Date: Thu, 6 Jul 2023 16:24:14 +0200 Subject: [PATCH 1608/1761] Remove links to guides --- .../books/elixir-getting-started-guide.epub | Bin 278522 -> 0 bytes .../books/meta-programming-in-elixir.epub | Bin 22056 -> 0 bytes downloads/books/mix-and-otp.epub | Bin 142580 -> 0 bytes getting-started/introduction.markdown | 6 ------ .../meta/quote-and-unquote.markdown | 6 ------ .../mix-otp/introduction-to-mix.markdown | 6 ------ 6 files changed, 18 deletions(-) delete mode 100644 downloads/books/elixir-getting-started-guide.epub delete mode 100644 downloads/books/meta-programming-in-elixir.epub delete mode 100644 downloads/books/mix-and-otp.epub diff --git a/downloads/books/elixir-getting-started-guide.epub b/downloads/books/elixir-getting-started-guide.epub deleted file mode 100644 index 6fa867e81c90f58d6be1eb6bf3de993f22e66072..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278522 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

    -wAJwjt=ihxm%AKzb!#W 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�--2W$~#ei9`)W($dUC!*>yx^S_3a<2+NR!f@reY zRG0Yb4quK0F+-J`#|csnOGyXO%lw@u zf5vf?NdA`?$q>T~InxqdIxdJ|`3W5DJ6Uu|^Af|fgTkS7F)z|FcqRSs$ z$Tx-#)ZS}-$@7*05lTrB# z|7qzMKu>;}8=i-DwL(1+0Yah<`VS%Ulmf+`e z!rE0o-u=E83=y?ba`fV&g%bbb-2K)R>UMz3=k z#qp5fiytE{Y5lm1w8h%E$9OX2jGoOV4}d9}Q%cM5p$iWSUwUISJe&8TC0ldu?Yw5; z0zF_{hFc8k=BDP0Y7Nh^?odF|F0J&Fp8<)sUQnmG4~p(cb5D(2B?6y5EHOrozSb)5PKSaXtn^Y8|ss2YkK1f>Twp9&;3OFk;NnK8v?G1#Xgx)xo$SuzMB7~^w# zbu$k7{kvhbZ+<}3un8OjfLPTH^}{dK$F36eyi=!w#??zpzWxDZk)E!T%6u>7$Rq_ zBXBOK>CYEL%sbtp7l*u-1L?E-bIR2V^vnhivqm67ZmA9(P_y`;81jO=SunvA;@vW# z5{@-E>;?JFv6#A6YM)qAzGlm1wiU4){_ZS%>xk+pAoDPk^co0T^IXn(7eHm;^**+*(6ZA!hM_Ag;(T*%AmRnQvr$ zjyrNaax~OmTegICyywoV7|6g)EKslQ4>*Z@_p#tgAn{!^TY9bpk(Hk<**E5X(jd2t z8xyFu)R-!}ovmPC*NCzBCnwdZJLC$O39uJU)j3;{1!$8?%Q*C6bI3!1U~%v9v>gIe z67PdFsw@J8iznSQrm>6nR?xuVo|&$OYMBY%E@d)p$077x_3!FAquoBL2m75oZ+*Gi z#2?i@=tUdUf4~i9{(yoPB%-5GXALJKDw}8K8~%_IJQ)P(Dq+A*e|v6lcl7~M3D<@`ITwjcb{A-8CK8uSrSx(Fjoum zHix#bQ~MsXK0lz{zrgM5EbN$tUpLM#9bvKk8??l-7`8Y?tKW|J);zgqF;s9PLYk-o zK#k;@D?;8Eh|Qrjk}DLg0w`=gQt~Poo}5M}-$4)Agx+W9@W=%H3*KWFi3wzSR)bS> z(#(C~`-l>q4*WM?B=9~h$tpNog!@%k_p|P#ib-8h096zAzm-;_`)AP4DsMDNkVCTG zh&dwnW3N+FQ;Vg9#+J!>b)p=kptx~X_CCG6JDF)B^h4GojI4F#K6kZ>`joS-^X-fd zQ@#&o6R$g@#Oxgb2NK7oBN-9Q{Xif%ZfLz|sfs)KI=Y!sdbndVxSsCyl&0m_AX(yG z;%`zE(VdWE@@7>sPrzW{kFfCYHhH&H>G&JQm12H#vIQUIV4)9?HoHvULB{_QZ!)K< zm_FiKj8Tt}oy?=ULtTI~*1+r=K+dnn<`7Oh2qk%n9En)SM%@V9gjW&#p(=@WO>mA} zn?PJ0jBTi)IygY75fVe?!yPrWX=FwPPDEV;fobRCGUf)j0!a6Al?(x>=7{?+rRV68 zbScY6cc!EBL|boB%1b`^gI6Rj*aXG`tH!HL2;jwIv;|lcuR_v+XZnys{B|1#cNkxz zZb{0+Jh7GYclSi$cx}l_OE0;~T_t>5T)euU3+>`L_@dQtrZbXC+4}Zxp%q-1(D`|UMbE8h^ts|?W9@**WoMyGe6JJ2;e(_?y~3ROrE=vZ#5Ri9bP~b2$c{oL;e|R z7KYU&hgmr&k@0S&Fo-sCJsyt#9{@x^yT8DQW!SqTe0MRDT*#_fO2v?fUx?1;`3+bz zDg#QW(n=xH2UkcWqP1AkZZ`wpll+l|f3i-az`UVZfW-ktEG#yXv6$%^8VZBg#k?Q! z>g{R2Pgrj6;p7|R$F5kK;)Y?_>K#lIW}D5I@Azut6JQ_`!UASvxPQnOTR!wwn{UA& zcj{${(l(W~^bgXp?Z)K(STyM528Y{dN*g~cj3c4>b%gD27MV=y$av$Bb{GCth67^T zg?Cwre;Y$mDudQB_eA0t{Nf$bKnpAsr1p(ufI*fjHQIM*jUA!E2-GS7t%&VWW0`cC zLV`tCmY)-qR`vzjBhBcdrd156Hb2z3)Casg8J%|cAF{&29H8N4i9k@T{CaipQsD6yDa-FDdzCxKbCni*N2`wC|2+ee3iw7Bl*5&#Quk2O z@$=@R(;Qy+*O#pDc*~mRFGTNIYEYcf2n&<=tZ-gAEjY|zJqF|5f^@rguHH}&)m ztUqAlK`xSjWCF{KTrc-ahA>i&wl!qT=f974>+E!roWRV^8R|MBttR_^pCU`KZnY;& zqWYPcQp*2PP^Y1d&w;^-bSg3^QvIiQ=UWG`$eT9iJzxAH`xZh2(1C71BE~N0-Y#K1 znFiC&;JQu=kEeZHGFKTOU&tP`4&!)IsQO`0X#ebtOWv3rD9TSH$)t2oizsIRY|uUW z;w`i3uh;0!^{MVhH*AB)2dfs)bfGt@d8x3zaZZyEQ(UFQ3|T^FKRyILUsHiA8Axi1 zaMxC*5TaK5TfB5X#cXNbJi?zu3vsM=ITjB1w4u@(e7D8w2*!H&{EaM{INOVsd3AIY z8Sng4Q*Bm3A4+AX?^D$T2R3-u8kD#vy1Za^KJ2kZ?&7VyJTkN=xRcZr=Zn|w_s!O2 zEo%B(e8(%?B&ahbZo3D098XG*BmN>d;pbm3e%9R@u!t3Vj&VVgoqf(?G?ud%2g-T7 zgv*IM|iacrvve^KquKY*Gx>LMwI;(lHer6JIN7Dg5tJwrVPHCO3a%o;{SF9u<#&#lfV{5kg??#DN5_ zJv!gs28{cQb`IXI?31if)=F1WG$%T>thGxfSSl=#XQ{$?BOqX;zJGdV&VIc{xs6f% zBcVKbASknSxuQP0l+nKZ2%>Rj5$0bXc{{zd#qB4*K+)B&k)=shHW%NXmc-&__#QcG zUU}aOvkm_FwUT*}5xl&(fvGcTzi}q@bhSXG_={g}$iyIlZH*)gf%wXX5P7d6lTb z_?{kAdi10AN*(s`0i_4b8IK9D$ZrJ~nb@^H%hyPTLk>YQrmh|wE@qr7(>u60#*Yfr z2zL!_@9iL@5!kfP%T>-}#7A9&>4w!hj2NZHJix`c4jL$&(9<5!O8Je*#B-H^MuAz1 zb%estN(jdOPs!Z^)Vjs%_e`6YVYmtVRWk zr70uV2O{e_#tIvDHFv{$mr9GcH(1lH)Y*IyD)WNbgD6Jtk!5{T);&re0|+eu>Qp| zl^j${%<~945PqJwAw#>$E@R#;lxlX|QmR5$O_nqwt{#c{At7w-#gs3q>ynB$CfMgG z#wp(9<=RAu;+Jx`>x_YW6b0YiJ&wh1oKB1l6F&jJJ2xwbW)Ov&?ZevYplJ|U+fLHN zF_A2H?*XSMc2_bU*5%+L_aD`>91Vslih0(33%dQqU3S0M3Wr37BmH3Bdq%cRDX zj{95D22S^pK0$}>gvwz~KBtGVta=%!n&7LAxz%EVH~mj~&FEOM1qo4+y>UbCTN-%4 z{(LX}HjlyrZ#>S*a>PTkhm!1R7&XBF<)?Y)!26$noag&t!Qj zc92q$Kt!wp5lAnDh`@!$EJiS8JrO}BMqrnnI&*3e?Al3<>3>;Q%H_vT~u!`s@quOc_V^Zji|hFU~&gRN@X$xaE`j zi{@i&#d~ER8HsTFt)I0gr9b-H2~aY`v){-RM-1_Usbv|oD|g)ZHCmS_NUfaYSd57n=jzf9d$NW2R^LtZ-D zK$kc2L>#csq*&mG^kne(J-hMxnRX$*EtymtXeT?*b=0+k%|WT~>B%qi@>(aTv)f&Q zH;kiG<>RzB9H9D>c>2_XR$ndI((LFxG3!wENJ?RjD7fE)k3V4s(!Ia6AXzs|YkNWiM!tko8dOg`9uy?ebPe>z(GJ6Ll``czE1 z<`&jJBI{bYR(%KeGMPn3le1>z!|_y}c9BSgf?{--6FV|J@q6+*TVyf3=j^Tn1Niaa z-hIs4w^LGP0~&nt4WWI;*st^U?((_reTk6ph%34v$LNuL=A-TRz0THNL!^4+V+#AT ztAHJiC~fOweM$!+j^Thj^?bAm`)#t|SoTg+59<`;ff)UA#pI zLp3ZlAMK_<27d1bjcrZ>Ds{Xr|W>Aaln!SScnngxb7ahxoH z#$Yv=?VG{KkwmIME2o@N>oV=#$Kd4>k()*s%Y20a-wDMD95(cy)QQVGDF~qMf}Fil zv_=Pt=-@5Tbay}p95PC_7Spa}bX5ivgF$}B?D#!DW1qv^<)K@60YSOO0==tU=ufzC z(tB_AZ*fMUK~lp>_1cu{RTo=C&WauVsTVV_$obIyZXWrTn7aqg`_@GQbQ?{s(HOks zr^d=(H)nf1Lt<1Q!i-`ZwbF{cMQ@xP#W3HNQ>5D9Tg$r=cT(xhJNYUyZ869tcd_=^ z*CL(iV+ixykz7iWL~!KVm|_)P%p<(ySbV3{J(Hwdt(L|`=q8)_KXr%Gp76o-15LX6 z@Ms&R4K%rlh?&>7kiAYyP_UXu3}8ul?t(!}uZ#2H*vf{7#=qWe|O}l_>>w??#xAz zxaaEV)pF)6xmYMzN}@{ZLd#+&(+V|f#OjlBrq9izm6oWM42M@83F^wyxOF&}A@Pq7 z198L{Q!wzJh;rH=<+EIwlJ({?t-SoAvwrbf?S2> zc4T9LmIUaV(s#2+$Z)G^)Ju**tGjm@JKuX*+zmsIac$KchmKzX;eTe}=y4$TeUHKi zsgkn#yaUC1t+}71YQ(TLaem5#gQiND)IO+XD zjFy&fphA9YK(ta)))kTzcsTAZT>lth_MeTdojzT7wst+8IJ!M2@6&b;sR%vr4^UtQ z!q9CeDXmNzjCC4WQ7on?KcGiA{Tb?1wOWhyI?YHuHg3X9@O#$hIGUVYB&;;Q@}+q? zI_9F6VXRqx9!}<1@;g@g&YG!0&0CWReot(4PTwlgJ>PL?m!pG+2%kKV=mV=DSBkV+ zO-KGiY7$GAQ5c_;x>5F7kZQYgyMug1AJTAq)+FtOARmm^+sYb7xj{P4S)xEDmtOd) z-(y`Z-7~dil9sZC{5rHs25!U|bOr`s!MEx!d9ZZD_>lUcb7A-(!!u80G$Pi$Lqg0z z0mqAxgQ)WvFiOppzAER@%g6W#Oun=UHkGsh5{25h@BN>ig*}DgMJK5OJZ|qaIFv8| zFN*`;&u;^FqI$#$hH*L961;S}IMc@G^HzmWngG2MUC{Zw@@xPcP*}xts_uMhQ2}0A z7-C@hl^ryt!+GA?QTf;D6NSrnX?qn)h4{P{jJm4H4u{781QSlu$BoNpu$fA0QX`a9 zEmc7ebeO}IAPx!MGxYGzNU_GzdC+Nb>Mli&XBx*uLcUp2opB0>oS<^0(=1SADXmpQ zh~NMfh0 z&0P}wg_zxaJz#7?}c@0uCS`3j<)j@z}|%_|@NFOyT74y7gkR(y<}k^k1&cEq7(Jf60!H zeQntW2S$-Q)MsaOEKDo5^qmdZ;!an|*E$4Tu7!5m$;ai?NWq7&+i2*L{IGoonFsfI$>KnO^eYzaZyui&Hr&9JsU1dDzYpk(geJ?i%ai4c z3|MozJ1+W_$@$}H;wR~sLxprd|Cww^@X_DgTXLME4T`sKUNP6$I32e~P!lmw8rItaCGc&4>4p7&xQZBW z1{?5iWdr8_=bE^@jS%oZ9|ie;c9%jR&(d$xlJMXiITtk8#Kw_XbF9iNS zW)&B3^Zq~BZ_xj@xtj*ZtCNUIi-A5epd$Z62g8NH!@#`#`#%|Mz<)rIumK{+D}mul zzQCdL*WKH-Z55PZU=X}Twi3vd<&s`?kc=M1fH+XX6TzEKSN0b^|7dMRQ%N?RkAK9# z_I;y+qh6a<%VtL{|wpXt-P_g-u5)qUz%N<_KbN20NU0LY&@c)L7jGs@1fiEY0)*sk!Q zm!eSw=nEqSKF+d&JnK@c^?jNw_sP4Z;@{=#>-|o#i+`X6M4&y+lL9xBSLriOUv(w! zM7tQIoTuh9Jb=}<+6eqtALjwxDF1oV>n+&ClNi&-K1YI5ZrldB>eXt4rS7d*#)H5E z_w1#2s!Fo`RQF5II(M&lyH@iCOF?X)!N^H2#}8~t*kc6$RU)&m3|*nQ)QF|5+g=c>E@35!Xy)u-b+ke?DKga`C$| zjJ~HOM3*-~2rkJS5-E}G>ddQUyV?eyNQhh0LcqaPi=IScF*WfTFp2>6% zk%6Bjx?q#nnq~ZRzIE0xBTX<;Kge3%v6kMQUmmT{aT^-IcpNCYc!;^eXXbv46U+P^ z9ser zU#rInMK8cj2#=8{A-hbUOl?VL)|M3{JIXuxY4&)$nd3kx`p=ke@T$?STOzAIjL;)S zw=ytj71=$=F7t=tb=BsET_7GB_I#{EJ}_BWD}2>M^dO@kCBl1x|F&X2&seG+0=Flb))l9D-o zJ>$!wBut$Tzj61*(^!9n7P#@L{fUW(($1&g5NZwZ1Tu>=G{F1!?-LO*t`F0~{CMxW zlM#h(9v({nRuYtnCyKA>^V?ZfVf>W(CsRcmc&p&G8fSgvsu6j5F`4;EpTw@vq%xz5 zP+LWPVL$=wbIU5clrpJd~a9AQKRmhok%to2Jn$8|uDPdWhY z?CeV88#90P@Id=V*yD`i-L$mS!GLT?AsqnT9Z8{u6w=%2Rskeik|hqlzN$!Yq+m!( z$o2*JCnS)RIJllSm(x7L=dUI8N$G!2=jJk&5TgIsovSpXlt;B7WBQ6j1SvP9x$Oc0 z5Gb?;XL{Ox@BcFmfn3J6@WUN4uI?|JGq+!cp%UU?VMG{^23HYue=BUqvB?SML`T>C z-uIMQxm3MU&Ej5=5)V_(VY&U`@Z99W#(aDpdUt@hzlInBy_{J1Q~HB4N798)auXBf zCJB~bXsenLRFiDl{L<^^c>n5|X0IO`;!EoZPfC5!FEXt;Ik$d_i|GUv+GcIvw~`#2 z_OT)Y|~!h5YE}2KU=g&%eUfOtj9(s z*fr;UK0tNWA$8aEtH%WIrvcT^SD1f#!@c$CU4Z!K#UW|rR&QrllUgk6-HWV(Enh)V zLzax_8kJgmD}Qx)#WA4r;rv4245su;>dvP^4nJ-T9jZis*_Ho0*C7?y-XW1D_v~9} z$e2l<$cd8^>rvm>BsWE=HlD=p#A#A_rN)8!L{ZsXr&8LNKha6UgeHmTAT01_#WPvB zzwFaTSakymcV?BJ1gFt^my@-}9yU^fjjW6o3O3H5^=KDnb#Hyh3eYl@=!^9#vq)KX zXZf;=l$ah0I#71Q$oj^a0KExozj=s2y`VVe1pVflX8E#P9icNNd!=;ISS6IK5A z+Ts^R!N=l13KjM^HyYegRe~yzs~b|pqUq5eT1Gs%!nznvKu)QFhi#X_u`}( zm@X{qbbN^Mks7_kY82dfB=B}n_9@Y0TQL1u_ItRSHuSqI{DD9Pel*U;Uq3GWO)5bm zC;F2yXX$M4dl?;gI>Ws7iK>bE!5?F*Y!}*z_n5Rnl0pmn<7Y!nZ!;dQ;gX*yG9Y*t zc{LVOZ{s;g@7F_UO2h~**|-uCahu(ZG5n}f@XwX-2Yq@<>a~>t!8jm?yO{_hUm?m< z;FR*j4tHo+Y>$I;Zl&5E(Ti~6Z6e{d+>faq6f%{?PgY0#0nz*}8Q`ZDM4P{jY{l zt&a5J*)#)l@OG%X1)Sp`B=5mI^smK3Gfh}T)A}zX?KTwPxoex>lO1&py87m)sC06S zB{!tkyv}u1WM|sIc^j~BD74<()Nmr8^JVQ)Vcz}*=I^z;5kgk=ZGH9*gEC;EeSR%PQ1!Safoty5(nR9NxBTc9 z7}gM_oYDjt*>JvD-)F=4oTEv=zGJn7V8)NA1$<1Qsem}8GZzGJGgx$}s zrs+c^4yG1`R1Da_x8x0xf0yJ z9VOiP?x}+$vf*pa;A!nrx%~Aspjca;dY8339XKF~kYJbP$JNM zxE}U7&Q5%4_T8U362uizrLWO z4}hMXiVOi^yb!{EjTFbw!q6}Ec;I%tofi|GM~4%#1sdqXVj^nadDA&a4BnGK=pUu? z*i%fzMTaBf55B)pIA+d|a9pWHX(!>G-WrwT=&f_ zlo5*MGk&?9xN#y9Q&Vxqu22GR=yPIV$5I`UF~HYFKU7It`nb_JD5U2R87hM-;w#|3 za>wz!%B1P5T4>8Tkt`33+F1w6QY9*;C`LPt9Aj5w`GvNtdBYK{dEhhl{2@Z-*UM10 zqjUGZsvK28EM;Iy%khFwlx7Yd-<2OjtUk(AqZsM9jE(ZF?c`3O=x7g9(wA z`!5XP?HwD!pwHn7TFTY!TgaZFN4IhwCeGo`Af=| z7E&>c3cPl3ah{@rLhbTuu!s=?V)qGN#>~kEWtwE8=RnF5D+N!-Cy?!^1F1cWTBJa` z_FY9HQVv$U^+>>^t&7vO@&x9?3go}9nNx|(&nYNQJX}2G@Ia^JhkZ>co3^aQ=2%OI zIngK6PGXH=b?K?!bZRnZ*J8#@w0ln9G2fy?j>eRN-r;~obEpIRci(`0F;@Vt+9}{; zJ_mYR=FjLTR9L`z066>m_nw{gFvGOIEd8bjwgct>v`4oOKzqD25J9l+N#K&t%6r5I z)BipYLev-S?N8;NVYr+;v@c5INZx@WCNY5QCLMc83TXl&_;?^?pe1|akVD84A5b;s zxln<9<_Dh%hv8$h)>Zpd!(hl#E3^!s!OL8z98W3M8P9iV}Pyl(t_T zwe_tqlVST3k1{Vg1*I3LrB>&Y)cPH=lbcwHaCOE+OJjR}(5G=h?!z{X4LX;j;tDlO z_`-*IVYSdvv_^R~*RHtd=)j{*GtNwxk>ZI0@$VdfMM(lm0;&GG+n(ue5 zv48aOf6snoxiB_}Bnw}i40hXa$3-C!gu{lz=BJbQGWO(v#spPU{hfl;?oQNd*%$tw z?EBrCp({4t2vxH#CBI@eyq5}%+IUok7^0+3g@=Nip%g;VP6*QtG`J?i#N|omjpGE7 z=)zjORWe1FnTIa=LJ4MUd)0~XUAI~}U#^eGo9|k#4eMC6(hRI59j|nGWhSt*(`;$d zAC#5zK&09)?zT5?bfPeQ-MxoRC6cCbK*jtt3yloJ&i+F23rz0HLyZHLxR=&qBw)A+ z>mnm!@h73aNN(N0PIUgqky$p;_Y>pf5x?Akle73(|5xWpIj!1u8j-MW0@WIzXyEL# zhm}=~tZ=NN&0$O+wE4$OO>ATlFKB?BSAR#kVb>_GyMz{sFA~G+Ym{9_4ZGTlfR|6o_1>^`MK*g{5S1sgQ0WdPw$=4j zv-FXKd-Z;3n5jups(N|i^EO#-y+VU#Fq)rXLyheMI-dhMuw$}5rP%s7>J=IzVV+Q|R4qn*6n~c2nn)r!?6% zOH^Wugz6CB4`r6qfU~Q~Y@F*pEoE@l-J(%u4YlTTf z`=2r@0sxYQ0D4jYnn@BlN1`O!iXArFd`9OvJ0Ug`6B9iOQ$;>Semm*tH@yZ!^VVjJeq<)G5^?OL!}TmmPO4+sUIb zdGLU&m=hNOSOWk6?U1OzPy#x3yn9l+zQ((;g>mcLsKBKHvSJ9mSg$dEe|P~fznLPd zl7kxP%{UU&&DmAVK4fC;xZx^Xvc5&uhAlCui29Q3s;D&Tv!dp9mq?0R}MhD=dh|}$UQSF z@`bL)!Jj)1+j+jY`n$;;MsxRUnu9L06*zXVNRogMcQyS0t{K3#PnK;kMFALrAq0De@4UR)@{1H|`ZI7a235rEkz#G+HZi@`JjX#B8Iq*U8#mY&uC7TwDnHvUKV^r^ zZM1ytIx^Gvx)|7pe|hYo#kO@Dd(v~3M=o=OL0g#i#JFN^;ih|3EVkYG^vu;+p1t2S zZt-Ko6UG;9uT2V)8j~s3jg>BQZSM{I--`D)KiDEl^lmo&OXuRV#5a7NKA0SHTnSaz z9O^$kvS8C|sNX?s#d=Xyc9mkLG2b;lFcJH3-jR)HPP+ zk~=x?i!~8C1sVC0H@R;bD?GmH-aetonkF56S!K<0ZIR1`SOsNq{dz81nmDxg()c#^ z=P9G6_*(s!V3_(VzBPFKJqc1q@bLmQ#8Qi%o}SnJt?-@bpsgdlOooiUEREcvT!y^9 zxp2(M04gi4X@(GJTa-0QIw!40ln~1x?P$F?b9p<7qBcRd=(189YWC$}Kg3c?xmNc# zJnz0$d?@ub)ICe$^6SVU9cip}NXznbXoQewbWsEB%vM3XuWXE0Z75*?mgmX~>Mw6R ztk)LFPe_#!y(*QqwJ1~Q=4m~2{*QQ2(y0;oA6#!%>NR*X;sVK|-bY6g>ofHPYZgFO z3O@V6XZ2r`_eeFBhX#I#m{|6zL?3pCXggVclzneeO3Q?YUTPyDhORCE@`QJ|_A~wrZdEYK>-~6JlW~SZ-0r8LnDl zz_qPQA?D*gw~u!?_g$>%p(!zTexK%|*>v#(z#n#WgJ@$R#_mP|xNx}qU`937M@bB> z8m0!;C`%I+zVYqR7w^1++uNq^P8Q0Hj%uQVb-xM*AoutNd0Nn#jOWGt$x6zBa(6C0 zIcIV{sr|##PVsO74!|KR56JiC;3uN>Mm3H;Hfht13`gP3J2TlULv$CA3y}+{3x!af zT%lJ{0w*ZZMd`7s8kl6*po*5(RQ50>>W575&YYguJaIg@sK=@MY8Gpfo7IAr1hS%@6AI}Ki4`7KOk@!mFk8wR_F z^lwSX=)A*3!U&=SzKM&odLH)a{_mh4eXl!eK=#TrkT+FSOj27$^D*erT52#hsn)5c z1gHi(tZ_-!uP}Fzz6{MwHcA{(8J4r=5ib&~%RUbf*q z?dP*;!v|bpLac&7%(?c@ZmmZLLD6okNW0dLac>GD;Vgosd7wKL6*H@=4toG~+Nm%c zC<0*q68iOQQj$7BXanr16+whp+U+FbOF0}-fvSu&`_w?E%8eP9B;y6Tuj9H&eWrY? zWLQ=OoVfm?SW##yNnI}#(G%q$*`-hYG)N z2ew1naRZKuS^m2Rh3!*9_sYZXv2Lu9RKVn5hX*q3&?ySd>9+{_j`!8Z|FD0wGtMFh zI6rrfa**?9@~`3oA=#$k0bPR4TJL8q0e}|^=~=zv9shL5b~@M5ZivR}a?#$0D)i=# zvzCxw71;cldxU3LyJ~T;O1UW1U~uKSCkg zYRFC|3eUrxl&^;A4s(ti|F&u|K4UEn-MGR?4#no~Ai!kPtk4FqQa=Fbh`Un(Te#i#AdNXy0@c-9r#jk8 zMugigFjr|7iZ!mT_sBEQLBSs;`7q3mSNuHif9=uwxJT`^M|#m_E6D zxZgZ^x)>O-V}Jw;nZ#FN9g5q}`|E*t>=!Duu&_|##=OZx(!OcdH~{>@h) zjfM1_7VpTE9~Q3pa&%spM-r3I9m`F<3~zFcQjR1=02N$n3fexnyMjs&d zyopgw4}=1%>@=p{XPi5r2Hen6#OP2yek3&lKaK@@UR=3ls+Kn^aF_ORW3zRdTRC5I zFBcb6-&AHiXj8@5&mC%fo@gx%(AKHTh-8g#GcWA0&{8BCF%b?#o{E3K9sMn z6BeDcr(1T*sLHY>_~)+nI0}pIw!&WueDIRp)31P&(~F0GE~|q7GU^X|91cm-g88$`9}R`D zd0+mx>vWP}h_Zm2S&y9@14~TX)Z zSko&cK2@F$f|roW5Qt7%DVBA=>!SL3ux5N)fb!o+fF9*0g*+#fyS3Qxrr%fUX=Vh38Lj35saw+@bG^C00960e0T>m zoNc%EAdD!3gb+qZ2!bG@3@?TxTJ%KkqIV-Y(MAm+QKO5A9wmD3B|6cGG6+Vmqw~+m z`-}%q6)~tIy*4%sVYwv4cdp`s4g&A&~p41;MNYz-7Sa)TMc9t%uXy%bmI#8m9)VqNB;#tQ+sfIOmrv4`s}? zRxyl6SRgoJ0%2Hd9XJ4h92M8g$?^R!kI0yKYMG&};6tlQ?W{^sO4mzNX0e{PsE+n# zW9nmT!fAWsxoCL!X$bAXu2SPf7sGTKn&eNUYH{C)E^RB>b(sX&{yk2k{H!!vb7z0i)#{5DJ}&v_mQTz9)RLZMhbnHVC*D&`8U~F#HFIra4V2W9?>x~g9GSnF zZ*&U}lXTa}PX0s>HwfpKs3D0=jldY&zA)^Eam+H3$a(7GY5rf^)*^Eg8!L1T(sVO7 zf0_fQqLkP_^xGd?tQ9i3Bi#A=mhW{QMw+=kb9AanWAC+N*#8#VowwW7D>yyQH$2TD zU{%^9OBmyvj>%JONu8p^ykx^G4l3xKB5Bl8uXA?`1Pcj+i|2kvb89de6@icck)#pr zLJ~4icVV$^U|;J_dE$8h&%CCGmI)aTaJP}|Cd!nrDf(m5W|G?W)rr9ICS4tAs(+2P z(Z?IgV}54JV`|-F7VT|pUSW5~AN^O(ngVEmN~t0$G|;Pa`xz`+ic z7on5 z$Yn8xSMZsfSl>4^c!_05)}scn%9|e6j0>p3qX7Z{M|41^l`n*<>`h#IzTVenW z@Hx4?l!p4)M`j59NY{cbLyWVJxE9-bI&25o8f-q0`sg{pmy4`Mh7-{A*$+0z&RVB8 z))ODMZu!uEmcu{P2ugr4a=<8ODi4gg^cI} zC!C!Ox(80pgQmulKrDSbBxpKtd|^EA9jm_)p6|3meJ&0gtK@2D(z!At)NWWf=AOk! zVlmgj#8GpVbKd#nEhD$IpZG=HA^d(opm%G*iN>FcF1rrf+t?B`K^Tt%G*g4;?=EkO zRf2zr=d?a<(d&MIEx{}#{pN~SAx@gAKmMZ-BRR{}J(|z1JL82~Sf;G<(S49Q@+s(V zVlD8fPPf)OI6zvKGR5nDrMDdDsgNui=m~UU&sF30B%MCEKeTaazFyZ5zs10*!L}dW zRhD@8jH|#|cALKYF-8$+fK_VkALubW3~79!B?*Wdd_k}w2k<2chpP+ULGwnnNFUal zOmI-B7S+do(E}arA32sL6P2hV4;_ytg6ox-LUp;Gti;M}@PEUZI$U}-!SRKK*cJn@ z0|yvw{3MpL`OZOk(d959r0Z;r%$76?FFpxk-rfYtKIQBmn~f zBCC%Kx!nqcDL!cq-;|--gO)lgfvUZ7GI2mmLoWij0j=vLm{Q;`YN%5*g$YnZAHLG0 zz{;{!k}iBHIsQrI_(lk6IsP*3673j2Z4W1Me9d-sOtrEYPI44;ue`Rk&?rabY!%{EjK9|dRVlUB=gnlKk^D8aDACmXPb5ju%d=_U3 zud*C8MewXTmULiSUt+D8vx;ENFt^P`Xkqh~Vi_mss@UgawW@OyEhg$D;g2#iRx$=L)h6e=sh@9G- z;SQhS<&Y8ph8rtbJ!6W?5eM0DlfTIY)qE|0;bKOVI5UX5h@WHMjOivTcY7w0RpHZL zkPv2!@GtrfJfZ<{zr~cP3F3g&#RwYUk}exb-bl!e34O-Z1r-`66)j`z*kJ_AWnOYR zS1H^2^g{@PnBIQ6AHc+(25Yhg&qlz=BS;>C!!6W$ApjnbE*`eI(zVEl5Xz8exR_|1 zcG*a3ayYYbF#iwXT$!42WzEs|*I+Zzz0-0r&Tvng7g2yy+kpf7y!sbTU>rX!mi2x* z7{4^YvNz9+2I(Gr0!$O%&=VnobFueWVrC#H%ErIhROloDpEzY0U*I;f%$RgAcio7W zwyycGzGIUXn4NnWB($k2rmRhBkis8j;dI>rg_vc-5FC=pCcpniQ(N<8V?>eNw}_Ae zJ;ZcL)Vte}MK-8T8-v$#Qz4y|a?7M8%1NFHozn*j3v^R{C)ETU{bon`9U5f|p)QA4 z8Wle~pGUZSn!V){?-Y0cd%>m#iS%nH&kK~>U^`RXPBEAOlR4k`n~cKMn#%gc%9@~~ z=+muVH~cCJ(bL@9{Px2T#{Q$0*?UMQgy_7wTi~s5EXVLF0a%2TeiW8QnE825mUS?d z_V^+!;j*DT+~D{itmRU_wu~BSY)+kVhs>QOa{sE5ZpUf2Uif6=3&|K`@f#AM9*3>m z>4?Xt#iLIj+RCXJ7R8G$pq}RQlQR1qyC}nxNj)b=);ih6v5?G{pCp)+ez{PP=)!2X1$!&!i;G$T#hG zJssF!1C6{QdKeHTY0+1`R2@@9K$MU)-lrnhY?>-}Kkcf21>pb*k;I4XjJVJsU7j-G zrlqW|qtCp0M8>*OzGbk6cj%18S!T+!kinbXc-%sU3r+~Nc`kujV8YTyc+_EtX|Ni+D5o>z4sZ7bR}*Lmgf?p7Mk1fh?46!?H_Gu z!?fAL{O0lH=K6|~kLW(Cr*hk8J9OKi(JL$4`|_pIMG+2Q0lTkVxvUJl$78=E?zy*U zElNfuk>0_enmsy||v z_O2&s<_CwAw@9a96U}cv7p=h44UK3Gf5WZUK~iK30N++TY;ag+85%6iL!$l)!_xrf zCoc?Swe!*E;W8G@EOg7*+7@M?vcw5i`vdow=lur5&SEd`I%Z*pI6`!k*m5%uNki^kq|Y0SaA$0rJVp(K&rnl zJ5-ycGCMru9qpbD%;6^}!!32cee7eyq;2g+;Iz~9N=8nSz*SQ8L;>=YytMUQzhvAl zC$*NaQj|O8Y?Y0I|5sP}Mg5M`l*|oRTBi@}oH;s?mWlP!w%`}S2i~k8lV1pTVPgsU z)WW){FvgG1ZswkPE3is@eFiK1s(l-Xw&eDb=e<9g;rdGFhy@;ZhkOMkF^*Zr#W6j= zh~3P+&W}I+YMu^*^J?R%NPv~){GVohUz1;?p~89DCc)vw&K*&ObN1jd)XsPGETLM- z&+#xH+TOH%A#X(J{KGb-eObiMV7%E2?WOLIh;NobFmfxifPQ)gN3q=V>GOcVBETzE z)cKq36tdut$`elYqU7!ElQ&VJozJ-<2m!v=v20)>@qK3wRz{?i6Gs4@Ds{oit2!#+ zs?DSd4dYA{9`BbQziLzNo>6k{XCLadH*c1$atl{9j1jgNk^e%Ckp+)?Uu4?cU_fcs zyXbH(4j>gnA?d?+Z=O|+q5_9FsdXB}JWC-KjkE7|M#{qB_j6dO;Jy%u?!Wu5ABV6d z(v;xlU*xFb!^EfWvWMaoJr(HTDna|k)BDdmxp%3A{nnvUS6C8C3lIbikF@@B+qeA) zVS962{v-J;JhsUEXQPSrM86jK?#l(=EM9G|nL&ffhS6~~<{3KJapx0UOwQ#20CLRA z4M6*Vjrn2ZbE&j(2-E(f5f%+nqQjG@U}_u5f_TpEw31EJ zpYy#UpT3X-(VtfM$CB1lrJr@~9DtSs_|65_A00DRS)PzizX?z=H!_E%?|tc0KYmv@ z(re6-nBRCG^b*_H7{Z2N)&NWZh)QxG?@dm#1(y@LQ21e6Kyi6>6mEHjCW1j8o)N<6 zJgo*^wZfMY0^}aiYW5+u&0|ePsELK|!WI+o9oJ&bz#+-3UD2s81XKGwHVKRm24~v+ zs^i;;f9CY4^RYNq`(R(h|0Ws$!Uto#EQh4uzH7PoTqX6R`}i<@d-JpRfiX~RcNwK5 zG(VS6;Gr;X+bJr1;pCB8yIbYsTPoI{JU6Qk)17dLkSnnZ-eH>yX|M-U-Y zWgBu7fdtx_e*QaOdvqvSs7%Y;tyFD-O`LfK^rte}d=u+k(DI43vaH|gF`AAO-P`*a zT-Dh7i`aJ_;1E8K!Q-&=egDvL)!_6h@9mXU9Q&HJG) z&)1!%D5Y{siS?qtLZb}4xWO_)28U%FMk_iELfQJ}?sif4;{OUlGCu-=m~APf5z_v6 zP5l1wIUI-tW>IvT?&t`*wbytWWlBu!1&N#^0+lEsygK~WEFS=s{GSW`K+8;fcHv#g z!Qqn~$9q8Qo&_x`t5!E8$Hkb>rK5gzlz*va4_i#)7aNk2*E-)UsiTsVW*>|#(x6j9 zb$(|y%D8^r?*eTa&)@``9tmU|43LM*NWrjUSU%*yLG zGo$yg;a&7D^6Is!$OlAjs#G*vY9vY7J$yk42Rido_BLU~5)C|-F~@K@IcQ>QL~AXK zvNIHX-l#TWe}_BszGJsJ{%mtL23M~baxYmd^vLmcDiTJsBU`|Q)9o|vgmtzkn*t@;|RqVu<+ zDf6({dii}e7!3C5->?J+0}o$P&NL4ENcibm@V-*K8l{w?FS}7Gs$!LlqH=j+i_m|9 zMGybijrw}ghaj@ZIoOW;2Y9pPkxAp>Tf~sf2KeAyXY-ua$!XHET&DnTcg3P*OFb;` z^0UiJ9LRGA0M_Mv)97gIt@ZVFqvPo{xcqxwQsXJ9P|WiP4&Vk5KnP040o2vi@g*rd zr2UZA;Bytd%TxX`LH!9SBEXV)SP^A_?NKHzaMNz1>1FIWK2ExCn?D;R4S9JB5y=fA zHHpE8(iAtowDAjkjus#pz_rsrD&k~1ZvRxY7nr%@I-YZ||3p%z`JB;UyB=s0?EoMI z0&JRp|29P|3}Z49+u!sevHQm1{5o>va-@` zHr2r68LUYK@+81tMy>Gz;O#j{-<+k~0Reb`id8fky|YtHp@!y!Y|mGBRuhcU6RChx zA z0ZiKiBiBKBV%{5Gm*<$b;Kp|sr)QP+K6PnxU8%=4i*k`gVjyuayyG^^P!-P&F91&* z0x%5oypy*=-$cBSQ}>CU2!oBa4{k86wP4BudC}MoI;@5_9+BT(P@ld zN7~Z7aGV|&j(w;D&vtp#s|&Xhw_ZHYuKHyQioBprkCM0#)HvkWF*`#7 zTr?%z|CSJwm|gnd96=M)Lq3(gzmo%j%4}s0W1#?=B7)$vlR2+QLERsSl`5ED6f7=u zHEugg|Cb3m5CM`k3l%*>)T$_YqEi5Uj0FY&Y~KgJm?;$zd9t<@TT5jI{TkpQNal-u zi{5a8*y)|@)@09OBENbe}WRhRtHeriZm<|)l>)l6>fz}C#2i^cDZv1 z+pPk85$nafHeCw_l{orIh;{2v6!UB{Fk7ccxHm|wyWPbk2LNzMTBnhAcT*<$IaNw` z=Z?8&7nyMDHIo4I^#O1TAv@7pqc5wKQSZl0{@ierMlyB>r>u-oE}74KRkcnd5Xb(O z?D7<>YA5xh+d-L~AX1QXq*O$ea>a5lT~OrxP@cyUCe?Poa9eA#DgL(SLvAVWz zbk+IYs+I6M=PeS^MTjId{a}hex8V;y*p0Q|5CWmtEe14;g9Y(77DljBUnXR$VzLkI zz+Py3{PJyIoT1WK2;3_3?Y25KCT}4`Q;-3`T2Eav9qzpdWC&Bn3g)BqkES9%D zM(>9<2u#U;>TA?IawCOj%(;N2;oBs@zftShWax{?h2?EMvsibmOq8mhMBnmoZt%Vm zo6%74^jux5A-DCY0i6o_Q6$w6Rr)A9#;d4&dHb9wIBqPf(@Spz;~l5t|897gsgH+LuwMtY~3&ha{U*NQY6h{=ZSXeB90Bhyi(t$g-r>Y=FO1f$(6PTBRL z-@AnyxYsgMc^i~?Y0_rmOf--zSc)9R@NTo@Npx5>xu%jV8WYH_fdYC z%oQxZ&vH%ibAUNmm#phJZPx&*Fc?5yW5qDHGM=_Fy>I5#At6`?GII9dO;zYL2aj|v zIk&sb(6h8$Gj#_uV}^`^cPlnhXCxfrQ>KGY-cj8H-`UM?rC4ki6QQAPD^A!F@qD-U z#&wcKg;IKVO_>OI9qPbs&^@0`ZtfWiw09YD)jPlr+N(6C=B7cfZturfzmJ#O?e=VGrBaeEpE)M}OpkC)wch^5N>)T3Mn(#&K>Uf$4|onxL<`|;tW`p0cuPH*cdCpWf_k-~*^@vVDe7hDMi zifVLX5cAS)uYBA;Mt8~!3-U|q#>V$v=_jGvdlg)-2Fq*(y*Mi`P{5N`w<^n|tj!v4 z;f>|px!u>d#nuyR*trFNm!n!-asL4Dei5yhk+h^4+}sKyDBbW%>mOca(Z9!#-J>Vs z9sGwN_N?H53~r!G2}G|@ugbFMY?QAiX?b(-?w+huHOz${<%<$0e#l`-Qv$wZE4oT>aa5x{ol5Y6+WSn>1gPUzbpJxzd|;d8CLQr5pZ?( zj~Ff1^Ue`@tx3XAn_;KYu98iR9#Il_jydM+=6hpX4b3SKqjPLWxwx0W#39=aY( z1^5X436jx(btq}_JES*5dVjMzUuhrW5yLsq*V9VDJ;}Fb8ZY4GpsjQ*U^D+34=GYt zDU*es?vOXb*>Dv`i#^QuRs@>tAN+w~;?BO#6_C|UEql;x;>kWu{%ky1U?162=S~Z< zoAS~W)S|baqb&U*WU>Ni4E=+3w}hmAXa=Xt+bK(;UU3UKf4~kV;W!YGtTt$SE?|Lo z&i*H9oMhvJbThm>lVwQ6R*tdoAoz`!8D*T(fhQ)bQo*#!nK&b@wdH^@vvL572!fdNGNnsqPc zf41A3;h}>CP%)7F@p#i*_x?u@R~(gRI>ZQ4^{1)e!qnXsyKYbYns~9kD?IcEqk;@j z@qTrn0Z)zk?(rPg-gZ=Hmv`84hW*V2Kp75pdjY<_)lWYEW&N5d`?byUhq*8x$oK@I zy))K=Z%D$9P^_oIqTkACL)*)P;; zx!JFW%Cn~}&VIl6^NYMmVh{h{*vKpe^jU-B-{{$o&iQsQ#;AdeFJ$Oo20B=k56EHw zvK>HXK4K66`nAD=;Rw((7lhdxK>j?!sDRJ_RQ3qSdC`eQg95~?FW58)K+LMbrU7cX zEjA4hvl`}L(*QE-H4clQ`sU%%2UPEmMFZ5V1?qz!SW;*Zj)NgQCI}9mbVbeZaB#z| zK|u*?09Nn-ZNJ85ypv_jFJ)G~_fgA=;S3j3^P6@6aWAK z2mt4VbyL49vjuOv0RWK60RSif002)#LQqpLV{dMBWo~pYVRLh3baO9cWny(_XJv9N zWo&79X>u-bZf8W7XFMBV+qbEf}zV~}S&)4hQdHjz5d7b~*_u8rtNts9q2nZgkt10Ob5D+aB5ZpO= zaOdC4(XwIh$?z(Z3sJFmHe2 zvEgJtqkX|z&&{%yXMQKsH;Lg-`lAhVy0^D@^RiWQRI8Y!n3rj4wHE>;4qI6gm=C;i>FujyDcN>V*{Qyx@&4)80$ z9A-)z&y&KD(4DEKJ-YUwt+}xgdrjoA#1X=?JPXt2cXRJp7nu{Z3`EYXTo<75OHuHq zz&5%($7;VFJ+;T_c`BMp;%I@r>HZWD-+(}%hC2kUelJm0W7DPjjrr)x@{A3Og9TNV zmToNjv0$#W0_v0Q%(>oOmRk<`)1(atsCxDmLH^iGqcdNb*(D~HBqYjmo@Jf!&W>8 zh~mUxyQ{RngCtKvX8bbSCeT}u*HtZaTjU3Yr;=Jr7QDUstyCiUZ#RBUkhtC}c^<01 zO0s)Rp9sfH1nH@T<>^ajzSg}1xWZQVL6#RHAk@X%QMpIe`ezCWqIp!D2fn>7I$Xxg47tLUM>GH48NBJ>z3-Vl;aVd=GySI65o0ti`nvlhPT zY_fi>GvY|N^abB-LQ8}dj*QM9*R!?yZLbZMFeuGtl~ML6ATMT7P&7j3-^lByp%1Z% zcPG~&GL>a5a8J}X6SF;q<#zn-(siS^a<|$%Y&bR5sn^ZVHCh@ZW<1TOcebLh0LYI;HR;jmyfSqOr?5y&T46qH+KWnQ#TCS^?jjpS;u#=oIktat&r&{ ze~Y0cfEM9=sdv*2p@OjVkXxL)=7?N`?r}`m)%)tbuv_HR*=B2yLDHlbTn_i9$~>hk zBS3?DH}M8-fN$jUaNcqMBzP&{^J-K2De<7-orki589w3NfbRh6BRuaWGhCdk&@NvdKgzL?1ULKNG(1mTb zmWZy0YR6f`c=-Y7ZtYyJY0#m-&323;s~mhraVUNCXLdk$DfOAcm-6OgUpcDrE=^`< zS(}&F_m?g`VBa;l)KwgR6^B`tEG!|9Sd{%Xm(6?}v=g9JJ)p{C#{uzkMo+?+75WlVg-GO)fp-OxfUByyxq&uJ;FVasCKx6)}8wgbVPy&~)ZQ z^V=%W&oZET3NKxeJX0<)(WmcksI>de%EiN3UgGkXTS5XM<e=V5U8UBmi2KJ8s#jApCmUrM3?ur1sptZ-G5~b zUlF*qM8({S1pQDKQupw~EYIk2dTk~`lO;~~&_Ay#fWDMRmlYX0tvb7CYRU>)9dxwq zh}%XkzpwDREWAh;^eRh>`*!k!BiO``71H*_&!|S*9JTt2U7Oq4 zXR7p4guj~>FvMjA%W84;8;l;HY{H+TSb5l%&O5Egb{mTE4j*F4%}#in6QtSg-h5EJ z52}(kFUnU1=X+FX5?hFJUOUleyVoe#9eveT(Av&frFo^u$OYL9sh2a&<65YHzGu<0 ze7pFg#ply0@s?DX3vy||p>~`WCIQ`R==3!Y4o0mnkg@}yBH+R)#O9B;Z zExAhmP>Q~5L>YDB=Ugp?S=>TzDAfG2cjon5t8_&9Xt;Ie$CN&WdMi`y!d#mpJ&rK_ zRE$H6URMgyGOWfYM>{AqRsK$xt5l#J{WP(xFql#ZZMcHCh71|8KOJ#=`fEYu)${Z9 z4~F>srJ56sMXclZs{0L`tV=Uerl1ahKSciPU@Cxq|KW~#h>>y3wp=VZd#4V(A8r_c z6FbkymBx06WDCVw^u`}mnI=S&MuhhiRm~i}*k>xhSN<`ww2Z|U@m8F<_3j&&_il;V z9~?OHpI;CcRj{}5XU;UO{0COzP0pa9;Ma@?;v{VgVc67p>ZfvSbcYjX#d&#o&!?f> z5?IO>hWdk0hTJciWG!(&_Q|=ZN`GFFvQ};;2isxoI0Unw&FQbPW<@#`vdp2~N$aTS z0M)Sal3>-4mGZL-IQH~k})1+WGMtUtvq2X~_g zv?Oo8Qh0Y=Lw6TWJ4V~ZoTXxEjJ5!Z=LTGy%nO0qc761H8_{9BzC`p+WsJ!}SjJ7W zN6huyz?3W{(fHpx32c9vKpdqG{`OxAea-*)7s= z+boB}^Sv9ntIM4cEssjP4~Gq&BJ7bNM^H<|VX*O9vtiYn@&^Ipg(9$0Ue*LN_bzMo00D)6QH{i2rI z>UT2yD-aQhyGoA`=G=0x^LB5&ZB3N6xaD>Z;Cy{#w*QG}g!2!*jGNpQtuSjDF6i?> zJ0;??n*VkbMP0(nb~c$H6w(Ks*2d2lD|T^QC@UE>sONI|HzT6@RpCMneNRb&^6zJw z6RB!a#!hj+lp)9ecTfFG&PuuYtlsf9YVmG)#rhHT;vCRzf~na}K|yZIbYx6#fYCg5 zbX$G*+W`)TIjCSux8X6eY8hao+!Cu!h78%ZGnqH1_w-*$XPXBhS~EIcO2Vg?6*a$& z5p1nOW1!(rmpmgMF9f`SG%R$b91{=Eb)CxRf@NMLa>)8!eC`Ss0ri8ptI_y&`&g=S z33c*YgJ6dwdZXxq%}F_*o*|WwX+YR%aZJPgV%8iTQ(2b7FIaR~%chBdwqm&C@ED>hI{oN-z6D!mkuA4&}r~9G%?>XOu zq>s+Wp*rp2?qXCimI=&$HC;(S+~JdJ)~RkmLeF zDTfXj9>wrvJB{=>qMS8q5ajk{Lxtv?l`0DSDo!@Q2rh1>{rbJEDQl}%ttxAF=6L*d~ ztn4M+JIxaOgW&VE1*^(z7zz#gz;{RI%gPE~lcrpym{Ux|Z3`jkA~;ZU@2&in4ts!Z z-FEpDxs;KqR?VN6O9wahhnL#zc`>K?ij9<2Q%7X+y8Uo>E*<&KVv4zNCMH%)zaK}% z@MJt!dpzBs=SPa!?5u04$eZR=#RgCFxcfz7Sn3MEuEJvakR*4zv(KctlLndE5`OIsNeUhU8RsAyu?y7@E3%*NopMW-Z9}o z??lkZUwl`e@mg)cUxb<`u~gSOsI;ExMqjFA_2t*n{d>MmPOKu{(D?LBZrGMm(ySC) zRJS~G%?YWInao-#dt^fI6e#Eu*>p*rV8~5&*~H{{Gx(aZ9}-^C5_mZ|xx>(iC|Y)k zSoyDCR})BAPBt=0@kBanl-KGh^%!=wEPNf{mk0PUn8knH*ms@%Ij<>E@~&@m637r> zeh{Or6Ljb#Ts`Dw$!S~xr2L&Q{ize^iJkpCM0q=&c9Qs`_+{?yx`Z}5;27y2n8(1e zY1bP2J&2OSd ze7YRtm4u$9QXv$;bpGjV9=U~-U?|JS^ZX7^j}P9~J5XLt25YtatelT#ZVV**|n z{}edC=C!uvb@GLM_4d-`592xUmirJ$Pk+saa$X-h)S-iFCZ4{#Awuf7w|?N5gNIxN z(E)1X7sqx-K;V!jDorQwC8?;d>-TiS)*FT(fTa5~NwPcDc7%mO^M@;M=*d4nnFSl3 zcEb;9et_DuV|(*59Zq-L1b_Y!;2H3p#KxHTL31MA)-uJCLhz!#LSSvjY>Vd#l+px^ zkOOMmAAv7F9OL_G6GD9gqJUJs$AbKLq7s-RIL2ren(#S`$fL1!2>P7()EhKV>nGMG zCEDLu_62irVml(PflnYlE4PA-$B2qruMXq*n{U{^EaO5Ev`P~d zCaaHMZrN@nUa!pli5>5Z=^IFl80jwg{`vBo%+qo616fu0r@-UWr7e`le{O!2BUH** z<4d#IEn_*IE2Vn((bb{QRbS=b2R&KLrIPx93Y%zE{I+((nggxDAS6mnYcwk!xqSw} z_P4P1|1-`2He~bMouZAsU+Za=a|^&ju9RZ&Zd4>+a0In+{=xH?_OjPN zMEH)sjg3p?Y|ePsyr+zy5o-(hxx@FTD!>f;ZIt5jyR@E|-E<#&X!XESRlgf+7(;L` z&HhIQZj{))=CHlCdd!ynUx)3a5h2f)WSn8)MhM@{bR1ZKrKZ3NtpjAlM2P+F|7uau z^44@yjEAp_s&J5QwA~@XVGa(n!p6!|sN5WB-@y6Bjd?{_#Wnh@1b@8sooP?Figt^6 z5f^N=$Im*yCRHL`P9KlP?qeAWIlauMOm6w11 zZV}qcwYHD#?CF@uIqmjSzC#d+q;sSA`B#bn${pS@-G@>bOO$fp=)Ty9i9>g6SLB$; zuWoh&#{2p7DSWFi*9Rd|S&Fko#mmChO9hl&_7KHuH5Oz@C%zd49IPFFUVBwOOBadz z&MSPC@tSga5n(9Ub{Tah9Lg;|yV%ap@;Q8tv?Y4IIdF$+#b^-}96OR}1n;HXe9~up z;TI5Z;mF5n)>Dt_gB>Buzvq55EHR%RdVs9~{EoqT(~_*%!q6SI!ty(i4)F5eGzM(H;U;ek-< zmCY^Fi4c3~ziE{ZG^SEcGWYft2d25_n7MwB>%x?j4BBmox+oa z{%BGI^_#tM7gT$-@ZDY2taTGt1SUQUn$B;mo?8b`J!~Z$58Dp)`4dOe zi34K;pD-7d`Eyyz%t11HCg%&T>e;sv<-he=;Mk{CL+_YOsgmRgf09G! zp`?Z%unx61sKY%Xv*I#sN0Q6K{~SpNIq9GDiJ|5eOk38$)jjd?yECoUIdyLzWywk) z@dk+P$1p1|F@hbbs8e*0soJ7?{HRE=KE>bxg!UeVe!O{w)G^POF2Uip^pv({WI^*@ z6Eb|}9qPqCTjscS3P+G#0`ZZ@qe|P_?eMcye2uVKo0RYV&=(KXgYGOh|IwBwR)6Y5 zRh@?xQKZ#)ucBGi(z_v6J=Q@D-JygllQ(W-s_hx>8YQFDSC0xPcJM9O6!QvTcZ7B8 zQWnK>{0>=QcHVpX3x$jQaj^7q4zshr+=^-X@=NLMssXme|KFC4s_Y(3d(H+vC~M|k54uQAA#?XvyyIEn%tS8$tZI+c!m50BN)q1 zZ$e5f3n!7H12z&>?jNmPD?69T*GF#0iN)O1FAr({^_~SFdKIgy2^GP^)x&8vtqo6C z3aD`y(rD_@-#XPNE{>%!ahA%X7`9K9BO6=d>eU%;`MQYI3%zzmolX zsO1D)ltBBj;IY5spkU!$nFlkO>(H3ax06o(sS_ED#s$PfUl4EBLaG&8#A?I^Uz-@{ z?p5!ez{0)F)e09_gvX3LXnT)Eg|)CqYPx!q z;cY#1cc=bC(c?BI*iv&pPGm3S^I`&g%7t9_^zQnCTJ@U^iW7d}X-`W!iV~{{5xTKm zI#r!)*5|%C9tB2Q^clA$)P*Uw9U0J$0lh+;4kBapZKMBmn=VwwH^=Le{6*OQ%)uP}yKHlx19` z5Dw6hFW~TXxGWBp?`v5e2o1GF$K6QLCrZ;$>j*Veu!PA5?>LhWnHZdAU8GR~2D4?3 z(#-`^)4H@Zza15#%JaE?e``y1i=;%|H&2G77hJ7SyP=Iv%M#usY&4{FeamE5$%Az> z#z&n=G16pK2AP2o86?u5ilPVfVZixM%GC6im0ul(a}}LR*Xry?9xXZFG^2x4(hfdziHES8f0a3;c6kY3 zAEcu0xuKa`J#+vFL)(^wto$_HJrcG|`_QobmILB2iPZ27_!xvYu%iC6qwP%CY+ zp~px?`=x>nLh|)4$;-@l!NVa}jqe#vo7oPFR^TH#_gf!I54t7IEJlRCP7;V;FULl$ zh*U#Q2l;2_xjE=Y>Y82=wJF#+ySEph6>xI6(ZkDyJe|vO%?%Yxiktit)V;y-5jK0v zhpE91ECWDup;K3u(d_ASvaWzCl$6%p(@YbyO=|szqe>k$rNHGFi(lxKaom_&quPxV z_S(oz<13^{i<+rrG@wCAuemI-lt%TMQ>|Qxmv*N~h zwLj>*E0_{omc+Avjn2dGyIjUNk#q@(9+j59e1;905EIkKPQ1}RkxH7_ZalwM9!l_; z-O&Cn3baujZ;if5s_q*_{&aRRU3Wk_geZBRzJi$b8rxwdpu3l?B{rAGZVJe_l)$(= zk>iae*+wbt?7T=^xdlD=-#Nu;}o9{(!l^{G8S}k`XX*peF(Jpu5ySt*2 zluHH$Kbrpo6D%*aX#6-$0ck$kUnI`9EQ-YGY)0eCU~4~eX&r9=O^u3(-JRY?dP}HH z&uHM+KWYw*1D9~-hsM|Z3H1El7;JE^lBYLd_4%`vbv~I&)F}eEb@T4)3Oj&gyxv#@ z`qOHA-na#s@DZ-#fOS^`ROlR7vIeT%Z$Uu895(4X}|Td^Pjup{eq`U0XJ@%P|?%C5`}zb zLtoMEdi~TDKBW=Cd=?;3lCXWdSXm~B-59!Zv!v%NMW=^o^+v3P(6&HVC&GLYe+5qV zH?qcf_g6sj$6nw;;k{-fH%hLHCx+g6zXU^t!son_Htb1N`QBX-g_bo<+_w-R-&=l- zG=*!~l;F`)s_&p}^A%{(9;cY(s28%;gEMXzWK>lVTEEDxc)zY9@1^Qr_`zaQQU(u} z{{ra>pSQAsntTL%z#_1q0T0-; zKj(B#a&(SUx{z>6NJQjLQwb?7C32hOmV55THl3q%alhxf$}PDph8dex?uLb2hK#Yz zZDt#r-GArveSCiZzyEo^U(fgR{ibhXoEgIy`oUi!G{TT~iEB%fFU2J4{-GhtSMM4e zCo-dF&=kcUvC{z|ejdo&l1s~iq~WtnRCG&+`SEZ<*IcCqb9TAI9)!38vy39yQQZgL zzQGsD;jx$OWh7?JN9j@Yow~|Oi_Ir-#-=9EjO)6$i##Q?D9n){$*Q=;DB4MVyNm4% z1O4dU-dxa4VBF;PijGbNc68I$4b=3Qm4Tv}Q^$NDbg?JhRiKrAG9T0|+# zJIY+=7@CmW8Ue9+S%8bz!6gXe%3r&XF1xYC?XXw1zIjBS!{vs?LXMSpRK+d_GR%_x z+?X#_9tD<_KmMb@+8)+P)|eLdxYGR`l&_Pcv6&MAS|IHAll8vqP4t0ccE4%}VqV

    n>gz}6~U_>IY*FLm}+7Pa%5T4y2>n5>{wB}C3GlH4FNI;;8=zm8mS0UY#W^c!J z@8AE_SaSdv9a^jG&-WNXhHK2+_CUA1d*WFZc+*W%%Uo-o>#W2_u6k+j(kAx2B&OfS zfo5&LnbH*}{OE_gMrY`RDOelsYeMsd8I$f2oABr>quE!^HH)Rv)@%q@_8oIvf%CyTS3Z$ zJe|On^5YE)=Pu$(OB<5)U_IjCfl^Lc(Z%cQi9e`UpXr}`M-qP!i)id^&YCv;kAF7X zUx*h5f0oR(87-$UrlQ0_PYbF!U31&2GkD!zOyvfvBKnEBr$7JWTq>nSOjvHs@VHu} zE3x_#r^%tQ_S~5;rvuJMN`i5RPICEKSWug#t6)leYo+fuZrW<0`J?#rQB>2;Yxafi zV+uJA)OQ=)xiLSule0L}6pQy8^;+K0$VT7O3k;7~qm|7|nUBO}Pr?p0vxYVfrO=nE zMV7nahltbm#gr3|=pED`GamS)W91RbT zu}@0R+c^G38;T_P=F7>tgiUMYTO66$j$H7YseXce?dh*o402y;U3R;O4x??e!O2NC z&aY?Gqh72y*tvt4P0ZYiX;gBhg!?66IXh!`o^P4Ph(m41luymmaX(~TJH3rOk5p7| zXrLio|06#>{Ul-_-W%Hf?tL)Yy{FQR;Q8I7g+Jbf4JDmZ_Ut}e{14zhLnw2k)JR>z zDUJ4c7{zGWl!yh>FNa)O_OfIf-9G)Qe`f1>XifS&NPT{bbc=Yc5YW5zz{^G(|L#c9 zkM8Js{!Dm1H2Fe2ujfTpS4zQral}Y0>V&ITH1VTancUo4E3l`Q&2+-yejM zeJI)*n2?=|?<4MXk36Bzv^ExdBcInI&&OPl+(%>9>02veljv0&j~t#=gk7TUr(bHca<~&xpP0mO{~SLm2NR@UlVT*V>LJ9CCzt(UXkSUXr6xd|-QHarTf; zp#X4Q#~&Xm1q91`0y;6$MZ~+ow$uFZVJN(b;Q@DO61q}KecncVt}Y&_w@w{O4Barq zExRSpDS48AXHlNR*6%IqxT!g_a@l`3bn^I_V_x2-Ux~qLe4oM>z^$}4H;vJ*^vozD zLRq@pIQ{&Al!RdKi@YGuFtNT$(PjrVc)@S%vYIDd;b3|6nB|O<>+6Y=I&QD5CPFQ8 z*mtN?;$eQ&Z!hT(o@Y+oax4LrN79 z1>w7v#1KrTE&kDSqgST*twV*NKrUcs z@=&cV)LFrHbnt$7MJD#Vck~HYgOKrZpcpaKVAY%SsZDk!_H=2VrlWGC*2(Y|D-+(M z^o~r(Y9OsLn)Ms|V}_DRi}1_r-^Mb|i{v~_lcE$!U}T=CW2X}60hXC2H!u#NqD_Xm z56jrT=fbUIfn%3xpGrZmq8%UPz5iS4h&8JJL~YcWJ`9LaP7Fs>`d z(AC2EtdiQK0?gRpld0#hPMETPOlGG0z8sjm{^C>Y6Kwd5z_3lc-q#oh3mrcsw6ElbZI>sL%KnQgy{ zd+u`>nVHBshH@wMZ&|oW?llUqNj?tdd-uJcxt*{yd~GD*;~B+y(pq(x4Dw@xl!m==3u7N$8PMaE0Tw*=GSCb1a{oovPbmQ9Z?yo8L1cT z(JcYVLU!K&M{aCecO&f4SDtz({X7aHigxRBN`lKJ4+=gaj41|USZx#WF;mKWOSb3{>3j7J`C$igt9d$cTJFkpEm z5*-o`@$F~DsB0~o_jDs)l7mwn<{gEBsoyY0m`y#gNJerzgZ6o*hTuHf%#Ie!3r#H%OPAma(PXH*J~I z#u@U}D!MI|GTsNST{oy3o6N-{<5ec`P32y9B)Vf2&M@1@x$z+i`3(eN!8>g_Rte)93b*EVr9m4)n=)K$6SS$e^-978iV`N z{E$_45H#=y{MZb@W=8sew{#hNzz&n*4S6wHjBRkOE`vSA08rh1?6lMR5rwYGBIvv{ z@2MLCRTUvxP?qs|z)_ktvu{e)99Y$)5}(;H@&ah56+^#{!vi@N^+h~+M8#v;nkjyb z_gZhN6g`!xD?Ck&{|}Gw9@Tq`XeZ*P_nsa66(q3xmxKQVit-lWP8CwV@%u*oT=vdL z=$So8DL}6q+VLkVV#FUndiwCp9YJ=JYKkZC0Lv|vz@Fepq4@_^9zFug9VA8=c>DK0 ztBmO7vuD-{5&J}GK5*7QRW#H6MYS~PU8=7fwd2_6Cj~=?rx;8XbFGf?8&vi8;b1A# zzp{F4=Uw+MB$@fkyDvrtz2i^_33ZD=Xzzh|B`Mq~LUiXn4m6+ZZczyCM6{r3i@o=1 zRG3}29TPMdNkX95aEyP%e3QNY@%M-#SI1;=V)%aJA?5`&07F2$zvw2a`w!A~z1r1% z5j;cf>RVX?mt{L2V=`OPL4VsZ5k5x;%w0&?vd&nQ4iL?KGpt!*smvF_qA{%+bOKy3 zDiL9s@u?|+p48&UB@HonMklo`N->WK$(!2u7SKd#jgk9XJz+FK6lP!~3q);$JB#Hp zfB~^8FBnBa^_IvET)eE&SG{v^3}OZPPhSa5?Cf7H=M)szO93_tm-lNI(fZY`IZ*c#DBvB59!*EE*@lzl-fTAGd%aI${D zb-3MEQ3_>(9d#^;7JIe5-{H(I8zgmaaY@=-I9bx#D;(|WBKR|R6T$aShu7)I3QGJIYm@f?x5bq z8!2d;^QWF^ZDiT54iLQ?+$a}y%xi6YrOfKO3!W?<%)r}@fp+It`a%HK?>$dZ=dEll z;hwlOAVfyT|FP5JWTkDlR)r1IWAK;8a59(Nc-)-C%@J(OL#5)MmdhwOe*KL3$(U!m zYbpbEZ7O0_J$7CUnx+Q&`F|Qhev0l7XMWFo*#HJUB59v!U!_~A$nY2xO;^fbos@{q z8eYGh@T)vMR6lIxjvah{QnZ;P-$i6!;X9km3gt<6X=dQ$_VXOy1sx>a>i|mQ6+MJ| zYz020qx*9t+^APy#|*uoIm-nQwj}Qvn-V%EP+1(D+P!@H2$J2STyCHb@*n=cfeoxg zf@D0OA(G#@-WYa$^soxyokK;tbgLv=IHn6`*I9vmPmSOGTlOP6p+TW<7?Yo3S)Qfv zMb(k;F8_}k{4v$dE+E+87wqmUr#pK0o3l%;ov1&)UGg0x-KdV3R-3E=RDo4Iu;@Pq z=(TQCk;zcO;=?n7f?b={IBXG4{cHn4E$!wD$Z8OWdDe2kKn`5r!8ylhAdBY>bc{4T zhFCh!08n2mmw@#Cm}&B#eI2)HVeDa#q27{{doK$0BG%L)&IyPvsPBS0k@~aoPfD0W zMzMe`z!)q%${HPDdB=BB3RiUeNMPws30`sh_umC`DugmUfQM?4VYZ;UiHDxvNGqeW zqV8Z4LYfV_-d4T^ktI88MgO}7WjQw$+?!^cxWqpHi~T-l!)L*!^QAT;XwTK~j_&}Y zwP#BfRTt}oN5JH%3JMjsx^XM!!OELRl9)l0CHcHFQUsaU_vd0$kx% zHZ*J-4A5#prm5~Rx6m%%0hiye^h&}`d>b#-W9|QHx;J_|4jB|z6!ofYh5|lZ4=1Tm zBkiNTtAuei(bx>l%CRt|V7KBxfS`^gMIM&&{H~&2x~H5f*{W8FQ%SL{1Gh?V3UdZt z379<$&da|7#;{a(-O=}+{EjuumPO+k1_#H0Ba*sqA^0c}yf^(Q@n_(b-FCx_H?E~G zybcg553diY{ZI0)nd$-RE3970kg`SIm<$ph`L+n79 zKev?|D+zqvoaBvRX%Bp4{Y2=6QHqILMl>dFQwX+j%{iQYVHO4UuJE+z(zC4y_ zj$sXJ(RfcX*SGxd4LX$%lw1y1=d2+8zy^Wk7fHN2{OZ>Pep3SFLh*f4S-cM|xT3I; zF}@n|y$m?ls_mCH@77hjVs91%nPQgMZe*OmSDm;}tBwsMhXJv4 z=*}>YQ+@bmzhTdI%0Nyn8opY+NcYehRUN|+A&VtB^M0Z%*^yUXqy{3~|FPa91?R%? zNQU`_=~Cpz3Yl$$>p(5*BKi_l#R++%H3hocA@Br)I#7{R+ZP^lE1SsMe#?EkuWBOYZR(32yB* z&9}T5Q6-T`hOqd(J^M+KIpw>(K9XwTAw&OEWIvQn_hJsC$phCsjGy$q_|vz4#)mI! zHc{0IdX4H*Ecpg}l947TPnMe}#8&Tdpj$7D+Hf)xZo}J`l&mU^laZIVnh}S474er@s=}`cdFl#|9?3!&(|?X?Re3zA@E{4EB^R>omZV&1E;I z;e_#9jXf!+f%r0>T{Lf9n=n14Ew%uG!L+HXxyP+4!#WEj0y9#3kqLX~$4kmLBFGNA zQndz5hkuCwC&A0t0Q8YNwf`Fr|0?X_s&0{mdeknv2LaVsq*9==O_kbaC$~$Q;5(H} zKV3gc;Tiom*qFZ9V}p!mu8xvx0U3m)lC`|%MS+z)QkhpCa@w4BL`iNozTLj~fl;{G zpFe&K_{aKi&wg&MgUE;`lOiD|bJo*x$yqAsyPz(P?I9SC7_SVby$dTs8js zFFP!qSECegpK+q-#hzQJN)7);g@E+44i?W$b}NVMpi z2lpON3MliL{ceDYS=YVrIy`hF8XKuSBj5`cg_M19BzC?TVw}v2 zQIFWPiM*LVIs5F~OwH;$(gjdqyvYiN2bH^5@7bv7diu6u zt&hDNriE|LAmu(w~o|~*HB5T>cHra9}W+?y+ZB9DKq~H(Hqz8ySt(UrdS1`3+Mu z=$hBJr#pLTljh3>wR$Ck8_g^qt@zoIHb(&LpMY`TR(*0wLquG{TaDGrtP|c{u(ot@ zjEmx%?9mB#c?=iwE7ULJt5$UcVFl9Zu!OjL$ zv^)bI_3+!bZ`zW(SJAJc0W6?CI0Ymr{7VeWpE^hZpIiwAOg~;I>#xT7Z}yxUKfjVs zH~@bm&=RX>uHLj0b-!*7e@f<3CH=IF)4E10hohm#ScyNn(s7;^2=3m06?0z)@HFWA z{Smyi24N}uwCvw!i!)P-SS4v%Sq_%1KE$HC9^(sCT%hdPVTqYNR@uha|MEel zCMv+zq6(1WZ0YS`%#Bc^k8Eoyoovyr;##Y|H)4Br_3l}Wj1d%9{wqL`9TVbmDcvnI zxFhQ;@07OQ&dA7s?M)vGs4a#S6CP03?OGQ9yBt4X@ADb3jxf-VVt>yopHmylgulUS zO+#?rtjddDeM0o5$Cp0es4W;F;jghumvVViac;?~;+Bv;;*suos6E>6Sg)R1G1Sz_ zED5dTa&`6S=VZaCSS*qtxv4{8stzTVlA7~f0x+V%#cv+4zO<>s_iNTZI;KB3YGoeu(GGdKwVv1$cgu>c@aATq z(ziU}(#FH7&HlaJhE71;!IUVorht{MQm?QM?Q%hAX@@?+`(>cT3dB_|bqg%$n%l$e zaocGTL^l=NT<}e}@^>dCjgHeaB~`)q(%}6Y1hu1eNC1p2RAdpEt$(ABfl!)VnhO`l z=K}>$mlN1%vTMu^5};A1La|&!=Lzb#*SNstPurU^cm^!44%&aYf_XASkmOmhu1w2a z%Wm?FMudPqJ^J|bsb%%=DGTQ~rP&G%B2SfQ$oj9Pl-ByKJL#F%YdL~tQ=l#Ew z{*z4Dbl9L<(Cey%NpxX)Gi@c<@t-EsNQqcowqy1hgx|vDHskDL( zV#x1@1MjE(1+(#CGYDs$QNvnx_3GIE6STd5kaH&R?*RTaM!gj&57=NPtr&wy#&vXd zcb2&~ihA4$4|WYpn=5LEnU zd_Tqb2@b@My~1C>w!8md7B2-QTS=~5x{3L>#7NgP=n?NU``G(`bVI-5rezB=zl-PB zx)4V&k#x&HY1@7wLe!a$(<8D3B<%G^dqg?11t(*~S}`IonQn46PCo07GwZTCVYUfS zD2O56EHXyqwdu) zlM5Z}Jry=IdG9a|cZ`tGUwX&R2C{?XR19qppRFa&Y+fiUztY|p1rsG&Jh)rnW*9d2 zsChr8t*q`MLppsRMc2b$s7Qug&A(q9)hT%DJQG1s|C$#lQ;`EUOtv&DPan{ztwoMM z-eIphD=#E3xHPt^T+~CEBxTs@>2zwZh~8nFF2Q~Ek6L{A+K*@%(1-HR2x0)XJ(|8C zotd8TdelnD{p}fk&GCYe<=2Jyp`AS*q35TUCdYaRHGfIs%)UrhzHj8RlGr@@OX9vX zp|0%0r&^{{R30|Nm5$g+mkUzxGW)L=g}W z=@3*(Kw`9#ihxMRKtQCsMoUO{ODdp~2B{4gqhl~85~D|t9LwY}v^ z>j&~ z3zw9)B<0hnMH}Q2vvw@|Ed}N-iJ1DnxdoDPHd=CWVh*OMu@H)D8CI=&Xt`7ey>WLR z5m8t1-V6K)F5Xd&+3K=#6-p&ORa8>!;>h zHeyLdLCb9L(#jF`s>gwJXxE#18`K&=C+5V6(I*sq5H9KgOTVa!T{hH!bO1E8tUnoNDj z*U#INMUz^2QF(>bD$*9{H0vjc`O4m#MkxWq>yJDR2aCx^s%|>2WawV%!Z#Slg{1|ZcTzfUZ%BvU^gDyWL=>s1x&t6o{ zw3jdLRd@bXxujL$u;o~2bZD+{u?q_#;ajR2ARk&XVJfv15_=Q+0B#3?F3g&TJac|q zc!PLJeH~bVns~V#1~J~=CUmVK9j!lGPK@8KtO*P{2?j}k4$m*ED32GKB&`xtz~J!m za^?g4huyqOI|7|X+Q;~e6$hyfV&lgB;zHsZFr#n7zD&(nHEIauqSLM|7TlV0;m+W; zZ46w+4*FQL5H{Wi`hD9GoB;4%~Hbg-)-k^&#wJFP$tyf|yW z#z7vMRs&(vt%MF!_CeSB-A?MU^JJ~V$`6cfB+xF8zAb^i@R~3t}2MnWH z7Kf4-Z{Pv}IqSxPFCKnTS;@vVcy|11M6-o2Sv7XjNV2 z8KnrR9`os)-QH$&kSa(J+TlJ4c#0lho*B`TTISiFxHw|r8F*$`9hDb^FlLl#Gn(r6 zw&m)LC54G;srEdGUbqx{_t))t%(N)hrhRG@@{rhnpv8~lxBJd(q5-JSEE^6tboMms zW%^ry7HkD;^~!)L)!Fc+dJ(d#a{M}+^!n}ZsgLnU|iI+0nnU3o0{ z_5OroWr_Ug8~5PxK&|f2GBO3~?pUi)>skKAXh;0WypZG$yQ4@|4|t1l&DoL?`*>ea34H$(=*w?LSJJ&(Rj6?xz&$(Wz`M zuR5JY$*5G<{p}?ZJ>-{eL^1z?%f-%Tb?ILu(_q)nQZ3q<&j(tYP)>@EKo#q?FItSN(cQ|+uU6LxUqtA z)nWOn5BtUV66^3xpIrfO&0u_jtm|~Mr1WP^?9<+^n3JqWT-eymaT*{YC~sG5W`ELu zL{NU))pCYmT$9YHwU*JY?|Q|Eh6`1EA;Li?&gqOKDxQU)?JH*tdMu_o7JTm)e6MolLbI-2}%H@O%pSm|9 zPrxnH%xG4W&U2=Ah1p9L*b6bwKl-k_QD140n{4`vchg4CT~p*PjzOyYx)$pz#UW$h zM((Gt%U~CzkzvP`E0;J8`HiEU4Mm{i5aM>#lg$Ns!W4HGk{>!S?`&LL*38V zB_A7l#B$^83(gE%(%ZXjy-PEPE&*XUHQlKsU-l%(^!(3EsL1N^9Z@&z$-|!xPo_`D z%Utmd3Q2zr#l**S{axnX*hH+yk8D$Z=JVC47>Lhs*p?=9FnzjqQ9#DoY?1R6osmpj zaqEeP<46tu)KV5|hNQ)jyMF6+G0|mdGd>Hh&>Bp_c2@-d9UbeBnr|cD3_TX>e3rVQ z6--;I?Nh;tXs6vKweKvt`vHrnuZP&9`tiV0%^VT$Rw7f%p zHcl;RGsje~dCpF}JL{k>#VRZY5098k(J!DUx3aE<=ro{rCbmMVk>O&$74G9-Kk3Z! zG~!ATqN8w4Y`iL<*c})x9OV}#%%s5e{Klex?V?|8-GUIT>bB?i;8o*y*2&*N?wscE zyvPE_DjXzPO)E$fz-V*`MjbaQot0%hW)@j3Ll!l!`4&G>Pu@M%j|`;~|I9XU-8pys zOlO1N`DdY#c1505P}TDziETL^d4V-hW8{5e>i1#vSyx@4YjEeD>-315FMTJ>&J%Uy)~Yyqn4<2Ty&M6c zmzefguB+0D@`=-imU*koCUmFj?=LUqNk`VhZd=Q+!tnST>xMc~e?VzA9U#Ij#ba?- z`G?xx-PyTJR$jGhldi6k7GZMdq}IH#CI-{3=2Np|tIH|)(t$(omDxJrMsQto^Wvpm z2;&xZk$*ZC@D5>5l>f(fzUJIhcb=zQM~yjcSwoMV>`h{y2ruPri`MjzYFp2205&mb z<9FgUdaUlKfwp65i~>ayXwDNU_^s!Z*xoTzRrO=ix>x(AvvJB_3f}CbF+pM-Q+=K~ zN&zD+ssV_D-1Aj+H_p|G<01vL*}Gy*{+uYz%I}A{v68T~`#XG1cMBcUEn_;yBNbT^ z2_m_xtkR_dvQ5X}lhjrrUg|RADom2UjLxcZqV>YyRw`t6+6pDS&%R~&+lL%gZw9Y@ z7o$5a6;hYqTJ>Y4nV_aL^Bf(^cKKBFpHV`)k00G@GZ~83to6EaxxF2-4r3fl3zoCF zBQiLi-ps%9rt3LfP}$OJj-Z5Z$+ob|Ggt8SK&#Q`%7r)m^IAI3uj4ZO^To41t?fUmTK1#&E=`t6&-kh%E#Ds&Bm-F@ zI(^+%zlt$0e0cfLHUu!*+PdJ#ywPo5hr#YTLDK-HJt1~Cf1hsqY>i+QVZul;lAVZ z6Qep#0?h9m!%l)-6213g^wyYJl0<%+c>1i3diIGo)@1&oq_?`Gr*9zP`~ZI9Kl7zN zHnZ}+e3CQn4{S?!$n*{9jhDeL}=JxSu$C$B%B);fLwj1xYUn{Y{s8hfs%v~9C~ z>+P$^_~K5sV%TsDuo&zuWR}_W#s+9ao!tjPMgv_;dZ%W;ZjJ84YIo|&6K2i@^=z&V zVE*L>lK{Dv?0d6yL+p52qIne*WKmhb!0Qj(1BS*Q4mO#_*;%@$<7vlf;QIvEO0WVY z`qWZ0o7?GYoZ`aR@mB_53qSYZ%##NDtkwGglZmUFbYy$$0)0}gCV9CekK%_E!+jS7 zP!-f`aX4qR!E*)VIl-c0Ci6lzs+aez1SN)%Uqmr=UnqAg$QlaPBa3#_9TQZqub!_S z7!FDOjO)H%-4syW!L`wH6f|l;A)RW$dS;k`X%3oxRhvNIL%FP+p_cwZ(qnuNBJo3I z9OlaY^o~`Sdd#vnjg+QT+WD#Mo;a;W5h*aFq9o-)M0x4RO$FQ0DBMsMA| zzplgTtiGOO>u*qNWm4Y!`0eJ8sFF3acmpCWy~FIRJ;C6vJ`ygNiAEW1LXVY=k2m#AJ~{~d4VW&iW0 zQn;P_e0Pq0zH7+*__9JLIy8akPX8hwR8bmg$8r{1Q#FRS@Vhf>3KtKbV((e#WR=C$a3W?&7e7`m(!Ab1CJa#|#lXzO}2MO=XdH?#N#ReqkOwA9UI4wa=BCpNHs zR_%OoUk$fah#2$wg7pRf7G_#z>^55#eXuI(%o^3y#j7$>&eR4bP0p+d!MfeHn_vw zP{XEt@8)SQb|g-AxdoQ?ORTs02A!p;-#%5|l$UtL4o!k!T|M}Bbxs*;*Di(u9w<@YpuKL9F?Trz)c3Ym4xwpXy-YTH*=kmJIYwhg@R7h-8ZE4)x@J!gz;=qF&ulaO)j_qXa z;f``l>vh@$M=F0?MP!Dpa4Uf^n9@yd=2h>uS_D`EwOnA;O{2=y8X_wP$?;sD8iwbf z7-Rln8PvZck>2S$<(tUD&?Ppk54PdZMBULhR33`;Y~FT_7sjfaKX3a;rl;_rbg0MH z4Z8u)Dz;F!Vp@#7_JZmtg25J1`O{Bd$|8~JV9}gO-GGG=_JaDIG-QhyDV*8aLM}hC zoR+X5Jrg$wX3Zan3J1^>UB5VmJo0KQUg^yj!q=wSl&Fa|+skjmy&puCeDu$Ni!J zSqjyZsl$`tlLe%%>)hex33V5D0K8={v?pts45*NZb53DI{EFt3fE9Af0NU?(?KO}8LX3Xshs&^i;F(^o*| zh2xbbGY?=r$s3vCcoS2`6V4?&AdJ_2VWI1M$yu|YE-$!3M1u(>%@RSFPjMvGriG-~ zSQlZChw z`+@lJHMZ`HYxc-W3MZ;Wi=6t_k5Bop)rE$nUmM;5t)KuGtb9` z7Jaiah5uV5+qIoeqKl;@S=Qe0qqolpH9F=}(S8)hYY1)1 z{G2-{VDN5fC-MBazHBIx%6keV-@H9iyW6$T4mK+;w2>4$SUdc&b*i$_K4zUm5=B^p(Vny8y@vTF-h0Rpog z98JRY{-dE7ROQEYJBez!c};an{vu~?urK3R#WXK!IrfhkUQwY(_lW|`*86dp!OaI# z{MQG*cr0DuW*QM`FWB4i@A2o_Y}w}9_^$ZPHm3~}+Pg!*E9z0t^Xmf3Q<=7EwO`-` zd{~t63T5iWSn8l)lM+mZgql)6qluP}UKllsE4!=ek_Z}$6RM-m3Sm99WvlPA#DLD- zk$+TDZ86rQ)PMc)?^|&)Y@qqqwCq1Bpws*xkKbzmAXN&7s%2WQnqleb+i#pA*t_p- z`P1emY?YFTo9qYN22u^~Vt8(z6=w}b;#?y_VNKnMc8(iZZB*)b3nI1}xt(jr-m*@Y z!hR2L58%s}I^|>O_B1IwxRz_XUD$Vd$I5Ku{oM{Gs({i&)ifX=4Qc0fd47B){OtS9 zDN%Vj)|%o?H`(6}qpu+rw<%91u-J9lE7uL<%2O7Bev;*Oo(xD zvjqih*3;}WyG7N!*I}XIA_Kq^6oo>o9~=o_*_-P14j6Y;5Yp- zl91-)gb>?QPW?x^&pCwfx%YrFhmlJsFw9}rr~mX`VuI}*oNs^tp zOgJ%dVg6u-HuJZnH?c}=Jf!FXEGMpG>E@`k$dU4izU*B%3YwI_z?y8bhra-2U)e6b zU)_y)_}YqF_SIF!DylUeh_;aawyW>&hKe30zHdH%T4H0n=Ty*I5sZ|)4z#V`Q1R&Q z7%k|L85aCz^_*rSeFMHP!=-O#NyI1Y^a#SLWNZrg9cP(*2XG5)lvxK!JO)4XvqO<$ zC#VZf3H|j_MHbiOi4w#;X&Cgn1#7Z&6M$OFlbRFu5;w_sn_!i8|bHX&kog=gv>b4VTVR) z@e%0$dc1+e!QSur_odX+OBV;H4}4r}LftXMuzjARY$9uwfv&?Y1*vb3B{wO~Q!aby zx6}Gf-4gPnU)o9k6GkG22_OC^q~MWG6Qklpxo<>#~XCI1gM_soLb zM5W~NkyxGIo^Px%){NIyPxd~x!@nGO?beQ@%)gQ4@=p-<@{IuCUKRP~$AVtUD*v$b zCBTbEeZk>-yJP;le`GSAtDR|utMU4^BS-pBL!g1ymR@V$Roksot-Jm+C1BPf?XNM>Xc!m-?rmTjq9^7f&Nz7=9!KYEd|nbzkNRPxBq9WEU|aj!pjL`zw|Ds<>aL$&mEQ7l-33k@W%#mkOu`=ge!vZ;hLV%>b&5#@mF)>MG=n1DdK)Tuwv&I~VT2 zvDH=zzyAUN0RR6?cV|2s4%>B0l~z%-)UH}BB}I)`G1^j!8nH?LMvYXBAhz1nre>{D zHA1Y~1hqFM)Qp+fD^`Sf{?Gf|y?^hQ^Zh#4xz4%HZ@pE^e<*B40H7fNfFzoEA?I7r zn@oI;z1Xo+zKFTrDcORNfZprY&gAG_8CnbPbC&CPwGvL?XXNk*IKp4^=Wsqg2y2F& zd*i(;gvv;FxSvWsOnWjLE^213btRf<%npGMS}^-@)!+TClfn&cHgT*KO7o8z2xtiD z0_?Y4wq056#Z=EqCVq6$o$gaR-0sXfyp*7SNih8--gn`_5S0Bgg@a0$>yAv=J*kTNf+$*Kin_{tnoyOf<39ryHy0z}g)ymXwhDe$I< zl%T~-fBU;S8`fEJo-ly_5;OhSzym9XAv(=8+m|gXf}imG?9hR7fA^?S>`HlvyPZgE zs~+Fh(#@i=QB{8&=EleRr7*Vt1tF(zs87Ces;0taeVn*Jl_*LbiF^nfjN4TE!=4Z zRVTH!?37O0_ILm6>|<#Y+0Z#JUY^^{>>w56#8`ChlxOQ)a>V(WS4$}-r{bsTqBN7e ztqmspoeE0=cU~nrlU4Rabwl{SURz-_nmN0WKC3Ex5{k=%&@@j@lw$A0=@w4(oCE z$(PfY>j#j1T%~nJ#m{~Cz9tv2?)KfZ-_`6X#6Gxx9N-Kn`7O#gXIwYiHA_|)LJ-I& z9J{CDDSxSNdh!xH^A&wz!uZuuqq{?6CN~4Hh?2a|DoF&Fbkrlhc3;JECd3)bn zw9HZE#rS1WPw#aU;w+&&ks|@*SznZ+EqWN!-2-9hU#2P$xs}~WJ)}gZ3b`+6!FFY= z$T%TRs$XeZm`}hEq(a#K3L@8oYft9q6JuG>1~m50j?4g8NQy_OW3ZHy(R?%qCZ+f2 zI&E<%oq+xRkj)JF<*|&rj0(JMKFNa$$fxYV@&d~&E_~APy`%4zW%xN9u3bMC7mGY+ zSzs0i8e~7MtoBPBpbS#8SePhv=-I-OL14@DS06p1<7&0@Byx%= z8%P{h^Sg8RuafonY#Fm`R(`6ZvD|^y< zz&~^USv>B=m(&%uhPZmnHk^>*bb5zwBJ(OV6df!v@Wb^M>LL4(R6lPCF1z)DxO7eT zZk4Gn%%G>;JJ1?o3?{eNe|L8_Z$MbyEur+vUH02@I%MWLt*1wkAC9-cA@;VPUQ{9F z))82tb=RZslX=4gp>9fd-RwCAE@G5si?f0KNiNXExxQRxCFpLg$3Tx?nE)WEPr?*S zn*ytn{RMYoWUwm>tAG;;&=Uif+4}fqg!UTaKh87PlLk4n@NX|8Yp>;#zD}l&m#gR# zJQ6BL>?wvTtzRA~C!;bqLr(L01o%XElkClK;}o8?SRUfkU$x84=~N1)A|?x8dU+wf zNpC`TgFyAwx>TTc^!Gsiuj+AX5(Cy{R1WBL2dl~NK1oF0RGo)`J?((EO2?la!ani^ z$|qgpScsvhc2sZ^)9L65`*nX;>ejh}_g6t4x3NZEjmJj3u#CKv)&t@XOER`oREbg@ zbJ~?>2{>S$&UFK$En=PRu2&HrAltY+yR6 zo}UdzzFZF;KI=kZ)&J2Rdr|A4$ihvcI@a3d1%fKdSscw zP!2%W&oEM(T76h^(UyT?j+qgR`zO!Du~-UY0f!u?B=701*XOgokmk#*UJ@ef#@IZO zpYeHIq{pB-XaMb#3r$I)^dIvg=V^{W*yrqT6G=aUy^x1e%&FvV;P)c|dmaNdTm_z- zry>ik+L{>g!p0oj8!XVc!gN@vL0?C@)Trob`6PpQ;q6UKe+e3tppZIOnG>+**`G3q zDegB*-ipl@43fpT3UFA9+3IDV06?F6&@LiQy_Ug4$W@7;Jc&*~1Xpz4%Tf(`RQS3^ z#EF@HI~)J`gi$C~gd`@>tjE6v{?LbYuYc@OL+B;d{Pj#s?T2aTkYSm&rB1@$kneno z#bEhHIXO}Is0s>O15VlYwQQwv@-Al3Ou5H#yns81s=Jy6P${PC)~;liFAkFh@RpL z(uZC=NYEy0yl3u}T{ihUu~eO848gW6N@ID9?D%Wqyo7UJ89f=$ZJostz zO^ZMK8BvGfO$iNevj?Kk;Xw45F=|rWBaypbp2?^cRm_ z-y7vx>67~si7VLNah=||5TAnLn6s{1+ziS(Nj`Xy{j75%co)2A=&wk-iP%dhddK+1 zUVw3WFN-AZtODSR=TJoaIyD>IVCx{P9LfbUTsFbeAqSQM>JJC;C3@iS8tj!|hLs?G zMhAj=n72JgSr!{g{PeqPl-6fUk{)82bMP=FGT5kMfhvPOdT>~ z?e)(ldomd*&--#Lu`RNBANw~3F>(lyjL)L&H4%oMoCl{7s)e#eOOZ5O*L9KkR}-uO zX}+1KT)?wVHurPTg>?O)xclb`I2%4e;{Psozx5vS4wL(8p)bD)UhW-^H*hQIUt7S} z%oK8cdgW?VMLEf@Ej_f+Ua2-o=P-FcPQ5}Y(BPoreK|>BKwaR+VVKH%RnCgfn(x`} zQjd*r((z(%08a#1kA!k)t)js)wF-1K!q9cA>Ca5O8!7@O7yWVu-omqa)l74BhaWV( zZ#-W^VGpX$j=1;8zm=$_4m-|PUtDr*O%uqqg}E!S`3F?wm+v2zQVK*`JJ80J{-OtA zhFp4H*<7qGQ1Yuk>_hry#1`y6UpXM^L1IxyZJ#%Uw@TkCfEo`g$C?Petp69vXAo)( zx^mKNI`>hb?@-*q)Mketqx*J@teRu~irUBxZO)HA&I&FuT#WnYEW-jBuu^dk@Kf7D z|4-5hMJdJdAx!{o1%m`;o!e+Ow~eXwVO$F6}3X0nR8@a-O_(5hq{ zj<5T)i2V`F#Ip<#rm{qCE4QFf=Dpx)_3~f!f-g)zxYd4Bq%bEeReZNkq zy%V1g6CIeIz1z@pap-R#i;zc+DL{8}243E9d1Eb_haeAWZkEE;oRI|v(6z6dfzPZq z6|N%k-J>i{_z@noyeR3!5ZllI=1>*IPOlI{CGKF%bJ*hXFc&Yz`I_#p=UJ{CY51i* z@gkIvs;Wka(1pl~My&0H4gP21St>iQxrf@1CKqsbGC;=s;n^Re8J(Xbh)xQtN z&6eVn3jw<2?eMKTl)9+6f7ZslSF`;r0T!*8y~A9VVO$T*-(>49MS+Rt;U!`Q+KPt0 zzo#;fx_CrZmmL@ifs}I3sj~a%bXUrV>lC>_{#8ELxe{#(2GM!CAyH*ed`Vd<)W4L! zC-m19yUTkA07F2$zuILWtYY`qcMaW>lhxI--x*o- z&+@O*U%_NSrg(tBUgD&Ve`C22E_axZtL28H6YbQpputeV&5@qM91WO4D5D>!`x2L5 zUg~6OuGu?Nt;@O9&(+1+A?&qtAELIYXd%YnfkMzd=-LN>1aD6T*Lc-7Dl{p3bfYtS zm9q(*m5bMstRuPTT%UC|-P+kdR*psD33Go-5gW2I7=^Vtwm9`O^zfgVGNU`rzoz|J zS~T9y=S1zJ|9g;HbkW>P@S@1-+N@DT-U4j6NBw!7tg1zkB#$a(mr_prwOgl5G)&wD z;|=)wUB2(f_GJ+orZ;!Dx56OUS4~I3->?mHi=5siD+5kxnzkIYH9OU)x4&p$O`ST7trKBdIam%ZaW*yI4LH&w1io1} zUwGRWLl-(0dp)CSbw=xTaN$gQrR0JZfH(AlDlR z7oS;lMjc6*N}G}J{cucx>HJv0a6$GGu(Yhr#sbd4bIzv-hm&;w%jIwhp|n5MW%Vsk%`f?h?1k zgxI6o{G@f`dkmhpPLD=jsVY-=>YH7C>87pnSC7fB)W^Ya)G^qx>w(?cKmfx@f5(w4F2wMi@Pjdk{s^whaL^>1Qh z)3BbHM0nk6Rp;+I0-CSbOp>d$;>ds|Z|Wb= zL@V23(Idv|1wSTz#psLQ=)qD)!^RgKqWSa0!uO#V?O?>HcsFZM2D2Dr^r60*X`Uvw z>@5!4`qj1FpOpR-i8Mh=XNQs?8^`WkCkoAa5-yZTs`J1-Thd3`_*QuZ%-F2#CC!%Y zXr|=HfahN%RQuS4`QsM$Kfap3axSWk_MzsPiT)i=s$L2E+xd1K55MTJ1bP&sjmkzi z@e;OxK+|fXmlN%de$+OteiK^TyN`hgyiC4zvuBcP$s@Y-9~f;Tola3);RyU|vtD?T z5nTuSa;eB3?DrzgKT6KCXD)~^`(8>6-v94m$4?R8F zgEdsNSUy~es|>O`9Jmh!x4v7qTvp@j4k)p~nZ`#AUMDm;SP!K?>?nxAOE(m+%!Dn- zI_AtuGOSDG0eUhPxnOPl(E-=5yTUMDvzUD%rb1-}{va9CaH-}hGmdF~&ZqbnRl z@PtJzujdu`DXBNhUWY2#2dH}Wgx=4v#gJ)Nctt3Rb6hVG+RLtV=RX#^4+z{^;D1PG zoN~xE+WRf^Koo+nD1WK2}hIe%FZm8^hdLUO?w0ima zG&JudVi0g*Rm|2I>oS2tWLV?y7ED0+efV}Dz+G$Ej#|4#lQiE} z$-q_eiHz>7FdCqIu&XwFdJA&3bT+hBuzm;+lvwqY#zidoB;34_H92N3%{Me5VITD8 zZzH%8tN&?(kT8V6Iwv&mff4q=O(;@g%6j6Ic!NfU1nT_On*BZzr4~0oEY!CZoz&i) zg%PMa5TxEL>x+42U_J;B4Q7lWsd6iQ<%CXpRl=&0$(vq?r9NE?uOXFVV&<2f>q(d$Sd1jut*B0yv@Ur_s+itnK_zc=># z8^y@W%YnW~+C)Y;ich$>^x)jcXeycprtf^IMjG zRGAIV6y2Qy9k|75jD+H0c>KiRwH|WK0rNlAgDg}gu@MTvP?oKF`U`DDsbB?K0=r*FCgF+Jgm8>p;L zY^zjQ>L>4!NmT&VZ#nyUrbKkJ5B!%@viixh^-*1{=3@WvUGx>S;p|H}uw^ssUBV?= zFtn42Pw}V7zVO&!?-g4>&y~y1GjZQXJgOjPGbaANxN0+LA)pLduP^>Pox;vY|18;N zLX!2yXP|KtygTim+B3RsGtE=Gi(i{!N)8bTy?$>@n?F>bwkfG_4{bNRTqjM`dD%ESQ{%MXHG@xg$dt)>N6>rpuKuYN6fFFtgG(Yna)e+L>sRChxI_iV{a3e)AES8y<*=CTOp}5JIDM@8xn;}|MkV9 zo9>a`2W5x7nm%6rQ<;Jb2bx#tp|3&ps((u0jTXulU5I+H!qzBdOWS>Gfu-DSTb%Kf z=-$1>MbWz(L15-Yz=cus6A$6K4$ww)`?<^)a>Y?`TpJYNv>RBV@?hzkhyP$J`_A!k z$MG>-?`Zrb+6*x;AeZpXeV$%hti1vCc|0<7EA!3GqA#g0)ir_QEV$eO$Ck{UDiNq( zp7c)#WTkf(6(0Gum(q`C#_c|cYO1x5(y-4@VRN;GxP79~iUKS>)|E7KTyR>$;71jJ z-4FBe$*PjOr=51GLY3O-HJ7()JXU~etfgGLig7ORqUH=~*vkCMO;uTF=jkQZKcKVP7ytH7)>G;8-Ot;r6 zSD-yq%Bt1MaymNv^1}Xl0c8l^)V#>q^U#Jlg>D=?K92l^dC4F)x9ow`$b}!jSU7ki zoLKkJP~L^M-A{)Z)i+8gUsMz}jzjm_NpW>(r#>)jygrDl> zD{E)OTCq)*ZP6{HFVNte%YNj*?>CFLzg)$d7%;?oIu|lo%QzVs#yYI_%#OOOkwciL zTdF`|jq(~!cqJeT-luZwv}5CPy@bvKb?fK$1z)HmiaG)N9O*cDX!0_9EK#2M7qqX0 zZE@N|q<+QN?6}&ZAR0JMpAgqICrmq7oh=@|@^Ox+nt`kjwOyql{6yWlmS7Zb-0iOp z!kd@eQNSn=)9_Ai3S;ZrdZt}K?Lh(JP6=*h%l_{}6abYrEx>W&`x}PSSM`(DrOlsZ8Jlo6KYio0+TE3w)vS_OK zy;ffHbp|@v*H^s$oTRk1{;oqxiu$CRwOWKsDGp%Fto^LRgJVGt1e@MinCo@ZNf8OG z<6L@TB*rA@E2J!&J~tN3E)-|0r|&BHwby$&hU~`qiLSwYc$N)(0$8L==D1SR8$HFh zwf5Up$|ri=-10dFVk%N%ePC6dq=_3p)YSb^l!Yn9zFSos)%r+j=gy^9I-69k>*ULZ zP7VlYcG;<6E2M(F7g~(qa=Jal`+Ne4+4H~ftje9DY%OpeWvgSNfQ5m;{IQFaE}^nSe7Bg z!z^hbrmzb|xd^jphV4w{*eTVwm(@7Xu2)5IKBn@zR=EHjwE=X@E;T3AFYxrDRO)`t zD1!FhfvV`)v#KA(uH=z_Y@7p2ICu7991F@O(}pwiu)9WzYl6Db@61AkBhCDG|tmU zC48S>>CO+D34_Vm7o zX1{cqg4fCZtXnt1_Hk@WWn&=bElU_Cl0SN=Dkr@!1%0_n^gleIMf!Fe-`R%gtLwyGcspMmfaQX;gb+Gsg1^~=~%n+!E0m{vn zK%tHquVCNdf7T9a56$g`FKkcprE$S;2KDv~akc+;bKltVum5#$;br4cPb~a{*{2O1 zXzZr2XKv&B@>CNxY#+htTWV>kM<|Fw1&L>j-q*z+1-;n zn?UxFdC8a9omt}VCY#{iJl$A%y*8pB>B9={lR7XHTz~p~#Z-wI;yAp1o6PkhZLVe0 ztiq(&-R*Q!^bTof#L|Y}_*{d<4i$Xc zZQ(6c#D!_1mkSzR`{9PyoIQB0A7dqsdBXr-?p}*kvF!8*myJj!A z^;R=v=K(n+#Jg&4X*)>NFn?&QhGuH$@A;5Utk4-F6H{gg?9lw z4F_9v?PiuflsxLwFt%BE;sI@Kekq^*QCN9AJW0O>yL@R_t03G+XD4Q|jNFJndpyEF zRCxH=74My^gNuGMb=s-hqiuE*yqOzo zUY|b>ibE_lXB-{8UY9f$yNXE3*f~7yOou}MywE6qS;u;2H#Cm>&I z0`=dNymb;MmzOe<6$_r;WRG|*Jy0$_?W*8aIl*4`&uQ3c36=3yKj*y9^PY45x&Hk9zW04!*L_{L zu*mF)CEl#R$nLuohaPh&I=q*e0b0m2*KDMhoC>~6EEMHe;es(}fHMksI<1 zfrM8n-GCaR(usxH@S_HT6Q0AZTnBxR(J<8xT0YCk+OQ?P&F}Sn`jS^ir`Oq)p*VH{ zT(`>(AK_XL8xGr>xf8HGukP}@tJ{zM{!D&KPUbbg-XHZ0dOF=~i@3a?!s*w!<0$D) zfxObi7A@sAp&Ak4^dT4Jo*S1U2V58OquMg#|56Ztrp!Z1qEF=J$xBc;U-GDD=Ej%>k7q0q6iW5>9A`}6N?_?A+y zgizIGsL9GhEkytEPs$og8DgW5@pA_-t4J$LTJ`FCQs{8B;FwPAxuLEW8(GKr+DHfYdiQa&^5D7KUA&8r%%GbmQ}1gCBiZ7Y~-P9uS9RHF|O zuxzYJV`w%c4dv2;8XJ*|g$rdw8&;Pewj6Pw4qQ-Z4zr5HgF2qMj5)xb8?SSeR}yBU z^Jl2ZKV8b9yQcCh~xqIf+>pl{1C=mYm$$W$LXe8;O=1U`Ipq=vAw89E8!uPbE_fU9XAAp%wUVG6pCU zB-(RrFJz3E_X${2btU%19?sh=bVMon!IQx^i(X-qIUH1bItIYz|I(VPGPP4v@p$*E zFwp)Z0Gdgy|9;}ymMD!;U>%#!vvai;?5Qag~_IKBu!j;(%Ne>Fwc;~9~0(Z$$ zhC{R^+^oV(QE$!L6#{GEz_-}{Ch{K$LCRYjlZrln2C~|8wHX|z zowvWvZTik*u3{&mA-xBiXJyxWo|EpO3#o{2Yu~Y7>I(qMm@$*-_XY2|F zbnwg8JbDjl!3(ibT-F(4=cnBYU|^KR{1ftxMc8P8*-(!C&#CmZ4UY0!A9F`AiIj|zJxpth~XN7HPrJkdEw!ngRR<)`H z)v}z1zY4FfsLo`0w9(kiiRVMPC|ZXd7?{P3=E-S|@k4r1p?q!_Sb*Z=kzPQS^BLEM z`tK$Sxu0~LacyqT$^P9sLs4qcVMC_Z7|{mBugAwB{!P}6t|i#{C%{<9Qo66lKyUiM zcT8^i1=LXn`@cIoEu!y&wJOLN0b02T^%zjnkR3-e%9L_gpso=)B}+!)@I8H z;cku!z(3thHWk1JoLsX9YB!#Y5+8qE96okwcovZ1Eyc1$F_v<*WgPHZSiFYesKW^~ zJ{M8F&fQK-IuE7zpM%x<^Dq>JJ4fj9fEu_StH&ZJDtEPolRXl%REI{mRPj8caB!?|6JXVK zK*2}ntBtje*-`xzU~%$Q%veO=-dh_Jy=j*lcT}|u87?B|HR;8Igz`f_Dd5Jv05k$) zk75gy<}V?4#rfB6@N(lzR4-pa}F{W`&ZXs{<7Mu!kR2d^t23-VioBFWbg; zF6SngY8-#XA&gySE&QCYi8m~E!w>8%1M~njhd15sp@3mf7eyM*i%sp;iE?kPSs*IB|fOP~e{ z9!lUVIy$!-E)j0;=<`BzHLm9846sw$t7wj?OaK^9@o+TX-OVm71`H9upZX$_Ygt)c zdM`YyK7{*a7LIW1A|?3tvZgS6Z=H6B)WUJ6yY!?~gy%;=xiVxO?cYSG050X(25mlw ztOQMYNzoCKXM)sT!dV!^OqVDFLw*S&EQ*%+G!S%Qyu3xI!R+|qe>dK{BJ z5{Pbn1#JnZ8emHI@jg5=Yg}j}&CW6JM6l;Rb(nF1N^07;%L^tl!lafc8ROHFsgL|+trA(usL)(UDwrk5j3uvsF`<_^|@Pf-E$ ze&kVCV$!old8pBKmd6V(6tMy-Nwq}9lImHGcb<-hVCNt39R1Wc(195Fj`pY(ZpRyK z>5GWSQ-^vjK%O7}>5!48gkL7a1B^-MX|YHO4GtK94DPu zB!8xHAISJUdEWXOl1HncJpo;D$13r2zGARe$_@EocNyiQjg@(hnU~yR@m%(~Gi3Q< zpr$0X#13keL<*h1Vzs#`EaRQ($o4B8-+7(JuHBD(a~)pujnrUNaKqZuYvvcb(clwX z5IA7SzaIf$+F)9nyXLwdg>*U?-07E)sX z{dR;GbFbg#d@s{STmGt{_aEm6d&%p(&z{Mcp?APz9qd&Xc6?#AZHYgyX|dz7W3`AA zyoQl{fVkTkKgMlyr^Frb8LWPWQT3uLoWG95yb~?XVzJYRZ=tPmD<(HRO0@) zP4TO|a~b~TM88{=-iDB%;;=`ftkoUJ-#yIFCQ@KOldp&Gjz6O_P%Z+mA)K13O;vj0 zCcqF@N2m>1j5V40(;4O!+ol}?>=S!D8}w%L3!{R$DPlgWW30j~o`PVWX*tdcI9%a~ znjgfxzMrj(R+;&7YcT}+@9gvkb{&JYSfzHeZ8CRd1f|bAW5+$hK+^U_n$)1JbJDxE zyOF0!YUkw#QN7<}*?vutDBx;QXU-<{*?x`2kru~fou7c+RKq6q)arwH^mCZMexL%Z zzP=%-rm?o^eVZ2USUP~|{mA$blc_+|BI7knE0de&omZ>&fwyC$f-fUXL7vkgOxL{1 zDmaSM0>L+Q`-gU;4SZs&L?)WNw(q}TeN@6-5|2#d2xNyTCj}14B4WAQFfIhEhDSCE z)dIO(j{+%?u8pf13j6Sr<{3YPL+nCG#6R`<17&Q3OVf)HiP)t9;md)(1%|(8`BAIS zXeQNVg&P)XEzeNH?F3O%9$~_+NQM`yiSY4sP**0Ojb6Uu$dk-0E>stC(Z( zGV+^HZ9{`OiTp)7ETdvS2*08Gp#+&+GiF=pXFk~?k60?M!E2-PVjB*_+A=kapkbNt+Ky|Y;smzKp5V-l2euA6MNKP;;b9m|_5UTtsynk64D zu^pvV;I6%H*HPIVzst55!V2fR#A)}iqhcCytJmu!9LJ5H$lOynD>Tc@*acstYYI5Q zXz%bYR2k_tQX0oy`>Esqvorn$1qLR%EBf2T-7ff(uV{cZ3{#^Jv94aF@wv|+4N%qF zQkLWi9SK6evCQ_3MzgvK#tKwE(4==i^8I>tikJwTqN0aF1Z&GzYfbu#q*tqk)SegB za~6AYpZY9>*j)V;yJ?>}SoT*FcAaWm*bG^Y35;{~(v-iz_$b4z!uld%fwn+AQ}7hI z7Kk^l=S(dw?O5s5*s5!zKIOZel05NKPf*3@QH}z4cWYIk9OKLGt()ud54R~gLR0vn zcBZ~8rU+5FXie(1mAnvx*I*9Kq|?t+kGZ*tIeAu~{DRf1O%`xY1 zfRk%d!Az$~arn@jRk1^}lhNIa9tU&er>U<~j}Z{Bu8DYndKKyk=fOY*jP_vd-5E8Q z%;~a9g%_@beC_)dYgo0d6iR*Nj)VzWG*>C{6m4r>nFJ7c&v_(4vMKsIb-8uC{sYnk z6X9_@-|FJcFBv3u!@kf{xbN$hsi_7o9&SnGQs|LlS3Z3pGjTf)u#jH|D^xc-%uB?(;O7+zijboV6ne z3Ktvs=p^mA#|N_AudVMJxj5ZWA9VdZ@d@VP<1UmAt%$D5T$8vd$()gU5}j@fNzlW~ zEPt#%R~N2E>6eQ!70xp;@n2?TpkAvj!ssiQK_h!)r>$>~>kgqXjW%8_~u zN8CFXaAt=uun= z*A937ei?0kaouR5|HARm)Z^ZUr=QmIZ-rzbXm+Yxut>G(1c5TWgz3q@00w3)iT3xD zSP=J%j2af~MFVaW+T-JkYBqDXkW0Nmwi1rL;q{?Xgxg}zP!NmdvXd2rvSaiC9lvz& zlq+&+b@)jT`wv0Ss@b73+np9*(G4${>3Y=QOEb@&!|_1PZb9 zXS8n-Rb#c*&TPmMY_C1Q4e^Z*+>5wB&z&MNm$;O zxLN-=E3Xg{pG;gJih}JSz?hJ&cYN>3MFZa34(C?)@R_b#lpI5OnKzn@K|EKtnZe_u z97>VOVqH1LQDS(RJToQlH@2khcb+Gbm#>0c92R_<#uCZ-vlFBC{*fa={r?`_wn}U| z8gi&)i=PD2g9-TWd9@Q&m{+`3d`<6{XI{9Kg7^3xh40Ynf4wV2tmeLv6g{yfUQ#5OOZy8XN z{L}#T#!a^)@5oLoaBUkXA-oI0?&Zs}gu?_FOfBM%h`r$K@Ig>i1mpvooO`7-pWOo-=VsAZ z>KpwxFRxMCYA9)IH1AE_4!=Z++;L$ovcq`<#rtA@o_^qODqa$rEE6#si|CfY-*kS7 zXFUdQ(MWz;5mEOdORZ*Qib+j9iF#yz^GSTxkJ<|j6`}(BZ2n>v!ne0qA_pEg)zS+; zonC*xk|mqoS4e8IfkZN&23IXG>qy~-CX{ssXF5}GX#J@A6A)OX>J9Q<8VZ zW6rcS`Xw6-*vB%)lY3BbwaXk!z{w}GwtG|(=1*>6m-hNpfpV-j$iZypYbzEnfKeRf zB+^kDDSJA0VrNPhYEpBiYZz=`9%%E5B=fflsY349B_mCyp#IsqbKX<6H5@CyC%`c- z)!(*vp{8;Q=~7vjzYmP3$+h$k!>yvt%?}pccUIqQ&)aXOC!K0{DI9G9F+3K+*J);x ze^MB4PApRZdSO%+A61^S9#@a}rq z-0sky#hm(s{#{^u?TjY0pIF$M23`4vMQ6+X?3t3J0)!%P%yp`Vt*}M7M^pu7Pq&R=Cx*yEk^!1J@=_zKtL1H9f2(bL6sa_Kg2Uz(? zGF8}y@9WR2>SuD2We!AqX`d8!9|GK5I%~h-WV~z49RFNq;#|z_HiuK+&3=4*%W{W) z^RTr4KbSlJr#uo*AmRHqQ9nSRyJXqJI`A#xPMFp$m2%S}-&R$ag%0CeCBM;RnqaYU zGTm98n$C}n+;Ajl>NIxI?}Tnz4R;9GBS1bV&pD`}nT{e{uX22@LRjqsVRh_I)}dzm zpOM?|2UQrix1QOlM<(UI#-HS)0dFu#Fe7lyb8>A+-XMaKwd{(emvb}qoCrIzAd_|5 z*Opw*c>jK;oGpk;f9j&;q5XuhT*4CHuNc5xO~wSwt@ez{&Pm6w^inSiFQ%x#ua!^- z%%q>`G3b8)nH9C)RF+8`v#V-0g~TG?pxWd%58Ciwo6dig8E^*{pAjV_Ip~*B5HJikA8yh{`1k<;xD1D}CW97?-&17p*-$ z_>nF(Tatw<12drm(q>_Ch%n8{Gu;@f(~YB~Wx0!XP>l#%*1k{IJc#7ddVyKQS8Q zybtiQO|ufO3-n|6(C9UN2hoxsDz7Nl){&Mb=m9twj-+emkAG~9E{penXmxSb7ZuSd zCcZOK=v($eDVy`!7GUDfcKQE5nYM3kR~eWVnQLFMl410l{w2HnCP&c0h?ssIybvIZ z2ahP!ZC<{Tk57)=aFNU)geE5*$kiKaisQXBp5~1iphTdx;_THn*H!Y+l;n`ue_Zqr zhhiw&%&=`fFqH=5@znPg6Mz6cAA!@9VQ#Mo;KfH2;ZdBpK=( zsKBgOnev)@OM7dJNV!W7EM?Bh+iPjK&7O08&r<7=oz01@M&7j7(Vbey<&A-CX|SB; z34cJyCYOl81xY|-$V(k~LHVMMx52a*us2tExtUTtO<5zH8YBi*nwx*Y>;bCXlqT@Y zyE0U7T<tPl~gf>h8#o4B(bs&la=t{<+Zq zFr+>>Q8U4{-@rQgDYv=n;@sYiA}emM$?_{NC<+Q@D!bmZb&;cH<4G0I!Wl*wXgzG| z=tMG1ADU6U`@S$iJzaxtemd;KF4>+z*#5pB)6o>URndx&{imN}hL4AJbEBPjE-{lu3%&$(*(EyTD5!3%r|G)Z9t&?Z$>F0Z& zx>j7rVbU|kt0!|e!SdYOg9Xi0xXfF4E9Ud}s?cc&Qu0ZR=d`NSAEka$qj#A=TyjKWKr<~|1;S7}-eq!A z8M^jA=b4VKeK%oYe(j>J0>dVjAjEYXRpH(r#IpX|_O^Z#4YbD!RcqD{L!-^2ZIQPx zr#}%{T)d}ojun!0Sv~`cE6<`pn^kW8@N}oJ;p7dA2ICq~5Z6A-@7P#)2$R0!A9?>T zF|xFq+KL~nj9d7fnkZEV(<2!^T5~6YNc9FNN9y9+tetWfaRL;JW;B`@6&^V1za#Uq)iYSkF9?84TR{ZZgvHjY;so00030 z|5SNrSQEj3W#(8Bho=s1f&T8=_nvdq=eABc$6kxS}38H(4-Se=!6!E zlt}NP*AO6qgwOlD_uO;7Kl5{*nKgT_z1A9okUg)u(a+*d)BY;c2zCW;JHo16$h`j? zGQewKW1^CiVbtZm6NkuPO>h~0?@qb51Qz5}zxa*g{}v=R5SVrl#&_iWwx3AMh>+PF zb}g|eWi2j8l#m;apm+3ebG-Vch*}MvdGI~#N#@H-@`48CwCTNZd-~7%E|qI8u)g%~ zOA19}W?VYxW&UsRLtiXC+0z-H-n1&SX9H=i6jnVU^%I=A7MdRfk&R+Ek& z!!EphB{kR4PxD6N#Ifa5aKbrUMul--t@9=kimIZ;syu`7f^h(u|80Kp!Vj(1HzX{2 z5e9cK2(jmjcJY@!6;+Bwp#*l{y$+bca6Y-w#dc+Gu`>sb5MfcdQ8liK*fdkA98ZlC zQQE|#!fp?maG^d6%fBmv+EeanMpX?JCaLXQ#?$5JLJA$m8w= zDT^RM2v8=BS}8M?X9c|gYWxj&=VGPb?nlem=`-c?S=T}E{pe*}TTKCKRiFvA91rWt zEbFKsFyic(2fF896C}HQro}023V2H7rACo&C~=%)3+-ePbzXl z+xiQlPtpffxXmil_$m4Qx7CsK!Y7^JyPDf&$7h_S2IkLU?lTJrKeRh~+~_qA?XJ_K zTiM>*s@AtRu>jSSBWK;W)4>fHsWBe%h%G$|-9h%~&@(*FWK}(|@D;>tBZOs>BQ(yJ zvvHv&m-g7qeSm+*<1W=n+krA*y(rWh2VeiHiV6=XyZI)e|G2T zmepKi;VFm+U9p5s3QDmXv)FBXG*aus(^x@P?U6vLT4HslKe@o^yAh52!q2XmdgXFJPjKv}b@yX46hHfg5 zInn_wpDtrKSYKM-_Q)yA6jyZ$g^}qqc?`GmsLS5Ay5U7z-1Txjh&`v~PqFB|q`bAt z*p-+};~J$8oC^I$qpgFf8cO!>y<%J_*J{{tqVqG4swRcR9kb2n*VfDF_W18sVHVc! z82fm;`FV{;=TJzc8pM!17-T7db9PBJ{u7o2@O}%T}&u!FO zUIP}+M%&v7cJUu!G!1Jp|mD7{s2ldl|GI=Mw1vb~`s2gS(UJd&;2NXJ%r+uZlpWeA>wF?{=O~v@{KcAt4b?rO0Kt`II5iQNlYZABY zDd2HPuIx|M7m<|A-5y#)ds62Pc-7qDbxKT&DZhyR@tQ8(!nyQQee^fwFh3q=Kz(C$ zUG4MxgG-OW)<>R`B~yLVhH(Q6527my2Lt24tEFLzHcD?SugD&~R7NLcE(?nSY!oV| zry07x8f|Y9xpQ2O!U3mWq&Ng2^@z4AElFzguQw5c-r|Z$j`;)C$t>6x)2EqOM3kWi(OJM9;qdn9QlPN{ymYvJW!*FylL} z%y|GXPU}oR8DC0`v$H6`V_$NtTpSKRJO<+I3Z367olrc-p5|X%2r!;2u_!RFY;SDH zvfw(;3O+qdxwoGEq7fQCL-ne7s*gnLTV~)uLZEK+R5w^Yy^FJIcFM5v5o-F?I9uk! zo6(O+3k~pHu(HNlFJ>E*XWY$NbO_>-VzT9eEPowt!>RtH<~PnedYBmQJfj@woRhm~ zC8qMIxIz1YA|Fga{0V)DOPqDOozeqlKC#}_u3O6tffRcoA5aQZoSn`Yr& z_Uj1Ta=EgdC^D3wur6YiP_<~^qNnc+CQVXgIQ-e*ym%RuZq$L~2;Y}rl*R+poxNo4L4Ltye?NAZwgl;P z5jfIbm&&?{8Y3MT9HzIzk|K&XD8I~AH%Po(cVY-gdydJuI|{lx-zeEUQAMh>V?4x#y$j)zNfM3HJ?@!a(6(VT4}`auKur#@n!gQ*t7dN zBe#ZR$g`ER_ZEZX?C{C&W>1rtEW$0uRWP>?&OWS8GEcBk99OhEf4e@{!ZCnWpZM?S zX#rS4h^FUv=_94APfSRBIpBmuiWQ68Nq#ENo9=BqF?vHCM$N5kNsTZ8ah9J_k+Mft9qDtG-DiMih ztZDlIj05;hya!%L7u?-D-55n)!}QW=^rV`B*lyHdwRo-9KD3nzYHWd{ zk`wf+O{*|B0TYRd5q>T0HTPT#d!&Z8K-{U>`~e00x4TA`#6yGZg1NEHhZE#Ln{Zl{ZK2#d`>JC$V+beUUt1Y@0 zzSswbcNBp`@z<}purUBVnr_Di=0KtVCSX7^?-y4kR_JVaMuGXmH;bZqrWC#f0G5K4!)cT>bCak+gj6JAt z{0z1h$l$nZpj>KOxbsl->wnPX7C z_j#OSX+Q{3?B0FVB(JY_fhr_sKdr4v)5!OZ9HR#2Y%W{f$&kU;p>NG)wSgMuKm8X4sb>&dc)%+p^ZF zrAC+hS5gMrAh8t{8XlO9;|)u7_8r4O&gv!yfJLUJm?HJ-y~iH84B$x)uTNP!KOpMw z{o1Z8*4rum>P7u1+_IS&w){q;O?r!t^9Zky30+v6gNcVS5}{w9(Y|_7Ep5sXf@uz0 z^G5*clP=|vTM`jRLNLj>I<5J^m&4$(2p!qR+aUrOPEB3A-fs<3G{CD4pIScy(| zRS`Keo^99C#Jzx1uh#AIt18!scHSE~6i%b^wNYLW8Q#baEWGTb{)K=3EaXS)T90iy z>k|+zo>b53wjAJGoRSMh*l=g`FhdL`5JXZV< z@W>2vY&l|L&qTcd5;`$5T6G46jbI>kKpJ1O4CVB|bI-u=gxw~QcW0JkN?gYs#!*Q_ zR(toLsS)FZgAyq5w^gIp@z*U*%fifmbe_yA2ua^1I1Wkt0%z!~ir#MWA(wA40M?gB zF1<=(-{L1MGC#-6?j0{3MHIXXqm%g>6$Ll-(MOjDR6_DDMLHjJl`hebcvx=*#n8Bde?*HKVp3D5!`y=VYE3g>gl!?;1;rr>1+#cz&QmnbuDO((bxK zaRex=A7c%XhajOuUZv}>1LY6e_$ zHA4F-dKuMsJF;Y-t<#4?@uo0klkGIaBt=-jB^}3Iucn}o6F{r61*~Ppaq{BUII(x1 zClq(j_O4h#XMmzBJZ;2^GY2A;0ea9L$f`SrRwG{VZD~TByxbJt2$V`VJ<~B>+wcfx zL`jR52?qvM1v;QZWIX+zFGf&I0mVO=kshpa)1gSJi%t53<|8m>bE|y--U^(Nar?IR zV{L~edsB6Ah;8F{J>D(SeYdqGjWI&f82jl@=N;m&7h|7mz+#4YdEv-mI}a`ZstoF>S1Dg8)X^0FSOuG21u z&>0b4al46Ncqka;dY4t%U!1L@>MN*{z8lE+$JpgLL2AV=qX%UD(Ll zN$cS_NoP~Glf2YGkCk~hx%p_Gp!lr?y;}(A+-ImUz&?*kD@FN8IL9_WCsVjZ2o}4o zSg`iM9cQUhvr4-A`C&RJ#O7O#!K{b=TcxZCbDtLpq@qL3gSZm*kDp%@ns`mf<3y0p z8il-S9gDr3M~r;`^1#28fQWyB2duDTEKxj0^K8Yw%iezgSUF+4IXSA7sk%>%S_K|- zYjm=;xRFCR!*xbIu{^m8a%zf4HH(b%<^STBKW52=ffHy3F#c0yr!bmz%F}c%DBc{|l-$&RJdWu4NvkR;!$91k%4P zDed6Buc#rb$c7M(d1?h2PvY68-!oito!weEo7y9=ge{T?|9Rc5q9)uZfhcq1gxYVH zPYWj8<9%?R^N|J5<|S?aGLeTo8KJXdmcD=Befcc|jH}D>U!L(tIbt{1#7?_L^J8lI z3K}^j#_yF@ecPl4TQZmAZDqS29{_wA>DOS&%Oe_};2uSls+hlWwL^gSBoVr7T0&!L0d#^5zVY0;J}Uw+NRcz!y&hicPy2jXhZt*v z9VeGka*}4R&{$1i{KyqMybKG}TWzf!wABt4GmixZ=hqDK38*yNL`Oy`$MlQX^9IQl z;NKC^xyU}iSX)*Z(nR~X$s8EbP~u!ZE%%7g2%T`iuROcK94{&mp33$&X|Xi?==Y_IrN?l`qVnKeWge`<4y~_N*?x+JrSn$7hfD+ z+8hm70Y}h*qmPKEu1KtA1f^CYqb>mamb_Bo-mzhg4{gMOD&^to>X${GRxHi8lX!ds zQs?1+2WsS+Qz)pwAvCL}Ep|yOZ47K8XtXFwIT5XljFEjS7-#j!)_Czw#&oUBaZWuk zKDRSno=EX->#`24(b{|=G`7Q&WnPz-f6S3Z+^^-Pf?JNLa5;~#eJf(g6vSAw(12aC zHzD6Kh@KOUks7(V(KssT-{)=R71E0{spu9KL)Mqe?p{9ISV*Asbn~D6?2JVvEzB)8 z^94d!(Fgg}mVn*RpB!QrbJ@_+bx&oY{$qQt`OtX(Q<4DXQ4k7Da`@`;75P^}7|a9JVB(Po8_UtQ6s z-9nM%R)t*n6&jRXrvKw@3X7}|mFRwh>2x)%6XyI1*KLKu!TGd=iG(miWLk3H>_G9$g)gqM4!bb(Z3HJdg1IW zU&1DRp+$h^@E}2pvwMN`)b%W)blcr^(DGx^yb`q(8Er&N<8L_zcI1_N@t#)(n@vCF zr7b`HPSY*`k=n)B<&f05SKgTU+3?~_(6bZgMt=vG`{iwz85+r79s!x+;^V7^szzpt zTJKFvKZ4nT<-oRq(`4!Dc%8WrQ(F(#P4{)(%X*VduUIQw`UI$5o%V)E&PTnQmEw9+ zrxihkLtJ}QoXsO(8M*1a-K!02qtX`5R{d1Xy$Fs#{h|qlRg>zYCya3Hl(-21W3MK3 zt8XB{s3Cq;U)i;U+11I(Zn@ya%o5dkFcSOh^o%WfPrpCOe#H>=>sUhKxh{lgICp&Y zT82@N$qRNja@nnNEXGPFW)!yY5#y6B=%KTb&gSE0I}LgQ<9)8dTR z7U1EPxQJDS`wJc0a!5Lh z{V`8Y1zl2)jl}+N0Vj1a)AJXM>|>4?y+No|4o8>5cc`V@^fyvpZ-S)yj&r%2{COWZucd(Exsbgnbb=`5>< zJ1?=6LtZ#Dz~2FI3xgHzCm#zWpV!ETi~kej_IWngrLRJyI$W9ox17Zoko^1M=@<1G zU9XB`p_hkR&uhQH|_@3~7KvU6D=QNg&2^!;4`-g1J zBlUt{UbJt?yDP|ywCOgTiB(l?!xJKMWP=XD7~Pp@x8B*okvXV z#f9O;v)jq>&#K23oBGq~HV*)uGVLIn=0R}!!OfL7Vu@q%@~N(Q<_PN&+E0#>i^4FG zc8{UBX`-h-p+)=D!E;?Iz|soxM-m+udZg_n;Q`8mNagV>*ma5D%=3Q0e{MX1X>w|p zcy)o5Inc+yOrF>`7zv`_i$cU2mG{5*n%*78{iq>xw8n$OOM^2ql7&tahL)n9f6cMi zvIY(Y^;QTIfBq2g*-~+ywl+%F+NEjeRPm8r>-JZZgn6cH(`Xveb2_e)`Zv^d(r>UG z=lkpdgtd&&;N$N|Y{^#$15n`Q>aveWhG0glL^9z&THrg6{@8g`>E4%#e;;!e<7fON zyw>h}B^eM1vk$dt&s|+}7y5ihG+n3c6YFqWgQvjlKzu0MPsqrdi`l)$Q#&4q@7U(d zYJ89gin#<=SJLN3t!DaX3c?N7+&5$2L){dHQR?Sr9@74Gt@2l+YRk;EE_>l7tiI0b z3W~&5C2d`mE}w`~8$|oaGK(fVB>LtzS}bf^dIsoNLG;g);0bFcDFt%9hFL6UYbO9@ z5gku1V@hL7o%1i=aK;Am926>xEq3^y6el6E+ghZiqM_rXx)G9U-r;6UX0Ca`uLkjN zR;Pe>tEY^gvKfDAq*qVV2KbU(+yyMzGJ=aI@5!2kpW>N?r$~4w)v}WI*D*l&mDF7?;k*KGfoq@mTNg!zh=!dwUBbom>DeB=~Ky0F#=4XgAn zb{6{UZBCsu5$X%Pj=6IXS3eCxrSNUHe7fNmV1E*{JeR+q$tbRNo47aq#7Fye@t%Nv{*shZh}dDBK;1Ox!cSX zb=u&`7&Ap<8x?Z$xj=LDN4t-V4)(9ANuR7vErN{0+Ku?57my#gi0`vX&Ne~>{S8^B zxDm#6E9IyaPQ8^3hBKE{wMp)p^Ik(%>Gv6HOCG@&ma{=oL%H#A#I{GAx#m>QGX-`r z$sH+QZalGf(;rwjC-YlIP=h!YYXb!Dt(y3wyBK2?>nX)0D?9R5^t8$UDX-`ddq$@- zIQMZls1a~s_&;%Fb^s8hvkJCf>s=sbOKZLdF3i6Udw$e~-^m_0TiE5TbQ|GrMyh?6 zykX_O(xU0&Cgt1<7QNOT`;@1>_(8OOumHeSM)!sPjdu?QakmB>8?13i zx&MVq-}v*gIJg&X`V-FOosuNWir^{!bT0Dw+JqzzFKXhsuIzk^r+kV5Xi&cWXt-di znveT#)`u%CaTPb}PNAo=3Z2 z#+mW`wwA(j0>K6NptqcDD<>4PsS)_QWE6;n{nIN68wCiMWWn_*RHr@i=-9?5;zn z`L9WW*RF#daZ`->*^l7U8=-5=8C z+|cV2j=j$#8nU_l)jR(^QTj0oh8!~EQX4dCK+fJkocZJafa3%L+jlC8IN~Rxy=MGk zP}0vnafdxn(FGj{}L9tzN~!Zox>rsR5sWCaSo4^@fBw~}-U zPIB}E

    ll4@%UIzD#7uYOHj2?94tSU?{6|EUmzbZbOD;rLdu2|GIMvvK$d->e0-J zzxsCk9C7E6p4LpCB}(lCQ_{(I?%eDx#TK)7hrtUf_?i$P{8XJ~!Hvr#SjeNnuw@~W zk|v_&Nn-B@9fv_vp=3^S*!h8*YEpuS8?X@7g;|Y4KDgw4$N4hS0ePV5_F?ktYc1J3 z47>H^$QFa$5+R&(-%+?jqUq9k`f0C<-@Kug?t$ujp6||diTlSG~TW1Jk z$ZpKoGM2H8^>u&V=jrMG=lb*aIoI_)=UnIfF0)aYU3A6A21)Z}?pg3d8F=K1`Q(?6 zM>=@)E^1p22!naXj?BC>^2m0eZ_p3Q$8@SbbL|@@*7{Zna?~0T42A1f*MIQ$4qh#e zhYXAoIf}<@)F{=?HPdhT+>RHdFqQ%`a4k(kHZ%tP&DhUr*Xu7m@3oixxsf|YI7<$5 z5OaT=VOb5qj}+N;T?{R{xC2di+BZ{UXgK~2blzxRxRz-|H(_fzSpMx(S*Zr94+ir3 zdUlULq4vbVL;I!G<(OZL7H1xtPg;d`cEiqAQO@UEWe?z0-@bKXb(F87C?xByURmPn zbDQ9)x?b<>zE|xAk?rliawtkS4gKC3vQ;XnWV-!)Zs!yYGI|;Nd-^0hJ zyG<ewSo`_qT~*SdO-Pf}eDQ1$2%R=cJR?#@_rE!P|C{;9}^sXCVy||6wSmE!f5o3B{jG5sssMwE8dMUATAzv{42hqy1$GnI#HFMrWcCqg|h$ifbjl=lIO{IcbHJ^%l zS61aIZ>FAjiRa3Vn;Pgd$OOS~`U3ohu_aLxU!3vV@-$1i{~sr`rHL8rX=mto>0C!C z>2bh4HNR`IU#yrfbUMpYE>b^YRKwWsOnM90n*4I+Ta&nMJ29O?dShUv|0+~^(cMIz zSY|xO7K0yNxqCAzg?VAvPPp%^95v;bku5`tPVq;JPh}OS=6BHC7Vtv5KE&|=cuqmz zv%&@*AXQv9U5!XnRjij?eoo6X)OBfcJ)etEAReB?t^5}p+fgALNBZf&uL<-%#WC_U z|9+->CO%P{@zxjZMsqDW3)s-1wV5YK#oh*JyF(3~{r19u)S`DQJhrO1{XK{Wv;^C6 z*h71o6lys1tN`PiBnxgFtz#)QZ+;jw$hm`i6c0uX0O^ceeb?nVPo3JdzWew+QUHBq zbcZ-*#u60}dpj=$iO!3&iUs&gm%9KFM8$sRTu2 z^CgK~C%Bbbj(N1Xe_2-rBE0p$p7^kxglA!#c(ah+WtT&;yE~jX3HCm=ue2r^V#+aK(KXUQ65*yb~m z>znQY+V1hOZpfK7xN(2-Bn1_P?04^>k!~s~MJ4pY-$I#ui&1wY7PP+p7OPng30 z*gD@K+YZ{OqG*>QA>KZp{|l9T8ql$4jU`f5Vfn;T3#qZlz;eLQlEUIU)c2C5!MPrI zuc+tOo?^Z!ym*D;`_#)$QhgpGh8y2hfsEH)D;?02Abq(}#I~14KfbEGsn3#L_rBtU zbMSK0__aveL(@1;7sq(&DoDa$Zb7tyKzlGvDpomfCAyp)o`J*vF>cHlaqQiZR`xIc z8D{=`Qi$E+Gl`gGk^PeRC$Dh7+7NL+nx$^j*BKryIZuo}NK=KbXa%J_D?>B(tZO9n ztg|jZolxousL~ecJken*#y(>f*%(m&PL}N2Ouwadq!lnvDio>Z>5WRY4Z(;@wNGD# zo&vJ&!?Bbo60_2y_RbkP!Z0!nJUkq@F%#zKWjte^R0=Oat3L0`;t$%>tH5?_cyFFu-T`7Mk$@H=-1^?G z?}H|fC;b3fnj)Z`xeK9+)%7*kC~*8ZO8s~z+b@%=?WI2ZkH-go_7g@|u;{25_9 zdm4pE#c#P5A;J|iOQ}t$G!txQz-wR#v#-09>im8M>=YmIx}Dn80hK14XBhUe(exa! zdHsdvmQ;83VkmPFvKBjnZ$KT%X<=*GAKub;kqgS4(Qt2b({~V6| z{^*(<$JTc%`Qp1Qr5F9HF~Uf{MB@S(eh%q-=VLv^&<}F?Mnu!LWx3eQCxUg`;qI?j2$2>*REf~lA!L@lzD6v zrS8?Egzexi8SlctMMxj8R-!Ewo_jepLLT(j$?9eV9zTm5W@E!TfAD9CnwYnsj4 zw>PiL-<=n9Dz%C;V~mO@r`8DG6nTp`{Dxm=$~XA-X@sLj+U@d@>WalhPV2L_LaPW68n zr~5w@k9D{H5jS&VS(J9pvIMOI5nB7?aBGEw|DlHft-hVLgVo8*VC_aab0Rn~AAQsy zN-qtq+NA~JI9IHe%(2H7vJ~7k_vPN?f=`B7VHf24zft>2_J1JF14qXPZty=b47**# zbg?ZHVR*`v&g31n+;vab5u1#Rf4uEVwuLYK6sOHyEv)N2MOaxGUf(J(XZ1JkdGT1T#Lr1 zHqx7k{4U*>6#{Gsa9K3R8|->uio zTXI=yc%K_FB~*_YS{RQtQefE5&$iU1R){fQwiK5!I7l1OC8#Q40`LQV--fDesOHV{ zk7rTXARTe!Z26ppQtiee_`;SHpE>(sN#}ysb(&^WnmbQEnuIW?rKymC;ZMXtB(=Z>luzAXR+e@m>;wfbX@+iy zczcJ&k(mM(CX}XkGu`wDPd_-Zt6vyf-Ag*Qnu5n;Glh`Wf3s`}DK0|`AcL4W70owI z$ii-%Zeknp$q^h@5ehH;jK7?6dpG7Gn0!jYdbYQwsgVmYS9Te_(+Q7Oyo+zY+Ig+l zCn|O)zQP)nK0r)Ca!onY*si5il)mD{H%XEo=HvO~8!;D7$q4nWW~f$U=vGKTz?K(c zhh=(Ra@RUZ|MykyhNak+4j*0crux2v!pW0VU(-!e%5$N+uA=Zae#wvIR`ho@v3JrP zs>2*gmEDx0ZN~47UX-xby?4p`c6tkO|HOqU{_a;-is~ap>K`)F+JArmd=unGhMx<| zf&EK1WPgHrAP!U#vo%1^OV1Uc0){w#UxxBvTHH0mW-DVEsKSgSTDw?JZP`FzYiwwX zq3#ol^M1SISUkLBygzBy_EzGU8|P43BTLsw321M}sE;+m4eS{;{OfY$63bdDSIN`Q zq9WJ_Dve<4anph3Tjs6_uuAeqDL;-@gb$EK^^~ijF#cvohc_p{0mgp} zM11r4$Vo-lfyYJMO50dF#T% zi!~Q3chuk2*nD3=u*&~Vo)5va03GoM<>JjFqE22lrt@V1A_KhJ@rT20a+{C574J9k zpAk+U6?-NRJiz;AkbY^JNdW<5@meD}z0Zm1oal4QN|A?IYmkO~nx#*uv$zQ*F~aIF3$a^**jL-xUZ)96ksf`ok1rFSWQPniZi~wDtur zu)Wt`D$P=;WL>#Puhh4-x&cT-$^x1C(PfL>52P;6iOBg3f*9g(v-RxGC!!6y|T8IFHtRv;(Qleq8|MIW#y7IP&DS%^{G>zRGUJZN=bSz3C=e5)d+f5GaG z{SxzWdtiIL zcVWt@Qk|9hY>swZKSMrBh0#27nzfg>KN#;W3 zE?m_rBo1Hbc2*AvQ0D~G#XO`JNv_Xs`xo}~KU=vU2fuRe=F2kO^GrFuIixk#_!H2j zFf(%SfX+PlFdpMCZ87ua1xQ=k|I5_q99!IlwYgO}qQEx;L#Mx&Gnj722b9^Q`Sr%r zPniaL>bvdDbV=7Dd2@tj22nhu?Iu0c{=JKcIq#8_c4A7I&Fw+B?4lrT^+%lou_O>3 zP_reLlKO;>dOd>768zK1^F4t!(92&f7|7EN0eeCGS#B<60}EH32jAajD>|51&oP|z zx)~?F)Sh9AsS|3wq{Z@VK@O{Z)uxS>h??UV%;!>>R>_sH&7b9K?(`I0 z>K(4d?rv+|!6pYs01Bh1=oZCOmoT z8zf3h+!p8oijI9YOH;VnX{G$1Wz z<&HjYgw7$we}8M*8zW^A>Fc!QPA#IW{O$Yx$>#|V@c7E3>?@5u%|YgJVfILC003kq zPmRN%KaQjyw}?v{MAea`#I>6XVCzPA%LPCZtJ}jpjW!i4yZxsIf=Cz&>`hziP3~0p zo`V`bDP8%7Px8D6roD2R@b~r(R+2Y4qYrKn@}*X*U6tDCIz)DIMU5d+jK*tcquN;t zUmjNM8~ov#zN6|+ajfcEz&P`I)g@={WH?pJe|O2*omMxwfMD`@Bes_xRudY5S!^pR zFZqdJ@@Vj>u~HV{vjHi0bMGM5_NJdR3Op*OT6nM9?!>yyon#eAwEjR?OH+Tl>~lLq zU@$z)rL4x4upDm0Ge-2TR(_rGcdT%y_@W@56Sipf9~0Y290qZ27{D^tTl;% zZ*`YIW^zaT$1!5@sa&t1ah0?Ho09eU4fe&ZRfOnJFh+4iamIuGp$EAbDBt*|I46CZ zN*k^3T>eJvc4-Q7pviH#SL^y(s=1t297-4kh+f{qiO&;&e&md03i9J0tp`gPjD&P% zMci8OcAE|^$?K}~CDbl97Hq+b2K*niod2TV=V&lJ0Rn#*Df;@BEns{>Wl*nsrx9Yp?y-m6wEec z*Ck(f#Q(1>GQz^1P)Od%1?WwDah?cpf>~a=C=GFIwPZXx(M}%84Ou0fJiCb7vw$cq zvXwr+uzoGfKJa38=*WANOZ3Ov(N(lA(|OYztW1Y>iSQ@&=I7n@ z4v4`z;;@?x+pns)Pi22$sw3wcDVqd2^v=5A&6*gX)X!&J@_KpOxtH^vtW_T=BJ%(6 zSKvmzE25!Mh*qkC6?H(3MkHnTS_V6U(uTuNjBMt;d0R|Lj#FSY%B>kzW?O z1?c}Xka`L%o@PH?Yl5nB#w+>$g3esMZy>b2`wQ<^m#=~i$V-F}-c+lCH;46~oRX8d z(phD}Vc&bTYf@Ze{Q%Ajm~p|XbP$u3*oI`DAys=O2mcEUz;R6f z>x0zbSG^V5_rhPODkn4RUp*Ln#&XC^S&XosRkd_9+95dxT~4X;=|9&g3w6FZ+>6UG z9uUFakK#F7IaQzeC{N7car69sF+rzUc|a@u(xiUCkdT9=(v{Qf*RT$T5alUpVPhNy zGK=+F`2>(Qm&==AG<~66Y(|>ENWCtwaSS?FM9P1Pq2yQT*dONYpoYPH_ty{iFD~B2X%Lx=0>Q-IMH0~-3As-5v_vbOj)MFp&9*WW# zW?auZ&Sv22ig+FMB$W>$uoM#P&ag^s;R;X9>q8M&jmfqE{s+oQ9F@PuSvsukPtf?= zcFgaT={p8~B7I!|Z40PILV5%oysv;fcgj|=Vqh5J;nF3r$lts#4p*PpMqiOov5dp% z+|e&VAC<^VF=ZbY?Xd#=NEetTDrAsdVg#ujjis#2eX)g|j6IgBwm(T#lJL``+S4(c z@QANYP})af^SYqHzj`gs41j1I>}G>@5^7!aM!WY@@-HnZQgB{uXKf_XD|%fBdN z_^aAbKS!8&3RCq3Q~Ex|7ggq8Em^=<~g7j{H>tL>oijj za7lqO=0}M5UePQlSaIj;g%uh9Yx1BU9BYRAmh13$n+LbCl;ZfvBq0+nNtFo3=JoF@ z@Fnq?R$og(s(foQX(ulbmpUbD{G)>P-l3DghbYKG!TL$$zu?CXPVA}gt3RGBkQqYf z-`aEbT~r&pJ9v869=_IDM>9I?S@g3!Ik}?NVpyuQ4_Vz&$o{Cb(ddI8@a0+WFypwo z>zqAmu+*}k3fUabZUm;v@Gvm#p5k!ZBE39>78GZ7ZNFVns^~pt^v&3&hDH6nZ6fgq z$0MdPzO=+7be!Aw@$!D)b^S1Jub&a!Rj0wQ7!nYUi!CteXd9ujmmUqRy<)=fQ-Htw z`;q(DKQ>xK0lKajaBVUcX=pR@)6dERBXc*_VJO3)?}h$-*COXXfn#dRV+5j$GyxNB zk5mt5Y<(Y}tGv{@z?MKpRVjsFLdWkCVjIpi78YW!`m0;U{Uw5KMbCiP=If#SJZVrAu?XJUOT)wap+m_J?;!AUyX3 zS{3w=!+9WRt2XM23*L#ZBOAjcc(H?!NHGc%>(0*fH=5>q0|qW9DejB7%sD24OtFi{ z4HyK=J~+jBehY zY4e=@eEBP#Uok6h%~HOmi@5};2>1GzYlhI1e?Jx=FCPQ*@Y({Mv2ndVxfX;%TA4uD zcOr{Y{h==kDwXYfrZc@pQg08Gw_2V?0b>>{+KBWTp&|crrV>@b4ViNa@}vKR9jxSn zoutHh*X~|tSwrO-#p>Rn~Dh8cE3KG;GiF_IIlkqbq&}x`91+$%Ap_D0yAEG0&ONrAqq@Za`aPZHcF|m+JtrwjI zPq&@)ugIwnYRKiY`i@dNTMkx$|hx^>LxnzNJir^u*|AH$P&Xj-z1}!G!?Fj0V(JUix_-YHfE= z&Yd*3Dc3IH!dl&`;=md*;rIFIlSKIc0RRC1|6EpiJkx*tuOuCg`gZsd=1UUgZZYPl zNOIp{wsNG*ecOggIYSXLV}){NMedp0W@eRR?&aFt!(4OzJbu4#-|x5I^N;tRpZD|g zdOx4f*Aw%d3OTDicwj}$M+GcvDvoP9r6?Rn$EOl2>!8QrSOb@?CFCV&qNygOgVycU z$fG>8f9#D{veB10#t#yXqN6x6&>mE|FGeB|*aJE104`<1P zf%B#W5k#7=VBz-YBSo#j&T==IN8LA%geYppfILjS0hr46PFICLLA?*rV6ZdCH!_&% z$eDlRSl|%%D$S{4cG;y`q8N_@d4=BB8^IS+rr{#J%bp%wUDG#~?iA4Z_Oz!r=Lqx} zh=3*GMC8>0lkzfO>HEE%^J`+55_;KJ@_(2&?lV`u&deHWGh6hLe;{x4XquB?xN}d) zvtH&IM5_U8ByDiBRUqVSaKQN~AFv_zFP?00ij-RZpcQ;3rlX`4iNF8MAMw-Y-fKSf z@}5!%vw0rbQaiQ%#N3tAa<>>z& z^!y0a^zEHE5BIVjpgt2@ z!sjD6UpFtEH>O6mXaQ{HThAxHZ!X}oEi$k!9G^Ppp11v=R*1{~jJi22(d@L`-c^{d zD@{SH5;sHbNf)9d6Xsl2fSy!ol$_ra?hH7=S@0B)#;wulPxo~Fn^(l1=@5!M&IG2a zZ0WBZNezjLgXD9_=WyI;PU8#n*q z(#**5sMY;OFXUP&$M#*J=y-Hq2eu}M%s(SaI&HL~?5zsV%)TuPC{K6zTBl(lLbFh` z8$#9~dTwT}n#BTixCzBRJXZ<>{``-aBq(MhW5}skfVj zUsqhR_4E`uA9y!6!7>WpkuJ;tNj9Ve+J0P+OgiKHjjhz8kio4*4ld39D`EjhN?9$o zVm=38$yCe|vD_oiP!or%+HJVoY>f$XSDE@TzVg~H2fL1HkdamvE&bgN~*_+r&e zvkkvXM*(PdJqG-)pcbl4^8P`^_n;kzBtvj*&Y~X`7{QUAryf>0FMCUq<2K=iQG^YQ+5Oo)u(W zY@tw)Nu4BCc43D{Q_Jq@c0sQ#GZ#f(%_jCVt}KN{{uT3j`|PZ^<>G+csZOKKsWfoq z-S=4tic59Lxb_Fr`Ps3As!ImDhhe@#vC>-KSmqIhDV>kzAx#&;x~W4n>+Qduh*ZD$ zUXSzS5T}%G{-zEPF9QClJkHjqe@wTQ_|E#eq-gJ@&QfKIq1pw=0BzIn204VTHD~fT z?}HH049Jg&v#Htb zJ<>K;b^L+I-If!T=1o_(INr6!eYZ~kgV!e{dIv)t(aWfKtkpBpiXxl#+)@;_wawTJ zU^*-WxyOL=5F&w*iKr*dJGAiJvmx!yyq>!2w@+M^cOts5fLyS;>X{d<)9cC^)5cOe zmWWzj`dk2yjhc$8eIINNUVJ=M(A?qOwauP`id7ytR_VO695h>MNx zDhuZ{g}K3ok)izu7zZVN_COEnTrE$US+8}5lgLTj{RdW7-I)1`>&eV@@&ZqLZB%Vb zxZu*0iWdhbGfcG!zCIv(o3B5k8wF9gCq`J51fggo`=(X=r1QO=b;OEImHw-QH2FGj zvv7*F=S$xXD#UU?>;!SUB4<*ouN)@OJ-u|DabcQ-arP+Llc4%3W+=66iUy^EgIqHa zaypL{n*>70!2vZ%AD?@f>#PoH7#88e$>AB|p`US}fsY=aVnoVk2x7!nPw)5?(52F9 z+L0~#12#LPU(e{(NTv!!cFC;oh@?T)GJPI597}3^-h4dZiT+N2R|W;ugDS55OG~&~ zx_(gGD$@n2lw^iD9g08IUVKaTsEL}(a0boc>ElCKy2E_d;KEyDO!5iem)4!-!OIfv zFCD!Q9ab*Q9=Tnd2$g-ShO0N)*)Q)$fDLvDnqvmd!2>_}qIRZfVh{WtUI(+MMHIYV zRq>m3>?)zi^>g-QdrhW-@|atFdTh)F#*)Rqfj(XT)}oqmEL43Ldl`SAEoJNOt+N_> zohszqM~diKfLP}o$3N@iya$1fSS%&g-XsZer#D*&N1)WlR!k4V!rM45fH|M5s(%7; zJuqt$T0ea`J=>h+)hI6fiphap0rIun87|kk!S7XG6r1hJI|8xrNl|-jMm+8M%xnGw zI2Q*(XvG!;m%E-?eIO9e^_Cu_-x!Bol+%nWJ((%VWBunGrt{5DS|!ZWscNEp`|Y$7 zOAjXp8f0z#p0nH27ydjC?}Ms+zF^c+UI4C z=Ag^dYP+fUj_YJb(vpzOpP+Lmxf}@d2d+O(tMNJbM?#P))T{Z87ZhOfkFUL0Kx`}0 zy%!z4_*~S|tOfEDL3cx=Jg6J+b6B1b=qTFUy2eYXr6{izqM1fcZg zy5W<%2-$)F!!PG{-?Un?ls3_YSn+~!l|tX}uNfm(O6&;c+d2d~Fgi#kw|z~RTa>LF zpQ}woG?o(cn9?CDjCC&H&_59a^Hq1?QE2}<5IPpsb4As9CzpP;)&4Ko0wBNUjJq~q zZ(39N;pE-2;Ua@rdX1~M)lj}LmqHH?98!i9nIT=rrG*8+Sn1TU3pZ1f-GJflCzdb6 z-ce1x;9-4Kyjy=j+WVyYo3EqLLhqLp`FG>0M!WO4T#dey6b1C0g^Oz2ARBN{u4dkU z1ED4x82s_7ZrT#q=(5?R8qoEzK~pIGvcQWVw*oUN&8I0``G@EeS=p6~o&jc$K0M__ zczk@WyUGN6hL8(aZxqt^6E_#YUavhEr0F0kyiJ{dw)ZZqV~vwQA5`7>IaUo&=BsfI_p$)ee}&mg9=e$-I}wSJ{Wh~2HjF$iKk8K zQ!n?#_HJ9P^b>F8cK1dLdzY|m2mJfxuU~ElA5UW(tT>(jl=}5~K8|!7u8~a>qXl@K zQ^$~~m>Dmz({^sD@>oCm^usxSE?YrS>Ees>ydb&dgzi3f^W4rM+124h z55)%qiM~ffroIz%fGNk7Um1=L&ZzfQ<=M1fEI{)Q#kw>Xu=`PD0cJpu^Q+_QA71z3 ze2=eDo;&mUPsl9-saylH=<#p*R%HK>m3Q!>cvZ#|f#O=8XI>QPifht{f7cA; zK$K2>x6t2McoJR0D#$SW=5B+O>Ew2SjR6Ffbrc7J8W1q0qN9P8-F19LWrysQXQbkv zh&f*qkT0XRms-MkkH?38{j}c$i$50GH5Y*FL=CSRTh}#F@%DNPi!mvrJh=z)V&_7d zsy{(opSr9Z{I8Z-)yHf!&vq2KVtetrpP>ygo-#GVFw`(#rfuMf?Ti6_aw?c&Swu(fKa0r|M9p zOUxi&ht}Q6xRKKb3am6TmA1g=^lg8JbQWJLwtoVic0^P=Y_3Y$;dfByV7^r`P=&T_ z{zWthU%o1pTQd2aK>xAKVG}aG>GS_8q?SQZWNwB3%dl)TVLt?;n;on^+flc?9a8jv^liiSm;c=0X@<~sp_X?ig!SKv#dK^hq& zEW*X4m96yHtV6qhzp}$@!ucvKEq>(7S)CIN4aj)$Yfkj)l+P=@j*bJ3$iQMITlXrnCNgE?z*)O zIX*%S5}WODqvySa1=fXMJ8BeFH}T`_`c!^ffo3d@?fU%A_95{x|J%t^Lc$6wGKD=` zg|ljwjr&%^SgriI9=r8hwGSRV1s~ii3{=jPy{7oXAn%i-&h}Uj`RCfL!!jGXo>#>u zLyA+vSpJh2sEKQ1t%GV8JTWtElRs@X;~Tk-#GI0fG0wPe7U4NZ}*nt`^Bx*QFxSSbMtre~OfF6{LrALant6>6%=NLsIB>FdvHcM+kN(w2*#z$f|NrIR=0hO zF6`Z=S1XCghCGJ`EppOX=GC%;Jt$5}YsqzuKdTT)o_V)zl(F?xNYBj4c1favJ@JVa zJig~9P@NQdG2VY8n?Rp~#mUuG^8L0jXX_h4g(Q{_B_v;bFLWcK+UxP)+8JrGA(vUo z2xikQN>(~yPtksE*c$y3eR=T1EXYUx05w3$zonwvSl4}k3ViS$g=ie;cT4wTr|W|W z05RN0a0Ozq6w6gS8FJRB-lChK^o=CDvbmuQ_mQ!n3Wfv^Pn5F5dJzF^E z=MWe0eAb?1nSP_MjxH)P5`aU57bOB6dV~trGp#=-)i`!W*Xj07@6q?H9!njx7=h3~ z!nVxUa<|Y*58{Me^3O0X4er=*?V@8Y`D{SC1HN1_~x;` z;6*@X*jf;u_q9zaNcyG7MkZ?Z}lkYiL>)^ zklYbpy%&d7(#F3ipwB~d)Q>+{6kOz3h`l4S@apvoI+_ozgVng_PYdP*4Frt;n08qN zVp(=(S5B1C??&!-+m1A#rxlr4UdIXZ{qH_Wi22r*4^Ar{+w>DxojZw3zZOt*Q{PTr zmY)WLdhN?M{^fJul`O9TKGN>DqFIl(-h0@!gcsJXmMxz0qp8{F#o&^kZ(5JarbnG` zndp5ZkI2TwPVhH;PlDVT-&Y_8$fVYCS&`XSYV(70FN?7FjoEX1E=+FU!CQ%!xaS1a zy*-lWWGmzf>J=68H&EhGmbImH z-_qAMXng7IRvAhwgu|@vwhrRV27Ro8Nq(tLzT-3W%}sUj?bV<#3`F8P_@}o}s=J5L z){TrUG@X$87*{Yu(1q#jYR91LD@i_T}U+JpKaZC~`^WlR# zfGM1=O-j2A^l2Hu4~)jg4hCGRAyE7(@cg! zC+Z|4DA6)3=krD46)S$92tvR+ZiZjKTTHdNqR~vBaKfQO5K5Eth@BaHA3#TOGi z>s(T&{i?slvR>vICIjrvC1@4v=x_suD5%EJvmwO0`}BHu+pn(^)Mas1;oWv^{dxtv zRSdB}E&yo8^hbl^Oofs_p@Hy@Tib4gW@2{v4&DU@nXjpi5AFVxnPly9c^1;o=g9=R zEZch~!7?X-{Qrl&Z3vVlp=a1*VpQ7to|seL17`ZaJviaey>%ORVFU|=ML+ms;@jkw zudQ=SM@PCja5f!D#;w05{XeBJ~^l7GrgmE zwy1iDeeI>+JrBd1q_|qTHM0HR`&S@P-%^J}5z41FhI_=rMX|`tTCvE7;S)`rWU1`= z@Y=*w=2umT^RY&|1hY~J#{i_0YiAhcjMTnakz&OvwWvkP`OAy5#%=mEt)xBfoCK-sMx`mK%>t@e7fT5*^o(p*d3~t=iTD<__2$<%osk+bTm2F~QFi`~_67{l=>2tCLfBo8_KzN0Cb)?W^yv)U zz=De6>|#CU_>i7*aQF7bsgL_}4c?zC?a<$oO{L<|-@lt*`dTM4D0iJ65jmvx!+Q>` zE3A_oOTdF|hGyV{Blp$Sc{@-kg~OBcNV4}A z_i$q(d{_Th)a{R%7iW@aH>VERb!8gw94gfm!X6rF=EAaeuw7>~>{s!ggBKUV=RgPt zRb~Xo2lcJGMYOW}puBD>b-VW8&#+!|g96(r`=O>0vJ)`GFSRq$wXH*06WMKYtVrm5 zoqoS^k5F`9J51%)LKfHb@vTRXcUI2qTGVGG*cTF`dbE}v;V=$maTGgrru@djH$L~zN*4N*&;>c&_wp{eOZF8^ zAZ=B0@4KcFaG&tbe+X|9;9*xWJZ0lE?dx*N3qUz@R#fdIFbu%|uS_s4h~C0}_Dd|Q zt$L#9b6tFS9FqJQuE9Jy|4j|g6`^V=*GnRUg%mz?}`0;wNPnM^HR&L z_VZjEK_u#~u9o|?D_gV`T|rG1v0NPT4;oiLyGqvnlEJsV1+WVMN+-+n1zdaO(KqT6 zg$)W^mf~j$AFJMfYLS1_7c}m!4^@vSv&_I>r8GGzuHiZ-9k13fVwkDt%ubE;o(m-b9%bZuSDoEd z7e6l>KsN5&6FM57pAqfzrT*crSVejNi%fM_($vtBOO)q;L!FQ>>hS0?y6)F@j3vQ$ zVQZb2h=v!AHQJ!li%bB{=(WKw5_7drpVKdi4kNH5Q@v>4zO)NZ`{A@dO3BW=nG}5a+NkV*>GwJ z*EYX&0|h8uMSiHFS(LrNk1L=~N^Gr|bq%7`jFuUpgQ{-aLjxD{jmZ-MEl2hNM zWVlSnsrBR!H~EUsoUu1AaHa9qDfnHfDcJO4D?aS8W)w|o1}!NvtLcv>N8!AGW7n1! z#$q|k^n|`%w%G+J&ksI1$8M`9LFr|<#>X2!Pw*7FL*FggF@&(FO{HX>AfvZ3vBNtY zrwlb*YBpUvHxjnRkyEp|#_Wu|!HI-I3?6jZv7owo^v*kzfmhDPQ z4$850Gf`c!1F72AEqII`Ws;0p6!__h9E?lK`_xhj9wz3H$7T>O>d`|YqQPTcUmYu9 zvRlrkL2DgObcm2=QRdqFOEF*+8Ahr98>4WK5a&n!zV`(=wMqU3mSveAee%u2O%4^q zEE~xve?YVoIH`I&e!_%o@YyKiYO~?d(5e{Ed^`M-9dAj;>q)ACw%kHq!Qc*}82DN4 ze*gdg|Nne?;Gt<;e*|cbmrBfZVT-)4HPK(*9Q>KgyI%!IZONxjn%XF%- zvb06hP&73)Hz>^oP&j33X}F={f>I)&qL3mgBKQRotABp)NB`jSKF@Ps_jO{-;TO9IjpkZrF8}x5xVO!&wZy^8JN++G zsKDmP|2$0S8&0}R1YcPS!@oD$JoX_cIdpg-aT?j zngo%W;_2Hq@ruuVoF6=JUh9|#X%F!ubp7&!*_A+)O1q%1fDZ3Lt^?(yXo@^$d^bMD zX`zYXIdaqEblA(5zW?1Xa>KclnBhbSgQQj6<>d130j3WNucNhp?ckq*_FerBN$FmX z{%AjRnBdR;VT9}p_r(p>ZO1029MpO(rFKGo-OVIk?aAlab^s`8_HJdhCFGJU^y#Y; zCMS7^H&kL;*6zUBv>tQw$G6`Zoh#HjqnMp;P<+C3?!TW5E)4td1@Ni_B59N)sAAqu zVSD7n|5@l$P{Od)N&4>G{9gA#CqAnDT`_gQi`%*6an~6+diIxxh9s<6G1W9&0&cU} zoO9DwZ`{<;cxiC%Z8;_*Rig5wQP>!LLe9hpLjGj_V6+tsDJ792KU#O zvzq+vVYCxjQ$G0bmxe_D&)EkXue(cl^_T(BsI8W=FLTk|5h7qm>pY&BFKX@_yW>c- zAjW#=8Br8}rJ8G%dHH%?a!Hyo`T>*y-*^_1Sk?c+ z6cVFzvW;?rLO{kjzihSc>;PikZR#ijmUgy)2Pef4_~ENWDb&_x`9aZLd3tYOS*_Xo zQ~tjOb?RaOA`{WsZc^f#7b#_x5uEtOhXEkx;u19_(yn!XVGe}7jLS9=z2uxca|m2&?+43L%s3nCNG6S=afNU8 zPu))&zP@$e`dk(;VJ`9S-MEA7rhQLfl@I6sxRy-4f9Ag~{*L&L`jCt*8UMy)+FCz8 zj%r#m9w^>ict!tTey}T_pHCS|=m`yx1EC&T!w#>vbAQkD26@YdV>Xj6H`)H7bHx4N z>hI3pDg=n_8bWforDgl(gPEvu3#ZqS`Zjq9A1@s_$2H_hJi~Gg^Uxr_AHA>0*A~5w zCf&Yy^B|(jp!8#F*1yF&WfsXD#!{EoW7}YHE-~Xl2b(Yl{I}^Myu|xL+O|y;%;7ng z9zDo2W=|cn$E*XUV{Qt9-3veAzVeH!^~}Wt<~@<(7e(2RNd~Ke=l2oN(04^kYe))k zTLs#MHgP&kz<^q?Ai-NZd(U+YL!H8F_lFy&(PIe()+1rvf41T>f^w&xH<`{6jG`E? z|9)_+>R@SMnYL);*tdad%NS6Zy#LVlkoL)xY5ZY)@12e3Z&Vli%-i zA_FYkVw|czkt-|m0LK?^WR=Lfp0ppLTm5;1bC=liUxAkZMyn$}MNdVikfe|H>DJ`^ zbkT9*Vxc=VqjePc?$N^w?4#(d<)_qj zYQoKWN{>k*H+J6H%rCT?l(EyS?YlEF8;%|=lfJ5FZd-m9gVy_rTL<3U&olph-F!_- z$K;={{L>;zx6x{Bt9F^Wz&d+t%%R65!icewGT8yXt{y{7-acODzM5z`Rm4Pl_PT-A4XO~7#& z92hlAM;W?a1A&^%mR|hkjXu|WDo7WoRr}7?gQ-VJKoZv5yr;cd!MklS3`M_nd8B>k zr!D#Cc*Yp?^S`l%?wNr1T4}8eI7nwTIyh?mGgkHJJcby&AJZRm8ee+_^zv{W6`PEM=ZuhlZ@4N2RZn0DN z^aszi*WYK3{BPYB^k3u$M~bP&<1vfhQ}q1InVdGznuZ*#et4fmK8<-h!V#cRETg5y zNXi2)HVx8S)>Tgu7YH5WF=QWW()!ltvPZ)Odk5=>Z4m@$t1X`<%7hW1Srs4lQ>IDG zbZ_yDT)3P3fP zL_mhq1IiZ(vRyGFfnkaJD5xKvKnYOC7t7GKXyJn>_u3vyre$`|@>xXowJzoF#iy4yNzY0ra{ePA&3_62hpM|01Sk(K?(hkg10*PSz8Ke^CU%nQ@$cWh{ zSz6Qj+dKo&Bzf=`3a{f>@-1;3F!QU8Z{c*#NfE(2Su6P<%Rs)~o*;e^nXnkvQQiGK zOj>nEP*??}Mv$35UM2IE>X&iC>Dgp3+=VnkxoWPQo;rhPq>FAD-2H|zje@fjw`5`; z9?wo#ihrw%SXOe2k1`WLHuuDXG)#+N0AP@j|C+Tag7OTRMWMkNPJu3UFLlydkiXQw znX}NB`RbQ^RyKyDswTfk8sC~^VZiaEd%HJ~Z{C$nb1zzDSb!#LPf6yo-6a>~;%!i$ zCg0j(A*3R^dt!&99#qI{DfwZAuSBJgDsMX=1V|G}DuYm0%Z6aLSMV%|k=cyej?+9( zZDL7NFP#Zz)akc>W{1X7Whw&!BimjtHX?|Pwnrvvm5e*O z(gozb=&i~i%e7LbTGh4VBR_tQMNHtsAIIB5D@>=K0|??7hj3(wuVNjUmu9CamNZD7 z2`t=mz6W(-NqA%||IyZRlwykWkyxC{h+RMj-{V(%G8a!PSyUPpZKUe1*>{|KkiGup zDJCI9;YT_j8{RpI+}j3AV}$-^bCE(2sM#&8Tv5h^wzZ?4AJ3)IE@k5dw&eja@u5F=@5z>cjW_m!f2Z7VjM z1U-eSquD4hg-{o!4}|V5nZZAaqGmnx@mpg%do(Ye@6_Sr8%P3f6}Pwo(JwLg`FAIt zXt@>&IxU;j(XiR7+!S#=KKk8Ov3gE^YaDVq0-z;17Ea-W*D2D)5G0y(&wd&}yyN*E zqj+YhTW1ayN5rU+Mv{5a^rf>ofdFM&Lj>6nlL%V#R4X$>;{5o4b-|5K=FdTnegL$1GdO2buO|wqL0E@)$JsIlCFs0t74fHYAlixmr`X(EF z7{jS)O3D_f!naKAvvbDUg>z%EqoEu4A%egy!FN1ID`&_Wm~Ant#N;ht*&kzi1+A$= z)=nKYgh)a(Ar&NOb#Ls7Gc^izv~F`<*rwXl7WIVw=$Kb20`R0UHPTiwflV~h`yTCtjxmV8~9nFOT$n}duY z5={940X5kIWX{iKh-{+O8aHPL*hUHbK5aUe&>}V@iinm`u zur@gGgZ-qk3_$i5i4qfHdH9Fh=a^yIP?Ni3m*ZblOt*WA^B2K&Lh&xJSo{?>#ECF% z0ek^)_HmQw`@tIlP!lMv*$cJi*G7wi2Xh-Eqrj>nWee0*;;4$m9I68|2*~-A@XTOa zA)ZZXOfP?%4|U8^riCGVE~iSlL)Y1gXN)LOxa3b}YY%d0Yeh}pb^B?F@`fNOY)}L; zQ9qe{%M*TVNi6!V+r=N^_eNj>`mLgO_M^k!j;qN$zTIaUz%VjzIGD;}yB}rS8Cm=% zpEA~XGcC>q!X>_Wo)pnpeRaHYbXiiaYDwu;Y|YLK4>K%rOt@$y+O+bLr+S$v`f<>b z$r;%>JQ+*P)HuXTHQD%v=YT-{0BBrOOLJ`U zoSiAvpkr8Ox2vGv1e!@QTbnGi4vzZF2RtikUzT5Xv#QK#?iAki+IP0&cBw+2D|id0 zN#{53=MbsX6H%FtX2wv+ssaLOXun3js?(L73x+Y>hqaD!MX%A=s6m=Wm5ybq@(Iy- z2lpX;w={I7_ow>}llR;Xk_W$7=Vl#dz`Oz{^F9m0OiJ|UFID1vNIG^#z*yvRK%}xRDkFf0NQcIm) zq;#h@1l4U5aT(um;~LK|f=TyXm^)WmcAkmqbr5Ns$aO-cjB2HmEEXV!LUjN6Ru%-3 z=bMA42X6t@vPd1WAKS9Bb6B;raByny3DK=6mti`+Fgcfpml>^~w^N}<{;J>(USV0J zxjWx4wWtgn63xK#p_(>FZ7hTmWTW}}7d!_&dRq0{`qshkW6|p?CNvxwsVxw08MHrC zl6kJhP%VzUt_v&D9#g>(5TqrrOcROyVK~)?c;Xv^eDp6eYm32Qf;$}Z^BK5FdjV2!DE28UH5o=>BdkfWp>4Vb5WB$e_ea{8bFTPgx;AKt!t1)QMx_0f zIdm$`fe}*S1k^M3uVb}?{HBllwuIqU=8EHeRWO2>+i2P;j3-~yK@hr3sE6EFB%(HQ z?}4|_fHN~w5V*3{M>UjT@2K|rdVA-4ie(+YkR4}TgUvI)u{Khi?>0m;Hwim&zPAI~ zp(#d>+EmWHOUgtDow zgd7d_Tg&bf&j%ysnL=zCFcfjP6#9e6C-t`x*Oe|%S2lrqX!j*=A$S)bVa1w@_p{YO zEuvPk98vdU<)H#PeP>$d%cyY&C*iGFJyHVw{h$stqfD@p5Z&1o!uDubGQ?0NQb77xg?eO5m%VE|^y9 z5aUJOy~S%rcGzA|*vddlV|y0&3+XM4yk){L1?qyuAvW(#OL+Gv3~u_8wO!}~kI?F& zWm#GWO~q+z%4egTx2jz2pI#}@PaZHOdtyYmsY8h_nF9D+T*Hb{@zqAfy@&Y?1cfsf zV_A1k@fY5Tjp?{Tm!CD|6sbojt;;KVomOgYY#lU<-z_L#`=xpL%I5WyM2v;hH5WxX z_FGy6cFW)a+L3L(Mi5PnvM1GMHTCRbUnAngS%Al0MkFdlL0GH&q-nc2I`+-7IeRnm zvy}0|Vs7Ndg04W?EwJjjs>_Q|ViL;WE-5N`S-4%6mD`M?rMBIe?0P_AR=?05hWkGP1_c zpxU#ssj*9=wI%h%iI6Qyafh_8mekm}u}jmKpcV-|qDelj_~6THwU5uVz!qgBb~#bo z`By@>J325dvBWR8E+INyd+n0$Q+Ml(2CkEpESThJaZq}&rIxlOZK<}e)CK=2ED+sS z$I3f>(V0LQn4HUDY|PpR79%tgQC40~=yV-ymd}LS)UCz^_R-Jo;sa(r&Y^ZJ1$zt` zSd}MJJ*7Eouq~iqA#0((2I6L#44SAv#ayiWa$A+6YfF0UgXPzsJpq)PR#cJaE;a}9 zp&1~jj#8l68;kN!O{A)dN?}n;wpN-+z{~ci@n;ir(R4QV%T-fgpE=z)on`xz1my%_efw?E`lYH4d~kXu{1R)%YLthUb)&X@LI zTBq!;ae}nUwbL%1wLP1No&2Ysk22KbFRXhqgwCXU^i8!Tn0jw%IFFzk%$8Saw$fgy zr<0HFl7}VLFWV2D;@-B+M~=koXJ3yUmYmJ2=E;wWle4v#kdnhmV814?I5gnMLC6!$ z*Fl-uRmMMzzM!t27TybdyqV5*4lV#}_FA~scb&uX7#1UA;L;Kdqumq(xX{`K7JuX_ zz2<8@grm17Rj;nQ2C^=o)^=@eNw9%ZM^RTm7l3|0(#6f%lF-@1uIYYekSJUcV`w(s z{+o|oX7_>@1ax7hhV32|itg*%hbGX_qM60{!E8ml=lv@vzOlS#M}W4L%uV+=L3zUi zfAzUC@uj;3*c$TbQB=U7s5HI0{J5!Nw8DcBRvfC<^`y@k-PgcEL~ zAaGJni;066A81FTKadq8+~bIGtY*8H+cCZT25b<*NhV+dw=^AHE3BY;KUvwm2v+{5 zmrOXV=a3XL;2cU0b*|goW3y8!BP&0XWdjo6(Q#YNUd|NqkA9<860EYy^8pm}g6$}< zzLvx`8XNZk%(_FkHD{}NNJZO@myH_Rz*5w_hUGg_p(0c|W~xrV&^{LI?a6(AWx~W$ z{>S53sPE>xzBe=jrrLJ7rQ-h}1 z!THY*W<_RGp#;GadsQd-n7{n{F8xG_GZ%} zR%x2&>|tu~sDU_ezNanm=YZFa3)f2EB9`np6R_kCjKC3Wf|)+@sbnDbV4k_jvN+EY zl7~-ow}Hh5y_U>)XkE5P2RWDe2IW8*pR#eg899{EotFy|LyI2=S@M z06_=(VbkeHKcKpl!#DIy!h>cW0Iz(Dx z(#@n9F?FOjiU8-X)_zf08)#Zc8QP1fBvEX3$B{_Qbf4}p#(w0t@jQ4Dj|IF1Iu^fl#;e$8A*Hh5&;Nz+kn`AEL=bGMhc`zmmQMJN)O%S(NyLGBC>L~Sk z+fbp|T-D|0PN&y@6g<64gT?S&ZeQ$!Ey!$(*&u9XU1tSndd6rwu^5V(ofDN04eMQ} zq3$^V6fbW9>Zn!$Ib7V&CIjNM8@kr0-J0U!uCGz+P}Stzia@`4}&u6Ux!o>1B zB-c=sM{7(><}Yn-58P<&ug!`OnH1FEQ zkXpptXM=w7ofV6S6IAI9*m$!uTTf-KSB{9+and17>UtpITFOiiYfP32WF=Q&|HBjb z1+pFWtn$&$zpdBMi4N^BPX9H!4$=004uYP3cdq$5j>_e&U2g5*Gwfyd>gH{9eL&tW ztJJd8X;((cXO4!2$%PCEIoxMqhHA>ej3C1)FTD*|SXi2XQgbXDM~%;;Hx*X+{R{zq zUusHhEx(~ktnX1?!`~YS)r6cE6Pguo{$;{A;y1KZy6lJIdY^3i-)Hn4W^eE<4bycP47VB9K;8-u+=tC`*{~YPa3+hyh z(Qrs{3paIoBEq~;FEhYz;lpj2%S4EIV#l%YCHNHVcT{*Sef@efdq+hQSwo+q!||V& z7Fm-=+bnnflfo?hJ?G>g=OyI{8+zG!2T~s37uvkMKAc_Q%Bw~Xf_AI$I~Ke5tr*Ah z$cncu^>Mt8I;F9OWUdTt&|TR{sX3H=S@_=%8lY~EDJW2g|BJhr@x|s$M~1z5#%8x@ z#$(RF5p-5p^yNO28H|If7Qq+&!KR?-v_YMM?fNsWdLsZA<(1J+5CxBrOg1hR5M3vA z?|-Y*W80El^JQC_i=FE9dkYFFEt@klDk9$QEuBFscCMUhTs5(yzV@SO`WPIzkSCbo zv#C?_y2*pA`1=8VO^Kx6@0q`bwR#=~IA+;Ba4qeUH;?xB?_(ymI&hqPHS5|>3LW_z zrg?rc^*fm~e}hkgn-(2FS;Ob*iEXCWl#xhjMg~nSd4=O@@r41!ShWfJ!!#-fPsv`< zJ!=k&5H~Aw_VE-|{?(6HU^2S{K*Q`g)`~U2U!j|oxAW{_JoVo(FfSXjl;;hn*3yT| z&)SrxJqJm5YF!USXAo@vakf0j{XO{G#1Bp3i^WgkfIix6vKVC~J)%->MNDa>tAV{r zAZ>Z{RV7?s&~Ixx$YMk}l*GY4PT_P5Jo{nHHUP=xiZ=ee2e@@D=c+VoUcX|8Z20hW zw(Wjx30G`#Lu8aru4!Dkc3jY37~d>fcPx{`-$gI)EI~d3^UyC8jwc8N!a)C#rSwn& zJ)%nZ#gfGzm5YsFzO_T>Yn`aV9CLAkgI<5GA24U9U1=!@ut#u(s}#h?1&Fjo+qPy z5%nG_pOy#&AdH6cn|wR=d_9Y{g(~?!8K@t=N$D09x;8BqLC)C6(06{SAQyZ-Ss?O? zD=D#MTLKhf{#$?Hznnz(t;73^ek{)C?n(qa070z*b44+hzu@1agcZU2(5J-IRCDY? z=N-5lDpOmytV|)GSLh?(f}XPGlmo5PDnpgI+TYUiW()c@gHqKPsSjZ1F6jANO07r8 zm+Nfo+k(MJLfZLvO^{;Iqak7XX^2ow^}}*!^o5liIv@IVC3#|DV8X`ij($wlCd5CZ zpx|@JwiUIbJaVRC?ZE#jx5JbZgkbeVUb5o|y1n3ID3h@W>N!_b%%AB}>Q10($-LG} zQ*Kc$TlX0a0M(jblB`7P4k{n@G<;Jbt}Af=Iv6;dT<3#V*J)SrJ+F@AoaD1zO#dER z88u%Gt(I;%b@hhY9yrSNKU3p*HuVxzT+#V2o>M`;;>qPn6ZO8zi+#U5eE{lVG!Br7 zyo3JBw==Z;@887*&Z7(7>16H>onA4{PG0qFS5nhlSHU)Rk9>0hysdljky=JwYKc*m=^7Ak z`|NcTJp z^oHrJjh|Pn{Ht7fAIV%+*jcx&Rc?scPK{jf`G(`}=;^sW-I zAf0}}eRrcB*##K3qeGryO5H91Y>G`US-wEl%HubFuHEcxJlc_3RbqGCXiO$tX%~G@ z;Pd1a8gBSG;a5{OeDdu(=n1gcZ|Fbcsf!lPh9SB;nXD>Vy3Y(wy3{j&co8zO)Cy0N z@ljt3 zfaj?Mgswx_l#jIk64e=<+}>Q?V1ney?X{s~?s8;*Ntga@5o=?SRi03Y%=Xu2Yzb{C z>@v(Hwhxuh24Aa&nFEHK&AjEMAu~LG$RbSZYs~vq0bG>Ntk0z1j=Ok=UOwmFxY9l| z_x^2eVWyzmKY9$>v{3R~c=oUv)3+#)y1gWj{~+$r@KJ%VNK$&HD&|;=^BLae_7B&$ zzjq!DPT0f=zy^?+vm{EWuYl8_7SGb9HhDdgvaVISE7>jCfTXw(<9T>Bi5ZoiKqDzF zmQIY%U*6)D%*VOQu97(lXPCQuOl)_0W97%Eiim07e8M6Uq3%D%Zw-62S|vnDOr2O2 zKvgI472iw%aBIF>$sDt~Cr;v1X#X-g{nltEtdM&3BK15d$*P1&zc98*tvKdX?EKcl zLv15(lHcdq-HTSpOJ5Nx#}1jy;;YZ4+a-s!c23-sxu@#kEoE@^24SC150L9#YxOta zuUWEtiPgTKE@24EYjTW7)6B-s)Ta5?NZG)={m87XS#0>$z9-dW%wwn24`R#4oAw*V zO#OlYS3iZ4BshAn7tnZ8v9u*P4IrZ z;y5I8yAE#PgD=VtWJ%`P{vf!{U#69J{KNHy$UN}t*x|?p8F~jM(KJWV4Q7y830yAe zZ*P)4u6uAfV|}vXNAy^Q)nK;+?85$jkR0OC4 zxD5qo`32xLp8)auHK*JgVARRfLFat%6YV6kR+~zCOOm5sXs5a-d3GP))$1h_l1fyn zV_c6*b{$!;TsP4PTRgohzZn7zmW`qu+r?D;qc@v2aiKC-?6v99MZ4|OXAW>K5Pbi} zWRiEAzVCIvGJaoj*9{P^SLrt_L3C+Y4oUhwB(%W{sv?6`mAS)X)5b;i@^*fa9e8?dN zKR7UxWWz64aT;|0X`aw?{nfzo;n;AZ&{2^PKeW$CEK)L?(q-nR3yZO|^Pfr~zDA0H zc08U9F)ZRADo4KZsz%+>eauhTt{Pc|1l_UPl=@P$Q5IqFVC}zWS3V8%$T3bTI##n}6 z$UR3`JF|lHBIi>xU<1@i&UY4z@S53aBn&@9itSHv0JjP_utNg}TkTg@DMnK_$BlMf z!Z$3am|BsbjiBK>kFo^+9fKC7{hP5e*_C}$nuSO^phSPCTcQF#&?uj3VoQ>zRvDRX zaQLel&YHdf94}N(p@1-qnsS)hc=#r-Mke{)2Hoq5OEH`amtydC0=;>to$*0fjuU3P zC4F*q^VnNI^uxN>wCJi_U<4!UlX3m`1Cf^bKTHEmsXEV;UE(%nDsSL!O{y4B%}qyy za#YKYIak&PRZG@t>Kr^2Z;wuaB*v~5i04O4#jurZoSDY*_@G0KVt$yP&szepZq5Bh zn-b0k!7}BFnPSS<3AJxnj)K0<>Ayc0aEz8hy-lC8Jl^E`1m*@s9pHs4H0(%QB)2n~ zl==m-qZh7t?gj7@Zr0-gGIv{`?iFuV*WiZoNJl-3Ts^+^KyD6GV`DY7?vm6tJhIi# z@{vR+`-vaJwlVu@kcz()vHksuPjhr~r1iu-HQ?A_fg||vSY)akS2PB_Jk6zmNMsam z{Hc9K5xW@CI@Noi1)nP-54oL)ZPqs4Q?~5IeVG)dD|06L+lZ zKRovx+&$bK#UMSuuZwsXr^7Z(I=}A`nQ=?v1XtZ{`W+#kdGrc<1I>wSVG(||S#<*j zof9&)4W$=y=(&86`^O=yvqF~1#FE9aUrf++w)i1S3+I-$Szt)+efo&wR52VO%bX3LCVm5tn+i?l$@35mD}RpKXdz!hIt(+6hRuYKd;>O z3);o*Rxsm$J=H!p6CdXbQj_9#FFp+XZqD$@8Of*r$nS!X3i%<5S(=S3wE_AZ6HY#` zzYyMqS3K-gLy5{>Jl2-W4P!6<=Jbp9-QJ;Nz?@Bu_bYa8(onGBUgM#lK9HtkBO>$- zC2}Pr-Z<2EYJ_9D`}HyW+ffoe`$@}`A#eS;2Jf9lUvn@I#gz?9(A=o||yzxHrf{=A3gfa4UdqGkmm5bs<}WrN?>UQTN)dg5?*{C5}hUmAio} zY!2w-r!=x8n&8h9zZVjac9DZ%432IkY53jifo@Bi-m-%M3m`SFOMK48z)#Iolk@pz zjgj4nyt|Q|5UcasGl3|Dr&MQ@`dtc8@GTix+6*@EJm4jy%^`ZExdrg3i_^ib@>9OT1?n2L&;BOe0a~p z(8_~pA1?;M52aefPq&B`_T;RWlpa_Tivzla)H~!rV!1xvINO#DgxAV{`>h5+p-ihy zpO@N>;LAhH&$N)y$xP8E>c?s{erUtZ(?aY^+ibav-@s35993|tFzqU-UcoNtAE~Av zwy6^qFae_d|9qNBU(r1<;dJxkbj-|s*-LzG)0^s+wrjM`(3%C->)xbU~g;`A~u}yUq%S* zcxlbdT}dxg5k}54?3xX-kYmy(VpH&30C<+g*|DO!y6_iiIeBd{%uUHx&iQjSr{qqx z{y0;)QPe2~!s|OM#3Mp=t21J~sshb$ZJk#M1l{_W zV`qBvlL4<{TQC{9?(PN*(p&a;DGbxD`&L>clfTAAJ(gJ$rXVs^sjo9GGDCJ&qrJ>N zFD?2u;*>hysmLiQuQz+kRSMT&0gW_!Kf8|@XKH@Js;JcR;JEdQ`jkIcR8n~+d*NGG z*EYnQRuv^Xx-B$ZPI5~r#`V*K$B${t#aO;5V?CN`es~0T-?q4JIq&ALjpOI}AknGt zg0HtSqmGVU_M+!c&KgSaX#-Ic($Q3>;xgRIv0S!UMpAY`3^yf)8p;e+cRFOA(Gpr; znJJr(Axdt|a*y?q43NJMG_moPuT%GRhwHcNppsfWKEh^}6(e+S08dc0$E@cT?TwdS z3Ed6r{IFKj=lku2Qjp?*+e1r7gLtQg^9scT)Q6-3Ps3CRyW?AOzu~VrJm5Z zb0!}dO9wMMMY5@(%AFWn!SAg??5TBJzdYTi(s|~XCOK>JMz+MV zJSa-PrJLg`Jc}sO#+)JcWdo3)#D4EAclNxDJ~pnwxb;H6!17Jbz%@_XX@gYSS^Dno~g7gIZ7$guz7mJ z_G|hUWoCNp#c{LejF+n+cAqlFWKf^+efxWk!H2gbguMz$)3cKNenm;p3_LBl2mQ*# zM-YGsQ0qyg+=^yg3)mN$cW|Yb)=VJHQDH#RzO@MtA;fsE>=TX3I#Z(4=s&Cys0P37|-}aL04HQ*1O2!e&gJ5H=dq zCwuGa(z<9k7W^Fh)R(8tIP(*b}_DT+kOU zuK_i-!pXfv8M&cE$U^X*~G-8dgJ&*p)o-B$@NAzzOZ{k8888kU2~QA#>ZxrrP` zS%LPTnnHN}Vv>7iywB~!dA{3rRl|E_dT|RdjWw5=mTn|ncQ{<#*G)r2LJ-l3-ih8x z^hAr^d+)usAfgk!laT0)&S;~L-Wk0OGwLX#kKyzFzQ6DDoO|y+YnOA*K5KzD-cPhl zFZY$$M6My+hUoLG<}D*(7+I5uCi|- zE_~_j8_#6Ps8th;^lfYGmO5!rQtGgX_qem=H`ROnyTcyg^U4iz+tl8c?KhnFtMO@- zUs>+Ed=$OZ86H~ZQtCYvPsyLWA1Qdw+n`1%>_6+(->28FLEmA@LMmcCzBHazI4aDo zpROsq!2P_|_E;nKe#-qF7WV0Zi0fj6_?a={1c95<$$|gX#7CccXz2?Q2Bs03X(|RZ$tVTW z>%*BNQsS&F!K$nky;*wAs(a8_S495yS1m{L&zuu?$eT~h zbYmlb6hh?^U|+Wtn3C(F|BrTt&v=Nbs`uqfx%#f6w(1{bN0W7Gt~H z#FY{3^OQ!+`9y(};Eq`V^%!QpfKomKTF-{|R`jmP&r6$i z!Dr;$@)Uigp%x+WKLkSSgBEiIK8Nh(wX{`@`y&V0HVN=LPwOgfSBsJ0<3dxTkySxV z^BdMrFH%nNJ{kAF_`1eqN&THcQ=%0Cb=jRy{-{*lQ$7{1iqOR~3HnHwTZcJ+tfgk4h642mM8x-Ro)jl&{meps3Xzezw#$(*ioN@@8Xoz2nw?v1t!*=- z_3NO)X>&*LG9}m2c*{;MNjHmYd8r&Dd!{~YF)c5afcd>Bqp*ok#Mp+~&=1^5i{p(|Ne3?iE@#uHIC9h<4+QJOpDdP1oQ1)_ap0Di>YCzt}Ucp>j{V!+7)owf0 z5+D4}k6JlN>v*c`xykKBUhH7qDA~{Hl9`2<&Kt9lYLww`xYIAV$oe#R%MttDvLK_d zd=-tj>FtsoHmLsnp*%S{V!bm3p;NyX*A(<8ffn$GK1SNx-AD0^d@8~tw4P1a)AKFi z*Y;AckCcC7y3mL=BhnK5!t{srJtc45Ak3zy_tO!P;%nV=&d#mpQry5b2>^>)oZYCA z4r0@6@s(o)M>mTgRV9z9E75JF7f0zERl_HF{hWvJAy1Y*;0hqE zqCD0(Oy55DIG8>8$cC}ne)9$AI=HMVy-SUau;Z{9_abnYGcAp;qOg|5gr-|P_cTg& z@NKmJIUvq&cmR%>I1}kz!32C8aeCmm%dQ+#{L!Cf(ylCn@YYR!YD&6*_iIbU`Hz1c zG>an_D-p~zd5-)eaWO0>HJZlwO5w6A>QnaGBc=GBUmA1f`}L^hmbfo`SEbZi+(jzN zxq)`aJ&gjM3rxv{vVqaz^FzXhIwxz*n3(hJMmS)1l^hX~Tw_2Hw2z(V8&-GblAj=Z z)RpY+mC|=6dgfi{)vG>ELtCEuWFfmSh{g$3# z>_Z@Wx4llr8Gv9I(}) zyKtd{&lKj&xeVC9(6VOY4j=m7$!pEb%84)k5mr@9So6I=1`;^QPwhFj<1EUgHxO&Y zgx!}vToSj|dP*m)aB$BxVWu1WTAm~zLN@coVmXIA$CSqtg`o@ErWNg)Sdn7?PZx(& zh^j4WugQ#xNbNuUb(25JZq_`TkHxKJ36oXq%W@26V5{rk8sURkdA z0DyDI5CywA{K;X!us#84Z&*fMAdxWAXP`YalRoK;Xq_#=67c<^VdLK!-LHggvGv`U zxQtKSSYRNQ06m8tkIIW#$b<$uW8tHpP0WAT13NAtm(T=lBV0wGQxD4=D!_P zOnC%&Cz+g?$9&3yg0n@|iOPve+o*ZEVa@jVhTo<2Z;%rhnr&X06uuKK@NTeQqT^4W z=02x?_W2l^JD^(VAhDZ`*9xcl6b@;0d3lPuEV&hdxEEGr=StCTVeqVbui^NCc3h7h~1YqbUXB_$uVh* z3?FzmasE)_69G(uj?OLS((6r7F^Hysvhpa*^C+x1TySfvn&O_!IIYuj)VdHP{RPn$ z+H_EjIDRweDCW4VI3w;;ODrObyM8(87PdNceRW2-%`;xM(<-atOEThuKEemTazCGV z8?S0cpUP+6>)%i!gO2M*7c=Ks?F9cBh*A~Zz_K3)d)s9omR1q)w);fMiA1AGA2ro#v54J)@=TyZZN_BEW!HjD_*94gKxJ_4bQH z-fiWHWgItM9t4x$^sT--#dj?kR)F6Qe~3mq?0V-MlOjD&M*DjaED=W4eYQ#$?PZSo z!%kW7yD@Iq(gye?_;3AP>WPu71<&1n!39(|rxXXpRN9&ZZ>!bt6t*an9`~7E;4>WYtNwjxloBA)(|$tzvRqOh=YE zyycfO8Bk(r4b^bPtQ#apIV|h1oE0+7ZNMb?7U0{@<}81Q0c#%=t#`WI`<`s=K?r~| z##4ou2#UHNinP%)X&GYoaobZIytW?d1%3rgw*rRstkMiA^%?QP^Lb63^}$D^hO%Q^ zX^{4_Y~C%}#)7q92vSin5O2>Jiy^7zF_xk7zgGDAaCBIHxB{BS&{<6jzI`>wlSI;loE83gBnFyZ<-_s%8;Pj5upnYDof8^{V zJET{)GoN=s#F=fShfPQbh6r!YD~HT_;=oxQct&U zG?WkX4kC_yjq*y*9R6~z*IEQmvK@J?Fy_1KMH!>wYf9SM+xIEb3HWVt)u6 z?C+beFG#GT|73WP=OOLIBH~-W)n=a)v;(u@gLCTsl>x2%{=`ap*J4Q1@s(& zg*`}yJ;`amL1)+TwF$&I0ZJz^7=yg=OMLW?<5?G6g#!R+B1)%yi%2!_s|N*(omj1% zAY};9`K5@teX_twpdy*Dg(G7FObK5oRmvGFW&1a@C2bvQ2>;4RYGBwbl_skf5NmLd zp+HsgI6>`94+J*08DIxvzcDpvDLQrYo?%sX(bL`BgKlDg5`HFf0XbTgOCZ0_D5#c^ zv>95_bN<=GiR8C*En&xER!hTuF^c&gP$r_Wy5s$dDKO&{C;;DgOZ_&=$##IG0&gXu z&4O{M_3r>k9f?Eai2ekFUO+! z=bpKG%&ekAH6mM=(E_q#y(}7b6(nQJykJvAbR2VR-6K4&Z`=-Aw}Q85a(VoG`ohst z=c(7E+e+sOyvznBSDy-W=Ec!k!C!)pTS+_H>Vt8F(E|r9c~FC|#0Xhq+W*XNUs_4v*_M+)kBXyJFq{GYT|#ocueb78UA93YL09!jf&@ zMITOyCV z%jI&&!^JQ-<==9dm(e(NZr(Lf<-js+ejWj9=gIjSNq~u>ZZPgjtIDq#cTtN;+8Vz< zAhQ-hTJ-a)J!_PSau4x=2~LUDxV0PD#etZ2Gw->^+kq&C%iMhJDAG03yPf@%gu^pp z8`!nypRrr6jnrA~pkj&5;cj?SbaDH^`&{g2@J6&Q|AETA?(0{$6|Fu1 zZaJMWuL?-5#Rw?uR*cM<7z`#Ol*lu)e_fUcS$U6}xTpvf7yDDW`HY)Lw^xQZt>_oT zOJ*G^t4)x1O^MK6uxcqGfwx;oYyx$rbYOaY;O36sQmmuKfwx-WKRkSV@~=Yp zuJ-#z$7;M*=M3LeRF9sWNh7}sb@3LpfVtqc6OQeAg(-12J$;n*{Fy6M z8+)WXAc}q`PIimh?w8XqXu|FZroAr)coa5P8mwT{*^C7ik85wMi>itE`*tROuV1Gz zkxP36tpsN@q_?w8GrzdN&coizEatO9S3qHJXZE%u+3QAfWkc5A;!0dcJ{+K@y}35Z zaRYd1U|Q%SJiUC**d)4as-!<>qnbDA+dKdB?CzVfT_~M7+$cNAvD=Bok09|{n(i<& zXqoTS_1mVMS!%PO(1c`2qiJ^R^KM1`YFb>?n-;gyUw3ufs;Q(oW47Y+wAy{EiY$D- zB*nmY`=q>z6pf92>omXF6RB{;6=vk;zkHs!aXZ(o>>U*2D%N=LV{Qy6lfWC&IG%H} zs&xh}QbCIW{En%iX`n*T32oQ-HbA)HL~x8oq(Rg_sJ$ z%wuPVrwZc0`#HC)aBGK`xhdT$uC;FGY`cCq*R%6Y2LY<<#0@BlaiXS;z-ic@2QBo4 zf`#~7^c~I8o|G^`*DB5Bv+@5@1MyG`2Cd&GZ%pnb5~vd2#ikvT*kvsT0YS zS8AXK?|{1>C#RV;2(b%OK}Wj4k;7C@Ftf$OoyliYEo}Lm&TTu3{D+WBg%IzwSU>AMf{cvio@%;nJ(zm<$hcDVs7ynvxn=FQt5Ha7xAk4|TTw0{1-$`e zEM?qc;HAQ)!AamZ_z)B=;NuaUClU{2p&S0UdZTclOE(jzZ5@zN-_T4k!~6$W8N!e& z&?WEw#Dn+;xp+&73}-WZ>$IhpswISxyx3?G!9cOJfJg;wyF@F$L=wf5Z)j=XFm6Yj z{Z~`2oj7lg`7QOg2yq^UPU*}z{@uy84)8&pepD*)&N4cf)o;IIQoLJ(*NP85ve{uz z3}GGb2XWcMV!|?Q3~}Vq^_7{$C8erOQ#>K~)Oklw8va(o!JAo5x^VNx?IUC7jO0X| zL+rDb>F8p;b(3Or>~UL*K7oo!dge^Ps!dFb&Bl7#8qwnV6BxT{zOd1}L8%99zIiEY z4%54OIqAK#5u--%m)O_$`9gfWB|d8Eysn1xym$kxTn8rjV2)yb++dT4hLMpD&s=m( zuhbiJ>#)@2pwM7@+YaeAP&R1ysLLz69?4n}SaC-1zbs?E?d}khaHSA?co~%k=BtiZ zuoG4oAn{JL^ULc@jkew0(Ag^cohT^y60Rz|$5QV{G)GrQm4AeSb6hG>_M2<~T7Q1m z{|90hsQ8hAGs5H{Y*W5C%nq2sL_ zh*Po55y?lT-$2d_4M)-@P>9_{BB5S<@vIZiXf5UH6+zfczHoG+v4NV5{&9+eVx}U!WbA!A}Q#g*kFpbDP z(hv-~TsFi9s}Z3jX)F7n3sZd0nkN0O){_yla=(FNF2LXjhaakWpw*j*FCKI&@{&gX zvXgFaPBsOhwBd6Pd{;}>`=3Wu_rE!suA1MDll^L4#VdEt(!C7u3>6xPtnB!BKboM{ z*KIjLb>FZqMOxl zho4$}nGl3_OTG><=5;F z&};UAbQ)VUm0e9)LZ1bh1J{NP`_fQjwp%BzELo7Vd74(fmiB+kH_jyYe%TfVm+Zct zQ@qxYz_+B~yK2tajAu;4S-<1v74I(&%w8U^%j0?_0#{wRJczj`at7hd*N0)@#ecg3 zbwZMDSBAaEgE4A9;YqGqu#Jpf?2C+7pQIj%Z~Yz=n|>mwilP%b5A?mtIS)-y#y5tW zNG(1kcco49F+ohkL5ACruq#`2RXdG>>3Sx z%*W-Gly(1+K2T_L0Mn!;nub(&*K#yzQ})x)M04lnPDt3P=4kbY=9lQ}Sb0 zoRm-6Regs`Z{_tSEmRh-S~#ly^F+ukrfX{;Sf7w=;c>2L0kl zFxPUu6KR`iL;DO8-ON1$P}C2m$FG}b1o8z`R@m&GUa7%&eS{CfRaPU`db@MG#x;ewHL|Wig!6LSlKKA}8*fZO+n&d7 zqY-%a{Ag3L*x-OZds|R>%hQ(!5Aj&uf}>m_$Mn&EWcnRNs948;H`@Cc99@2!`k7;? zHg7mr#3?3_+&;6TbB^GT7>-KcDI2=WJO&328@I{+)XKLLbieetQWyJ~>5Q}36nI6i z#|$VU-%HFIGfMR~Xr)5akNYP0iJ_w?V|Z`sc)s{IuZ4Z#>Vh@?yp@fhdlt1+_pao= zOyGq~kXDE2y&&R^WQ4Fc!bb4l=c7+e_+@j!Fp(^7fMiD9NlziOB$`$9sa0+Q){%gZ zEK78)Eiw+R8W4U_Z5V=o|5DiKIJh&cT$HN5$G;mQnK4;$u_^ZYZua!Ic^qHDoqnj* zz;dzwSJ99$G8u}yYYlC!VH4s35F6{^hK4_$4OI~vjW#+&;qfM;3@tHW{;jfR=0MC}Wg;m$z)sfc9G%!tN2#Gmp9v_BUtf9~k` z#l+-u)Vdr%Kc?vC=cMI8BCUx!J>TTUi4D9h_QQutc3z_sTztpBL?_u6d(-l;z@<^A zYvvB5WF^Gf@6BDET~1S(!`dvrPvV_(hdw*+tv_^TExP)?#FGkr7NI|99nJKaI6*zi zx7^FryRvu8^Q1T+i=>pA1vqwI|3VQHz4v-hay^SUM>hZP@;>s?)`$dtzNHMm4Q`F5e~$8$aT(v zftqnx)h>9%0aCv!n~M%s6zOLv)7n@Q0}vh$F>y_b^Ht98S~F#%o{A%KRqp&Jfh63- z^eijp9w~Z@aPt(S&AeDMvEcQCrfu{6<^ibQamLiR<0tNvHanhMnY6e=50D_U%!Ezd zi%WW*LG3HS#rpY6Z?SK;8WH0^+q6;Ys#QIO>p?|HPHBwPJGXS$#)AjD9iuqkjwG3S z53mwLH63{J3>kXpda7S~98r7ji^xdMHBh|IsmU|W6(6ReEn%lfR7TB#R|fb{4^u+Y z<-0SBTq!`dofeRMH{1aIX!d+b=O5Q|mSDq>ofa6ZT;>CHq$eUvp zct2FxG1pzq$8|bMoTu^1%*h3GgjuFShj*~C?sQ?_UKj{i%QJpAw_0U3XA6`7n-hmW zAIZASxu%@Iju7pwvc%R>GVM@E#~Ei$HQ+HD{UL@+NcWl-@>_?XNa{w>ogm)qM<8|3 zLxm|qnFCoI)cF6%Ax4J-0(8f!s9C1p>cJYq_$ZW_Ac0)aU1uMWj(2Zy0@Ao5lE}|| z7~yvA9@xQ->$DwN;kemMOKqcqKYQ(>m!=4b>ZTnYSOvaq8`bc7v}gD*HBy&r{kq!Y z7wPn&I40@Hb&>VsY1gQqG#p>9qMtJwiy{fzX|^De*#lrdC)4LQVEBuIUJo{W_Roj+0VQ&@dtMLO6raO zjs;7x^}`=j*K&#y$@Mc;CzcR5We>nL@glUp*d1_LB=O~yYMz<9g#o*hBA>kFe4mcV zME@769;FKIqh?0pc5#_{Z3OoYCa<3wCwDD%Q0+ z^uLLVU+8EP1pFB%;fIV=ZGN+lCy>>mrojV9-c6dVIg8P*&hon~K^$^gVai4xNKX#P z44>KJ_N;YiL7v9Z*(;6>5&Q?;TzkqEd;UFE3Qg|YQP%kg&)&skK)3gP zF@6u zout?9Q>n-Fv$=tIMlPZpzEODX32Vy1-;jH#gPlrkh~62OizE+#I)L{Z_M15n$&h^6 zIF)4qb|y3QpI301(aLq}ZQE`^PGiky)*dNc(HJ2q73bP=1phn_F;YBcy{aScQT_wC z0Si4Ez2QVFseKzTI_Dq4Yg%PlU>z*QgjdN@BtHN6lOjOH)#}I$EKCY_i@S7ipHDKi z#0;6c9(g@34W&@FVTdNW#+KDzo0yU}v{b`1nGoY2A1m8&W6zSfc%Cqc8a{|J03`#{ zRYCCw>{g2!`26rAaK_Zb7q4-zK5{!6}{l+WW%0pFvVq zydjs8PB~3>|3A%eLypqI()lU3i+V@70__;zpV{G#R@AC3xC~w%;dy)*c(B8}?W@qb z-?OTO-;m|{iXrYqUBaD}s#+743`*S79=-W9jm~+xiQ9v>RVfS4Uy|y7`-Izj`-TyOI9Qo=jgL4Y6*CT?h*n|6KgUW?c5*y z%r2Rt#sI9Eq-a&^5o*=Aq~?F4I-765SEY)2NBQrHE2uz?KelCNL=l!Gmo!v= znq=V`t_Ki=Q8F_p2d+iU-oGzUvI6IE8gQp5NPg&k$&Rz_Ckmu*1l^!Bg$=-a9Cr~-v|l4P$8nEmx1s? zKA<|Rti5o=aKCGnKBUHYgis<%%hZ1gd)T}<7A?5~$&TwQljxg-yyb-Z_|FI&RhKy= zm^_wlA&spts+XM|9XkKJ=>NY?0Hb%Csb9`;+YN*MB;UPv;gpwoWprWB`}fu4gUBi> zJI}^>5I*@us4nzW=yQ@qsn6d|2;jGW^*8C*Gjg<&rzlIKs5%wwVgkp}np(D^fVA`! zq);%oVE~XvR6FI%ebxOqKIV&=u-07?$6R*azZ#5M<>R(V-G@-t@$d6c(3H^RasDlW zoj~k!L?jvHf5?9R)A=gdVIAXg$kz6o&zy}CYjvsWyMBmFko}oyh5J}PR6;~}7oWem z-FtlYES5|e8lWXHe*zyTpF;n7&M|#&fze`kjB2Kct>Sp}a)4r0>B}s{c;a0`HrwBg z<4AjBgBc;7?J`Dw%ZvM#4oeEeePRc%va_MiqXv)v?dlBGT1~ophjN4FJjx@oRWxaI zX^040o9P+@q*7$3rLcL@Sn#%cP=PXhNG7bXO#0->gI%=g9r-{|ZM+nY#nQfXBC%H| zm?fknY5?`I+NJ?2!R}FUUH5v!HsEtBmijo6TKKd8{u_oA(;dJxl9Af))Q<`$>8c9t;Fgec0fdHZ-&VSV7hC4HKUoRkjijE1bOg={d?pq<$bPObC}Et?JBf0} zys7_F*xS*@9RwcYCYrdPA@mAgMz)vxAe-k*1Z38MFfh|Vg#8MC^O6&U{{iGT?NTAS z<~0UH^d>x&SY6g;Utf0wrJouE9SSX9j&N3n9PMkKETf&7e`IDpHfJa$54ll=CUT%h3@n=yD zhA}E@t|i^(;t}$^Tl8YVHw5x+qePi!6P6!#iH7Go#a#t;MtugMMZzk0wp*k8iQ$Ie zFQ)PMPjQmV-E80vqvbi#jnS&J1b$&#x=k9E+$dFeU56YLC>s;d==kqGJr7358@Fsr z)I4UL|M6D#fi#h7`91?ctn)gkmDI+%9vCh7>R@!41~+BB(0TrWAK6WI!*|lTC)daY zCRJBN3nWAhU&%B<S*E|w9oq4-kGnIV% z$Tj1us=(5vZVuJef%mE%lHmsDwuz;$I=VFRtqqKQttoB7Ss1RJ=)Y7EXu0df|7K5(^J6$#$_TC6>BKT z50Q@u+4h#UBkW-8=D(gG%8b&kn9M&=D%sy$N01+PZh^o%!ysI~vgf1_zQR267QxQ>74)T@o#x$!G-rZmS7ILZY*08XNrAPERD53)?)pm4As7a{7DJFf)%x5+b*L))sW1urJvFvfcZO@L5-fqe4|H>!XNS@5d;ZAo7g{# zdOa}pafy-$nwnSyMP#{3ODq}^xPq<6f`%?wF4V@2ofA2(rij|@1`_bwzyE?SW?sbf zwUH`D#7Z;PQ<>^bWcm4%nnd_w5woe0kfBSs=YW^M zy%%-^K7vdB+<(y~ntxwhKaXW_s&4?4yPLt!+XI^QomwT#&66aUvEef53;69=e2HrV zU--9lMrt5m8+4fr^MXT_P24lH#(IccNLu7>QoEGot~v-Zj2J8KFsIaypt-07P#sLR z>6!>xi;L{L3S!DIoc!j~9!vq6cm13Hg>ol%sb#o~dykSEXHb_Uwp&E$07X*c4)-f?SbGdf@{0VW7Y&zd27B2)MjkNoApcT_yuO$HDTYgxT;ccfhvYYr zR{vVOVueOjV;+UW4`%;s;8R0z}ViJvVO;iq~z=qhf=tiOHuM~K1Bk=S9dAC(&07n#% zT#?Oq=q98jN+@=7eV7`^EV^6Q-*3DR)KJeCA}V?F0T-UX9?Lf$S=Qj#8pr=Z2si#n z1(9*2s)}_!`_pP=^-3(D$M?SPk~SaPeIO}u`@Mz!*D(`T{DYePoCoH5-}j!6Jk<|B z-FyP4(y0Ex7h)Rb6=6&liuD(qwom`G9A1dTSZ1^=FqK7A;k7Z{ufD(uscqJYWI6kKG9z}u| z9eVMrZHE3VJGWH}Q=shBUY?pvHtDH}sM?`v#(vWs-s?w9W9EL941!e@#;KH*t4>K9&9%zuPA9DLg7NAuyNU zj2y<4+x|z;efXo=eShcZT}r(PWE*?XFUtI!Px988d(6=#nL*iP98IhG3%T@tOz4)} zCTwavOa$imM)>O%%+BA)k*j6W(aYm76Gsdw=@11Sp01! z7w=xva`qid+kF{@kkiLz5YH^+%Y?^7SV@iOz-p(cD!Wcu zbRg*!v!BxGP}cC@AUsc|R&7eQ_NK(SJ?!M$I$qctC_*^A{QTp!08SD0-duK|QKjmd zFI~j3Y=14t+<{`rbnz+!aQE1!;$-=P%ph^_g0(ULt;rE=4_c0C%CkwCD~Bz+D^9ul zp6Q+vK?V1f7%2|)DI{&SE(9)S4?e#C5v;bXGXj19iM3tY<5jzN>F@waundsRK9X}x ztsgFL`5KDi%oFEcuG{l*_&u&ymTz+$c3Bk@I&FfRSJ#@WZ-!I*Y;4Xuvk<-zez3&d zQIfzPCE^~ZDFUrM-L#KLbyvJ=d`b9+W=*tL^%}-X=5?=T&|6kIl@UilH;d`310=Sh zL_oeG1tAke*CxzgM*ig4n*LUW*mrxG;I<7vkbuq}GE0sM=dNq&1W2R0K%GHG z{yE{JfUMN`066BrWMkmxx#1v^=5R;oR(d!+Ng1V$s@nNRnWQ;n-6w9-7wwHdaVl8V zNSUpsP+60nz0fvtdFv*aGUjHd#Z{Vl2)Oeva?kTGp9Ws{-*H)MF9#DsQ;@>{wk!oYHdQ>6$FK6Z$Xo zoLHd2s21BX?~24#?||c0*qyNsBp2T9Q|gfLaM=nQXDQh!c+fu{e7J>xLr@v5`<5HF zJnX#Ak}H7TN@d0S`IBHY!Uu$6C30NyTj~6HLay{seQJMo%sY|b(+)k$H%3>_@xw)4 zmIQ!WVIOMKM$6ihs{Q7;03!4zMPr;%$OZHCn_g)nSwjh~L-6!P`)_I`2GO-pW(v4cc4}Dghes>|924|MH+ zBOGH+umvg`nzC_k&uNVym5A-00Xz^>5`D zniRK^R#;_HarwdWZnlHb`Szw+^8%M1DU42EXQK$$YAJnk&lfBjEZFi}i1tO!zUuA5 zVoA17j7t^EY4F+M<0FafIjZTa^H)Y5h)HD7cEkO9n^u8Tx%-ZM$tI7+5yt$C>w){w zYZ|!sPyr0HKt9vd;oqv2jFE>;E?A)@Ti@7*Gf>zao(J_Xp{l$Q>L;PDWBusupPi>B zt-aCUIF5OJ|L1n=+{y$hCT>k3c~ZAwu?QyD?_KJ=+y!3N$R}RvIYB_#TIUCKxIy4Y zvW!G;v) zx+Kvj5uRvRD0NUi<5QvHpkNPDu(37A1|f7;F2ew+-Bq~ueDiKnlEha4EPzZhT@ zmeJQ!xvlTMf8Yv$gslj;%Y1fLAxP>R(*JvqLnP~$_%_zlx$Z@WPn5#bQTZp^DeT`j z^XUnm>|BV|h`%$};zr@ClM>snTnLeTA5&L_Dnpg^*Dh7zYf!4IYqkw%V?-Tn*W?|) zQJv;7IrK~T`kAkc$;UyCjmf22zPQ7KOa-VBDH}2QUyQK;=4yfgHDBHbe_>-#-qDk zSU0xn0*bVR=q5UJqcRe`#u~R|+x1DnDMRVr0raZvn|%EnIj;OZS@fui*uJNLv>z>O zz#*GMAzx>QX8-2*Nt9<(<}X$_E-AG7m32r3xuR{oS`uE@#Y{ZM*AI+wYZbj4x=t7< z(Y~;)XoRiy{%4y9UKKg%qF3-DuH(DZsl^XnpoY?+dzG~}$@H}K740o$rY_{uy zjs@v%E+_;0vKyet$G(f|GWKeU_VYc`YK1W}?Jdpv#Zo}Nk{H$Nlm7U?M&>tGMR6Tg z-ADQUW1UUVOs0)Q*;S(*Z^!`m;97#A!z$?V5VS6aIHf}8_{8c}SYsV+@T)tVACOP0{-nRGKk}BI5L}=unan5pwPKzpGpvS_$#Z#61 z)f@?`4-lRC6^a9MV^ymJGK}s|_tb^lbNCZx?mJaZtL;uZI_XTpo0|6o#-ujK9fk!D z_Y52X$p%s(?#S33!~}#lgG-IEGuU?GR#?Zn!|LEqc4F3dA6cS5RC_A{D^RKsjCQ)^ z!bTXSlc`hpwMyhmALO37F^L{JC(e4dKP*|x^dXecuLj?pJ1blOlZR}qRvioaM#4yz z;>{s;FU-HADCXT#K}>5So8a2zTbKOPdCM>EwR1Xi%W5@Wn=HX4&~A|c)_u(AmW!Da zPP>~_!6M;X)ASqeI1;3!68?5GzvD<_!6pfa%Rc_Hy`UI;f7${@p?v(qs{N2rc#{SW zMKoN@hb&jX?SLZ7kVW%%FkQ>A_|U5MwxWwnY(YbkrRhkeK=&FG{ESgwYL>{Vw5_Za zgr>pJG=U_1jg`!->hq8O#lYr%}wxUB$iF)z!k{EJaf;BsXgk9hQqouW08g zU|YDR-2tcs8v9n#h5?k#U5OFN0U|SZFs9*?-;m1IFMm!>*b7_wx+r61Y%zLpz%lT2 zLi1&PPtr0)E2q=L?d8*}kV!ZBzqlbS*Db$*PA1_&(N_Jy=>5W}(s+L=L}y?5WDtip zRI}+9|8drM2Ur|&s?)W~N_+<3f@ISfqq$o?Q3Mmd))`X1(N$%9>hnveV7!d_b<;Ea zMuFwikJq*k@{Cx&w=W28W-u||)=-5lG@6rKVZ+*5MP`5Q2WSVT?+RBRYq)h*+aKtT zB&-9rd`6CuUtPDi2m+1^`^|smXLf_ItA!vT0TR-c192y2wN}`>ZAhB-7`C2Bww7kO ztU|)Q z(UWTP+i@qk=4PG_Xtsc8E4@CyIEinF7K`jEmj7{~>b&Gg<>%M*9D>MKG|=^y#uTS@ z&I`~SBK(0KxrbX|iw9UhWD7xo=k94>GW(S7GU*IOd>g00^(^EdbT$h-4t`a7} z7bAM9Xf%|_Lx%B%5gHN@%>8P6J+fcv45qJ(v=S2hHyS|~4ZK^mSopN9N4tz0-ktO3 zm*$^5uHJ|frN71M2I4N$B$vJ?V^0)Vqdp!`TbFiq3-QP=ox06p1?L6(Vu+*eH>s{# zz-}KYXT#p}yo@7hXe4N5Wvc~d(m zdDt6Fonm{&6jCXME!H#C6TSOe(IU0;nupTO9NvyTWSs$gIK1hieg_`*$sBd2FJ`)k zz|LT_Vo3o2zl(1B;)z8E2DZ!lsv7y1hJSqi=ZL#d7* z*7vYmVO|*HS`|P3am3BbH4Et1;_-9nODcDgR>kI=mCE9lHx)g*w--v{oJriLT-qKC zefKj)ptgSgt${=URC6YmD>!CShBfAh3_(}d78g=gH%?W#DbW*Q$3Ildf3SSQ^b^2ZJ4#@>+&m?0(LY03-2nY3fbeZyz#N3P-qdmA4E zl1fpghJ>=U8ysDsAAI+-1l z58Vi+{<`#wi^D+D?oMN;3`xV`Ejb~aL*VX^?x-jnu$~~C+>m3#p`CH}u71^11@J~`aX62D9*y3!)*QZN#t;lzAD*2Bz|qG}L$mH~6(`)M$35=xvN=uH+}(H0 z-Q}P5m;Bqd2;F>|n+dgtJ*(`ft9V5Tn2XmO+Y zuHs~=*#gH!kM9Qf4LkqVIBmJle2W$~vuz$}a+H6Q7cYy*;kjel?i0^_y0Lc5gL902 z$JTJN{9`^ombHZh&WTtD4+R(!@XYd6TfHc1`LT;zu;%Mb_-}YpYnvYBRVQJ=KP9*1 z!g0lsWlA1x&&6Vf+#2|D86ks5|1_BgXO}=)z9hI5&OWs4drIA&FRVGnx&APt-V3S^ z$vole2Fq+8nu`S}99qFSN$E^8_y5=7DxW~P&xw7W^1{9fcRYIVxIQ7KXv$hC# zZ=f<&eP|yoQnNnL+9sE_%g`Hn|4Pp4A#Tjqcx!$mouh>*?<$n*r^Z1Z4cEX0C!)CH zpW_kw>K~7LyvKj1r|6m^&u%KMHD`?5YF^$|Xi@GNnWE|91uh_M-qCE?+tz4*v7gs` z|1Nl!N8g%~x{|1AVgJo>ow|JLD$>A%`i`mPxu4ab-%5X@*;9mvzlO?s1QMU2|jG!my9nx-%tW3#oUsx{If_ikM1l z9K^d9J=P)KD#HF83VJgA#NF@3`zPzKT%GF~*cgXO@b01gyN^jO&qvR*?ec>C_nXH( z-mAaU6LigyVLy;HuaWQb30p!Km0P;`K0f7B0^T^u%LbtC3=amHIika<$C{l#RDu^~ z!#iUJY@aYTiZ_qHIbN1cUfwXzR$MvqPMvyuXER`aN<~HC%h6`89{I-d>oJiugW`KE z-!Zr2zbr)iT!`@C3>|_G*WZudUMAuV3?gR@hkuy7osDd2 zjyL^(&Z4unzD4Fvd|7k}#uz<-l)LP!SD~QgJy~RS?sc6#?(r_} zbbx%c^bN;%)O{-K98C|fb@U=^My?z=J;O2SdHS%jxM5qdzxLFfq~(X>_{L&)?}Oy5{wc=R8>5S*<%qyO--lhP6A< zLCdEXYQKOx=a`>U=>z1T!x+QHFBgXKfi>TnTo@zPn(w)?Q8xT_xE4vC>7o8>PL+Cl zmR9@|!T06!k`2W0MuT6U&uVCo_WrDQ`A>CY#7pRp^g6GE>93l|#^o3`>&RIb^mJHt zvC&+vg+4^~rL?@ymvzlO?s1QMU2|#-a9?VZG%}|c*qi%%XU~e1QQd0YrfqEJ497hy z5YzIk(Q3vbsZHLlj%Jy(Eg=a-LJf+LWJHOvj9U^} zD?4MR>>)d2876zyK{0kpl4Z!g&tx4-O!j>l+mK~2S;iQC?)`l4?;m*I^PF>@=Q-zn z<f3M30J25 znRvyTfG@b7h6Q7T>mmBffMHQKyr=q&rSY3T~UpEevX+xvn~Sr zK7?aky?)uzdg%u9-mBFk4<-RBq9>Z6821@#)hgXq;*gvL{c3=ofm>W_)D{En*nh4Y zv8D_s>$_R-y>g7fsLMSua1?pkL%L=3xoE~W@olZj?E~_z!eiP3Zk*P#-WH27cYV5J z*+AC7GVPFO#^ha?To^l_mwXcIKR-lPcS6{mO{9o&ez`LPs%nRZ{pij!R%F^=%`;s4 z4!Wb+Vxi#lcH^3(L?^vgs?)ldtZQ(h{9)Jc3%8U=UQr- zabM%z(*ANTj!?zVaWSyNV64RTd>7y8k*JTr$|HNpm*XeUAb-DFRr8K~pu(7t!h_0^ z)$5V87`T(JYdO&xOQ%XtZFw9b{X$DYg$J!AdCnZArGw!==^3gAet4P_h;P7RmNJI^VuO(Sb#zwsP7Y1L2m9826lNn#%-+MW~tU+pbYms z+e(;yn$#SaH7$?{Y0rNz$1`%Pjt@`IQHE$cc`epP#H$OY;TzhfZJ~P(y!piN>(I$~ zkI+(IqHR@Fmb4dXPN%@&H7hig;MXDVJIu8rq2 z)Ef}D44+7F*Ue>j%ng~MS<}JXO#Dg;@s0J9KkjFDlvTnaxgvew<@UOO1RN~>=jyJW$a6zIY)DAsrf8rM)d^-_tI&7US6~UzuixkOnv6|c5 z-457n9LMuZ?A&02WvL&pMB}&a_N%^))f+DRfrHE>omGYg!scmZytrGRg!IA`c`ivi zdUhr3LF*`QHZmxH5#B$-+o}j(EW!7_x=N@V+Nu5n_%)w&6E)Lqh3PDKe;$yrv@R1Q_Q@r{eC|^1_JP?vLHs}DN@~yYppay(qMw?j_as7`}5Lf&#ctnWF|>TiH}vMgdA?L*oN2 zibiI4(kU86I_%u<&3mB0gNS>~fQq@v42%S(MDX%q{yac_J|hlQ8naOQzQ^YhPb_#d z>iJrEp_1J>9=$&zQ?F2cTu#6*(k40g(F13RQ zb&xA-X+15Uyw(=nF8u8~Im&oTA{XW_AbENE_(~`fs}B7>TdEIJ5BD%LM)~gz$aYmV zO+llTP44L8mPPV=c7eoo$ODyoxENah(S$>eu32dXTh>CG(|V;{-bJ7dD2#UHrPu1) z4=$pu$f^l?qiegvVADW- z)Xb}lQ{o?7#x9p+ya=vt_}b628YVBh(#&Gc71eTvbokork%A<)z?cb0ebTALMRx^+9%LIRUfW<*0#+Bsi95j+qPx+yjUw)=P>gbI? zXFk@xSLB8xc;!xVw-ol#u+Q3af9>F*#6x4_muN!EoeM!Yjw6lLhtti3L~^$dd4b<#kt6fC za410hC9>vt+ZmX32C0-!JWL12+NpRVyR>2x)?Eee)!^EF?@hV3qPAqw-^T4iz$4PY z_rj>amFcl*Mv4hHaO#{EB;XurdT%rN>IA<)*)B|#j56Os)GjSyyG!8xV=s^p*8kpcMWCKc6zYqFO z^P$fR8VCgk&-~N80U3j5Yv|+H8w*hB@qYe387P~9+cTrz-=_V}a(!HLXv-G(171{H z6J1>E#-p1Ynytni6W$DO8VNXt{Wj|y4S-&mZPII$K!j7hWv~C4FrGHm`Fc{l@ZcYK zJF@wv3Kp+8-#z~hYUf(%i~Qi_owwW&{|sW*AzS0Lh!+_9nLoJaxZrD~-+EGoQdG9H zBzq`)%6(aaNj$X`ELqn2td3A1_;d<9x_L=%pE4n@ZiwFxm`a_U z6VI~Sa)0CnoICoy2`C{+SghVR7vWR^7Yw{t^KH*Tri}uAsfX~XXhG}GqMmNN#V-Ks zwZmsw3NAkDc&2v2ar<85o5tLp)E~#N;+;H#Gs#=Nc1bUK8FQO(MeZ~Rj*8_c^Spyv zM|X7sN`I12_X}h!$`U|N9t0Np^X)gZnu>M~$2Laafw+H1zyFCgts>8F>+X)^p;N2^ z@!)Ow>;+n6Q2~0FRRNIJasQYQf6-%h%Qt)rffCzeT$u<^7BgMg z%BwGV6S%8M-!2%)987(3R{pwc$Yut+q|Hr4qe8~t5(G!>4Mo3Z4rB+jbf)m_xAP+k zS>7~Vd9jjhnI*)tzU?mz9Az8(~c2)32}TAwaw|4a}+L9%z9T$|FoCotO4NYA0{ zNywhYW5*mnV09enzGqdw{Mx&>(06#L7HeN6>C&}c)_G3v3xH=>6ROE}SXwmKEdyAY z67ncN*W{c{SJAdbj|Ozz#i1#vdI*7Km75|fH?>vqN7hb~gPIeqTsX=N!^TXNQY@a< zEw6AYepbr94pr$Weq-^ou|!=jkL|j|&J{-vW$;jd#Okud8M(xj-`~C!Qw>)3nqT$N zc+U!8-@Npj(s?=^^cwJV}gvUj}U=8=mDJ`VAFS`~sk93oL?N^%PXfiC^ zi1K_zG#vKFohq#N{wU$mcH%%+dKT6MXkabL8KODsVW0Y9-1OrvGcbWtHkpW&esSyI zyZ`;GAp*vjUh#~<*3Sbr7bK+47@e3dO)%^z<_2PC-cO$a8y8ZhKWE52Wf7PO4^cd7 zF=aMdKinDFh}lp+_!qY9Acs<$X#M7jc$vim0k($XZ|f?2A zyaQ7DwT>&|4O87G%bl2QDLWv^9RqiWX_=`^xN{A6DIvlrnKhx64`owX@a?PT7)L^c zs*w>P6vQakzI=GNIZ9;X3pm5q$RVhI>P<@6wC_t5+O_Xp`|gf3UN4Bg%5U&ZC2kN2 zsmgYT!W%2y4fQ$a)i3u5dE2x=|4(R@kt;aE#^Vfzi_u9dQXi` zDWJE@?&EJ- zb}tgCOUNYB1#~A)kez7@euD9z=9?I#}J%%=$*> z7rs(fTq9FFUhLYu+pmoUx7WR0o(jJeiw*_lP5Sf}Z#EreZxUp}?V9Ttr?|<@r9-FU zu3l`+WlT-0XooUqIktG=d!uA5dsU-r{quxkX*3YU3l8gbkwG6HZ;7lQ@P!rNc^@~H zI>O1LgzFyV9zM@n|N2)9D1T(}SH6xXlrt(P8hgh{Q*CzyBLcJ*F$iDV+Kynww^js; zl~oI3-fo^yTR%hPvKNk`y;F5OJxm;)8gNPIR zP#1F#MovkfaEesz(&={D`H7&ukA8x2b|KGZZI-@IUQ-FSORT)w!GUK$Bv1J!94eAz zQRt@PV(OT6L$>)9_L}rO*Aw*y`j=GlFT2rG#Iwd#?Q7aS04-hgRP_x+IR15@Vq4mp zCavUnwO{+&7ZzKwh~#T3bC=Fw_bD(VYc{EQ=-G6a)9S|r^jb+Y`BZ5fskq40MXNs# z0v`vsK9%Q=QhKng?}#OjmS}@Uw+L5WH*~8WC2}fLAVd|*Ui~*#6%>mRME#7ucd#&e zu_#A9VJ-*dvL~MuN@K>1-2{@&Xt0n?5-_*uIRi>Yak|t|*+p zPSu05iQ?Lj0=(C?8NOM8YU@1yC+cexEG4R@hw^qRAD}=KYO$xEDLKe{b&ZK%%wj-9 z$4c!2DP_*2o3s^nFvFW2(hBGK4dIJ@O#599 zORhsm`9*S?7?u_H`ZO*;jzq4Q>+jLH)@`t37TU*~OImRh9Qg`3F)I&~J_#V)_s#fV z=u%fjO*@^B#}CsQ>g_;TX?h$EyD3s{*QXEIw|>h!_rryV{RP{4q!*IBqV)sn%x zRklTnj=Q!PV)5{B?erw%;-yjZMTmy3SlfW}_Ct@o!@Bc64RW)q5oLSJH3wJD`-4G^ zau^g2{_?*$h}251@;k}V!z=)oXw7Bc5#F8sQ;(8LfaHlpMRlx1(52bpo^x@lo@aWJ zp@&n$wEV?B5vCA!W>vood@)D>f5a--i;;V*n*p<2CL_6LXZiki-sgJJ0@3KYTb}&L zMKtIlw{k^q&jMZXGTHs1M2%eaE_}tsp_aJp$WE_8kxXuidXp6#>U@ zt1K$h_w0e7zaMPg`jLQ(P^Wpj4r`kWV}=&MRW>R=)b$s&5Z$$v8|-lb69NGV2Vef% z;x|tQ%nu0%Psgy{TTOG92lbg*y&m8v*gATvi#b`8P^k0|TqHsI z$!9iB0(o%sG>N^VfFxz(*uQq;F)P6$lsjXh9N>e`*D1|yU0f3G{h4=wVP2yQm!CrJ zxO9C?UYGYR-qT~*7ukn| zRpt+KWLm_2Jmy08QqWn!QCoHqA5;N!z{YIXXTTX(8gTQ_XzZv*iXkwuz(%>$FrQzcA0n zN*=cp<+(VGhJD8D>o+MMTHRcTHH#5h0Iy)-dik>LfA)EGYMOdhDSMf78$Ee42MIcF z*1_4x+?eB1;@%~HGo}m8@CDm=d#e7u1!FaMMJ-V(i63Tbs8y4EcaVE$b>(q(ve>;P zj;J5`A}M0JpS1n@&ZRy)u(6B}ELw;u5FdZ#IcJa2=%ru7^Nw>e6ih>1@if13Ii3ri z*rN|rL>AHi&-kf!QDjN7HvH!#5!aYK3O=THzear|9^agA?C)l{*Q%HP{h-zMfSmem z7wq}LTZ|>C2DdrQCYs*0fJQZ$cJ8ZO#634<@5nrKpYLuE-t?LCbK5XND0R4|)!x`Z zr3*IHWD7jZ?Sk}mME?Im2BZLDBZtX09%0N#)t;@iQmv_hY#DC__@4m67eR+!E5cQ_ z&n}PoIVm>f!`F3!eqn4zN0r|0^;;`%IP3yDB}b;lEIqWn*S^~`)|Bosd=)EGxh+x% zhX%s_uW)lc{THAf_Lsj{A{DK(etjL->qrkX)1cajPHX0vyL_(`FucQ4JQHt&mH6rB z@^#%GpUX__FA&G^hWqyl7Y-=9{;rNZxyN}79uDBn&b$$*oO&z<*gbF?Tw}!at%Ux^ zs~HG_=a!L`Rq=U}IVq0Py`9)H0K%plXw3Q7MiokM9cJR+7Rw-^Z;dZbw=ekfy$l}w zWaEx(<=#10%A!0CjfpVjKsV~L^GT&gyS!_Fwru*q^s6g%k;r_DboxT}}+3WH!ME&}$QDvL%yuU206LXedXqZ?}OuD9AfB~f+q{_rN!>@X5 zc(wbs<$REuC7dC9b^GjteSwA9w^1B^wyqGd`?~);8Sug=wW2*k(P><3S?r28A_9I9 z1f@o#18<1V>N|d7R9O!xIWEsKzUK6PAxdebCm*4?zj_9YrWI3v%F^uJdmPeswg%LE zR>!-m=_2u962+2$VvH8#-&iyCJHFZVqSGaj{x}2aG@FDgAcm)xf@UzZG{xA+Bk$5M zTX^l|?Bul|GbJ|sHM>-G3-A@$p4{N_0Kk0VSB@CqW3}UtE>Tm_`&an(Yr|BvrqlBx z$1mLbgwI>kn*M(l!9CoKPU*OAYO89u6eV~#mMH;q!)qAxS|*Q*sa7ZIowj&^rpwENSspN@QX6b#E+<1L{U_mY;~}l#)YZx;_iAUkI&~1SCA4%Kx;2YpTa`2eQ^u z|Ng%xaL;DWJu{GdX1V7Gi&tsAKqH2&~K+2!V7HzO6V8i zK5oscj_gW?i1>SAxBIv6iti9wrBbz#P(ShBlYAPV52Devf;w^_0YLxL8@{>7jZvq| z>I0A`pW6ZSy@Q)b_(*1qatUxk;fo08FPC$>@GtUuD{eqi{U>e_mO_ui=o6A#$+oHr z0_{=09G{3+e{@yTy?)xL!7IUKHjEYo83@%g11)_P=+OVvL2;G)`@nr$2c1z|A0gA8 z_7%71d<*9OrLco^!4V3BdK&X`N$jo;#M=bQ*M2}Zq2M9?Lx`Mow|^-ZIo<+Cl&ADS z{%oaOIFXEFW@u_SFJQ4s6l`coAatf_@gv#rNvN8IV$0rr6Ia2tJ`3?B|7*eyh>>kO zQtrhO#0#fQo}~z9O+f0~UhTH_CG&++SIEDK#UGB&M;=U^+X&<7;^lc}z(wpyRwscVM~}2*__s@VME6M@32TKzAxyluHJ@=c?7ZcZlVAhpA38 z4vt-$XK^A{E8bE*x>1~xZ7;j56P3V6v)>VK4zuwq;i^Wly`VaUnHVx{nPEES-+vvv zKO-t()gfJlcQrRQNOr#|t~TL(34p3v5&+!%Q1&yM9nw(3bm2pC|98Crs@Ecl{YfQX z&%KzUn{l(XJc4$_NdO8LHO7_Ger}h`TMKUP^y)oM zsWHEl#wwrjGh)BSW;r5r#KaHSv3b-trq-}>x^6t;r%j=Ozn zU$%5+AK_JRIwIi||LJH!P-?1R;<9OGW)SZkB>EU#Dd7T`T}9Q?>_3-XS!?q-HN*QXeJ&Rl};mbY2wz9FM~?7gKC9dW{{o-dC2|}?^B#IOHRGm#6T<_neCz-}LaOwYj<7fXrRE;83mrBoa}#l!bnZ;Er%u9tK={{ABw z;Z`!_)4a%4tRc8k*LLgOG))CpV0qGZfxG zEM?ic|L4V1Ej9Ver5dPCIsAXRj~l>wH-R$9@8n1oChAzE#}V!i9RK1*+%|pWlVpK< zsr;AE+Aq-R#UKaIouxNzY5D6FoRv>{RLTx&*lk!&vEeX*R zT}c(MjYXtGU@nX3zmyDrh4d5+G@dSs4LkyFiy9^~9=UCA)g#6R;TtZ$~J`(*1?zctl9m2O=Gu?+L% z{q1$-=y3etHvX-PnR-3TybB6P|L5m`B8$ZN5N(;okubne?%@9e00960%ynl}lUdjH zV`Y$LK~SWqh>TLALMYN4Q2`MUkzS%yAyPw6NK~W=5|Jh$fJhU8(0db*P7)CzlmJ2? zp$7;MLVbfc&+x6~tmp4{*7>pb+3mXa+4s4NOY6&p5hqWAyDjH(uRb&tDtfGS{}|{F z=FoQ(MDbxM%}81gePq#Gi{j!fTr%#H*(`S&8!ZetiQvblTF2sFL9IHpE-{=Cc&-`- z%&p-CjCWD7Ao688wb7-4Lly)n0rFgq=Bep_<-Wm*RPMJ5k6$=vm7s0fS(}xGn&TH+ zX+{@)uZb?HRN608i&a$Gc+ottAQv=?q{*H}js%|B;(%eXv9YW`mLLNF3zjLLKVH6!qhQyBx*?8R4y0BgysA7!CN$(Ma>Q7LPhkr@q!777J^ z!*ARax^mkd{@kE6tA<^tN2t2z-ln)?T~A66Z>r@)pWUncgo~VxO8Dd=#I`rPEOFj& z35c*;JvNZU;%x((Fo|EX{Y!vdI~d%r(Jp6-O*TK4+eA6(ar>3^X~P3rstO$77c1lD zpcx0OaG~0<_Ak@xWI360xu%X_W=Q6j?c%dG)(mW^O_DuT6=(faR06}RMR7^hG zF_3Iu+M2)>IH^x3R|qp|)zibClO8+A3O(24yyI;mXDJ`a=LL@uwK>E)Mitt*19(wx zIb#vSF!-#RHSiV_98m%tjx~Id?RLS%W-@?{-d*!W$+A@YV623xu3?n2l6{)wP)z$t zn8^dVfJh)<5a;mzQ8VN14-^Xi;;~|Pr%hT_z`?sW6HX8->q$0}!A`D&!#`NIM;RSb zs7%+m)O1)w$f+HUY=FEsrNoP|2Iv!Pj#9aRZJ`^Ezzko(hmfPvBRXjnHD|ZX&3L5} zDoh>3+bj6DC5x^DHqX<$6_TJZ~`305j2d|U5_w9(bK zg?rCnkR@P7&&K=-!(*d8^IASH%*U$ZWR zzorx>_IYn{$P!&>z>E|&2)cn^bf-#b~V^eb0>tqvk9EOEcuMY1%Xud|}DGqZcA|^5;X!@0D z%Z`GJd}YX_>k{HyNAUxaQyh#xRxS=i)}O&}J6{oGhHOaqVX*{Q+_@kV$hFb8LhGoE z&#oYk%rXaTYpj(&T{Cggi$ShwBwA1*yVnqF+*#Wur+0Z_-uU*&n2Gvf@U^&7$^MFK zPtE~!o(?rgX@|{H=g~V16+jRgFo;U?HVhNfJ+;~U{;El44S#J?*~O1}WcTfp z#|NXG;cyoji(~{74iSb8iGrzbnud4XzKV$mRUEY=V*BK|wbvF!aMV1^sL``g^fnWx`&k^>eP*&NQ`QRn|nja*&BabR8 zC`twBLH*a`(61LH$zyu)^i`+t{lg=1KbX(CE%Unr1zp2rJuIE#J8S4{WVD zuNPLH=?;T$Ek}5vHM99S3a0+H(%mfMYvqzIjwk<20HWFqlm;$uRlbaepslj9!a=*R zAvmUyvcvTt28@%ZRFE&BcN6SnRt$nLQI=!mcc4>Tc6@(%v;Xw1AfuVromeOT6ZFr( zNV#2_JApp?DgSSg|0-PnW}uAxW5EB|$^Hvg$R1d~#2uw-0<{O?uJ}s{`Zoj3HM6Jp^~fUrNKj8GPjaF-Yxg$@$+i2kch;Rd-kXrHuTWL2-}a^xj*G z_&syp-KxLp?ux&dyZnm*BKU82-tv3qp}SRg>;4k=C_(?j;B$CSdvwNr&-^yw_p|W# zo%|1jqW_-uh`RljIqd`Z_p|W#o%|0&BJQ{C`7fJ25tHWscq!ISqqZ$6oFV^t_WW!x zgRqf$9`i(0`h2}S#e#{Bj@ow3Wx|Fsor&O~J#tOuPLgV7);S=x{2w`qxKm^|7K+_D zga57Ugzea9QG4Xp-7sc1a($Zrkr{KlQOw2>swn@+Ft>jo%mH`K7(Tz0ov@!ay*;wm zZrD$Ftb63jJrELq52u{)^NjLK`7cAAe_`vjN2cz90No>t?tx(O^DOCagA(riSj&W;Z6WR_wttOs^Ksm!d-)*O!xLF5I`^ zVYl4-+7C?`qq|9QsDX@YC=BDFJ2oPuSxo+uPIbY#h{(uD`sgb5t7U<{iZXPiDKB8q z>D+)%4Z`I5OJmUqA>Q}b0rjoSmGjB6rGo5{Q|^W6c0Mqh3)VKLO| z2&D%Wb;|MgFmr#%cQDL1pB5&S&Is&4k+*P)^;@u7p(VMcda14e;mWb40{%&j;0uDT z{RXX9*SpIFQU~R5A zVC%9>ATATAEPg+GptoK0bjs?zs33RlR)cQOHP@Yee# z?E)3+B97cLzv1zp-{9_UquWrlrKM-X+(Y+ zI#Rescl@CX_rkU2_~ACm+K+Myavf*Iu~x8G4ibqmF)=IjJW$OO<1dPa6=Vzg^Af34 zj1R&bGLV3e>~FWpWB2U=0=85Jkf97=X77Ex;L(u`TM8q}CqzgW#2Id9PTuM-DL7Th zCLtj)>-^ZYPAKcHZSi*TPGhlZo*R|yO;~tGJf_?aj$ErNzS$>Ss?sN(?Q3_)o+MH5 zTDLf^IW{D_wdW`;U^wj4h$oPrI)`yezA%Iwsqvxt#NiI4_kB^BRCBgoOG(f7XC3lO z=bG-x-XM7i=WKr%e(FNH6L@i}HQqyS><5xgSt32b0NB8vaD3%=; z4VdxDe|P=3W6q)=V(|NNakPnRaFuD=nT@+$hiS#{Dx#&Wpk_fvIiL9?t_673@Ci?q z@r4Oou&CKIsFQ7V5qGv|qlUA9a%(eFq_{n^m&_O+|X6Wf?k$LZ~^$u=|kJD|z7 zL&^r9l$^oY)v<)vdLA$DZoDf$k-dR0AXk)Bs=Qi$I$SE!optNyOQ$^)G9Y*Z99`T4 zdvQcvWoL*}ga$(371q#eGZY>bn4UQ#>&9AqwN#t)35|O1lo<_!KOt|6bp-`pN*U&T z<+r)fr2CdQMcA_LWzR4h`|%Tj zvw>_$ZD>tgdD4eJ-NFy`XZ`sMsW9#!3<)z+dK{j_=}4!B22{6dWsq&-T|2^B)NFl~ zy->o2jf%pMzR!{-fVn=;y87l^zKZ7OSHlg?lAJ!MLFT>m(s5h1uRa49`=UY=*oXy) z6@vRZV0PX~d0N}s@Z95tC?H{dAEiK1N9#kOw~S`fkX-zB^gO556k5({l405S(Sb6v_^eTdBP*#2u8b;pz|vdqdr%lg6v04>P7){1ty~wXja< z?p0{~SHcEx9Tj=T+{g&;=O#1NvltC@=19<4N2z=t4e6{>JwUJ5P;s@zMPq9OX557- zGinc?{pjs0XJaN@=$~TB%e< zg%#+YIVeQXO?j zBm~^ncC8aHe(@~{dH^3#+GH`n>e-!13Xkn)*W9g{|d=XC=&!WTfa zSf6Oo(?bb|r<-SVfo>SV&zl41$Mf7JKfP6me-2TN$<8`U1zz%A`Mc-aT_v!m|mte_wOrM7$y-B3?}rPv4}; zgK~Ki^@gM3#_c@F#1460(YSrSSG#aI)NjqWf>0eb%^&Q`AM`4{-COoM-GW%bswT_t zI$4z*}M+Qpq7u14ZVPq{2@8C3>KZ*8~FIFx#dj*654SoKab~Vui4XY)_&l_*&OGm1sW|~ zHNSq*&+4xf&l-0V(P4dAkU|_jResw1^#*FwwtCcpc>5;q#x07g?}jyB*~1uFmw7X- zo**1F3RF!oo6jFIxb;ruyz0X~5xm%O(b0{nv#mSU+1%auXt1JX!_d_a$aIr z?(_OEi^Wtm1!R7yjUWFyN^H8ob!Hz-2|-0CyM*^Fd1F-?JM+tg6o;$sU27=b+&7;A zeB^FK11Qm?=!?>MZiQwN?b$wSR;ENb`aUHqr{?ZnVJP|0llhWQ;4(U44OuwuLr)QW zFXek9&F8J9)bW-@uYn{aULBo0RLM>BS$p6oD3-tWse^ul7BO&VB*hL(q3Ii2&*(>G zE-Y+1d$oW6@I68I14um&XauWixr+oF<5@m0@E+i4?^bp0kIH!kWNH6!I>DyA5Hd+! z;M7PwW9n>wCn3K{JQE9mU4om-$6it^c*4t4b!U6|qQd_06RK1Fjg50jrsqMe+L5=k zT_5!oT*$L6y!_*IMC8Xmp_!YW6X#4HJ@}qoL^F{zXdCCd_VSuQq05YTk7v7)DN-ge z2oC%9B>_PYLzOrEx4~x-C(DP>ya9IDoIr-h&khe7yG^Re^(3(2wV)RrxcRoyP0U5H z`tPhL==*%vBjwV>Z!J&PFKNNmN8{d2RuQ3SiNk}>a{uZshPd`<)V_l^dEOs)KVHd# z*9Vb{2j6-dZ0Yzex<|$f8lbB3ZQ?JOIB}|fPH(NpnyqN%o@!I)Lq;15hm=`-G8^?i z+$>IHr)dSS-<^@D<0aMFh>EYa^g#HttwA>~ug8dp0Xi?%TlN{Z@^wv;aEp%xj30^opz~koG)IY9~(1u%-b(((N09S9#=Aqj7SbvKW1Rv zL>GLjr5H&pu`-@9(}TaBwX$Oy%cKXNDAM~{o$aiMz~6dXBgN88nbi?6NrVUcybJn! zPs>7Y-u-mVZn4b|s|uoB;^F0am~&-1E@|TEk%@UAe~)8N{AVvZMB`qS&wRIOQOFQz9+V7~)2A-6sE2b}V0?+Uk9p+GxaEg|= zh0}OTQ3$=~6+W0vwJCHM)e=2+pLq0Q>(D@)M+TJLC11?XOF;9D#Y_aCOZIqnzVJM? zP?_gdPU2}~iNZKnR*haCayhcj1k0MaFpb~8Ci_Fw{()8zA5q^EqyYu#nY_qe6j}&X5Id-8$I`G&Ek6bLm{mL zjpy!feR`tiWal8SdT=pt*5Y`~^NHknm#Ht!@%v)w>?>@BkuITAq)3<@T;$ROzhf_} z@0QV=A{ee}#66;YY(+%cme%5TVPH+T;y-_TU{CSms)cx&WmgvEOr#8Tpf)epX9A4t_2Tim zLsD3`545hb-+o{v?U_s$F!9_>^?!9eI7_mxJnk~i!*J97q&&TSWhJ@TNn(R>l|%>< z{SVz$NLb@q_WnwRj6-pA5^eWrTQsD3Qz0-AX4?*Y-#mB5NFA0@* z?Cm4*X+Krmkka|uRh`FWeun2aA558^qoxc9QVQ>GI*!@)RvcVIY=kXEvoGZzRa3a3 zPDt}&gFA!OT8(^fb~2qhAxLr0+k~78TiZ)EbUL#(rBWlQX;? zl8TaF2vgu43ILQt$Xv^?T(H!XgRDx`_yaI#x)S?wcGpnMb``2lNB6WC#vqDMZ@i6< zftIY`sNJ zxS!qVuJTGAKc@b+iBW>69H0N7&eW;kcakGpegT>Oq^lwTaUH6Jb_B@uzx6@gAB`f* z*kqY@TbX+9c7Io{a#{W9S8N;5JGD`N$zEu3xnz-R8W*V`rEf)GWIB#fS5tRFq(4oi#Lqviy0yMSRjmX#9M@nB7?VrKi?IUaDLpC1JNTv;oY zc&mp73(;HdthGDJVhRK{ic27|vF?$l!DH!b>=Cnf$0ba+3@YJ81nqQ@?uRc>A>R3nHr)uhRpc`}v_7z4G`0?^1C4S3jHRAa^a0!)~VZ z+WfwVm;d-GMX}Aht~n!bbn2pcGZ$@O9aqG=QH0|L44wRFQs5m0*D*P9pyp~S_o?~G zTl5bMX#JPaaWnGO%4e7E*IuMg#(D2Ui*(HOnN|dxof4vkGH;fN8~iVWhUqjv5OE2| z1-FlAwm{wDHYtfok?NGzGedk8!bjX7YYj6F4<-ZeWLsa|LtG458hjH?o~?2fw{Ue= z%#Axdb{LB#QLMLC`LnieHkHBP4xWvipgQYIO_-N`eqhSbJFx8$mG6dGpE>rvtQJcX z)u6bCdNoOCkohVN@D^vBw5M%XIO!E)KC0f+>$j;Zi?{2sp8&gl!JPE#*?nQy?>b1< z`B@~Dm8T1IP)K;`8x2$wD?TqRd$@ZG{*3>;3Tf!K)1{RCzGY2DtaxcU48ao zJWN~|SVC#Ar;R)E@0UD{S~R_d0&fKC+V!Pvd&jlcRUU(nTxt0&dfYXAL}o=t7&W%P z?CV6(<5kxd@p4c;w7~#9jbIf%R=WAOPx~rzm-@i@O{9ecloAm`8B`N8i_%I(o_yvD zdW#FmDS*7{0M0szPZc#rS?ykmHlA5Xy~}Jd%EmLsYclc1*Bj;*1B2kDIYddxz^uT= zo6WwY&f~#sgIyM}Bpn4?!J;vVL87bOFiL_ug8vUm2W82 zoWcS=MnUSWkPcoSM=N^&9Abf~3JY`ClbNRc&=RXUya_YY8L0biF#Zmr=eT|yb?sB6 z!9?CMYzpf}O~bmg?g1}xgBO{qC86c)RoR+Q4`)QT3YDU0@T|9JGY_+cNN$}#F=nqr zTf{)lLS|(;Xwkd1DS)ZiR|B-5%DIC#LuAXP-FqgPS9b;hUMn$k2gQYmi*{k2RcX9c+@60J_6MWlj6K=8r+7D6s9pGjeCe_JghOLRHt{~p ziBD?eOWK6=JVvrw(tM@flF@4IbK;JT;b*iY_H)oH{)y=+1X5pMy_@|%nGY(}7Ejg3fVBAyB;9QOHyE5%~V|~_Hs1V9b=Afae)H20C9!Su*;ckV#>Hg7j+PwVxDf#}5rpt0y*A z-^Fk??-48UzHo(_Sw7q=6Cac$qi=Y5m}``jOB1(kJCkRkR$8XPSm}mLeh&>8%~BSAA@h5x+U$b#CD2c!!#wp zH3%XlnAQ*#zyIs{!`|eiJgj>Wd8s^36CW0Jm@Vqg&-rf`EuQ?nspPv~83bnco)VUA z3af|nDn>K)5eDv7e}cXakf%qEC4BnHr~a0{=Xnv?+2Dda=@TkUr=%^~Om_YZ$C4f* z`uc~^vh7L&r?2T03cj@ZeKkFLQO;h4icUt`_d*jIyB)UImMdNSJn(yOA4b5Tk1Hx+ z`7`~DKdj0LK>#I0(tYh)nKpG3c22-Bz6oZw7v#=~-c{Vzdy?b4vqS6ewftHt60Hx; zt<}1WfCforWMovBb))jN2y(%9VfSorC`mlgGZqG1qq5Hsr*Gh}qNvfN44U34Pu4|3 z9t+I8bIM}@?)!#H9-D^?+3}M0n zYb9^VYjjHA5nC-=)83Fzf`;F@?YvspJV0R+tv-bOII6Ph zb&vTHIvh@NHMN-0by=tB156*L(s%uVBF(TE;UPeG-#|;-euItFteGk6qpm82Eg)vM z^jU~c=+lCM;fa82%OF+mI0}>n5k)RBUty#}MZm5;v~scbk_XI|Q*E=^X#{kwM|mRv z^enB0cBR0SVD)M1W9|>yL+N1MJohZ9MeG<>Grmj3$0Gi0@>*;3)59`sYK#1Hya(rd zlxH=;b;BbJy{Ktp9TyrKk#ye7d8}WMme>)e@bo_)4=LD?v+(EETd?rNN#(?ZsBcp< zC>(dJ9u7QOsJIib(+uq2p%AX+u*j>xUbd<=?&f5xmRJaWI*+V^XyuPIaLd`rj9I^?| zOckT_Z)F@l^2}JbJ2t+me~EH027fD6^5b8)!N!@D$0Y_ix{th!v}>; z?cND6xYP8g4ebr4b7-*`_ld)M`L_@sjnPf$`vb`G!XC*BNq@5$`mBpKKC6ncO?$;YzTV638S)3#uI zkcNPK3mS{T0``KOl}C_T!vw$qfEzdffD-hsyqK_pGNX~LjT6wuiP6B(5$NQ|XkceY z&%(;W#$v+4^q!5u$k8z=X(c+H2_;yMd~y{N60#FCVdy8b26G({LK645ImHD6dr)+7 z`^0PO7Z)K;F;0-MWX}3P?IDC5_d6o;nLrGEUuP|IQ`q1`BIhR&;i8)3uu==*@~D|W zL$Dd8rHjD5mh~Fkj++29929C?)!FWjHE`AM^bmL&o!#q$-OIEh*yzR7UD!>^p9OD$ zbQ$~8(=p8koj8(&KzjC8HIGAoX>a%wavYCV%)#tS+%H-tkKlWU>_5ndj>ax0yQ%S~ zr+LP+rqQxG5D!cC13x0yAbtfaAiOVnW?PJe=0v>n-iG3SdXR8_iSXQ@{n?KJ?f6EU z`U{MWV^hfV?yvZ<19H*>seOb`xo6XN8a6RICmI}K!!gdTRIFS>)Njd}N+C-#Q6=*Z zZnbhQAl#J5J|eZTeXcq<#hJ?Xvv%}^tTTPIMt`cA_DNn~66@`AT}Kq1x&gLHQtu`z ziq`d9A%7xxSfOJ$wl-f@yy${{$eeQ9KKsNL$c}a<_--yWFU*1Wf*XcHQHtLYSs{@r zktz{8Q6upRJ8s@^pn&}lxzWl@DZ^38Gy4OaxMT#HKUx%Oa8zzTi&T@YwyIGZRa2`= z3|+7BRmKG8QsIy4Guin~! z05lR5eSkuuN7CHB%OxdDVMkPn-$Okekx_(+KEdKn-O|1Ad=|HO?1NF^B zkj+!wVFWs8F!8KKVNs5xJ(pZ+5`<-?Nd2mI;72BgwvA#EEB7Y2rs=r5%gv z!Qv9{vL$TGjoRCDTFFGYR0_4YND3W0X?oHRz`ESDj_1iACn*8t4HUs@(pfAbbY=q* zZ{pF1QqIAh`L~`JMwqC71SEpmf7nAb+^=Ui~Vb>%c=G z{JBX==f2}7Q>7$)NM$bZRW*8C5XIm9hyYu4c~sRrbEn-v#W#@67)Ou50+=B5rCXv= z1%6kVj5-PmUN@v5y8$wf*u{)FA9ntYPJcd_UaYYF!Z(9*U52h0jzLEVCa?;CozNpZ zX}>4yxN%6oVTmvmatr>9oc~=Tv6AY$UzA2r{6kz7m}zPD)>g97R0T)|5tQHPa$wc4 z_PKOfSeVslxgwyn?Lq5la^JA^3lPLwjDr0{w#O6akWtAh@q7-lRg@M)SN-Mpqpn7h zq#|~xK07l)ejmr4-{L)tPmVGn+3kl%tt2Wm3oI~bXWAe8GUj2IX~RFDs(!Ixj@^4I zgg9_R2#P@Rar1-&*@ zwwZT^fU)ZCrpSMH?i=0l)bgpNia3F+5V~28Z0fLQYR>GPc!X7T&UfF!PxPsT@4?=f=~PVHW2uxaJ{Rr)5VkJUvL^-+nu&?k zDsP~`^>+{{O_01rl(f)EI5raXValp<&O$Y75A@7px_XxiitYA$6Jjo_5=6}4jv;C_ z@P#;!(#YPU3q!wsi%Y#Gs)>_EYU96@xb$$Kpu3`YKc4c){*V$^1j5)K5d2)yId*v0vv`QxxN>?e5lAwU7ypc$kUm# z0M+8~6R)lk!@i23)wglWlW6ExxHjwLVb1z-tE>+0_d0Gc)88*lm;xZunpb??M4!H3 z61omZEk-KA!#xk$`6` z=yA`A$#08sOZ>Ljx7X2q9d7bdbH_?d{fF_#)IwQGo;E*R43@Y@*p@}=U3E|50e23b zE8B8MHa(^J+&$)$RwFn`z4QdjIU*^Xe2xi(vd|jTc#Bu0HY-ih3zWr`Jqd>)bM>Lz z9ax_EPBEqeClsiZo8T?Ao@fXIjKe7g(mmj8Q)Tpi#fn(mXPD&RQpvr|o8ZqjmOH!9 z&eJ-W`tI&`os+UayX3&KQYxe!RX#XNRZhC1k1(#3`9Byvluy&Rq|9+=k8s0+yMNUg z`tWYw!~1Ti{G6TyGyFR46@J^QO;EAzF5BvXKe@6(Wfm^C9CWsH90mnQu01Y3<$Q+! zW7hw&=8DY{$J@43Wt285v>*2P-|W-aW@2runSbt4(0ec=fYB>*n1)YF3`V=w&dnbk zOWqJ1Qo4{XR2~(~muX3CZ*Yb7t;KYf2@}9!QYqz8Wj%bCr!&f$s;$ zE$D0~N(QRKU9Osx`!?u9i*nhjRc7JNjk2YsT_h)W6Z8ALJn<7pqYGj$UhjE{vJhkB zxH}lF;ig@iV(63>;6M+7xwRak9;<5&tmD&;3R#>_W}iXe?hw+hX1sPH3KX&CUm>sT zvev5Om_JC1TU1Vx$FT5Dx;Dn#hf)D20ZR#x&xNE#WxmJoJS*9-1>Fz z>3|M}3bE-NBW#vi7Tw#Dyqp{YSNa5z59H1Za+`!I)JoRo$Gn;kQ}|Y-fI6A-$s8T7 zE5pR=D^Nv^V&?NXnPw3Jm{IS7#%NG+whj$#94tM&qfwB%?;vT!CP z>S$$Jlqk+;ZDhiShS?4RY=37gA@{E{QCz zBa&*<3b*Hj+<7zaCAtYtm^y+Va7l;7&%qB42p^a_7FF!n24VDe*we!mdRdIAk)u8^ zjwl%oam=#54cDMKSUc_vnSw>9+{|TPa#)sMmaSW0^*&>5YIuLFmywAOf(3aNXA?*` zi(f9`Q&O`fr|(Q-Qv!WL|I%^)s7-VC@QiJ=fXG+2^ z;h7<|*1|8DdG)Ld5NJh8!?Dq=)G!8j>$!vTVR?hTA}i)f#_1_9EmXU)dQM+A3@^Oi zbW%z}_=66es{bOpoVv!OFc8sTPwVMvPcOP5a;!l{!p0+B3I1!`G2dqOVNHB1(hum{ zlEF}BLd=K;$4>k@vMOQqtojlFuPd&n^r*$MRrhHlTM`WzYGbAbT86dYx^P^1mu4KK z$S!mMDUB2c-G)WRmQaj$n&0l;q71d>m7#x<%os+Vf^LX(%tTPHh&xH+_eDh63a;v^ zi~-_)`oZpYm8DRQ`a`TFlO(sa59D7dgchrN!~+2YKfmFW9_1#~ zD7>X><4o*jyVTdADIs5Jr^PzuMT+v4RH{L@(2mGM@IY=|W>syfI$16o)n;f&aCXdh ztk$z9flE&#dBgl%-&VaTVNhjS7PrE??zmD)pZyo38hFW8>j$_NRN}+_mpg0NCNNlQ z;ko$D(zP1HkM5{&-4KGc$6*ehN9PAOH+T6iW%JCN8;N)Db~|8=0TnQ@GPC&shP=Aa zTMD!=6bF@fTFT%IJYgw93A3I9ml`ccRf;EXv{xFoC}5I>AIy|lV=WXFPJ^2|v=qPd z(pAnW>%QNRT1=!FaZ0BA@f}enRZGI;NfH6I8n#9O8y`5KsOX=(be<_L9Kr!i zfa>)vF`Ss}0LYL;J~|GGFybVtDRk$ukPFBYNwW!nfTh)xoMUFyO(tW`WYL?4AN z-PvyCbh9zWcUF36t*`>xF%7v{78a^C~+TNMwPxVYXfO%pA@q^wRmK znfv0g8UCtDZTps5bXLc*<+_Sr>yv`lq<;nQ(+sm)cV|f(!=1teufr#;#;=f8T6p-5fWfMINL=IXovMQrrT&iLgTVFUyaJkusEJ* z*oCR|OOH4dvkMC?fIV|75xgza_et!`l+#R9o=1xqGACxG#;9eW3!d1G9AwG#XQd1` zTrd-gPTmVQD!{*l;dtrEjlCBO^$=T^dU`l}xz{T>Fsf=TKp=v7hcemqtZ%n?I#u3= zx&>=nLg@W`L-c3yZAHV{c8LS!c~wuyOfU{SdTlG;nuM5MEBi+kBVH47SHRAEcHAL+SnOqmIzCM$}Q3i>H0xv4S2SF=p6RdbpWo({Q&qN|wdR@;!IL zvR1!K-qg^*!v6O5&W|HmauK|!*uZvGoB|S9m>Dwz(=TK;%ihx!4;6@ur=fPKE=0BA z#v>;qrgbTh905^84|I6ZJKCadI_MkXlkT}Tt%CyK{_=|`ZWsBG{CrgY@?R2vByd3T zbCLOvwK;-+u@=31u^wQAtABZZin0GL_-5J=HbJRRh#vd~0X4;8hBOi5d4je99V(n# zpHLb61L((9?3mIbDLtpp5c4PtH}IN?vO{e1ye;A8qqn2cD!fgQ6a5e?POCy}+x4O# z$-2%4C(?lWrFb4^l<^^7romPHwb25D*0OQ!+@qp+zZ7@gS3*SM$&q9=hVJB{g-ztg z5{C)G7L+5(;sfJMZS4b4n9aWNu#y*O#lkJ;MxZTH4LjopF%P$VIOaKRRkt8YIP$C{ zM1by^I9M?E6%5Cj%i%McaYH_TLY#xS^q%j$EngSHJQbNL4|ah#@u3e?1y`gn>}7z& zWJI7Ftr%vQZt_z_UT1)NJd-WbuK#)jelqKfb8HUS+nBG^|HLDXiY>y+JOdiiOTdzJ z%(XJh(2yk3PDyhbq)hRA0RJ4M?eCnHDzQ_M^&&9Ljd1jCU+yWhD}<4sLk9cNCGdna zA=9z84i720j$yL%O_FoimAL_(m}nOQn{iw_B+6`srvF}i+>tns=r1T`T>1Q#1C1Qq z3Z9k1)nYu*LTDkI-F1Fy* z$*T=fwB{TFgQi=#lIkQhru1K&iP$@IA^45psn?Q+aHvJXo0igfR6+3cg}TDA-%yrM z0)rzwmd}Tt7mO$AnyklhjZ1J(C5OgBPOZs!wHY0}^yZ%DLc%-hDahIFnSq6nQ_R$vATwGLO$>0 zn>muuJ*YX}YJh8oOtK?bYM4}9j!j9dn%j1kgkyoVeAgcMOi?K5T+_q7zT_uIU?der zXKHo@H(q@ABmxF1YSI38Tm5t9L3&goX4nu*+FW4=`U6~C1>co79==BB8%?IP?<&4a zizdb%Bkq$Qen=}u@D;87j49k(Gh0Hk<<3y~82dAw!80a0N$j)Nj-wL$r0lnpe9({8 zz>Vo*4t*aox`66w>@O53ecM&C1I$XVhg=DLQ;IQ$RDzuzP6h@=kt2nhffV*voDukVpE*xH%YYK%DKy+>)=qoyj; zW~tjUreH|tIv$1i`4ea>Tw|>&Xh;?}Z`)2U#Pq?BRk=iEv-4_h;Qeqy2K<%i~>yS5$iea`UGub&nv}3E|VN1m+nI$pQg)>(5ZP?yy_*_I)Xa|Q<)aj|8*nA{;M@L8K zXbYIr@sP}KB+l*C19G_7Yc^U(G{swsRX5D`=={N@j0+QH43oNxsw;;UZU%Wae-Rv- zfA6mA?K@71Y_-Zl#*4Sk;xxW|yc7NSkx);fPKRM(mwM<6)e1T1ZaD)YCse*KxBSFy zukw}a7WKUiAJ+`@tocGz;kla2pJ{2%yLVaMDJywA5z~#M~$+9xmGC_7()%}+<=z97b@9GN9rt3@XE~%U4JT7 zGj6@F^jPF?TR&}Y?k;v#OE2f(Pt(r{AQDV>(QEXdJjeQpFHQ*+>TN})-B3=xoq^_9 zq)#+eO!GbudW)SaVc9tB4g!K9I{q0<=XjzX+4HX9{g=odIjx$_UY%wgq$YM2n=g_r zd;~^#)a~newpF%?@Oj1`StDL5M)H}kJ0DnbyySS5oSdbF&QL4Y|-4#hwuyx0IuLKJSX{S0FsmZ^(XA`B~sCg9eZ9 zPf_MBJL|{5v{0D5UvE-ei!OTgBxz$l!@z!kax~Tz+}c-wceUo@&db(Md|R=I@%S!E z4rQ1@+qD-eWSu?!?OvosaZ+giv4PpczxQz=9^~fSB6|5mQ zieu?$p(s&2=t5Vdx~zEw9DL75mh|PKnovw4S|aSB(q@?QnL^;i`|I>DDk%6&>~d}K z)7@11SP{WBi+Vym9O?WD=>AJs+7qUAe9+K!D9Ij~iv1sn+7zCyEB~QASb>^PGa@0x7 ztP|yZYHO4E+dYgXmy;6*fyHv34mPvo6F1xDH1}yYJO^>pD&@~}mv4UYwy4{k2BoSK z?w$K!G;g|wOFJBNF_^yqv-lrjeosc2wbjdIpd|DN+Au+zteA=ry`YcQ%4$I@{|pWv3Ih&1|J>#8JE_J9=`@Hk0G z%CfV^2sWO8(9nzl^>9TL<$=re6O(hS-6b+4H1>QqW>kFTarX?av z_G*XWRLeW|iE#vEuwC>i5Bw6*^?FqnWla&$a0Rt27qrp;-a=~zP&w2J$Y5@0YisGq zU~KMaXJz0{Z)@jdZfoQCN5g?p%t+v%nSl?UPz#gWqCD{H+c8SP1}^_B{PfdzLl^X6H_(RtoA5B~e}zGHYeq*WcPpTy84&37M;ZII z3Wj|%WDGC>z!d2GWWQ1LK=tw8YvZnFKu|r>$(G*Kmfi;F_Mdv>Yht1VN1Gd{&vtYF ztG4-HXg=5&%4^~u?r^jN8ae)1W@n2YjSv6qqhz|0H7HG08srG z3)<&{#eoig*VW0vo!-d6$;j+avIEf3$oXHKz{gYZrW>T0sUZM>_ZyW}>^0TV$-&vk z>0i`)M7`ySLI(iG6#xL--#|=ie*>ADnp^z~r?)lry9&r1#7Y1F!Ec;v^Vb{)pb^Mi zpv&-|EjCTUoZka#RBYI5R1nBJzgx`C!4?$dw*RKp2LSkaIOt0?MgHGVN&kQ{0)i$| z{7VDlu=Y`hkN|)gQ272Ha}u?GLm440{-Nwnl?Vo}8mj0LUH~>IGJODub8&GQGHPG7D*co(%{TXN`&NfE> z$%_9J!4;PfyxeF2fR!u&K>iyxWA~r2^q}@Tm>W7f{hKjy5slZlK;ibT@--6Y*K4FD z(B0M6!T2v#tqtt{#Xk&Sfe_rFUT#<)0HFCz%OrHLS5aeb`)9kI%z*SJ=2k$EQ5~It z*8gl&_JXx%UQnuoBLoHaZ(J;zzj1Ax96)yc)0qEE>*Vx1l>uFDM>emcD30wl4d`HH zU}H*eWp3zT;9&l5rj#A{(Txlu9+&_Cw7=;`B=I+*jk7h-!NBmpjt6B1pn>(j7}PPy zb(I_h&X9Y3?YL^c1{(tnolQ;uHPQ>HN%Ubr$)QFa03i8I$2ptVC?i{II|rZ{(B_W> z@h_^yGgwiOgCerc>9rLJeg4KXa0JqWCQ2Fq>2hE1=Q2OWv0RFhk_up4Om~h$OPGI0@ zZbbiQH}lWhf_<5;xCHfozMw$=J#&c9{4>nf4&-+y+kfk%WE(bi*1bWQBlxvJJy%`> z|1;Ul(uLmE&=Kh10vbiy*_giW_S$Kyp=_JM0I>sLue!ZVZSYr@<9~>M1rgAJ9%yCm zX8w=V*VEwsXGJ9}$bY8(eNx-oR_| x*W>s9iHEX6{>y0oHRJUN`F{*^w%-{4|M9YdG!*n7;-sLzMo>niWrqYE{U0T!1Q7rL diff --git a/downloads/books/meta-programming-in-elixir.epub b/downloads/books/meta-programming-in-elixir.epub deleted file mode 100644 index 2130a74979c30f4f0fd5690b940f977762840954..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22056 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

    ?LmY^ailRYG9 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%0A&* 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 t9$~}U{Jd=> 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 diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index a5e3b2c99..031c6b7e4 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -18,12 +18,6 @@ Let's get started! > If you find any errors in the tutorial or on the website, [please report a bug or send a pull request to our issue tracker](https://github.com/elixir-lang/elixir-lang.github.com). -> The Elixir guides are also available in EPUB format: -> -> * [Getting started guide](https://elixir-lang.org/downloads/books/elixir-getting-started-guide.epub) -> * [Mix and OTP guide](https://elixir-lang.org/downloads/books/mix-and-otp.epub) -> * [Meta-programming guide](https://elixir-lang.org/downloads/books/meta-programming-in-elixir.epub) - ## Installation If you haven't yet installed Elixir, visit our [installation page](/install.html). Once you are done, you can run `elixir --version` to get the current Elixir version. diff --git a/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown index 367ddbc1e..1447ef509 100644 --- a/getting-started/meta/quote-and-unquote.markdown +++ b/getting-started/meta/quote-and-unquote.markdown @@ -7,12 +7,6 @@ category: Meta-programming in Elixir This guide aims to introduce the meta-programming techniques available in Elixir. The ability to represent an Elixir program by its own data structures is at the heart of meta-programming. This chapter starts by exploring those structures and the associated `quote` and `unquote` constructs, so we can take a look at macros in the next chapter and finally build our own domain specific language. -> The Elixir guides are also available in EPUB format: -> -> * [Getting started guide](https://repo.hex.pm/guides/elixir/elixir-getting-started-guide.epub) -> * [Mix and OTP guide](https://repo.hex.pm/guides/elixir/mix-and-otp.epub) -> * [Meta-programming guide](https://repo.hex.pm/guides/elixir/meta-programming-in-elixir.epub) - ## Quoting The building block of an Elixir program is a tuple with three elements. For example, the function call `sum(1, 2, 3)` is represented internally as: diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 05ed0aabc..820ddb545 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -46,12 +46,6 @@ In this chapter, we will create our first project using Mix and explore differen > > The final code for the application built in this guide is in [this repository](https://github.com/josevalim/kv_umbrella) and can be used as a reference. -> The Elixir guides are also available in EPUB format: -> -> * [Getting started guide](https://repo.hex.pm/guides/elixir/elixir-getting-started-guide.epub) -> * [Mix and OTP guide](https://repo.hex.pm/guides/elixir/mix-and-otp.epub) -> * [Meta-programming guide](https://repo.hex.pm/guides/elixir/meta-programming-in-elixir.epub) - ## Our first project When you install Elixir, besides getting the `elixir`, `elixirc` and `iex` executables, you also get an executable Elixir script named `mix`. From feb3fc94af0da5950077c2e7e7fcee4fb6d633bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 15 Jul 2023 10:00:17 +0200 Subject: [PATCH 1609/1761] Release v1.15.3 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 8059de3a0..7e10b1da5 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_15: name: v1.15 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.15.2 + version: 1.15.3 v1_14: name: v1.14 From 99d6e43fdfa45ad968be35220f28252cdcd93ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 18 Jul 2023 13:15:53 +0200 Subject: [PATCH 1610/1761] Release v1.15.4 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 7e10b1da5..e5be50ba9 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_15: name: v1.15 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.15.3 + version: 1.15.4 v1_14: name: v1.14 From aa11be600f78a70e6e3832551840ba12f83fb565 Mon Sep 17 00:00:00 2001 From: Patrick van de Glind Date: Tue, 18 Jul 2023 15:01:30 +0200 Subject: [PATCH 1611/1761] Debian/Ubuntu alternate (#1705) --- install.markdown | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/install.markdown b/install.markdown index 5c481ddc7..90e0eb55b 100644 --- a/install.markdown +++ b/install.markdown @@ -52,7 +52,16 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se * Run: `pacman -S elixir` - **Debian** - * Run: `sudo apt-get install elixir` + * Run: `sudo apt install elixir` + + - **Debian** (and **Ubuntu**) alternative + * Use the [RabbitMQ Packages](https://launchpad.net/~rabbitmq) (might not be up-to-date however likely newer than the distribution) + + ```bash + $ sudo add-apt-repository ppa:rabbitmq/rabbitmq-erlang + $ sudo apt update + $ sudo apt install elixir + ``` - **Fedora 21 (and older)** * Run: `yum install elixir` @@ -81,7 +90,7 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se * Run: `eopkg install elixir` - **Ubuntu** - * Run: `sudo apt-get install elixir` + * Run: `sudo apt install elixir` - **Void Linux** * Run: `xbps-install -S elixir` From 3a4be9a8626eb5654e54b2bab3cfe7b3d5838004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20K=C3=B6=C3=B6k?= Date: Fri, 4 Aug 2023 13:19:53 +0000 Subject: [PATCH 1612/1761] Remove links to Slack (#1707) It's not possible to join the Slack without being invited. Getting an invite currently means that you actually have to go to one of the other communities and then ask for an invite. --- _includes/important-links.html | 1 - install.markdown | 1 - 2 files changed, 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index b5f6a72da..d1e54d844 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -23,7 +23,6 @@

    Join the Community

  • @elixirlang on Twitter
  • #elixir on irc.libera.chat
  • Elixir Forum
  • -
  • Elixir on Slack
  • Elixir on Discord
  • Meetups around the world
  • Wiki with events and resources maintained by diff --git a/install.markdown b/install.markdown index 90e0eb55b..85745cc2e 100644 --- a/install.markdown +++ b/install.markdown @@ -216,7 +216,6 @@ After Elixir is up and running, it is common to have questions as you learn and * [#elixir on irc.libera.chat](irc://irc.libera.chat/elixir) * [Elixir Forum](http://elixirforum.com) - * [Elixir on Slack](https://elixir-lang.slack.com) * [Elixir on Discord](https://discord.gg/elixir) * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) From c1409a54d573f2152b5babf3d799183a358b502f Mon Sep 17 00:00:00 2001 From: Grant Hutchins Date: Sun, 6 Aug 2023 03:32:21 -0500 Subject: [PATCH 1613/1761] Update URL for link to Elixir Koans (#1709) The previous URL seems to have been overtaken by a spam site. We can link to the GitHub repository instead which has a README that can guide people through how to get started. --- learning.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learning.markdown b/learning.markdown index 5d97c6042..d4d9eaa38 100644 --- a/learning.markdown +++ b/learning.markdown @@ -251,7 +251,7 @@ Combined with books, tutorials and screencasts, using flashcards is the killer c

    Elixir Koansfree

    -
    Elixir Koans +Elixir Koans Elixir koans is a fun, easy way to get started with the Elixir programming language. It is an idiomatic tour of the language. From e874d499ee9fc5c204b361f1d2d5938ce9c7490f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 00:30:27 +0200 Subject: [PATCH 1614/1761] Bump commonmarker from 0.23.9 to 0.23.10 (#1711) Bumps [commonmarker](https://github.com/gjtorikian/commonmarker) from 0.23.9 to 0.23.10. - [Release notes](https://github.com/gjtorikian/commonmarker/releases) - [Changelog](https://github.com/gjtorikian/commonmarker/blob/v0.23.10/CHANGELOG.md) - [Commits](https://github.com/gjtorikian/commonmarker/compare/v0.23.9...v0.23.10) --- updated-dependencies: - dependency-name: commonmarker dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2e71f3824..f513988f4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,7 +13,7 @@ GEM execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.23.9) + commonmarker (0.23.10) concurrent-ruby (1.2.2) dnsruby (1.61.9) simpleidn (~> 0.1) From 92452a3a76e9dd7408520f07a52e453e10fbfcac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 14 Aug 2023 12:43:52 +0200 Subject: [PATCH 1615/1761] Mention gotcha on Elixir v1.15, closes #1712 --- getting-started/debugging.markdown | 57 +++++++----------------------- 1 file changed, 12 insertions(+), 45 deletions(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index 5d6acde59..c7e3837b5 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -118,50 +118,6 @@ When code calling `dbg` is executed via `iex`, IEx will ask you to "stop" the co Similar to `dbg`, once a breakpoint is reached code execution stops until `continue` or `next` are invoked. However, `break!/2` does not have access to aliases and imports from the debugged code as it works on the compiled artifact rather than on source code. -## Debugger - -For those who enjoy breakpoints but are rather interested in a visual debugger, Erlang/OTP ships with a graphical debugger conveniently named `:debugger`. Let's define a module in a file named `example.ex`: - -```elixir -defmodule Example do - def double_sum(x, y) do - hard_work(x, y) - end - - defp hard_work(x, y) do - x = 2 * x - y = 2 * y - - x + y - end -end -``` - -Now let's compile the file and run an IEx session: - -```console -$ elixirc example.ex -$ iex -``` - -Then start the debugger: - -```elixir -iex> :debugger.start() -{:ok, #PID<0.87.0>} -iex> :int.ni(Example) -{:module, Example} -iex> :int.break(Example, 3) -:ok -iex> Example.double_sum(1, 2) -``` - -> If the `debugger` does not start, here is what may have happened: some package managers default to installing a minimized Erlang without WX bindings for GUI support. In some package managers, you may be able to replace the headless Erlang with a more complete package (look for packages named `erlang` vs `erlang-nox` on Debian/Ubuntu/Arch). In others managers, you may need to install a separate `erlang-wx` (or similarly named) package. - -When you start the debugger, a Graphical User Interface will open on your machine. We call `:int.ni(Example)` to prepare our module for debugging and then add a breakpoint to line 3 with `:int.break(Example, 3)`. After we call our function, we can see our process with break status in the debugger: - -Debugger GUI GIF - ## Observer For debugging complex systems, jumping at the code is not enough. It is necessary to have an understanding of the whole virtual machine, processes, applications, as well as set up tracing mechanisms. Luckily this can be achieved in Erlang with `:observer`. In your application: @@ -171,7 +127,18 @@ $ iex iex> :observer.start() ``` -> Similar to the `debugger` note above, your package manager may require a separate installation in order to run Observer. +> When running `iex` inside a project with `iex -S mix`, `observer` won't be available as a dependency. To do so, you will need to call the following functions before: +> +> ```elixir +> iex> Mix.ensure_application!(:wx) +> iex> Mix.ensure_application!(:runtime_tools) +> iex> Mix.ensure_application!(:observer) +> iex> :observer.start() +> ``` +> +> If any of the calls above fail, here is what may have happened: some package managers default to installing a minimized Erlang without WX bindings for GUI support. In some package managers, you may be able to replace the headless Erlang with a more complete package (look for packages named `erlang` vs `erlang-nox` on Debian/Ubuntu/Arch). In others managers, you may need to install a separate `erlang-wx` (or similarly named) package. +> +> There are conversations to improve this experience in future releases. The above will open another Graphical User Interface that provides many panes to fully understand and navigate the runtime and your project: From beb7f585fdfdc58f2d913988a53799c3adb05e04 Mon Sep 17 00:00:00 2001 From: Uwe Krause Date: Tue, 15 Aug 2023 10:02:06 +0200 Subject: [PATCH 1616/1761] Harmonize note about needed dependencies for observer. (#1713) --- .../mix-otp/dynamic-supervisor.markdown | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index c76c1b69f..eca686ed3 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -169,12 +169,25 @@ Since we have relied only on a non-shared partition of the bucket supervisor so Now that we have defined our supervision tree, it is a great opportunity to introduce the Observer tool that ships with Erlang. Start your application with `iex -S mix` and key this in: ```elixir -iex> :observer.start +iex> :observer.start() ``` -A GUI should pop-up containing all sorts of information about our system, from general statistics to load charts as well as a list of all running processes and applications. +> #### Missing dependencies {: .warning} +> +> When running `iex` inside a project with `iex -S mix`, `observer` won't be available as a dependency. To do so, you will need to call the following functions before: +> +> ```elixir +> iex> Mix.ensure_application!(:wx) +> iex> Mix.ensure_application!(:runtime_tools) +> iex> Mix.ensure_application!(:observer) +> iex> :observer.start() +> ``` +> +> If any of the calls above fail, here is what may have happened: some package managers default to installing a minimized Erlang without WX bindings for GUI support. In some package managers, you may be able to replace the headless Erlang with a more complete package (look for packages named `erlang` vs `erlang-nox` on Debian/Ubuntu/Arch). In others managers, you may need to install a separate `erlang-wx` (or similarly named) package. +> +> There are conversations to improve this experience in future releases. -> Note: If `observer` does not start, here is what may have happened: some package managers default to installing a minimized Erlang without WX bindings for GUI support. In some package managers, you may be able to replace the headless Erlang with a more complete package (look for packages named `erlang` vs `erlang-nox` on Debian/Ubuntu/Arch). In others managers, you may need to install a separate `erlang-wx` (or similarly named) package. Alternatively, you can skip this section and continue the guide. +A GUI should pop-up containing all sorts of information about our system, from general statistics to load charts as well as a list of all running processes and applications. In the Applications tab, you will see all applications currently running in your system alongside their supervision tree. You can select the `kv` application to explore it further: From 63ea2f8c7ff9b4bf919c44c387b117bd5add27da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 19 Aug 2023 12:08:05 +0200 Subject: [PATCH 1617/1761] Fix undefined variable message Closes #1714. --- getting-started/pattern-matching.markdown | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index f1e2108e1..82c759119 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -34,11 +34,9 @@ A variable can only be assigned on the left side of `=`: ```elixir iex> 1 = unknown -** (CompileError) iex:1: undefined function unknown/0 +** (CompileError) iex:1: undefined variable "unknown" ``` -Since there is no variable `unknown` previously defined, Elixir assumed you were trying to call a function named `unknown/0`, but such a function does not exist. - ## Pattern matching The match operator is not only used to match against simple values, but it is also useful for destructuring more complex data types. For example, we can pattern match on tuples: From 34fca5e0e23bcab846ceed24dcd8456a77c8d225 Mon Sep 17 00:00:00 2001 From: Jean Klingler Date: Sun, 20 Aug 2023 15:04:56 +0900 Subject: [PATCH 1618/1761] Update undefined variable error messages (#1715) --- getting-started/try-catch-and-rescue.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index 330bfabb9..e1a6d393d 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -124,7 +124,7 @@ rescue end ``` -In the example above, we rescued the exception, logged it, and then re-raised it. We use the `__STACKTRACE__` construct both when formatting the exception and when re-raising. This ensures we reraise the exception as is, without changing value or its origin. +In the example above, we rescued the exception, logged it, and then re-raised it. We use the `__STACKTRACE__` construct both when formatting the exception and when re-raising. This ensures we reraise the exception as is, without changing value or its origin. Generally speaking, we take errors in Elixir literally: they are reserved for unexpected and/or exceptional situations, never for controlling the flow of our code. In case you actually need flow control constructs, *throws* should be used. That's what we are going to see next. @@ -252,7 +252,7 @@ iex> try do ...> _ -> what_happened = :rescued ...> end iex> what_happened -** (CompileError) undefined function: what_happened/0 +** (CompileError) undefined variable "what_happened" ``` Instead, you should return the value of the `try` expression: @@ -278,7 +278,7 @@ iex> try do ...> rescue ...> _ -> another_what_happened ...> end -** (CompileError) undefined function: another_what_happened/0 +** (CompileError) undefined variable "another_what_happened" ``` This finishes our introduction to `try`, `catch`, and `rescue`. You will find they are used less frequently in Elixir than in other languages. From 7295e865d2ab5bb2b01855354ff58fd06e697021 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 23:42:02 +0200 Subject: [PATCH 1619/1761] Bump activesupport from 7.0.4.3 to 7.0.7.2 (#1716) Bumps [activesupport](https://github.com/rails/rails) from 7.0.4.3 to 7.0.7.2. - [Release notes](https://github.com/rails/rails/releases) - [Changelog](https://github.com/rails/rails/blob/v7.0.7.2/activesupport/CHANGELOG.md) - [Commits](https://github.com/rails/rails/compare/v7.0.4.3...v7.0.7.2) --- updated-dependencies: - dependency-name: activesupport dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f513988f4..195c57b7c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.0.4.3) + activesupport (7.0.7.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -86,7 +86,7 @@ GEM activesupport (>= 2) nokogiri (>= 1.4) http_parser.rb (0.8.0) - i18n (1.12.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) jekyll (3.9.3) addressable (~> 2.4) @@ -211,7 +211,7 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.18.0) + minitest (5.19.0) nokogiri (1.14.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) From 57b69e9dd593c9313f4f9a1e3a19ea46fb96d66a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20K=C3=B6=C3=B6k?= Date: Fri, 25 Aug 2023 15:35:17 +0300 Subject: [PATCH 1620/1761] Fix links to Discord's blog (#1717) https://blog.discord.com has changed to https://discord.com/blog --- ...ime-communication-at-scale-with-elixir-at-discord.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown b/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown index e3beee727..669578ae6 100644 --- a/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown +++ b/_posts/2020-10-08-real-time-communication-at-scale-with-elixir-at-discord.markdown @@ -51,9 +51,9 @@ The chat infrastructure developers are not the only ones touching the Elixir cod To run at this scale, Discord learned how to leverage the Erlang VM's power, its community, and when to recognize challenges that require them to reach for their own solutions. -For example, Discord uses [Cowboy](https://github.com/ninenines/cowboy/) for handling WebSocket connections and TCP servers. To manage data bursts and provide load regulation, such as back-pressure and load-shedding, they use [GenStage](https://github.com/elixir-lang/gen_stage), which they have [discussed in detail in the past](https://blog.discord.com/how-discord-handles-push-request-bursts-of-over-a-million-per-minute-with-elixirs-genstage-8f899f0221b4). +For example, Discord uses [Cowboy](https://github.com/ninenines/cowboy/) for handling WebSocket connections and TCP servers. To manage data bursts and provide load regulation, such as back-pressure and load-shedding, they use [GenStage](https://github.com/elixir-lang/gen_stage), which they have [discussed in detail in the past](https://discord.com/blog/how-discord-handles-push-request-bursts-of-over-a-million-per-minute-with-elixirs-genstage). -Other times, the efforts of the company and the community go hand in hand. That was the case when Discord used [the Rustler project](https://github.com/rusterlium/rustler), which provides a safe bridge between Elixir and Rust, to [scale to 11 million concurrent users](https://blog.discord.com/using-rust-to-scale-elixir-for-11-million-concurrent-users-c6f19fc029d3). They used the Rustler to hook a custom data structure built in Rust directly into their Elixir services. +Other times, the efforts of the company and the community go hand in hand. That was the case when Discord used [the Rustler project](https://github.com/rusterlium/rustler), which provides a safe bridge between Elixir and Rust, to [scale to 11 million concurrent users](https://discord.com/blog/using-rust-to-scale-elixir-for-11-million-concurrent-users). They used the Rustler to hook a custom data structure built in Rust directly into their Elixir services. However, the team has made abundantly clear that the powerhouse is the Erlang platform. Every time they had to push their stack forward, they never felt cornered by the technology. Quite the opposite, their engineers could always build efficient solutions that run at Discord's scale, often in a few hundred lines of code. Discord frequently gives these projects back to the community, as seen in [Manifold](https://github.com/discord/manifold) and [ZenMonitor](https://github.com/discord/zen_monitor). From dbae1bf623e005f9c8d4808af2509b96b31e7cd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 28 Aug 2023 14:53:03 +0200 Subject: [PATCH 1621/1761] Release v1.15.5 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index e5be50ba9..d3866a6a7 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_15: name: v1.15 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.15.4 + version: 1.15.5 v1_14: name: v1.14 From e408efc2c40a3de818b1997f46d431f2066008be Mon Sep 17 00:00:00 2001 From: Uwe Krause Date: Mon, 28 Aug 2023 18:13:58 +0200 Subject: [PATCH 1622/1761] remove not working markdown for hint/warning (#1718) See https://github.com/elixir-lang/elixir-lang.github.com/issues/1712 --- getting-started/mix-otp/dynamic-supervisor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index eca686ed3..bb0d7c8a4 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -172,7 +172,7 @@ Now that we have defined our supervision tree, it is a great opportunity to intr iex> :observer.start() ``` -> #### Missing dependencies {: .warning} +> ### Missing dependencies > > When running `iex` inside a project with `iex -S mix`, `observer` won't be available as a dependency. To do so, you will need to call the following functions before: > From 51b03c2e0d9eaf03fa60dd05f374c0ff19d7ddbe Mon Sep 17 00:00:00 2001 From: Paulo Daniel Gonzalez Date: Mon, 28 Aug 2023 18:04:55 -0500 Subject: [PATCH 1623/1761] Add hiring section (#1720) --- _includes/important-links.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index d1e54d844..ee22c3eaa 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -25,8 +25,8 @@

    Join the Community

  • Elixir Forum
  • Elixir on Discord
  • Meetups around the world
  • -
  • Wiki with events and resources maintained by - the community
  • +
  • Jobs and hiring (community wiki)
  • +
  • Events and resources (community wiki)
  • From 715d9e1def77582c8dd15cb949a088f07eabafb6 Mon Sep 17 00:00:00 2001 From: sreeramcoder Date: Thu, 31 Aug 2023 11:45:02 +0530 Subject: [PATCH 1624/1761] Tweak some text in "Keywords and Maps" (#1721) --- getting-started/keywords-and-maps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index ffd4e75e0..69154e4a1 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -207,7 +207,7 @@ iex> map.agee ** (KeyError) key :agee not found in: %{name: "John", age: 23} ``` -This syntax has one large benefit in that it raises if the key does not exist in the map. Sometimes the Elixir compiler may even warn too. This makes it useful to get quick feedback and spot bugs and typos early on. This is also +This syntax has one large benefit in that it raises an exception if the key does not exist in the map. Sometimes the Elixir compiler may even warn too. This makes it useful to get quick feedback and spot bugs and typos early on. This is also the syntax used to power another Elixir feature called "Structs". Elixir developers typically prefer to use the `map.key` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post by José Valim](https://dashbit.co/blog/writing-assertive-code-with-elixir) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. From 4ea9900b2a667e2692d656f0e2d68db57b6be7b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sauv=C3=A9?= <2496407+megametres@users.noreply.github.com> Date: Fri, 15 Sep 2023 22:48:57 -0400 Subject: [PATCH 1625/1761] Remove duplicated word (#1724) --- getting-started/keywords-and-maps.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index 69154e4a1..c41d7d16f 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -194,7 +194,7 @@ iex> map = %{:name => "John", :age => 23} As you can see from the printed result above, Elixir also allows you to write maps of atom keys using the same `key: value` syntax as keyword lists. -When the keys are atoms, we can also also access them using the `map.key` +When the keys are atoms, we can also access them using the `map.key` syntax: ```elixir From 65591e364eabed21bd77f266d335640b8d17ae4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 20 Sep 2023 11:01:10 +0200 Subject: [PATCH 1626/1761] Release v1.15.6 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index d3866a6a7..3dfbd3be1 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_15: name: v1.15 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.15.5 + version: 1.15.6 v1_14: name: v1.14 From a0bc961fdd3048532dba0aabe7cfe45bd47fabd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 20 Sep 2023 17:30:08 +0200 Subject: [PATCH 1627/1761] New blog post on strong arrows (#1725) --- ...9-20-strong-arrows-gradual-typing.markdown | 292 ++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 _posts/2023-09-20-strong-arrows-gradual-typing.markdown diff --git a/_posts/2023-09-20-strong-arrows-gradual-typing.markdown b/_posts/2023-09-20-strong-arrows-gradual-typing.markdown new file mode 100644 index 000000000..96d82a78e --- /dev/null +++ b/_posts/2023-09-20-strong-arrows-gradual-typing.markdown @@ -0,0 +1,292 @@ +--- +layout: post +title: "Strong arrows: a new approach to gradual typing" +author: José Valim +category: Announcements +excerpt: An introduction to strong arrows and how it leverages the Erlang VM to provide sound gradual typing. +--- + +*This is article expands on the topic of gradual set-theoretic typing discussed during my keynote at [ElixirConf US 2023](https://www.youtube.com/watch?v=giYbq4HmfGA).* + +There is an on-going effort [to research and develop a type system for Elixir](https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/), lead by [Giuseppe Castagna](https://www.irif.fr/~gc/), CNRS Senior Researcher, and taken by [Guillaume Duboc](https://www.irif.fr/users/gduboc/index) as part of his PhD studies. + +In this article, we will discuss how the proposed type system will tackle gradual typing and how it relates to set-theoretic types, with the goal of providing an introduction to the ideas [presented in our paper](https://arxiv.org/abs/2306.06391). + +## Set-theoretic types + +The type system we are currently researching and developing for Elixir is based on set-theoretic types, which is to say its operations are based on the fundamental set operations of union, intersection, and negation. + +For example, the atom `:ok` is a value in Elixir, that can be represented by the type `:ok`. All atoms in Elixir as represented by themselves in the type system. A function that returns either `:ok` or `:error` is said to return `:ok or :error`, where the `or` operator represents the union. + +The types `:ok` and `:error` are contained by the type `atom()`, which is an infinite set representing all atoms. The union of the types `:ok` and `atom()` can be written as `:ok or atom()`, and is equivalent to `atom()` (as `:ok` is a subset of `atom()`). The intersection of the types `:ok` and `atom()` can be written as `:ok and atom()`, and is equivalent to `:ok`. + +Similarly, `integer()` is another infinite set representing all integers. `integer() or atom()` is the union of all integers and atoms. The intersection `integer() and atom()` is an empty set, which we call `none()`. The union of all types that exist in Elixir is called `term()`. + +The beauty of set-theoretic types is that we can model many interesting properties found in Elixir programs on top of those fundamental set operations, which in turn we hope to make typing in Elixir both more expressive and accessible. Let's see an example of how a type system feature, called bounded quantification (or bounded polymorphism), can be implemented with set-theoretic types. + +## Upper and lower bounds + +The `identity` function is a function that receives an argument and returns it as is. In Java, it would be written as follows: + +```java +static T identity(T arg) { + return arg; +} +``` + +In TypeScript: + +```typescript +function identity(arg: T): T { + return arg; +} +``` + +Or in Haskell: + +```haskell +id :: a -> a +id arg = arg +``` + +In all of the examples above, we say the function receives an argument of type variable `T` (or type variable `a` in Haskell's case) and return a value of the same type `T`. We call this parametric polymorphism, because the function parameter - its argument - can take many (poly) shapes (morphs). In Elixir, we could then support: + +```elixir +$ a -> a +def identity(arg), do: arg +``` + +Sometimes we may want to further constrain those type variables. As example, let's constraint the identity function in Java to numbers: + +```java +static T identity(T arg) { + return arg; +} +``` + +Or in TypeScript: + +```typescript +function identity(arg: T): T { + return arg; +} +``` + +In Haskell, we can constrain to a typeclass, such as `Ord`: + +```haskell +id :: Ord a => a -> a +id x = x +``` + +In order words, these functions can accept any type as long as they fullfil a given constraint. This in turn is called bounded polymorphism, because we are putting bounds on the types we can receive. + +With all that said, how can we implement bounded polymorphism in set-theoretic types? Imagine we have a type variable `a`, how can we ensure it is bounded or constrained to another type? + +With set-theoretic types, this operation is an intersection. If you have `a and atom()`, `a` can be the type `:foo`. `a` can also be the type `atom()`, which represents all atom types, but `a` cannot be `integer()`, as `integer() and atom()` will return an empty set. In other words, there is no need to introduce a new semantic construct, as intersections can be used to place upper bounds in type variables! Therefore, we could restrict Elixir's identity function to numbers like this: + +```elixir +$ a and number() -> a and number() +def identity(arg), do: arg +``` + +Or course, we can provide syntax sugar for those constraints: + +```elixir +$ a -> a when a: number() +def identity(arg), do: arg +``` + +But at the end of the day it will simply expand to intersections. The important bit is that, at the semantic level, there is no need for additional constructs and representations. + +> Note: for the type-curious readers, set-theoretic types implement [a limited form of bounded quantification *à la* Kernel Fun](http://lucacardelli.name/Papers/OnUnderstanding.pdf). In a nutshell, it means we can only compare functions if they have the same bounds. For example, our type system states `a -> a when a: integer() or boolean()` is not a subtype of `a -> a when a: integer()`. + +We also get lower bounds for free. If intersections allow us to place an upper bound on a type variable, a union is equivalent to a lower bound as it specified the type variable will always be augmented by the union-ed type. For example, `a or atom()` says the result will always include atoms plus whatever else specified by `a` (which may be an atom, `atom()` itself, or a completely disjoint type such as `integer()`). + +Elixir protocols, which is an Elixir construct equivalent to Haskell Typeclasses or Java interfaces, is another example of functionality that can be modelled exclusively with intersections. This is left as an exercise to the reader (or the topic of a future blog post). + +## Enter gradual typing + +Elixir is a functional dynamic programming language. Existing Elixir programs are untyped which means that, a type system needs to have mechanisms to interface existing Elixir code with future statically typed Elixir code. We can achieve this with gradual typing. + +A gradual type system is a type system that defines a `dynamic()` type. It is sometimes written as `?` and sometimes known as the `any` type (but I prefer to avoid `any` because it is too short and too lax in languages like TypeScript). + +In Elixir, the `dynamic()` type means the type is only known at runtime, effectively disabling static checks for that type. But perhaps, more interestingly, we can also place upper and lower bounds on the dynamic type using set operations. As we will soon learn, this will reveal interesting properties about our type system. + +It is often said that gradual typing is the best of both words. Perhaps ironically, that's true and false at the same time. If you use a gradual type system but you never use the `dynamic()` type, then it behaves exactly like a static type system. However, the more you use the `dynamic()` type, the fewer guarantees the type system will give you, the more the `dynamic()` type propagates through the system. Therefore, it is in our interest to reduce the occurrences of the `dynamic()` type as much as possible, and that's what we set out to do. + +## Interfacing static and dynamic code: the trouble with `dynamic()` + +Let's go back to our constrained identity function that accepts only numbers: + +```elixir +$ a -> a when a: number() +def identity(arg), do: arg +``` + +Now imagine that we have some untyped code that calls this function: + +```elixir +def debug(arg) do + "we got: " <> identity(arg) +end +``` + +Since `debug/1` is untyped, its argument will receive the type `dynamic()`. + +`debug/1` proceeds to call `identity` with an argument and then uses the string concatenation operator (`<>`) to concatenate `"we got: "` to the result of `identity(arg)`. Since `identity/1` is meant to return a number and string concatenation requires two strings as operands, there is a typing error in this program. On the other hand, if you call `debug("hello")` at runtime, the code will work and won't raise any exceptions. + +In other words, the static typing version of the program and its runtime execution do not match in behaviour. So how do we tackle this? + +One option is to say that's all behaving as expected. If `debug/1` is untyped, its `arg` has the `dynamic()` type. To type check this program, we specify that `identity(dynamic())` returns the `dynamic()` type, the concatenation of a string with `dynamic()` also returns `dynamic()`, and consequently `debug/1` gets the type `dynamic() -> dynamic()`, with no type errors emitted. + +The trouble is: this is not a very useful choice. Once `dynamic()` enters the system, it _spreads everywhere_, we perform fewer checks, effectively discarding the information that `identity/1` returns a number, and the overall type system becomes less useful. + +Another option would be for us to say: once we call a statically typed function with `dynamic()`, we will ignore the `dynamic()` type. If the function says it returns a `number()`, then it will surely be a number! In this version, `identity(dynamic())` returns `number()` and the type system will catch a type error when concatenating a string with a number. + +This is similar to the approach taken by TypeScript. This means we can perform further static checks, but it also means we can call `debug("foobar")` and that will return the string `"we got: foobar"`! But how can that be possible when the type system told us that `identity` returns a `number()`? This can lead to confusion and surprising results at runtime. We say this system is unsound, because the types at runtime do not match our compile-time types. + +None of our solutions so far attempted to match the static and runtime behaviors, but rather, they picked one in favor of the other. + +But don't despair, there is yet another option. We could introduce runtime checks whenever we cross the "dynamic <-> static" boundaries. In this case, we could say `identity(dynamic())` returns a `number()`, but we will introduce a runtime check into the code to guarantee that's the case. This means we get static checks, we ensure the value is correct at runtime, with the cost of introducing additional checks at runtime. Unfortunately, those checks may affect performance, depending on the complexity of the data structure and on how many times we cross the static <-> dynamic boundary. + +> Note: there is [recent research in using the runtime checks introduced by a gradual type system to provide compiler optimizations](https://arxiv.org/abs/2206.13831). Some of these techniques are already leveraged by the Erlang VM to optimize code based on patterns and guards. + +To summarize, we have three options: + + * Calling static code from dynamic code returns `dynamic()`, dropping the opportunity of further static typing checks (this is sound) + + * Calling static code from dynamic code returns the static types, potentially leading to mismatched types at runtime (this is unsound) + + * Calling static code from dynamic code returns the static types with additional runtime checks, unifying both behaviours but potentially impacting performance (this is sound) + +## Introducing strong arrows + +I have always said that Elixir, thanks to Erlang, is an assertive language. For example, if our identity function is restricted to only numbers, in practice we would most likely write it as: + +```elixir +$ a -> a when a: number() +def identity(arg) when is_number(arg), do: arg +``` + +In the example above, `identity` will fail if given any value that is not a number. We often rely on pattern matching and guards and, in turn, they helps us assert on the types we are working with. Not only that, Erlang's JIT compiler already relies on this information to [perform optimizations](https://www.erlang.org/blog/type-based-optimizations-in-the-jit/) whenever possible. + +We also say Elixir is strongly typed because its functions and operators avoid implicit type conversions. The following functions also fail when their input does not match their type: + +```elixir +$ binary() -> binary() +def debug(string), do: "we got: " <> string + +$ (integer() -> integer()) and (float() -> float()) +def increment(number), do: number + 1 +``` + +`<>` only accepts binaries as arguments and will raise otherwise. `+` only accepts numbers (integers or floats) and will raise otherwise. `+` does not perform implicit conversions of non-numeric types, such as strings to number, as we can see next: + +```elixir +iex(1)> increment(1) +2 +iex(2)> increment(13.0) +14.0 +iex(3)> increment("foobar") +** (ArithmeticError) bad argument in arithmetic expression: "foobar" + 1 +``` + +In other words, Elixir's runtime consistently checks the values and their types at runtime. If `increment` fails when given something else than a number, then it will fail when the `dynamic()` type does not match its input at runtime. This guarantees `increment` returns its declared type and therefore we do not need to introduce runtime type checks when calling said function from untyped code. + +When we look at the `identity`, `debug`, and `increment` functions above, we - as developers - can state that these functions raise when given a value that does not match their input. However, how can we generalize this property so it is computed by the type system itself? To do so, we introduce a concept called **strong arrows**, which rely on set-theoretical types to derive this property. + +The idea goes as follows: a strong arrow is a function that can be statically proven that, when evaluated on values outside of its input types (i.e. its domain), it will error. For example, in our `increment` function, if we pass a `string()` as argument, it won't type check, because `string() + integer()` is not a valid operation. Thanks to set-theoretic types, we can compute all values outside of the domain by computing the negation of a set. Given `increment/1` will fail for all types which are `not number()`, the function is strong. + +By applying this rule to all typed functions, we will know which functions are strong and which ones are not. If a function is strong, the type system knows that calling it with a `dynamic()` type will always evaluate to its return type! Therefore we say the return type of `increment(dynamic())` is `number()`, which is sound and does not need further runtime checks! + +Going back to our `debug` function, when used with a guarded identity, it will be able emit warnings at compile-time, errors at runtime, without introducing any additional runtime check: + +```elixir +$ a -> a when a: number() +def identity(arg) when is_number(arg), do: arg + +def debug(arg) do + "we got: " <> identity(arg) +end +``` + +However, If the `identity` function is not strong, then we must fallback to one of the strategies in the previous section. + +Another powerful property of strong arrows is that they are composable. Let's pick an example from the paper: + +```elixir +$ number(), number() -> number() +def subtract(a, b) do + a + negate(b) +end + +$ number() -> number() +def negate(int), do: -int +``` + +In the example above, `negate/1`'s type is a strong arrow, as it raises for any input outside of its domain. `subtract/2`'s type is also a strong arrow, because both `+` and our own `negate` are strong arrows too. This is an important capability as it limits the capability `dynamic()` types have to spread throughout the system. + +> Errata: my presentation used the type `integer()` instead of `number()` for this example. However, that was a mistake in the slide. Giving the type `integer(), integer() -> integer()` to `subtract` and `integer() -> integer()` to `negate` does not make `subtract` a strong arrow. Can you tell why? + +Luckily, strong arrows can also be leveraged by other gradually typed languages. However, the more polymorphic a language and its functions are, the more unlikely it is to conclude that a given function is strong. For example, in other gradually typed languages such as Python or Ruby, the `+` operator is extensible and the user can define custom types where the operation is valid. In TypeScript, `"foobar" + 1` is also a valid operation, which expands the function domain. In both cases, an `increment` function restricted to numbers would not have a strong arrow type. Therefore, to remain sound, they must either restrict the operands with further runtime checks or return `dynamic()` and reduce the number of compile-time checks. + +There is one last scenario to consider, which I did not include during my keynote for brevity. Take this function: + +```elixir +$ integer() -> :ok +def receives_integer_and_returns_ok(_arg), do: :ok +``` + +The function above can receive any type and return `:ok`. Is its type a strong arrow? Well, according to our definition, it is not. If we negate its input, type checking does not fail, it will still return `:ok`. + +However, given the return type is always the same, it should be a strong arrow! To do so, let's amend and rephrase our definition of strong arrows: we negate the domain (i.e. the inputs) of a function and then type check it. If the function returns `none()` (i.e. it does not type check) or a type which is a subset of its codomain (i.e. its output), then it is a strong arrow. + +## Gradual typing and false positives + +There is one last scenario we must take into consideration when interfacing dynamic and static code. Imagine the following code: + +```elixir +def increment_and_remainder(numerator, denominator) do + rem(numerator, increment(denominator)) +end + +$ (integer() -> integer()) and (float() -> float()) +def increment(number), do: number + 1 +``` + +The `increment_and_remainder/2` function is untyped, therefore both of its arguments receive type `dynamic()`. The function then computes the remainder of the numerator by the denominator incremented by one. For this example, let's assume all uses of `increment_and_remainder/2` in our program passes two integers as arguments. + +Given `increment/1` has a strong arrow type, according to our definition, `increment(dynamic())` will return `integer() or float()` (also known as `number()`). Here lies the issue: if `increment(dynamic())` returns `integer() or float()`, the program above won't type check because `rem/2` does not accept floats. + +When faced with this problem, there are two possible reactions: + +1. It is correct for the function to not type check given increment may return a float + +2. It is incorrect for the function to not type check because the error it describes never occurs in the codebase + +Another interesting property of gradual set-theoretic types is that we can also define upper bounds on the `dynamic()` type. If a function returns `number()`, it means the caller needs to handle both `integer()` and `float()`. However, if a function returns `dynamic() and number()`, it means the type is defined at runtime, but it must still verify it is one of `integer()` or `float()` at compile time. + +Therefore, `rem/2` will type check if its second argument has the type `dynamic() and number()`, as there is one type at runtime (`integer()`) that satisfies type checking. On the other hand, if you attempt to use the string concatenation operator (`<>`) on `dynamic() and number()`, then there is no acceptable runtime type and you'd still get a typing violation! + +Going back to strong arrows, there are two possible return types from a strong arrow: + +1. A strong arrow, when presented with a dynamic type, returns its codomain + +2. A strong arrow, when presented with a dynamic type, returns the intersection of the codomain with the `dynamic()` type + +The second option opens up the possibility for existing codebases to gradually migrate to static types without dealing with false positives. Coming from a dynamic background, false positives can be seen as noisy or as an indication that static types are not worth the trouble. With strong arrows and set-theoretic types, we will be able to explore different trade-offs on mixed codebases. Which of the two choices above we will adopt as a default and how to customize them is yet to be decided. It will depend on the community feedback as we experiment and integrate the type system. + +Erlang and Elixir developers who use Dialyzer will be familiar with these trade-offs, as the second option mirrors Dialyzer's behaviour of no false positives. The difference here is that our semantics are integrated into a complete type system. If no type signature is present, the `dynamic()` type is used, and we will leverage the techniques described here to interface dynamic and static code. If a function has a type signature, and no `dynamic()` type is present, then it will behave as statically typed code when called with statically typed arguments. Migrating to static types will naturally reduce the interaction points between dynamic and static code, eventually removing the reliance on the `dynamic()` type. + +## Summary + +Set-theoretic types allow us to express many typing features based on set operations of union, intersection, and negation. + +In particular, we have been exploring a set-theoretic type system for Elixir, paying special attention to how the type system will integrate with existing codebases and how it can best leverage the semantics of the Erlang Virtual Machine. The type system will also perform limited inference based on patterns and guards (as described in the paper), which - in addition to strong arrows - we hope to bring some of the benefits of static typing to codebases without changing a single line of code. + +While our efforts have officially moved from research into development, and [we have outlined an implementation plan](https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/), we haven't yet fully implemented nor assessed the usability of set-theoretic types in existing Elixir codebases, nor large nor small. There is much to implement and validate, and we don't rule the possibility of finding unforeseen deal breakers that could send us back to square one. Yet we are pleased and cautiously excited with the new developments so far. + +The development of Elixir's type system is sponsored by [Fresha](https://www.fresha.com) ([they are hiring!](https://www.fresha.com/careers/openings?department=engineering)), +[Starfish*](https://starfish.team) ([they are hiring!](https://starfish.team/jobs/experienced-elixir-developer)), +and [Dashbit](https://dashbit.co). From abc7f2973f02adc00c3aa32aed91a81c028d0284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 21 Sep 2023 09:48:58 +0200 Subject: [PATCH 1628/1761] Update 2023-09-20-strong-arrows-gradual-typing.markdown --- ...9-20-strong-arrows-gradual-typing.markdown | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/_posts/2023-09-20-strong-arrows-gradual-typing.markdown b/_posts/2023-09-20-strong-arrows-gradual-typing.markdown index 96d82a78e..38784caac 100644 --- a/_posts/2023-09-20-strong-arrows-gradual-typing.markdown +++ b/_posts/2023-09-20-strong-arrows-gradual-typing.markdown @@ -101,17 +101,17 @@ But at the end of the day it will simply expand to intersections. The important > Note: for the type-curious readers, set-theoretic types implement [a limited form of bounded quantification *à la* Kernel Fun](http://lucacardelli.name/Papers/OnUnderstanding.pdf). In a nutshell, it means we can only compare functions if they have the same bounds. For example, our type system states `a -> a when a: integer() or boolean()` is not a subtype of `a -> a when a: integer()`. -We also get lower bounds for free. If intersections allow us to place an upper bound on a type variable, a union is equivalent to a lower bound as it specified the type variable will always be augmented by the union-ed type. For example, `a or atom()` says the result will always include atoms plus whatever else specified by `a` (which may be an atom, `atom()` itself, or a completely disjoint type such as `integer()`). +We also get lower bounds for free. If intersections allow us to place an upper bound on a type variable, a union is equivalent to a lower bound as it specifies the type variable will always be augmented by the union-ed type. For example, `a or atom()` says the result will always include atoms plus whatever else specified by `a` (which may be an atom, `atom()` itself, or a completely disjoint type such as `integer()`). -Elixir protocols, which is an Elixir construct equivalent to Haskell Typeclasses or Java interfaces, is another example of functionality that can be modelled exclusively with intersections. This is left as an exercise to the reader (or the topic of a future blog post). +Elixir protocols, which is an Elixir construct equivalent to Haskell Typeclasses or Java interfaces, is another example of functionality that can be modelled and composed with set-theoretic types without additional semantics. The exact mechanism to do so is left as an exercise to the reader (or the topic of a future blog post). ## Enter gradual typing -Elixir is a functional dynamic programming language. Existing Elixir programs are untyped which means that, a type system needs to have mechanisms to interface existing Elixir code with future statically typed Elixir code. We can achieve this with gradual typing. +Elixir is a functional dynamic programming language. Existing Elixir programs are untyped, which means that a type system needs mechanisms to interface existing Elixir code with future statically typed Elixir code. We can achieve this with gradual typing. A gradual type system is a type system that defines a `dynamic()` type. It is sometimes written as `?` and sometimes known as the `any` type (but I prefer to avoid `any` because it is too short and too lax in languages like TypeScript). -In Elixir, the `dynamic()` type means the type is only known at runtime, effectively disabling static checks for that type. But perhaps, more interestingly, we can also place upper and lower bounds on the dynamic type using set operations. As we will soon learn, this will reveal interesting properties about our type system. +In Elixir, the `dynamic()` type means the type is only known at runtime, effectively disabling static checks for that type. More interestingly, we can also place upper and lower bounds on the dynamic type using set operations. As we will soon learn, this will reveal interesting properties about our type system. It is often said that gradual typing is the best of both words. Perhaps ironically, that's true and false at the same time. If you use a gradual type system but you never use the `dynamic()` type, then it behaves exactly like a static type system. However, the more you use the `dynamic()` type, the fewer guarantees the type system will give you, the more the `dynamic()` type propagates through the system. Therefore, it is in our interest to reduce the occurrences of the `dynamic()` type as much as possible, and that's what we set out to do. @@ -148,7 +148,7 @@ This is similar to the approach taken by TypeScript. This means we can perform f None of our solutions so far attempted to match the static and runtime behaviors, but rather, they picked one in favor of the other. -But don't despair, there is yet another option. We could introduce runtime checks whenever we cross the "dynamic <-> static" boundaries. In this case, we could say `identity(dynamic())` returns a `number()`, but we will introduce a runtime check into the code to guarantee that's the case. This means we get static checks, we ensure the value is correct at runtime, with the cost of introducing additional checks at runtime. Unfortunately, those checks may affect performance, depending on the complexity of the data structure and on how many times we cross the static <-> dynamic boundary. +But don't despair, there is yet another option. We could introduce runtime checks whenever we cross the "dynamic <-> static" boundaries. In this case, we could say `identity(dynamic())` returns a `number()`, but we will introduce a runtime check into the code to guarantee that's the case. This means we get static checks, we ensure the value is correct at runtime, with the cost of introducing additional checks at runtime. Unfortunately, those checks may affect performance, depending on the complexity of the data structure and on how many times we cross the "dynamic <-> static" boundary. > Note: there is [recent research in using the runtime checks introduced by a gradual type system to provide compiler optimizations](https://arxiv.org/abs/2206.13831). Some of these techniques are already leveraged by the Erlang VM to optimize code based on patterns and guards. @@ -194,7 +194,7 @@ iex(3)> increment("foobar") In other words, Elixir's runtime consistently checks the values and their types at runtime. If `increment` fails when given something else than a number, then it will fail when the `dynamic()` type does not match its input at runtime. This guarantees `increment` returns its declared type and therefore we do not need to introduce runtime type checks when calling said function from untyped code. -When we look at the `identity`, `debug`, and `increment` functions above, we - as developers - can state that these functions raise when given a value that does not match their input. However, how can we generalize this property so it is computed by the type system itself? To do so, we introduce a concept called **strong arrows**, which rely on set-theoretical types to derive this property. +When we look at the `identity`, `debug`, and `increment` functions above, we - as developers - can state that these functions raise when given a value that does not match their input. However, how can we generalize this property so it is computed by the type system itself? To do so, we introduce a new concept called **strong arrows**, which relies on set-theoretical types to derive this property. The idea goes as follows: a strong arrow is a function that can be statically proven that, when evaluated on values outside of its input types (i.e. its domain), it will error. For example, in our `increment` function, if we pass a `string()` as argument, it won't type check, because `string() + integer()` is not a valid operation. Thanks to set-theoretic types, we can compute all values outside of the domain by computing the negation of a set. Given `increment/1` will fail for all types which are `not number()`, the function is strong. @@ -211,7 +211,7 @@ def debug(arg) do end ``` -However, If the `identity` function is not strong, then we must fallback to one of the strategies in the previous section. +However, if the `identity` function is not strong, then we must fallback to one of the strategies in the previous section. Another powerful property of strong arrows is that they are composable. Let's pick an example from the paper: @@ -225,11 +225,11 @@ $ number() -> number() def negate(int), do: -int ``` -In the example above, `negate/1`'s type is a strong arrow, as it raises for any input outside of its domain. `subtract/2`'s type is also a strong arrow, because both `+` and our own `negate` are strong arrows too. This is an important capability as it limits the capability `dynamic()` types have to spread throughout the system. +In the example above, `negate/1`'s type is a strong arrow, as it raises for any input outside of its domain. `subtract/2`'s type is also a strong arrow, because both `+` and our own `negate` are strong arrows too. This is an important capability as it limits how `dynamic()` types spread throughout the system. -> Errata: my presentation used the type `integer()` instead of `number()` for this example. However, that was a mistake in the slide. Giving the type `integer(), integer() -> integer()` to `subtract` and `integer() -> integer()` to `negate` does not make `subtract` a strong arrow. Can you tell why? +> Errata: my presentation used the type `integer()` instead of `number()` for the example above. However, that was a mistake in the slide. Giving the type `integer(), integer() -> integer()` to `subtract` and `integer() -> integer()` to `negate` does not make `subtract` a strong arrow. Can you tell why? -Luckily, strong arrows can also be leveraged by other gradually typed languages. However, the more polymorphic a language and its functions are, the more unlikely it is to conclude that a given function is strong. For example, in other gradually typed languages such as Python or Ruby, the `+` operator is extensible and the user can define custom types where the operation is valid. In TypeScript, `"foobar" + 1` is also a valid operation, which expands the function domain. In both cases, an `increment` function restricted to numbers would not have a strong arrow type. Therefore, to remain sound, they must either restrict the operands with further runtime checks or return `dynamic()` and reduce the number of compile-time checks. +Luckily, other gradually typed languages can also leverage strong arrows. However, the more polymorphic a language and its functions are, the more unlikely it is to conclude that a given function is strong. For example, in other gradually typed languages such as Python or Ruby, the `+` operator is extensible and the user can define custom types where the operation is valid. In TypeScript, `"foobar" + 1` is also a valid operation, which expands the function domain. In both cases, an `increment` function restricted to numbers would not have a strong arrow type, as the operator won't fail for all types outside of `number()`. Therefore, to remain sound, they must either restrict the operands with further runtime checks or return `dynamic()` (reducing the number of compile-time checks). There is one last scenario to consider, which I did not include during my keynote for brevity. Take this function: @@ -238,7 +238,7 @@ $ integer() -> :ok def receives_integer_and_returns_ok(_arg), do: :ok ``` -The function above can receive any type and return `:ok`. Is its type a strong arrow? Well, according to our definition, it is not. If we negate its input, type checking does not fail, it will still return `:ok`. +The function above can receive any type and return `:ok`. Is its type a strong arrow? Well, according to our definition, it is not. If we negate its input, type checking does not fail, it returns `:ok`. However, given the return type is always the same, it should be a strong arrow! To do so, let's amend and rephrase our definition of strong arrows: we negate the domain (i.e. the inputs) of a function and then type check it. If the function returns `none()` (i.e. it does not type check) or a type which is a subset of its codomain (i.e. its output), then it is a strong arrow. @@ -261,11 +261,11 @@ Given `increment/1` has a strong arrow type, according to our definition, `incre When faced with this problem, there are two possible reactions: -1. It is correct for the function to not type check given increment may return a float +1. It is correct for the function to not type check given `increment` may return a float 2. It is incorrect for the function to not type check because the error it describes never occurs in the codebase -Another interesting property of gradual set-theoretic types is that we can also define upper bounds on the `dynamic()` type. If a function returns `number()`, it means the caller needs to handle both `integer()` and `float()`. However, if a function returns `dynamic() and number()`, it means the type is defined at runtime, but it must still verify it is one of `integer()` or `float()` at compile time. +Another interesting property of gradual set-theoretic types is that we can also place upper bounds on the `dynamic()` type. If a function returns `number()`, it means the caller needs to handle both `integer()` and `float()`. However, if a function returns `dynamic() and number()`, it means the type is defined at runtime, but it must still verify it is one of `integer()` or `float()` at compile time. Therefore, `rem/2` will type check if its second argument has the type `dynamic() and number()`, as there is one type at runtime (`integer()`) that satisfies type checking. On the other hand, if you attempt to use the string concatenation operator (`<>`) on `dynamic() and number()`, then there is no acceptable runtime type and you'd still get a typing violation! @@ -275,15 +275,15 @@ Going back to strong arrows, there are two possible return types from a strong a 2. A strong arrow, when presented with a dynamic type, returns the intersection of the codomain with the `dynamic()` type -The second option opens up the possibility for existing codebases to gradually migrate to static types without dealing with false positives. Coming from a dynamic background, false positives can be seen as noisy or as an indication that static types are not worth the trouble. With strong arrows and set-theoretic types, we will be able to explore different trade-offs on mixed codebases. Which of the two choices above we will adopt as a default and how to customize them is yet to be decided. It will depend on the community feedback as we experiment and integrate the type system. +The second option opens up the possibility for existing codebases to gradually migrate to static types without dealing with false positives. Coming from a dynamic background, false positives can be seen as noisy or as an indication that static types are not worth the trouble. With strong arrows and gradual set-theoretic types, we will be able to explore different trade-offs on mixed codebases. Which of the two choices above we will adopt as a default and how to customize them is yet to be decided. It will depend on the community feedback as we experiment and integrate the type system. -Erlang and Elixir developers who use Dialyzer will be familiar with these trade-offs, as the second option mirrors Dialyzer's behaviour of no false positives. The difference here is that our semantics are integrated into a complete type system. If no type signature is present, the `dynamic()` type is used, and we will leverage the techniques described here to interface dynamic and static code. If a function has a type signature, and no `dynamic()` type is present, then it will behave as statically typed code when called with statically typed arguments. Migrating to static types will naturally reduce the interaction points between dynamic and static code, eventually removing the reliance on the `dynamic()` type. +Erlang and Elixir developers who use Dialyzer will be familiar with these trade-offs, as the second option mirrors Dialyzer's behaviour of no false positives. The difference here is that our semantics are integrated into a complete type system. If no type signature is present, the `dynamic()` type is used, and we will leverage the techniques described here to interface dynamic and static code. If a function has a type signature, and no `dynamic()` type is present, then it will behave as statically typed code when called with statically typed arguments. Migrating to static types will naturally reduce the interaction points between dynamic and static code, removing the reliance on the `dynamic()` type. ## Summary Set-theoretic types allow us to express many typing features based on set operations of union, intersection, and negation. -In particular, we have been exploring a set-theoretic type system for Elixir, paying special attention to how the type system will integrate with existing codebases and how it can best leverage the semantics of the Erlang Virtual Machine. The type system will also perform limited inference based on patterns and guards (as described in the paper), which - in addition to strong arrows - we hope to bring some of the benefits of static typing to codebases without changing a single line of code. +In particular, we have been exploring a gradual set-theoretic type system for Elixir, paying special attention to how the type system will integrate with existing codebases and how it can best leverage the semantics of the Erlang Virtual Machine. The type system will also perform limited inference based on patterns and guards (as described in the paper), which - in addition to strong arrows - we hope to bring some of the benefits of static typing to codebases without changing a single line of code. While our efforts have officially moved from research into development, and [we have outlined an implementation plan](https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/), we haven't yet fully implemented nor assessed the usability of set-theoretic types in existing Elixir codebases, nor large nor small. There is much to implement and validate, and we don't rule the possibility of finding unforeseen deal breakers that could send us back to square one. Yet we are pleased and cautiously excited with the new developments so far. From 120aa1274d6ca87c250ba6bfb4ab7d4b971f2447 Mon Sep 17 00:00:00 2001 From: GenericJam Date: Mon, 25 Sep 2023 15:51:20 -0600 Subject: [PATCH 1629/1761] Update 2023-09-20-strong-arrows-gradual-typing.markdown (#1726) --- _posts/2023-09-20-strong-arrows-gradual-typing.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_posts/2023-09-20-strong-arrows-gradual-typing.markdown b/_posts/2023-09-20-strong-arrows-gradual-typing.markdown index 38784caac..9aa5a6997 100644 --- a/_posts/2023-09-20-strong-arrows-gradual-typing.markdown +++ b/_posts/2023-09-20-strong-arrows-gradual-typing.markdown @@ -79,7 +79,7 @@ id :: Ord a => a -> a id x = x ``` -In order words, these functions can accept any type as long as they fullfil a given constraint. This in turn is called bounded polymorphism, because we are putting bounds on the types we can receive. +In other words, these functions can accept any type as long as they fulfill a given constraint. This in turn is called bounded polymorphism, because we are putting bounds on the types we can receive. With all that said, how can we implement bounded polymorphism in set-theoretic types? Imagine we have a type variable `a`, how can we ensure it is bounded or constrained to another type? @@ -90,7 +90,7 @@ $ a and number() -> a and number() def identity(arg), do: arg ``` -Or course, we can provide syntax sugar for those constraints: +Of course, we can provide syntax sugar for those constraints: ```elixir $ a -> a when a: number() @@ -200,7 +200,7 @@ The idea goes as follows: a strong arrow is a function that can be statically pr By applying this rule to all typed functions, we will know which functions are strong and which ones are not. If a function is strong, the type system knows that calling it with a `dynamic()` type will always evaluate to its return type! Therefore we say the return type of `increment(dynamic())` is `number()`, which is sound and does not need further runtime checks! -Going back to our `debug` function, when used with a guarded identity, it will be able emit warnings at compile-time, errors at runtime, without introducing any additional runtime check: +Going back to our `debug` function, when used with a guarded identity, it will be able to emit warnings at compile-time, errors at runtime, without introducing any additional runtime check: ```elixir $ a -> a when a: number() @@ -285,7 +285,7 @@ Set-theoretic types allow us to express many typing features based on set operat In particular, we have been exploring a gradual set-theoretic type system for Elixir, paying special attention to how the type system will integrate with existing codebases and how it can best leverage the semantics of the Erlang Virtual Machine. The type system will also perform limited inference based on patterns and guards (as described in the paper), which - in addition to strong arrows - we hope to bring some of the benefits of static typing to codebases without changing a single line of code. -While our efforts have officially moved from research into development, and [we have outlined an implementation plan](https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/), we haven't yet fully implemented nor assessed the usability of set-theoretic types in existing Elixir codebases, nor large nor small. There is much to implement and validate, and we don't rule the possibility of finding unforeseen deal breakers that could send us back to square one. Yet we are pleased and cautiously excited with the new developments so far. +While our efforts have officially moved from research into development, and [we have outlined an implementation plan](https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/), we haven't yet fully implemented nor assessed the usability of set-theoretic types in existing Elixir codebases, either large or small. There is much to implement and validate, and we don't rule the possibility of finding unforeseen deal breakers that could send us back to square one. Yet we are pleased and cautiously excited with the new developments so far. The development of Elixir's type system is sponsored by [Fresha](https://www.fresha.com) ([they are hiring!](https://www.fresha.com/careers/openings?department=engineering)), [Starfish*](https://starfish.team) ([they are hiring!](https://starfish.team/jobs/experienced-elixir-developer)), From 4fe445db88ede357bb443120ba630cd6770e7c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 14 Oct 2023 12:31:11 +0200 Subject: [PATCH 1630/1761] Release Elixir v1.15.7 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 3dfbd3be1..d33a48967 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_15: name: v1.15 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.15.6 + version: 1.15.7 v1_14: name: v1.14 From 2f2a813cb2374ce0d8b655ba978b3236c1f92fa4 Mon Sep 17 00:00:00 2001 From: Dave Cottlehuber Date: Mon, 16 Oct 2023 15:04:14 +0000 Subject: [PATCH 1631/1761] minor improvements to Debian/Ubuntu based install guide (#1731) $ mix hex.info Hex: 2.0.6 Elixir: 1.15.7 OTP: 26.1.2 Built with: Elixir 1.14.2 and OTP 23.3 --- install.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index 85745cc2e..7fbca6f93 100644 --- a/install.markdown +++ b/install.markdown @@ -60,7 +60,7 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se ```bash $ sudo add-apt-repository ppa:rabbitmq/rabbitmq-erlang $ sudo apt update - $ sudo apt install elixir + $ sudo apt install elixir erlang-dev erlang-xmerl ``` - **Fedora 21 (and older)** From 746af9f8c95cfdbbd051d8f3c29d4fd60246b165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 18 Oct 2023 09:56:50 +0200 Subject: [PATCH 1632/1761] Drop only version --- downloads/logos/elixir-drop-only.png | Bin 0 -> 195691 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 downloads/logos/elixir-drop-only.png diff --git a/downloads/logos/elixir-drop-only.png b/downloads/logos/elixir-drop-only.png new file mode 100644 index 0000000000000000000000000000000000000000..97008feb9fdff9645a4f42e1edb1018a144a7679 GIT binary patch literal 195691 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 Date: Sat, 21 Oct 2023 09:47:21 +0200 Subject: [PATCH 1633/1761] Update debugging.markdown --- getting-started/debugging.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index c7e3837b5..12eb14861 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -127,7 +127,7 @@ $ iex iex> :observer.start() ``` -> When running `iex` inside a project with `iex -S mix`, `observer` won't be available as a dependency. To do so, you will need to call the following functions before: +> When running `iex` inside a project with `iex -S mix`, `observer` won't be available as a dependency from Elixir v1.15. To do so, you will need to call the following functions before: > > ```elixir > iex> Mix.ensure_application!(:wx) From c3aa4e4f113960e2235782a95f8060e7935ee51d Mon Sep 17 00:00:00 2001 From: Dan Ekstrom <885292+0dayfall@users.noreply.github.com> Date: Sun, 22 Oct 2023 09:56:35 +0200 Subject: [PATCH 1634/1761] Update pattern-matching.markdown (#1734) Add printout for last part of tuple example --- getting-started/pattern-matching.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 82c759119..3358d3472 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -48,6 +48,8 @@ iex> a :hello iex> b "world" +iex> c +42 ``` A pattern match error will occur if the sides can't be matched, for example if the tuples have different sizes: From b5256daf3b0e2fb9aa9138667b4900573f65aac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 30 Oct 2023 23:34:57 +0100 Subject: [PATCH 1635/1761] Update events.html --- _includes/events.html | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/_includes/events.html b/_includes/events.html index e6845ed63..0e764f8cb 100644 --- a/_includes/events.html +++ b/_includes/events.html @@ -1,11 +1,4 @@ -
    + From 64e649d88c51b2b96a93310ae3cbca5e562acab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 31 Oct 2023 09:35:31 +0100 Subject: [PATCH 1636/1761] Point to v1.16 (#1738) --- _data/getting-started.yml | 123 ----- _includes/mix-otp-preface.html | 2 - _includes/top.html | 1 - _layouts/getting-started.html | 73 --- _layouts/redirect.html | 14 + ...2012-05-25-elixir-v0-5-0-released.markdown | 4 +- ...2012-08-01-elixir-v0-6-0-released.markdown | 2 +- ...2012-10-20-elixir-v0-7-0-released.markdown | 2 +- ...2012-11-18-elixir-v0-7-1-released.markdown | 2 +- ...2012-12-04-elixir-v0-7-2-released.markdown | 2 +- ...2013-01-27-elixir-v0-8-0-released.markdown | 6 +- ...2013-04-29-elixir-v0-8-2-released.markdown | 2 +- ...2013-05-23-elixir-v0-9-0-released.markdown | 2 +- ...013-07-13-elixir-v0-10-0-released.markdown | 2 +- .../2013-08-08-elixir-design-goals.markdown | 2 +- ...013-11-05-elixir-v0-11-0-released.markdown | 2 +- ...013-12-15-elixir-v0-12-0-released.markdown | 2 +- ...014-04-21-elixir-v0-13-0-released.markdown | 8 +- ...014-06-17-elixir-v0-14-0-released.markdown | 6 +- ...014-08-07-elixir-v0-15-0-released.markdown | 2 +- ...2014-09-18-elixir-v1-0-0-released.markdown | 2 +- ...2016-01-03-elixir-v1-2-0-released.markdown | 4 +- ...2016-06-21-elixir-v1-3-0-released.markdown | 2 +- ...2017-01-05-elixir-v1-4-0-released.markdown | 2 +- ...2017-07-25-elixir-v1-5-0-released.markdown | 2 +- ...2018-01-17-elixir-v1-6-0-released.markdown | 2 +- ...2018-07-25-elixir-v1-7-0-released.markdown | 2 +- ...2019-01-14-elixir-v1-8-0-released.markdown | 2 +- ...2019-06-24-elixir-v1-9-0-released.markdown | 2 +- ...020-01-27-elixir-v1-10-0-released.markdown | 2 +- ...020-10-06-elixir-v1-11-0-released.markdown | 2 +- ...021-05-19-elixir-v1-12-0-released.markdown | 2 +- ...yer-server-with-elixir-at-x-plane.markdown | 2 +- ...021-12-03-elixir-v1-13-0-released.markdown | 2 +- ...022-09-01-elixir-v1-14-0-released.markdown | 2 +- ...023-06-19-elixir-v1-15-0-released.markdown | 2 +- crash-course.markdown | 4 +- docs.markdown | 4 +- .../alias-require-and-import.markdown | 244 +--------- getting-started/basic-operators.markdown | 99 +--- getting-started/basic-types.markdown | 460 +----------------- .../binaries-strings-and-char-lists.markdown | 311 +----------- getting-started/case-cond-and-if.markdown | 197 +------- getting-started/comprehensions.markdown | 115 +---- getting-started/debugging.markdown | 168 +------ .../enumerables-and-streams.markdown | 127 +---- getting-started/erlang-libraries.markdown | 209 +------- getting-started/index.html | 12 +- getting-started/introduction.markdown | 65 +-- .../io-and-the-file-system.markdown | 224 +-------- getting-started/keywords-and-maps.markdown | 273 +---------- .../meta/domain-specific-languages.markdown | 205 +------- getting-started/meta/index.html | 12 +- getting-started/meta/macros.markdown | 296 +---------- .../meta/quote-and-unquote.markdown | 156 +----- getting-started/mix-otp/agent.markdown | 220 +-------- .../mix-otp/config-and-releases.markdown | 423 +--------------- ...ependencies-and-umbrella-projects.markdown | 311 +----------- .../mix-otp/distributed-tasks.markdown | 362 +------------- .../mix-otp/docs-tests-and-with.markdown | 456 +---------------- .../mix-otp/dynamic-supervisor.markdown | 208 +------- getting-started/mix-otp/ets.markdown | 291 +---------- getting-started/mix-otp/genserver.markdown | 346 +------------ getting-started/mix-otp/index.html | 12 +- .../mix-otp/introduction-to-mix.markdown | 318 +----------- .../supervisor-and-application.markdown | 274 +---------- .../mix-otp/task-and-gen-tcp.markdown | 313 +----------- getting-started/module-attributes.markdown | 191 +------- .../modules-and-functions.markdown | 295 +---------- getting-started/optional-syntax.markdown | 99 +--- getting-started/pattern-matching.markdown | 204 +------- getting-started/processes.markdown | 240 +-------- getting-started/protocols.markdown | 261 +--------- getting-started/recursion.markdown | 143 +----- getting-started/sigils.markdown | 245 +--------- getting-started/structs.markdown | 161 +----- getting-started/try-catch-and-rescue.markdown | 285 +---------- .../typespecs-and-behaviours.markdown | 226 +-------- getting-started/where-to-go-next.markdown | 44 +- index.html | 4 +- learning.markdown | 2 +- 81 files changed, 190 insertions(+), 9218 deletions(-) delete mode 100644 _data/getting-started.yml delete mode 100644 _includes/mix-otp-preface.html delete mode 100644 _layouts/getting-started.html create mode 100644 _layouts/redirect.html diff --git a/_data/getting-started.yml b/_data/getting-started.yml deleted file mode 100644 index 515e578b9..000000000 --- a/_data/getting-started.yml +++ /dev/null @@ -1,123 +0,0 @@ -- title: Getting Started - dir: /getting-started/ - pages: - - title: Introduction - slug: introduction - - - title: Basic types - slug: basic-types - - - title: Basic operators - slug: basic-operators - - - title: Pattern matching - slug: pattern-matching - - - title: case, cond, and if - slug: case-cond-and-if - - - title: Binaries, strings, and charlists - slug: binaries-strings-and-char-lists - - - title: Keyword lists and maps - slug: keywords-and-maps - - - title: Modules and Functions - slug: modules-and-functions - - - title: Recursion - slug: recursion - - - title: Enumerables and streams - slug: enumerables-and-streams - - - title: Processes - slug: processes - - - title: IO and the file system - slug: io-and-the-file-system - - - title: alias, require, and import - slug: alias-require-and-import - - - title: Module attributes - slug: module-attributes - - - title: Structs - slug: structs - - - title: Protocols - slug: protocols - - - title: Comprehensions - slug: comprehensions - - - title: Sigils - slug: sigils - - - title: try, catch, and rescue - slug: try-catch-and-rescue - - - title: Optional syntax sheet - slug: optional-syntax - - - title: Erlang libraries - slug: erlang-libraries - - - title: Debugging - slug: debugging - - - title: Typespecs and behaviours - slug: typespecs-and-behaviours - - - title: Where to go next - slug: where-to-go-next - -- title: Mix and OTP - dir: /getting-started/mix-otp/ - pages: - - title: Introduction to Mix - slug: introduction-to-mix - - - title: Agent - slug: agent - - - title: GenServer - slug: genserver - - - title: Supervisor and Application - slug: supervisor-and-application - - - title: Dynamic supervisors - slug: dynamic-supervisor - - - title: ETS - slug: ets - - - title: Dependencies and umbrella projects - slug: dependencies-and-umbrella-projects - - - title: Task and gen_tcp - slug: task-and-gen-tcp - - - title: Doctests, patterns and with - slug: docs-tests-and-with - - - title: Distributed tasks and tags - slug: distributed-tasks - - - title: Configuration and releases - slug: config-and-releases - - -- title: Meta-programming in Elixir - dir: /getting-started/meta/ - pages: - - title: Quote and unquote - slug: quote-and-unquote - - - title: Macros - slug: macros - - - title: Domain-specific languages - slug: domain-specific-languages diff --git a/_includes/mix-otp-preface.html b/_includes/mix-otp-preface.html deleted file mode 100644 index 6354bcdf2..000000000 --- a/_includes/mix-otp-preface.html +++ /dev/null @@ -1,2 +0,0 @@ -> This chapter is part of the Mix and OTP guide and it depends on previous chapters in this guide. -> For more information, read the introduction guide or check out the chapter index in the sidebar. diff --git a/_includes/top.html b/_includes/top.html index e030141aa..3cdd10c6f 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -38,7 +38,6 @@ - diff --git a/_layouts/getting-started.html b/_layouts/getting-started.html deleted file mode 100644 index 7883837c9..000000000 --- a/_layouts/getting-started.html +++ /dev/null @@ -1,73 +0,0 @@ -{% include top.html %} - - - -
    -
    -
    - {{ page.category | default: "Getting Started" }} -

    {{ page.title }}

    -
    - - {% include toc.html %} - - {{ content }} -
    - - {% assign url_parts = page.url | split: '/' %} - {% assign url_parts_size = url_parts | size %} - {% assign file_name = url_parts | last %} - {% assign guide_base_url = page.url | replace: file_name %} - {% assign page_slug = file_name | replace: '.html' %} - - {% assign guides = site.data.getting-started %} - {% for guide in site.data.getting-started %} - {% if guide.dir == guide_base_url %} - {% for node in guide.pages %} - {% if node.slug == page_slug %} - - {% endif %} - {% assign prev = node %} - {% endfor %} - {% endif %} - {% endfor %} - -
    - Is something wrong? - - Edit this page on GitHub. - -
    -
    - -{% include bottom.html %} diff --git a/_layouts/redirect.html b/_layouts/redirect.html new file mode 100644 index 000000000..bd3a2974d --- /dev/null +++ b/_layouts/redirect.html @@ -0,0 +1,14 @@ + + + + + + + + +

    Redirecting...

    + Click here if you are not redirected. + + + + diff --git a/_posts/2012-05-25-elixir-v0-5-0-released.markdown b/_posts/2012-05-25-elixir-v0-5-0-released.markdown index 50ab28e44..cffb98442 100644 --- a/_posts/2012-05-25-elixir-v0-5-0-released.markdown +++ b/_posts/2012-05-25-elixir-v0-5-0-released.markdown @@ -9,7 +9,7 @@ excerpt: We have finally released Elixir v0.5.0! This marks the first release si We have finally released [Elixir](/) v0.5.0! This marks the first release since the language was rewritten. In this blog post, we will discuss what we achieved during this time and what are the next steps! -If you don't care about any of these, you can go straight to our [Getting Started guide](/getting-started/introduction.html). If you do, keep on reading! +If you don't care about any of these, you can go straight to our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html). If you do, keep on reading! ## Looking back @@ -45,4 +45,4 @@ In parallel, we will improve our [documentation generation tool](https://github. Finally, we will continue improving the Standard Library. Although Elixir's goal is to rely on Erlang the most as possible, we also want to provide a small Standard Library which makes better use of Elixir semantics. For the next weeks, we will focus on improving the IO and File manipulation modules. New data types may also appear, for example, ranges come to my mind. -Check out our [home page](/) and the [getting started guide](/getting-started/introduction.html) for more information. Welcome aboard and grab a cup of Elixir, because you are certainly going to enjoy the ride! +Check out our [home page](/) and the [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html) for more information. Welcome aboard and grab a cup of Elixir, because you are certainly going to enjoy the ride! diff --git a/_posts/2012-08-01-elixir-v0-6-0-released.markdown b/_posts/2012-08-01-elixir-v0-6-0-released.markdown index ff8fbe828..f991b57d5 100644 --- a/_posts/2012-08-01-elixir-v0-6-0-released.markdown +++ b/_posts/2012-08-01-elixir-v0-6-0-released.markdown @@ -24,4 +24,4 @@ Our interactive shell (IEx) also had many improvements, thanks to the Elixir dev That's it. For the next months, we will continue improving Elixir (you can see some ideas floating around in the [issues tracker](https://github.com/elixir-lang/elixir/issues)) but we will start to focus on other tools and libraries for the community. -Thank you and don't forget to [give Elixir a try](/getting-started/introduction.html)! +Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/1.16/introduction.html)! diff --git a/_posts/2012-10-20-elixir-v0-7-0-released.markdown b/_posts/2012-10-20-elixir-v0-7-0-released.markdown index 16db42d47..c07d2bda3 100644 --- a/_posts/2012-10-20-elixir-v0-7-0-released.markdown +++ b/_posts/2012-10-20-elixir-v0-7-0-released.markdown @@ -15,4 +15,4 @@ This release also includes some backwards incompatible changes, but the majority For more information, read out the [CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.7.0/CHANGELOG.md). -Thank you and don't forget to [give Elixir a try](/getting-started/introduction.html)! +Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/1.16/introduction.html)! diff --git a/_posts/2012-11-18-elixir-v0-7-1-released.markdown b/_posts/2012-11-18-elixir-v0-7-1-released.markdown index 825fbd2c0..d240e8fbf 100644 --- a/_posts/2012-11-18-elixir-v0-7-1-released.markdown +++ b/_posts/2012-11-18-elixir-v0-7-1-released.markdown @@ -15,7 +15,7 @@ During this time traveling around, we have spoken at many conferences, as [Stran In case you missed any of those conferences, [the talk I presented at Øredev is available and you can watch it now](https://vimeo.com/53221562). The slides are also available below. -If you want to hear more about Elixir at a conference or an event, please let us know. Thank you and don't forget to [give Elixir a try](/getting-started/introduction.html)! +If you want to hear more about Elixir at a conference or an event, please let us know. Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/1.16/introduction.html)! diff --git a/_posts/2012-12-04-elixir-v0-7-2-released.markdown b/_posts/2012-12-04-elixir-v0-7-2-released.markdown index fd5280660..f665a19a3 100644 --- a/_posts/2012-12-04-elixir-v0-7-2-released.markdown +++ b/_posts/2012-12-04-elixir-v0-7-2-released.markdown @@ -50,4 +50,4 @@ under some circumstances when using records. Lastly, but not least importantly, I'd like to mention that we're very excited about how the community around Elixir is building up. Thank you all for being around and supporting us! -[Learn more about Elixir](/getting-started/introduction.html)! +[Learn more about Elixir](https://hexdocs.pm/elixir/1.16/introduction.html)! diff --git a/_posts/2013-01-27-elixir-v0-8-0-released.markdown b/_posts/2013-01-27-elixir-v0-8-0-released.markdown index 9aa5452e8..b7d74b2bd 100644 --- a/_posts/2013-01-27-elixir-v0-8-0-released.markdown +++ b/_posts/2013-01-27-elixir-v0-8-0-released.markdown @@ -18,7 +18,7 @@ And applications can be started directly from the command line as well: elixir --app my_app -We have written a whole [guide chapter about creating OTP applications, supervisors and servers](/getting-started/mix-otp/supervisor-and-application.html). Give it a try! +We have written a whole [guide chapter about creating OTP applications, supervisors and servers](https://hexdocs.pm/elixir/1.16/supervisor-and-application.html). Give it a try! ## Improved Unicode support @@ -70,7 +70,7 @@ When some code call the `unless` macro above, in previous Elixir versions, it wo Elixir v0.8 ensures that the `unless` macro above will expand to the same `if` macro available when quoted, guaranteeing different libraries can integrate easily without imposing hidden requirements. -You can read more about [macros in the getting started guide](/getting-started/case-cond-and-if.html) or [go deep into the quote macro docs](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#quote/2). +You can read more about [macros in the getting started guide](https://hexdocs.pm/elixir/1.16/case-cond-and-if.html) or [go deep into the quote macro docs](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#quote/2). ## A new way to manipulate pathnames @@ -100,4 +100,4 @@ We continue actively working on Elixir and this release is the [result of our ef Also, we previously announced Elixir is going to be released frequently, every 2 to 4 weeks. We have made a small detour to get v0.8.0 out of the door, but we are back to our regular schedule as of today! -[Celebrate with us and give Elixir a try](/getting-started/introduction.html)! +[Celebrate with us and give Elixir a try](https://hexdocs.pm/elixir/1.16/introduction.html)! diff --git a/_posts/2013-04-29-elixir-v0-8-2-released.markdown b/_posts/2013-04-29-elixir-v0-8-2-released.markdown index 9579766ac..27f3ddc0b 100644 --- a/_posts/2013-04-29-elixir-v0-8-2-released.markdown +++ b/_posts/2013-04-29-elixir-v0-8-2-released.markdown @@ -46,4 +46,4 @@ end You can learn more about [doctests on our documentation page](https://hexdocs.pm/ex_unit/ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md). -If you are new to Elixir, [it's easy to get started with](/getting-started/introduction.html)! +If you are new to Elixir, [it's easy to get started with](https://hexdocs.pm/elixir/1.16/introduction.html)! diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index 573a77058..4bcd06ada 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -130,4 +130,4 @@ We have also many other smaller improvements: A huge thank you to our community for sending bug reports, providing bug fixes and contributing all those amazing features. And when are **you** joining us? :) -Give Elixir a try! You can start with our [getting started guide](/getting-started/introduction.html), or [check this 30 minute video from PragProg](https://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](https://pragprog.com/book/elixir/programming-elixir). +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or [check this 30 minute video from PragProg](https://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](https://pragprog.com/book/elixir/programming-elixir). diff --git a/_posts/2013-07-13-elixir-v0-10-0-released.markdown b/_posts/2013-07-13-elixir-v0-10-0-released.markdown index 3d28ad7ba..1936a5366 100644 --- a/_posts/2013-07-13-elixir-v0-10-0-released.markdown +++ b/_posts/2013-07-13-elixir-v0-10-0-released.markdown @@ -82,4 +82,4 @@ Other notable improvements are: There are also improvements to typespecs, error messages, many bug fixes and some backwards incompatible changes. We have posted a detailed [upgrade instructions on the mailing list](https://groups.google.com/forum/?fromgroups#!topic/elixir-lang-talk/ksrefrgK1eY). For a general overview, [check out the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.10.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](/getting-started/introduction.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or check out our sidebar for other learning resources. diff --git a/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown index a71db2b76..25ba35be9 100644 --- a/_posts/2013-08-08-elixir-design-goals.markdown +++ b/_posts/2013-08-08-elixir-design-goals.markdown @@ -212,4 +212,4 @@ The goal of this post was to sumarize the language goals: compatibility, product We also hope to have clarified what Elixir brings to the Erlang VM, in particular, meta-programming through macros, polymorphic constructs for extensibility and a data-focused standard library with extensible and consistent APIs for diverse types, including strict and lazy enumeration, unicode handling, a test framework and more. -Give Elixir a try! You can start with our [getting started guide](/getting-started/introduction.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or check out our sidebar for other learning resources. diff --git a/_posts/2013-11-05-elixir-v0-11-0-released.markdown b/_posts/2013-11-05-elixir-v0-11-0-released.markdown index 80e3bb825..9debcfe57 100644 --- a/_posts/2013-11-05-elixir-v0-11-0-released.markdown +++ b/_posts/2013-11-05-elixir-v0-11-0-released.markdown @@ -67,6 +67,6 @@ In the optimization front, we have pushed the first iteration of a [feature call And finally, a minor but frequently asked feature has finally arrived into Elixir: variables follow the same rules as other identifiers in the language, which means developers can now name their variables `is_atom?`. For a general overview, [check out the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.11.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](/getting-started/introduction.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or check out our sidebar for other learning resources. **PS:** We have just released v0.11.1 which addresses a regression in Mix and improves the dependencies update process. diff --git a/_posts/2013-12-15-elixir-v0-12-0-released.markdown b/_posts/2013-12-15-elixir-v0-12-0-released.markdown index 7040da8ee..232c14eeb 100644 --- a/_posts/2013-12-15-elixir-v0-12-0-released.markdown +++ b/_posts/2013-12-15-elixir-v0-12-0-released.markdown @@ -49,4 +49,4 @@ Eric is also maintainer of both [Ecto](https://github.com/elixir-ecto/ecto) and There were other small changes, like additions to the `Float` module and improvements the to the typespec syntax. To see the full list, please [see the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.12.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](/getting-started/introduction.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or check out our sidebar for other learning resources. diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index 6fef928aa..d0735a3db 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -28,7 +28,7 @@ In a nutshell, here is what new: * Elixir v0.13 also provides structs, an alternative to Elixir records. Structs are more flexible than records, provide faster polymorphic operations, and still provide the same compile-time guarantees many came to love in records; -* The [Getting Started guide](/getting-started/introduction.html) was rewritten from scratch. The previous guide was comprised of 7 chapters and was about to become 2 years old. The new guide features 20 chapters, it explores the new maps and structs (which are part of this release), and it goes deeper into topics like IO and File handling. It also includes an extra guide, still in development, about [Meta-Programming in Elixir](/getting-started/meta/quote-and-unquote.html); +* The [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) was rewritten from scratch. The previous guide was comprised of 7 chapters and was about to become 2 years old. The new guide features 20 chapters, it explores the new maps and structs (which are part of this release), and it goes deeper into topics like IO and File handling. It also includes an extra guide, still in development, about [Meta-Programming in Elixir](https://hexdocs.pm/elixir/1.16/quote-and-unquote.html); * Elixir v0.13 provides a new comprehension syntax that not only works with lists, but with any [`Enumerable`](https://hexdocs.pm/elixir/Enumerable.html). The output of a comprehension is also extensible via the [`Collectable`](https://hexdocs.pm/elixir/Collectable.html) protocol; @@ -68,7 +68,7 @@ iex> %{"other" => value} = map A map pattern will match any map that has all the keys specified in the pattern. The values for the matching keys must also match. For example, `%{"hello" => world}` will match any map that has the key `"hello"` and assign the value to `world`, while `%{"hello" => "world"}` will match any map that has the key `"hello"` with value equals to `"world"`. An empty map pattern (`%{}`) will match all maps. -Developers can use the functions in the [`Map` module](https://hexdocs.pm/elixir/Map.html) to work with maps. For more information on maps and how they compare to other associative data structures in the language, please check the [Maps chapter in our new Getting Started guide](/getting-started/keywords-and-maps.html). Elixir Sips has also released two episodes that cover maps ([part 1](http://elixirsips.com/episodes/054_maps_part_1.html) and [part 2](http://elixirsips.com/episodes/055_maps_part_2.html)). +Developers can use the functions in the [`Map` module](https://hexdocs.pm/elixir/Map.html) to work with maps. For more information on maps and how they compare to other associative data structures in the language, please check the [Maps chapter in our new Getting Started guide](https://hexdocs.pm/elixir/1.16/keywords-and-maps.html). Elixir Sips has also released two episodes that cover maps ([part 1](http://elixirsips.com/episodes/054_maps_part_1.html) and [part 2](http://elixirsips.com/episodes/055_maps_part_2.html)). Maps also provide special syntax for creating, accessing and updating maps with atom keys: @@ -179,7 +179,7 @@ The `__struct__` field is also used for polymorphic dispatch in protocols, addre It is interesting to note that structs solve both drawbacks we have earlier mentioned regarding records. Structs are purely data and polymorphic dispatch is now faster and more robust as it happens only for explicitly tagged structs. -For more information on structs, check out the [Structs chapter in the getting started guide](/getting-started/structs.html) (you may also want to read the new [Protocols chapter](/getting-started/protocols.html) after it). +For more information on structs, check out the [Structs chapter in the getting started guide](https://hexdocs.pm/elixir/1.16/structs.html) (you may also want to read the new [Protocols chapter](https://hexdocs.pm/elixir/1.16/protocols.html) after it). ## Maps, structs and the future @@ -279,4 +279,4 @@ That said, in the next months we plan to: * Study how patterns like tasks and agents can be integrated into the language, often picking up the lessons learned by libraries like [e2](http://e2project.org/erlang.html) and [functionality exposed by OTP itself](http://www.erlang.org/doc/man/rpc.html); * Rewrite the Mix and ExUnit guides to focus on applications and OTP as a whole, rebranding it to "Building Apps with Mix and OTP"; -You can learn more about Elixir in our [Getting Started guide](/getting-started/introduction.html) and download this release in the [v0.13 announcement](https://github.com/elixir-lang/elixir/releases/tag/v0.13.0). We hope to see you at [ElixirConf](http://elixirconf.com/) as well as pushing your packages to [hex.pm](https://hex.pm/). +You can learn more about Elixir in our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) and download this release in the [v0.13 announcement](https://github.com/elixir-lang/elixir/releases/tag/v0.13.0). We hope to see you at [ElixirConf](http://elixirconf.com/) as well as pushing your packages to [hex.pm](https://hex.pm/). diff --git a/_posts/2014-06-17-elixir-v0-14-0-released.markdown b/_posts/2014-06-17-elixir-v0-14-0-released.markdown index b1955d87b..b55e0540b 100644 --- a/_posts/2014-06-17-elixir-v0-14-0-released.markdown +++ b/_posts/2014-06-17-elixir-v0-14-0-released.markdown @@ -144,9 +144,9 @@ In v0.14.0, Elixir closely integrates with OTP by providing modules for building We have also introduced the concepts of [agents](https://hexdocs.pm/elixir/Agent.html) and the idea of [tasks](https://hexdocs.pm/elixir/Task.html), which can be supervised and distributed. Application configuration has been made first class in Mix, allowing developers to configure their dependencies, sometimes even using different configurations per environment (dev, test or prod by default). -This functionality is at the core of building applications in Erlang and Elixir. For this reason we have published a new guide called [Mix and OTP](/getting-started/mix-otp/introduction-to-mix.html) where we build a distributed key-value store to help explore all concepts mentioned above. The guide is quite fresh, so please do submit pull requests for typos and mistakes. Feedback is also welcome! +This functionality is at the core of building applications in Erlang and Elixir. For this reason we have published a new guide called [Mix and OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html) where we build a distributed key-value store to help explore all concepts mentioned above. The guide is quite fresh, so please do submit pull requests for typos and mistakes. Feedback is also welcome! -Note "Mix and OTP" is our most advanced guide so far and it expects you to have read our introductory guide. In case you haven't yet, you can [get started here](/getting-started/introduction.html). +Note "Mix and OTP" is our most advanced guide so far and it expects you to have read our introductory guide. In case you haven't yet, you can [get started here](https://hexdocs.pm/elixir/1.16/introduction.html). ## What's next? @@ -160,6 +160,6 @@ With v0.14.0 we have reached many of the milestones [we have set in the previous * Solve all remaining [open issues](https://github.com/elixir-lang/elixir/issues?state=open). We have always kept the issues tracker tidy and there is little work left to solve the existing issues. Note we have also listed all [upcoming backwards incompatible changes](https://github.com/elixir-lang/elixir/issues?labels=Note%3ABackwards+incompatible&page=1&state=open). Many of those changes will actually be deprecated first and developers should be able to follow along without breaking changes in minor releases, but they are breaking changes in the sense they work in v0.14.0 but will work differently by the time v1.0 is released; -That's all for now! Elixir developers can see [a summary of all changes in v0.14.0 in the release notes](https://github.com/elixir-lang/elixir/releases/tag/v0.14.0). In case you are new around here, you can get started with Elixir by reading [our Getting Started guide](/getting-started/introduction.html). +That's all for now! Elixir developers can see [a summary of all changes in v0.14.0 in the release notes](https://github.com/elixir-lang/elixir/releases/tag/v0.14.0). In case you are new around here, you can get started with Elixir by reading [our Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html). We hope to see you all this July at [ElixirConf](http://elixirconf.com/)! diff --git a/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown index dee1c607e..b03397d94 100644 --- a/_posts/2014-08-07-elixir-v0-15-0-released.markdown +++ b/_posts/2014-08-07-elixir-v0-15-0-released.markdown @@ -162,4 +162,4 @@ Alexei is also interested in how we can extend our tooling to the Erlang ecosyst We are very close to launch Elixir v1.0! All planned features are already in Elixir's codebase and at the moment there are only [four open issues in our tracker tagged with the v1.0 milestone](https://github.com/elixir-lang/elixir/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.0). -Our estimated date for the first release candidate for Elixir v1.0 is August 30th. This means there is no better time to learn Elixir than now! If you haven't started yet, you can get started with Elixir by reading [our Getting Started guide](/getting-started/introduction.html) or by checking one of the many "Learning Resources" on the sidebar. +Our estimated date for the first release candidate for Elixir v1.0 is August 30th. This means there is no better time to learn Elixir than now! If you haven't started yet, you can get started with Elixir by reading [our Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) or by checking one of the many "Learning Resources" on the sidebar. diff --git a/_posts/2014-09-18-elixir-v1-0-0-released.markdown b/_posts/2014-09-18-elixir-v1-0-0-released.markdown index c1499fa2b..308c7ec99 100644 --- a/_posts/2014-09-18-elixir-v1-0-0-released.markdown +++ b/_posts/2014-09-18-elixir-v1-0-0-released.markdown @@ -53,7 +53,7 @@ These expectations also apply to future releases under the v1 branch, except for ## Learn more -You can get started with Elixir via our [Getting Started guide](/getting-started/introduction.html). There are quite some Elixir books out there too, now getting sent to the presses, quite a few can be found in the sidebar, which also includes screencasts and other resources. +You can get started with Elixir via our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html). There are quite some Elixir books out there too, now getting sent to the presses, quite a few can be found in the sidebar, which also includes screencasts and other resources. You can also learn more about Elixir by checking out [the videos from ElixirConf 2014](http://www.confreaks.com/events/elixirconf2014), the first (and so far the best) Elixir conference ever! You can learn more about [the language history](http://www.confreaks.com/videos/4134-elixirconf2014-keynote-elixir), [how Elixir can change the way you code](http://www.confreaks.com/videos/4119-elixirconf2014-opening-keynote-think-different) or [even hear stories of how Elixir is being used in production](http://www.confreaks.com/videos/4131-elixirconf2014-otp-in-production-the-nitty-gritty-details-of-game-servers). diff --git a/_posts/2016-01-03-elixir-v1-2-0-released.markdown b/_posts/2016-01-03-elixir-v1-2-0-released.markdown index 374156362..303643f7a 100644 --- a/_posts/2016-01-03-elixir-v1-2-0-released.markdown +++ b/_posts/2016-01-03-elixir-v1-2-0-released.markdown @@ -8,7 +8,7 @@ excerpt: Elixir v1.2 brings enhancements, bug fixes, performance improvements an v1.2 brings enhancements, bug fixes, performance improvements and more into Elixir. Elixir v1.2 relies on many features in Erlang 18, requiring at least Erlang 18+. Upgrading to Erlang 18 is therefore necessary before upgrading Elixir. -To celebrate this release and the new year, we have also reviewed both the [Getting Started](http://elixir-lang.org/getting-started/introduction.html) and [Mix & OTP](http://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html) guides, bringing it up to date and exploring new functionalities added since Elixir v1.0. +To celebrate this release and the new year, we have also reviewed both the [Getting Started](https://hexdocs.pm/elixir/1.16/introduction.html) and [Mix & OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html) guides, bringing it up to date and exploring new functionalities added since Elixir v1.0. ## Erlang 18 support @@ -112,6 +112,6 @@ These are great additions on top of the faster compilation times we have achieve With Rebar 3 gaining more adoption in the Erlang community, Mix is now able to fetch and compile Rebar 3 dependencies. This feature is currently experimental and therefore opt-in: if you have a Rebar 3 dependency, you can ask Mix to use Rebar 3 to compile it by passing the `manager: :rebar3` option. Once configured, Mix will prompt you to install Rebar 3 if it is not yet available. -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.2.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.2.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy coding! diff --git a/_posts/2016-06-21-elixir-v1-3-0-released.markdown b/_posts/2016-06-21-elixir-v1-3-0-released.markdown index be1fb29fc..680a1d96a 100644 --- a/_posts/2016-06-21-elixir-v1-3-0-released.markdown +++ b/_posts/2016-06-21-elixir-v1-3-0-released.markdown @@ -282,6 +282,6 @@ By restricting hierarchies in favor of named setups, it is straight-forward for ## Summing up -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.3.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.3.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy coding! diff --git a/_posts/2017-01-05-elixir-v1-4-0-released.markdown b/_posts/2017-01-05-elixir-v1-4-0-released.markdown index 7c963a54d..46a85b0c2 100644 --- a/_posts/2017-01-05-elixir-v1-4-0-released.markdown +++ b/_posts/2017-01-05-elixir-v1-4-0-released.markdown @@ -129,6 +129,6 @@ It is also possible to install escripts and archives by providing a Git/GitHub r ## Summing up -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.4.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.4.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy coding! diff --git a/_posts/2017-07-25-elixir-v1-5-0-released.markdown b/_posts/2017-07-25-elixir-v1-5-0-released.markdown index 2dae4ed80..ed62d55fc 100644 --- a/_posts/2017-07-25-elixir-v1-5-0-released.markdown +++ b/_posts/2017-07-25-elixir-v1-5-0-released.markdown @@ -175,4 +175,4 @@ Overall, using `@impl` has the following advantages: The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.5.0). There are many other exciting changes, such as compiler enhancements that reduces compilation times by 10%-15% on averages. When taken into account with the compiler improvements in Erlang/OTP 20 itself, some applications have seen gains up to 30% in compilation times. -Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. diff --git a/_posts/2018-01-17-elixir-v1-6-0-released.markdown b/_posts/2018-01-17-elixir-v1-6-0-released.markdown index 9012cb332..d70970c20 100644 --- a/_posts/2018-01-17-elixir-v1-6-0-released.markdown +++ b/_posts/2018-01-17-elixir-v1-6-0-released.markdown @@ -153,4 +153,4 @@ The full list of changes is available in our [release notes](https://github.com/ Work on Elixir v1.7 has already started. We still welcome developers to try out the [previously announced StreamData library](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/), that aims to bring data generation and property-based testing to Elixir. The other [features scheduled for v1.7 can be found in the issues tracker](https://github.com/elixir-lang/elixir/issues). -Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. diff --git a/_posts/2018-07-25-elixir-v1-7-0-released.markdown b/_posts/2018-07-25-elixir-v1-7-0-released.markdown index 4ac36f478..311e4b083 100644 --- a/_posts/2018-07-25-elixir-v1-7-0-released.markdown +++ b/_posts/2018-07-25-elixir-v1-7-0-released.markdown @@ -153,4 +153,4 @@ We have also seen important developments in other areas not directly related to Finally, don't forget [ElixirConf US](https://elixirconf.com/) is coming soon, in Bellevue, WA, September 4-7. Last year my keynote focused on the last 5 years with Elixir. This year we are ready to look into the 5 years ahead. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. diff --git a/_posts/2019-01-14-elixir-v1-8-0-released.markdown b/_posts/2019-01-14-elixir-v1-8-0-released.markdown index c415f2a4e..25ac7600b 100644 --- a/_posts/2019-01-14-elixir-v1-8-0-released.markdown +++ b/_posts/2019-01-14-elixir-v1-8-0-released.markdown @@ -77,6 +77,6 @@ There is only one last major feature planned for upcoming Elixir versions, which During [my keynote at ElixirConf 2018 US](https://www.youtube.com/watch?v=suOzNeMJXl0), I talked about the next five years for Elixir and much of the emphasis is put on the community. Elixir was designed to be an extensible language and therefore the work on the language itself is meant to reduce with time, which we have seen in the last two releases. We trust the community to continue building on this solid foundation, bringing new challenges to the ecosystem and taking the language to new domains. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Your turn. :) \ No newline at end of file diff --git a/_posts/2019-06-24-elixir-v1-9-0-released.markdown b/_posts/2019-06-24-elixir-v1-9-0-released.markdown index e4bab9c37..0ae452a43 100644 --- a/_posts/2019-06-24-elixir-v1-9-0-released.markdown +++ b/_posts/2019-06-24-elixir-v1-9-0-released.markdown @@ -96,6 +96,6 @@ First of all, Elixir is built on top of Erlang/OTP and we simply leverage all of Second, Elixir was designed to be an extensible language. The same tools and abstractions we used to create and enhance the language are also available to libraries and frameworks. This means the community can continue to improve the ecosystem without a need to change the language itself, which would effectively become a bottleneck for progress. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. We have also updated our [advanced Mix & OTP](https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html) to talk about releases. If you are looking for a more fast paced introduction to the language, see the [How I Start: Elixir](http://howistart.org/posts/elixir/1/index.html) tutorial, which has also been brought to the latest and greatest. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. We have also updated our [advanced Mix & OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html) to talk about releases. If you are looking for a more fast paced introduction to the language, see the [How I Start: Elixir](http://howistart.org/posts/elixir/1/index.html) tutorial, which has also been brought to the latest and greatest. Have fun! diff --git a/_posts/2020-01-27-elixir-v1-10-0-released.markdown b/_posts/2020-01-27-elixir-v1-10-0-released.markdown index d58f44d3a..01b411e7d 100644 --- a/_posts/2020-01-27-elixir-v1-10-0-released.markdown +++ b/_posts/2020-01-27-elixir-v1-10-0-released.markdown @@ -165,6 +165,6 @@ Finally, this release also adds two new guards, `is_struct/1` and `is_map_key/2` To learn what else is new, you can read the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.10.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Have fun! diff --git a/_posts/2020-10-06-elixir-v1-11-0-released.markdown b/_posts/2020-10-06-elixir-v1-11-0-released.markdown index 313d683be..672c92d99 100644 --- a/_posts/2020-10-06-elixir-v1-11-0-released.markdown +++ b/_posts/2020-10-06-elixir-v1-11-0-released.markdown @@ -219,6 +219,6 @@ Finally, to bring visibility to the compiler tracking improvements described in For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.11.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Have fun! diff --git a/_posts/2021-05-19-elixir-v1-12-0-released.markdown b/_posts/2021-05-19-elixir-v1-12-0-released.markdown index 075de6f79..a920211a6 100644 --- a/_posts/2021-05-19-elixir-v1-12-0-released.markdown +++ b/_posts/2021-05-19-elixir-v1-12-0-released.markdown @@ -96,6 +96,6 @@ The `Code` module got a [`cursor_context/2`](https://hexdocs.pm/elixir/1.12/Code The EEx application has also been extended to provide metadata on text segments. This has enabled the Surface and Phoenix LiveView teams to implement [a new template language called HEEx](https://github.com/phoenixframework/phoenix_live_view/pull/1440), which validates both HTML and EEx. Finally, the `Registry` module supports the `:compressed` option, which is useful for GraphQL applications managing hundreds of thousands of subscriptions via [Absinthe](http://absinthe-graphql.org/). -For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.12.0). Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.12.0). Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Have fun! diff --git a/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown b/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown index c0656e338..7e5a3b43a 100644 --- a/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown +++ b/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown @@ -36,7 +36,7 @@ They eventually settled on three top contenders: Rust, Go, and Elixir. Elixir to ## Modeling multiplayer with Elixir -Ready to give Elixir a try, Tyler picked up a couple books but soon realized the language's [Getting Started guide](https://elixir-lang.org/getting-started/introduction.html) provided the background he needed. He explains: "while the introductory guide covers the language constructs, the advanced guide on the website has you build an actual project with TCP connections, with the basic architectural patterns we would use in production." +Ready to give Elixir a try, Tyler picked up a couple books but soon realized the language's [Getting Started guide](https://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) provided the background he needed. He explains: "while the introductory guide covers the language constructs, the advanced guide on the website has you build an actual project with TCP connections, with the basic architectural patterns we would use in production." However, instead of jumping headfirst into the multiplayer server, he decided to give Elixir a try on a smaller problem. He wrote a web proxy to the National Oceanic and Atmospheric Administration (NOAA) weather services and put it in production. This experience taught him the importance of leveraging all of the instrumentation and metrics provided by the Erlang VM. They chose [AppSignal](https://www.appsignal.com/) to help consume and digest this information. diff --git a/_posts/2021-12-03-elixir-v1-13-0-released.markdown b/_posts/2021-12-03-elixir-v1-13-0-released.markdown index 5e6deb187..0f3a64ade 100644 --- a/_posts/2021-12-03-elixir-v1-13-0-released.markdown +++ b/_posts/2021-12-03-elixir-v1-13-0-released.markdown @@ -147,6 +147,6 @@ The `Code` module has also been augmented with two functions: [`Code.string_to_q For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.13.0). You can also [watch my ElixirConf 2021 keynote about Elixir v1.13](https://youtu.be/ydjx2kKHzrM) to learn more. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Have fun! diff --git a/_posts/2022-09-01-elixir-v1-14-0-released.markdown b/_posts/2022-09-01-elixir-v1-14-0-released.markdown index 9584974cb..cdaa6b642 100644 --- a/_posts/2022-09-01-elixir-v1-14-0-released.markdown +++ b/_posts/2022-09-01-elixir-v1-14-0-released.markdown @@ -186,6 +186,6 @@ Finally, we have improved the `Inspect` protocol for structs so that fields are For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.14.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy debugging! diff --git a/_posts/2023-06-19-elixir-v1-15-0-released.markdown b/_posts/2023-06-19-elixir-v1-15-0-released.markdown index 8db6c8737..51a2920a3 100644 --- a/_posts/2023-06-19-elixir-v1-15-0-released.markdown +++ b/_posts/2023-06-19-elixir-v1-15-0-released.markdown @@ -163,7 +163,7 @@ For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.15.0). Check [the Install section](/install.html) to get Elixir installed and -read our [Getting Started guide](http://elixir-lang.org/getting-started/introduction.html) +read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy compiling! diff --git a/crash-course.markdown b/crash-course.markdown index 4eca6ced4..e6fb8e847 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -865,7 +865,7 @@ This should be enough to invoke Elixir functions straight from your Erlang code. ### Manual integration -If you are not using rebar, the easiest approach to use Elixir in your existing Erlang software is to install Elixir using one of the different ways specified in the [Getting Started guide](/getting-started/introduction.html) and add the `lib` directory in your checkout to `ERL_LIBS`. +If you are not using rebar, the easiest approach to use Elixir in your existing Erlang software is to install Elixir using one of the different ways specified in the [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) and add the `lib` directory in your checkout to `ERL_LIBS`. ## Further reading @@ -875,5 +875,5 @@ Erlang's official documentation site has a nice [collection][4] of programming e Elixir also provides a [Getting Started guide][6] and has [documentation available online][7]. [4]: http://www.erlang.org/doc/programming_examples/users_guide.html -[6]: /getting-started/introduction.html +[6]: https://hexdocs.pm/elixir/1.16/introduction.html [7]: /docs.html diff --git a/docs.markdown b/docs.markdown index 67f3b6ce1..5169614c5 100644 --- a/docs.markdown +++ b/docs.markdown @@ -8,8 +8,8 @@ layout: default The Elixir programming language is broken into 6 applications. The links below reference the documentation for the modules and functions in each of those -applications. For guides, books, courses, and other resources, visit our -[Learning](/learning.html) page. +applications. See also [our Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) +and [the Learning page](/learning.html) for books, courses, videos, and more. {% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} diff --git a/getting-started/alias-require-and-import.markdown b/getting-started/alias-require-and-import.markdown index 376b055a3..eb771d715 100644 --- a/getting-started/alias-require-and-import.markdown +++ b/getting-started/alias-require-and-import.markdown @@ -1,243 +1,5 @@ --- -section: getting-started -layout: getting-started -title: alias, require, and import +layout: redirect +sitemap: false +redirect_to: alias-require-and-import --- - -In order to facilitate software reuse, Elixir provides three directives (`alias`, `require` and `import`) plus a macro called `use` summarized below: - -```elixir -# Alias the module so it can be called as Bar instead of Foo.Bar -alias Foo.Bar, as: Bar - -# Require the module in order to use its macros -require Foo - -# Import functions from Foo so they can be called without the `Foo.` prefix -import Foo - -# Invokes the custom code defined in Foo as an extension point -use Foo -``` - -We are going to explore them in detail now. Keep in mind the first three are called directives because they have **lexical scope**, while `use` is a common extension point that allows the used module to inject code. - -## alias - -`alias` allows you to set up aliases for any given module name. - -Imagine a module uses a specialized list implemented in `Math.List`. The `alias` directive allows referring to `Math.List` just as `List` within the module definition: - -```elixir -defmodule Stats do - alias Math.List, as: List - # In the remaining module definition List expands to Math.List. -end -``` - -The original `List` can still be accessed within `Stats` by the fully-qualified name `Elixir.List`. - -> Note: All modules defined in Elixir are defined inside the main `Elixir` namespace, such as `Elixir.String`. However, for convenience, you can omit "Elixir." when referencing them. - -Aliases are frequently used to define shortcuts. In fact, calling `alias` without an `:as` option sets the alias automatically to the last part of the module name, for example: - -```elixir -alias Math.List -``` - -Is the same as: - -```elixir -alias Math.List, as: List -``` - -Note that `alias` is **lexically scoped**, which allows you to set aliases inside specific functions: - -```elixir -defmodule Math do - def plus(a, b) do - alias Math.List - # ... - end - - def minus(a, b) do - # ... - end -end -``` - -In the example above, since we are invoking `alias` inside the function `plus/2`, the alias will be valid only inside the function `plus/2`. `minus/2` won't be affected at all. - -## require - -Elixir provides macros as a mechanism for meta-programming (writing code that generates code). Macros are expanded at compile time. - -Public functions in modules are globally available, but in order to use macros, you need to opt-in by requiring the module they are defined in. - -```elixir -iex> Integer.is_odd(3) -** (UndefinedFunctionError) function Integer.is_odd/1 is undefined or private. However, there is a macro with the same name and arity. Be sure to require Integer if you intend to invoke this macro - (elixir) Integer.is_odd(3) -iex> require Integer -Integer -iex> Integer.is_odd(3) -true -``` - -In Elixir, `Integer.is_odd/1` is defined as a macro so that it can be used as a guard. This means that, in order to invoke `Integer.is_odd/1`, we need to first require the `Integer` module. - -Note that like the `alias` directive, `require` is also lexically scoped. We will talk more about macros in a later chapter. - -## import - -We use `import` whenever we want to access functions or macros from other modules without using the fully-qualified name. Note we can only import public functions, as private functions are never accessible externally. - -For example, if we want to use the `duplicate/2` function from the `List` module several times, we can import it: - -```elixir -iex> import List, only: [duplicate: 2] -List -iex> duplicate(:ok, 3) -[:ok, :ok, :ok] -``` - -We imported only the function `duplicate` (with arity 2) from `List`. Although `:only` is optional, its usage is recommended in order to avoid importing all the functions of a given module inside the current scope. `:except` could also be given as an option in order to import everything in a module *except* a list of functions. - -Note that `import` is **lexically scoped** too. This means that we can import specific macros or functions inside function definitions: - -```elixir -defmodule Math do - def some_function do - import List, only: [duplicate: 2] - duplicate(:ok, 10) - end -end -``` - -In the example above, the imported `List.duplicate/2` is only visible within that specific function. `duplicate/2` won't be available in any other function in that module (or any other module for that matter). - -Note that `import`s are generally discouraged in the language. When working on your own code, prefer `alias` to `import`. - -## use - -The `use` macro is frequently used as an extension point. This means that, when you `use` a module `FooBar`, you allow that module to inject *any* code in the current module, such as importing itself or other modules, defining new functions, setting a module state, etc. - -For example, in order to write tests using the ExUnit framework, a developer should use the `ExUnit.Case` module: - -```elixir -defmodule AssertionTest do - use ExUnit.Case, async: true - - test "always pass" do - assert true - end -end -``` - -Behind the scenes, `use` requires the given module and then calls the `__using__/1` callback on it allowing the module to inject some code into the current context. Some modules (for example, the above `ExUnit.Case`, but also `Supervisor` and `GenServer`) use this mechanism to populate your module with some basic behaviour, which your module is intended to override or complete. - -Generally speaking, the following module: - -```elixir -defmodule Example do - use Feature, option: :value -end -``` - -is compiled into - -```elixir -defmodule Example do - require Feature - Feature.__using__(option: :value) -end -``` - -Since `use` allows any code to run, we can't really know the side-effects of using a module without reading its documentation. Therefore use this function with care and only if strictly required. Don't use `use` where an `import` or `alias` would do. - -## Understanding Aliases - -At this point, you may be wondering: what exactly is an Elixir alias and how is it represented? - -An alias in Elixir is a capitalized identifier (like `String`, `Keyword`, etc) which is converted to an atom during compilation. For instance, the `String` alias translates by default to the atom `:"Elixir.String"`: - -```elixir -iex> is_atom(String) -true -iex> to_string(String) -"Elixir.String" -iex> :"Elixir.String" == String -true -``` - -By using the `alias/2` directive, we are changing the atom the alias expands to. - -Aliases expand to atoms because in the Erlang VM (and consequently Elixir) modules are always represented by atoms: - -```elixir -iex> List.flatten([1, [2], 3]) -[1, 2, 3] -iex> :"Elixir.List".flatten([1, [2], 3]) -[1, 2, 3] -``` - -That's the mechanism we use to call Erlang modules: - -```elixir -iex> :lists.flatten([1, [2], 3]) -[1, 2, 3] -``` - -## Module nesting - -Now that we have talked about aliases, we can talk about nesting and how it works in Elixir. Consider the following example: - -```elixir -defmodule Foo do - defmodule Bar do - end -end -``` - -The example above will define two modules: `Foo` and `Foo.Bar`. The second can be accessed as `Bar` inside `Foo` as long as they are in the same lexical scope. - -If, later, the `Bar` module is moved outside the `Foo` module definition, it must be referenced by its full name (`Foo.Bar`) or an alias must be set using the `alias` directive discussed above. - -**Note**: in Elixir, you don't have to define the `Foo` module before being able to define the `Foo.Bar` module, as they are effectively independent. The above could also be written as: - -```elixir -defmodule Foo.Bar do -end - -defmodule Foo do - alias Foo.Bar - # Can still access it as `Bar` -end -``` - -Aliasing a nested module does not bring parent modules into scope. Consider the following example: - -```elixir -defmodule Foo do - defmodule Bar do - defmodule Baz do - end - end -end - -alias Foo.Bar.Baz -# The module `Foo.Bar.Baz` is now available as `Baz` -# However, the module `Foo.Bar` is *not* available as `Bar` -``` - -As we will see in later chapters, aliases also play a crucial role in macros, to guarantee they are hygienic. - -## Multi alias/import/require/use - -It is possible to `alias`, `import`, `require`, or `use` multiple modules at once. This is particularly useful once we start nesting modules, which is very common when building Elixir applications. For example, imagine you have an application where all modules are nested under `MyApp`, you can alias the modules `MyApp.Foo`, `MyApp.Bar` and `MyApp.Baz` at once as follows: - -```elixir -alias MyApp.{Foo, Bar, Baz} -``` - -With this, we have finished our tour of Elixir modules. The next topic to cover is module attributes. diff --git a/getting-started/basic-operators.markdown b/getting-started/basic-operators.markdown index 217814092..459bdf53c 100644 --- a/getting-started/basic-operators.markdown +++ b/getting-started/basic-operators.markdown @@ -1,98 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Basic operators +layout: redirect +sitemap: false +redirect_to: lists-and-tuples --- - -In the [previous chapter](/getting-started/basic-types.html), we saw Elixir provides `+`, `-`, `*`, `/` as arithmetic operators, plus the functions `div/2` and `rem/2` for integer division and remainder. - -Elixir also provides `++` and `--` to manipulate lists: - -```elixir -iex> [1, 2, 3] ++ [4, 5, 6] -[1, 2, 3, 4, 5, 6] -iex> [1, 2, 3] -- [2] -[1, 3] -``` - -String concatenation is done with `<>`: - -```elixir -iex> "foo" <> "bar" -"foobar" -``` - -Elixir also provides three boolean operators: `or`, `and` and `not`. These operators are strict in the sense that they expect something that evaluates to a boolean (`true` or `false`) as their first argument: - -```elixir -iex> true and true -true -iex> false or is_atom(:example) -true -``` - -Providing a non-boolean will raise an exception: - -```elixir -iex> 1 and true -** (BadBooleanError) expected a boolean on left-side of "and", got: 1 -``` - -`or` and `and` are short-circuit operators. They only execute the right side if the left side is not enough to determine the result: - -```elixir -iex> false and raise("This error will never be raised") -false -iex> true or raise("This error will never be raised") -true -``` - -Besides these boolean operators, Elixir also provides `||`, `&&` and `!` which accept arguments of any type. For these operators, all values except `false` and `nil` will evaluate to true: - -```elixir -# or -iex> 1 || true -1 -iex> false || 11 -11 - -# and -iex> nil && 13 -nil -iex> true && 17 -17 - -# not -iex> !true -false -iex> !1 -false -iex> !nil -true -``` - -As a rule of thumb, use `and`, `or` and `not` when you are expecting booleans. If any of the arguments are non-boolean, use `&&`, `||` and `!`. - -Elixir also provides `==`, `!=`, `===`, `!==`, `<=`, `>=`, `<` and `>` as comparison operators: - -```elixir -iex> 1 == 1 -true -iex> 1 != 2 -true -iex> 1 < 2 -true -``` - -The difference between `==` and `===` is that the latter is more strict when comparing integers and floats: - -```elixir -iex> 1 == 1.0 -true -iex> 1 === 1.0 -false -``` - -We say these operators perform _structural comparison_. For more information, you can read our documentation on [Structural vs Semantic comparisons](https://hexdocs.pm/elixir/Kernel.html#module-structural-comparison). - -In the next chapter, we are going to discuss pattern matching through the use of `=`, the match operator. diff --git a/getting-started/basic-types.markdown b/getting-started/basic-types.markdown index fa3f0be70..2ab92484a 100644 --- a/getting-started/basic-types.markdown +++ b/getting-started/basic-types.markdown @@ -1,459 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Basic types +layout: redirect +sitemap: false +redirect_to: basic-types --- - -In this chapter we will learn more about Elixir basic types: integers, floats, booleans, atoms, strings, lists and tuples. Some basic types are: - -```elixir -iex> 1 # integer -iex> 0x1F # integer -iex> 1.0 # float -iex> true # boolean -iex> :atom # atom / symbol -iex> "elixir" # string -iex> [1, 2, 3] # list -iex> {1, 2, 3} # tuple -``` - -## Basic arithmetic - -Open up `iex` and type the following expressions: - -```elixir -iex> 1 + 2 -3 -iex> 5 * 5 -25 -iex> 10 / 2 -5.0 -``` - -Notice that `10 / 2` returned a float `5.0` instead of an integer `5`. This is expected. In Elixir, the operator `/` always returns a float. If you want to do integer division or get the division remainder, you can invoke the `div` and `rem` functions: - -```elixir -iex> div(10, 2) -5 -iex> div 10, 2 -5 -iex> rem 10, 3 -1 -``` - -Notice that Elixir allows you to drop the parentheses when invoking named functions with at least one argument. This feature gives a cleaner syntax when writing declarations and control-flow constructs. However, Elixir developers generally prefer to use parentheses. - -Elixir also supports shortcut notations for entering binary, octal, and hexadecimal numbers: - -```elixir -iex> 0b1010 -10 -iex> 0o777 -511 -iex> 0x1F -31 -``` - -Float numbers require a dot followed by at least one digit and also support `e` for scientific notation: - -```elixir -iex> 1.0 -1.0 -iex> 1.0e-10 -1.0e-10 -``` - -Floats in Elixir are 64-bit double precision. - -You can invoke the `round` function to get the closest integer to a given float, or the `trunc` function to get the integer part of a float. - -```elixir -iex> round(3.58) -4 -iex> trunc(3.58) -3 -``` - -## Identifying functions and documentation - -Functions in Elixir are identified by both their name and their arity. The arity of a function describes the number of arguments that the function takes. From this point on we will use both the function name and its arity to describe functions throughout the documentation. `trunc/1` identifies the function which is named `trunc` and takes `1` argument, whereas `trunc/2` identifies a different (nonexistent) function with the same name but with an arity of `2`. - -We can also use this syntax to access documentation. The Elixir shell defines the `h` function, which you can use to access documentation for any function. For example, typing `h trunc/1` is going to print the documentation for the `trunc/1` function: - -```elixir -iex> h trunc/1 - def trunc() - -Returns the integer part of number. -``` - -`h trunc/1` works because it is defined in the `Kernel` module. All functions in the `Kernel` module are automatically imported into our namespace. Most often you will also include the module name when looking up for documentation for a given function: - -```elixir -iex> h Kernel.trunc/1 - def trunc() - -Returns the integer part of number. -``` - -You can use the module+function to lookup for anything, including operators (try `h Kernel.+/2`). Invoking `h` without arguments displays the documentation for `IEx.Helpers`, which is where `h` and other functionality is defined. - -## Booleans - -Elixir supports `true` and `false` as booleans: - -```elixir -iex> true -true -iex> true == false -false -``` - -Elixir provides a bunch of predicate functions to check for a value type. For example, the `is_boolean/1` function can be used to check if a value is a boolean or not: - -```elixir -iex> is_boolean(true) -true -iex> is_boolean(1) -false -``` - -You can also use `is_integer/1`, `is_float/1` or `is_number/1` to check, respectively, if an argument is an integer, a float, or either. - -## Atoms - -An atom is a constant whose value is its own name. Some other languages call these symbols. They are often useful to enumerate over distinct values, such as: - -```elixir -iex> :apple -:apple -iex> :orange -:orange -iex> :watermelon -:watermelon -``` - -Atoms are equal if their names are equal. - -```elixir -iex> :apple == :apple -true -iex> :apple == :orange -false -``` - -Often they are used to express the state of an operation, by using values such as `:ok` and `:error`. - -The booleans `true` and `false` are also atoms: - -```elixir -iex> true == :true -true -iex> is_atom(false) -true -iex> is_boolean(:false) -true -``` - -Elixir allows you to skip the leading `:` for the atoms `false`, `true` and `nil`. - - -Finally, Elixir has a construct called aliases which we will explore later. Aliases start in upper case and are also atoms: - -```elixir -iex> is_atom(Hello) -true -``` - -## Strings - -Strings in Elixir are delimited by double quotes, and they are encoded in UTF-8: - -```elixir -iex> "hellö" -"hellö" -``` - -> Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering IEx. - -Elixir also supports string interpolation: - -```elixir -iex> string = :world -iex> "hellö #{string}" -"hellö world" -``` - -Strings can have line breaks in them. You can introduce them using escape sequences: - -```elixir -iex> "hello -...> world" -"hello\nworld" -iex> "hello\nworld" -"hello\nworld" -``` - -You can print a string using the `IO.puts/1` function from the `IO` module: - -```elixir -iex> IO.puts("hello\nworld") -hello -world -:ok -``` - -Notice that the `IO.puts/1` function returns the atom `:ok` after printing. - -Strings in Elixir are represented internally by contiguous sequences of bytes known as binaries: - -```elixir -iex> is_binary("hellö") -true -``` - -We can also get the number of bytes in a string: - -```elixir -iex> byte_size("hellö") -6 -``` - -Notice that the number of bytes in that string is 6, even though it has 5 graphemes. That's because the grapheme "ö" takes 2 bytes to be represented in UTF-8. We can get the actual length of the string, based on the number of graphemes, by using the `String.length/1` function: - -```elixir -iex> String.length("hellö") -5 -``` - -The [String module](https://hexdocs.pm/elixir/String.html) contains a bunch of functions that operate on strings as defined in the Unicode standard: - -```elixir -iex> String.upcase("hellö") -"HELLÖ" -``` - -## Anonymous functions - -Elixir also provides anonymous functions. Anonymous functions allow us to store and pass executable code around as if it was an integer or a string. They are delimited by the keywords `fn` and `end`: - -```elixir -iex> add = fn a, b -> a + b end -#Function<12.71889879/2 in :erl_eval.expr/5> -iex> add.(1, 2) -3 -iex> is_function(add) -true -``` - -In the example above, we defined an anonymous function that receives two arguments, `a` and `b`, and returns the result of `a + b`. The arguments are always on the left-hand side of `->` and the code to be executed on the right-hand side. The anonymous function is stored in the variable `add`. - -We can invoke anonymous functions by passing arguments to it. Note that a dot (`.`) between the variable and parentheses is required to invoke an anonymous function. The dot ensures there is no ambiguity between calling the anonymous function matched to a variable `add` and a named function `add/2`. We will write our own named functions when dealing with [Modules and Functions](/getting-started/modules-and-functions.html). For now, just remember that Elixir makes a clear distinction between anonymous functions and named functions. - -Anonymous functions in Elixir are also identified by the number of arguments they receive. We can check if a function is of any given arity by using `is_function/2`: - -```elixir -# check if add is a function that expects exactly 2 arguments -iex> is_function(add, 2) -true -# check if add is a function that expects exactly 1 argument -iex> is_function(add, 1) -false -``` - -Finally, anonymous functions can also access variables that are in scope when the function is defined. This is typically referred to as closures, as they close over their scope. Let's define a new anonymous function that uses the `add` anonymous function we have previously defined: - -```elixir -iex> double = fn a -> add.(a, a) end -#Function<6.71889879/1 in :erl_eval.expr/5> -iex> double.(2) -4 -``` - -A variable assigned inside a function does not affect its surrounding environment: - -```elixir -iex> x = 42 -42 -iex> (fn -> x = 0 end).() -0 -iex> x -42 -``` - -## (Linked) Lists - -Elixir uses square brackets to specify a list of values. Values can be of any type: - -```elixir -iex> [1, 2, true, 3] -[1, 2, true, 3] -iex> length [1, 2, 3] -3 -``` - -Two lists can be concatenated or subtracted using the `++/2` and `--/2` operators respectively: - -```elixir -iex> [1, 2, 3] ++ [4, 5, 6] -[1, 2, 3, 4, 5, 6] -iex> [1, true, 2, false, 3, true] -- [true, false] -[1, 2, 3, true] -``` - -List operators never modify the existing list. Concatenating to or removing elements from a list returns a new list. We say that Elixir data structures are *immutable*. One advantage of immutability is that it leads to clearer code. You can freely pass the data around with the guarantee no one will mutate it in memory - only transform it. - -Throughout the tutorial, we will talk a lot about the head and tail of a list. The head is the first element of a list and the tail is the remainder of the list. They can be retrieved with the functions `hd/1` and `tl/1`. Let's assign a list to a variable and retrieve its head and tail: - -```elixir -iex> list = [1, 2, 3] -iex> hd(list) -1 -iex> tl(list) -[2, 3] -``` - -Getting the head or the tail of an empty list throws an error: - -```elixir -iex> hd([]) -** (ArgumentError) argument error -``` - -Sometimes you will create a list and it will return a quoted value preceded by `~c`. For example: - -```elixir -iex> [11, 12, 13] -~c"\v\f\r" -iex> [104, 101, 108, 108, 111] -~c"hello" -``` - -In Elixir versions before v1.15, this might be displayed as single quotes instead: - -```elixir -iex> [104, 101, 108, 108, 111] -'hello' -``` - -When Elixir sees a list of printable ASCII numbers, Elixir will print that as a charlist (literally a list of characters). Charlists are quite common when interfacing with existing Erlang code. Whenever you see a value in IEx and you are not quite sure what it is, you can use the `i/1` to retrieve information about it: - -```elixir -iex> i ~c"hello" -Term - i ~c"hello" -Data type - List -Description - ... -Raw representation - [104, 101, 108, 108, 111] -Reference modules - List -Implemented protocols - ... -``` - -Keep in mind single-quoted and double-quoted representations are not equivalent in Elixir as they are represented by different types: - -```elixir -iex> 'hello' == "hello" -false -iex> 'hello' == ~c"hello" -true -``` - -Single quotes are charlists, double quotes are strings. We will talk more about them in the ["Binaries, strings and charlists"](/getting-started/binaries-strings-and-char-lists.html) chapter. - -## Tuples - -Elixir uses curly brackets to define tuples. Like lists, tuples can hold any value: - -```elixir -iex> {:ok, "hello"} -{:ok, "hello"} -iex> tuple_size {:ok, "hello"} -2 -``` - -Tuples store elements contiguously in memory. This means accessing a tuple element by index or getting the tuple size is a fast operation. Indexes start from zero: - -```elixir -iex> tuple = {:ok, "hello"} -{:ok, "hello"} -iex> elem(tuple, 1) -"hello" -iex> tuple_size(tuple) -2 -``` - -It is also possible to put an element at a particular index in a tuple with `put_elem/3`: - -```elixir -iex> tuple = {:ok, "hello"} -{:ok, "hello"} -iex> put_elem(tuple, 1, "world") -{:ok, "world"} -iex> tuple -{:ok, "hello"} -``` - -Notice that `put_elem/3` returned a new tuple. The original tuple stored in the `tuple` variable was not modified. Like lists, tuples are also immutable. Every operation on a tuple returns a new tuple, it never changes the given one. - -## Lists or tuples? - -What is the difference between lists and tuples? - -Lists are stored in memory as linked lists, meaning that each element in a list holds its value and points to the following element until the end of the list is reached. This means accessing the length of a list is a linear operation: we need to traverse the whole list in order to figure out its size. - -Similarly, the performance of list concatenation depends on the length of the left-hand list: - -```elixir -iex> list = [1, 2, 3] -[1, 2, 3] - -# This is fast as we only need to traverse `[0]` to prepend to `list` -iex> [0] ++ list -[0, 1, 2, 3] - -# This is slow as we need to traverse `list` to append 4 -iex> list ++ [4] -[1, 2, 3, 4] -``` - -Tuples, on the other hand, are stored contiguously in memory. This means getting the tuple size or accessing an element by index is fast. However, updating or adding elements to tuples is expensive because it requires creating a new tuple in memory: - -```elixir -iex> tuple = {:a, :b, :c, :d} -{:a, :b, :c, :d} -iex> put_elem(tuple, 2, :e) -{:a, :b, :e, :d} -``` - -Note that this applies only to the tuple itself, not its contents. For instance, when you update a tuple, all entries are shared between the old and the new tuple, except for the entry that has been replaced. In other words, tuples and lists in Elixir are capable of sharing their contents. This reduces the amount of memory allocation the language needs to perform and is only possible thanks to the immutable semantics of the language. - -Those performance characteristics dictate the usage of those data structures. One very common use case for tuples is to use them to return extra information from a function. For example, `File.read/1` is a function that can be used to read file contents. It returns a tuple: - -```elixir -iex> File.read("path/to/existing/file") -{:ok, "... contents ..."} -iex> File.read("path/to/unknown/file") -{:error, :enoent} -``` - -If the path given to `File.read/1` exists, it returns a tuple with the atom `:ok` as the first element and the file contents as the second. Otherwise, it returns a tuple with `:error` and the error description. - -Most of the time, Elixir is going to guide you to do the right thing. For example, there is an `elem/2` function to access a tuple item but there is no built-in equivalent for lists: - -```elixir -iex> tuple = {:ok, "hello"} -{:ok, "hello"} -iex> elem(tuple, 1) -"hello" -``` - -When counting the elements in a data structure, Elixir also abides by a simple rule: the function is named `size` if the operation is in constant time (i.e. the value is pre-calculated) or `length` if the operation is linear (i.e. calculating the length gets slower as the input grows). As a mnemonic, both "length" and "linear" start with "l". - -For example, we have used 4 counting functions so far: `byte_size/1` (for the number of bytes in a string), `tuple_size/1` (for tuple size), `length/1` (for list length) and `String.length/1` (for the number of graphemes in a string). We use `byte_size` to get the number of bytes in a string -- a cheap operation. Retrieving the number of Unicode graphemes, on the other hand, uses `String.length`, and may be expensive as it relies on a traversal of the entire string. - -Elixir also provides `Port`, `Reference`, and `PID` as data types (usually used in process communication), and we will take a quick look at them when talking about processes. For now, let's take a look at some of the basic operators that go with our basic types. diff --git a/getting-started/binaries-strings-and-char-lists.markdown b/getting-started/binaries-strings-and-char-lists.markdown index a461056d9..1836f0b2e 100644 --- a/getting-started/binaries-strings-and-char-lists.markdown +++ b/getting-started/binaries-strings-and-char-lists.markdown @@ -1,310 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Binaries, strings, and charlists +layout: redirect +sitemap: false +redirect_to: binaries-strings-and-charlists --- - -In "Basic types", we learned a little bit about strings and we used the `is_binary/1` function for checks: - -```elixir -iex> string = "hello" -"hello" -iex> is_binary(string) -true -``` - -In this chapter, we will gain clarity on what exactly binaries are, how they relate to strings, and what single-quoted values, `'like this'`, mean in Elixir. Although strings are one of the most common data types in computer languages, they are subtly complex and are often misunderstood. To understand strings in Elixir, we have to educate ourselves about [Unicode](https://en.wikipedia.org/wiki/Unicode) and character encodings, specifically the [UTF-8](https://en.wikipedia.org/wiki/UTF-8) encoding. - -## Unicode and Code Points - -In order to facilitate meaningful communication between computers across multiple languages, a standard is required so that the ones and zeros on one machine mean the same thing when they are transmitted to another. The [Unicode Standard](https://unicode.org/standard/standard.html) acts as an official registry of virtually all the characters we know: this includes characters from classical and historical texts, emoji, and formatting and control characters as well. - -Unicode organizes all of the characters in its repertoire into code charts, and each character is given a unique numerical index. This numerical index is known as a [Code Point](https://en.wikipedia.org/wiki/Code_point). - -In Elixir you can use a `?` in front of a character literal to reveal its code point: - -```elixir -iex> ?a -97 -iex> ?ł -322 -``` - -Note that most Unicode code charts will refer to a code point by its hexadecimal (hex) representation, e.g. `97` translates to `0061` in hex, and we can represent any Unicode character in an Elixir string by using the `\uXXXX` notation and the hex representation of its code point number: - -```elixir -iex> "\u0061" == "a" -true -iex> 0x0061 = 97 = ?a -97 -``` - -The hex representation will also help you look up information about a code point, e.g. [https://codepoints.net/U+0061](https://codepoints.net/U+0061) has a data sheet all about the lower case `a`, a.k.a. code point 97. - -## UTF-8 and Encodings - -Now that we understand what the Unicode standard is and what code points are, we can finally talk about encodings. Whereas the code point is **what** we store, an encoding deals with **how** we store it: encoding is an implementation. In other words, we need a mechanism to convert the code point numbers into bytes so they can be stored in memory, written to disk, etc. - -Elixir uses UTF-8 to encode its strings, which means that code points are encoded as a series of 8-bit bytes. UTF-8 is a **variable width** character encoding that uses one to four bytes to store each code point. It is capable of encoding all valid Unicode code points. Let's see an example: - -```elixir -iex> string = "héllo" -"héllo" -iex> String.length(string) -5 -iex> byte_size(string) -6 -``` - -Although the string above has 5 characters, it uses 6 bytes, as two bytes are used to represent the character `é`. - -> Note: if you are running on Windows, there is a chance your terminal does not use UTF-8 by default. You can change the encoding of your current session by running `chcp 65001` before entering `iex` (`iex.bat`). - -Besides defining characters, UTF-8 also provides a notion of graphemes. Graphemes may consist of multiple characters that are often perceived as one. For example, the [woman firefighter emoji](https://emojipedia.org/woman-firefighter/) is represented as the combination of three characters: the woman emoji (👩), a hidden zero-width joiner, and the fire engine emoji (🚒): - -```elixir -iex> String.codepoints("👩‍🚒") -["👩", "‍", "🚒"] -iex> String.graphemes("👩‍🚒") -["👩‍🚒"] -``` - -However, Elixir is smart enough to know they are seen as a single character, and therefore the length is still one: - -```elixir -iex> String.length("👩‍🚒") -1 -``` - -> Note: if you can't see the emoji above in your terminal, you need to make sure your terminal supports emoji and that you are using a font that can render them. - -Although these rules may sound complicated, UTF-8 encoded documents are everywhere. This page itself is encoded in UTF-8. The encoding information is given to your browser which then knows how to render all of the bytes, characters, and graphemes accordingly. - -If you want to see the exact bytes that a string would be stored in a file, a common trick is to concatenate the null byte `<<0>>` to it: - -```elixir -iex> "hełło" <> <<0>> -<<104, 101, 197, 130, 197, 130, 111, 0>> -``` - -Alternatively, you can view a string's binary representation by using [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2): - -```elixir -iex> IO.inspect("hełło", binaries: :as_binaries) -<<104, 101, 197, 130, 197, 130, 111>> -``` - -We are getting a little bit ahead of ourselves. Let's talk about bitstrings to learn about what exactly the `<<>>` constructor means. - -## Bitstrings - -Although we have covered code points and UTF-8 encoding, we still need to go a bit deeper into how exactly we store the encoded bytes, and this is where we introduce the **bitstring**. A bitstring is a fundamental data type in Elixir, denoted with the `<<>>` syntax. **A bitstring is a contiguous sequence of bits in memory.** - -A complete reference about the binary / bitstring constructor `<<>>` can be found [in the Elixir documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1). - -By default, 8 bits (i.e. 1 byte) is used to store each number in a bitstring, but you can manually specify the number of bits via a `::n` modifier to denote the size in `n` bits, or you can use the more verbose declaration `::size(n)`: - -```elixir -iex> <<42>> == <<42::8>> -true -iex> <<3::4>> -<<3::size(4)>> -``` - -For example, the decimal number `3` when represented with 4 bits in base 2 would be `0011`, which is equivalent to the values `0`, `0`, `1`, `1`, each stored using 1 bit: - -```elixir -iex> <<0::1, 0::1, 1::1, 1::1>> == <<3::4>> -true -``` - -Any value that exceeds what can be stored by the number of bits provisioned is truncated: - -```elixir -iex> <<1>> == <<257>> -true -``` - -Here, 257 in base 2 would be represented as `100000001`, but since we have reserved only 8 bits for its representation (by default), the left-most bit is ignored and the value becomes truncated to `00000001`, or simply `1` in decimal. - -## Binaries - -**A binary is a bitstring where the number of bits is divisible by 8.** That means that every binary is a bitstring, but not every bitstring is a binary. We can use the `is_bitstring/1` and `is_binary/1` functions to demonstrate this. - -```elixir -iex> is_bitstring(<<3::4>>) -true -iex> is_binary(<<3::4>>) -false -iex> is_bitstring(<<0, 255, 42>>) -true -iex> is_binary(<<0, 255, 42>>) -true -iex> is_binary(<<42::16>>) -true -``` - -We can pattern match on binaries / bitstrings: - -```elixir -iex> <<0, 1, x>> = <<0, 1, 2>> -<<0, 1, 2>> -iex> x -2 -iex> <<0, 1, x>> = <<0, 1, 2, 3>> -** (MatchError) no match of right hand side value: <<0, 1, 2, 3>> -``` - -Note that unless you explicitly use `::` modifiers, each entry in the binary pattern is expected to match a single byte (exactly 8 bits). If we want to match on a binary of unknown size, we can use the `binary` modifier at the end of the pattern: - -```elixir -iex> <<0, 1, x::binary>> = <<0, 1, 2, 3>> -<<0, 1, 2, 3>> -iex> x -<<2, 3>> -``` - -There are a couple other modifiers that can be useful when doing pattern matches on binaries. The `binary-size(n)` modifier will match `n` bytes in a binary: - -```elixir -iex> <> = <<0, 1, 2, 3>> -<<0, 1, 2, 3>> -iex> head -<<0, 1>> -iex> rest -<<2, 3>> -``` - -**A string is a UTF-8 encoded binary**, where the code point for each character is encoded using 1 to 4 bytes. Thus every string is a binary, but due to the UTF-8 standard encoding rules, not every binary is a valid string. - -```elixir -iex> is_binary("hello") -true -iex> is_binary(<<239, 191, 19>>) -true -iex> String.valid?(<<239, 191, 19>>) -false -``` - -The string concatenation operator `<>` is actually a binary concatenation operator: - -```elixir -iex> "a" <> "ha" -"aha" -iex> <<0, 1>> <> <<2, 3>> -<<0, 1, 2, 3>> -``` - -Given that strings are binaries, we can also pattern match on strings: - -```elixir -iex> <> = "banana" -"banana" -iex> head == ?b -true -iex> rest -"anana" -``` - -However, remember that binary pattern matching works on *bytes*, so matching on the string like "über" with multibyte characters won't match on the _character_, it will match on the _first byte of that character_: - -```elixir -iex> "ü" <> <<0>> -<<195, 188, 0>> -iex> <> = "über" -"über" -iex> x == ?ü -false -iex> rest -<<188, 98, 101, 114>> -``` - -Above, `x` matched on only the first byte of the multibyte `ü` character. - -Therefore, when pattern matching on strings, it is important to use the `utf8` modifier: - -```elixir -iex> <> = "über" -"über" -iex> x == ?ü -true -iex> rest -"ber" -``` - -## Charlists - -Our tour of our bitstrings, binaries, and strings is nearly complete, but we have one more data type to explain: the charlist. - -**A charlist is a list of integers where all the integers are valid code points.** In practice, you will not come across them often, only in specific scenarios such as interfacing with older Erlang libraries that do not accept binaries as arguments. - -```elixir -iex> ~c"hello" -~c"hello" -iex> [?h, ?e, ?l, ?l, ?o] -~c"hello" -``` - -The `~c` sigil (we'll cover sigils later in the ["Sigils"](/getting-started/sigils.html) section) -indicates the fact that we are dealing with a charlist and not a regular string. - -Whereas double-quotes creates strings, single-quotes create charlist literals. -Charlists used to be represented with single quotes in Elixir <1.15: - -```elixir -iex> 'hello' -~c"hello" -``` - -The key takeaway is that `"hello"` is not the same as `'hello'`. Generally speaking, **double-quotes must always be used to represent strings in Elixir**. In any case, let's learn how charlists work. - -Instead of containing bytes, a charlist contains integer code points. However, the list is only printed in single-quotes if all code points are within the ASCII range: - -```elixir -iex> ~c"hełło" -[104, 101, 322, 322, 111] -iex> is_list(~c"hełło") -true -``` - -Interpreting integers as code points may lead to some surprising behavior. For example, if you are storing a list of integers that happen to range between 0 and 127, by default IEx will interpret this as a charlist and it will display the corresponding ASCII characters. - -```elixir -iex> heartbeats_per_minute = [99, 97, 116] -~c"cat" -``` - -You can convert a charlist to a string and back by using the `to_string/1` and `to_charlist/1` functions: - -```elixir -iex> to_charlist("hełło") -[104, 101, 322, 322, 111] -iex> to_string(~c"hełło") -"hełło" -iex> to_string(:hello) -"hello" -iex> to_string(1) -"1" -``` - -Note that those functions are polymorphic - not only do they convert charlists to strings, they also operate on integers, atoms, and so on. - -String (binary) concatenation uses the `<>` operator but charlists, being lists, use the list concatenation operator `++`: - -```elixir -iex> ~c"this " <> ~c"fails" -** (ArgumentError) expected binary argument in <> operator but got: ~c"this " - (elixir) lib/kernel.ex:1821: Kernel.wrap_concatenation/3 - (elixir) lib/kernel.ex:1808: Kernel.extract_concatenations/2 - (elixir) expanding macro: Kernel.<>/2 - iex:1: (file) -iex> ~c"this " ++ ~c"works" -~c"this works" -iex> "he" ++ "llo" -** (ArgumentError) argument error - :erlang.++("he", "llo") -iex> "he" <> "llo" -"hello" -``` - -With binaries, strings, and charlists out of the way, it is time to talk about key-value data structures. diff --git a/getting-started/case-cond-and-if.markdown b/getting-started/case-cond-and-if.markdown index c93c5cbd9..98dd9f544 100644 --- a/getting-started/case-cond-and-if.markdown +++ b/getting-started/case-cond-and-if.markdown @@ -1,196 +1,5 @@ --- -section: getting-started -layout: getting-started -title: case, cond, and if +layout: redirect +sitemap: false +redirect_to: case-cond-and-if --- - -In this chapter, we will learn about the `case`, `cond`, and `if` control flow structures. - -## `case` - -`case` allows us to compare a value against many patterns until we find a matching one: - -```elixir -iex> case {1, 2, 3} do -...> {4, 5, 6} -> -...> "This clause won't match" -...> {1, x, 3} -> -...> "This clause will match and bind x to 2 in this clause" -...> _ -> -...> "This clause would match any value" -...> end -"This clause will match and bind x to 2 in this clause" -``` - -If you want to pattern match against an existing variable, you need to use the `^` operator: - -```elixir -iex> x = 1 -1 -iex> case 10 do -...> ^x -> "Won't match" -...> _ -> "Will match" -...> end -"Will match" -``` - -Clauses also allow extra conditions to be specified via guards: - -```elixir -iex> case {1, 2, 3} do -...> {1, x, 3} when x > 0 -> -...> "Will match" -...> _ -> -...> "Would match, if guard condition were not satisfied" -...> end -"Will match" -``` - -The first clause above will only match when `x` is positive. - -Keep in mind errors in guards do not leak but simply make the guard fail: - -```elixir -iex> hd(1) -** (ArgumentError) argument error -iex> case 1 do -...> x when hd(x) -> "Won't match" -...> x -> "Got #{x}" -...> end -"Got 1" -``` - -If none of the clauses match, an error is raised: - -```elixir -iex> case :ok do -...> :error -> "Won't match" -...> end -** (CaseClauseError) no case clause matching: :ok -``` - -Consult [the full documentation for guards](https://hexdocs.pm/elixir/patterns-and-guards.html#guards) for more information about guards, how they are used, and what expressions are allowed in them. - -Note anonymous functions can also have multiple clauses and guards: - -```elixir -iex> f = fn -...> x, y when x > 0 -> x + y -...> x, y -> x * y -...> end -#Function<12.71889879/2 in :erl_eval.expr/5> -iex> f.(1, 3) -4 -iex> f.(-1, 3) --3 -``` - -The number of arguments in each anonymous function clause needs to be the same, otherwise an error is raised. - -```elixir -iex> f2 = fn -...> x, y when x > 0 -> x + y -...> x, y, z -> x * y + z -...> end -** (CompileError) iex:1: cannot mix clauses with different arities in anonymous functions -``` - -## `cond` - -`case` is useful when you need to match against different values. However, in many circumstances, we want to check different conditions and find the first one that does not evaluate to `nil` or `false`. In such cases, one may use `cond`: - -```elixir -iex> cond do -...> 2 + 2 == 5 -> -...> "This will not be true" -...> 2 * 2 == 3 -> -...> "Nor this" -...> 1 + 1 == 2 -> -...> "But this will" -...> end -"But this will" -``` - -This is equivalent to `else if` clauses in many imperative languages - although used less frequently in Elixir. - -If all of the conditions return `nil` or `false`, an error (`CondClauseError`) is raised. For this reason, it may be necessary to add a final condition, equal to `true`, which will always match: - -```elixir -iex> cond do -...> 2 + 2 == 5 -> -...> "This is never true" -...> 2 * 2 == 3 -> -...> "Nor this" -...> true -> -...> "This is always true (equivalent to else)" -...> end -"This is always true (equivalent to else)" -``` - -Finally, note `cond` considers any value besides `nil` and `false` to be true: - -```elixir -iex> cond do -...> hd([1, 2, 3]) -> -...> "1 is considered as true" -...> end -"1 is considered as true" -``` - -## `if` and `unless` - -Besides `case` and `cond`, Elixir also provides `if/2` and `unless/2`, which are useful when you need to check for only one condition: - -```elixir -iex> if true do -...> "This works!" -...> end -"This works!" -iex> unless true do -...> "This will never be seen" -...> end -nil -``` - -If the condition given to `if/2` returns `false` or `nil`, the body given between `do`-`end` is not executed and instead it returns `nil`. The opposite happens with `unless/2`. - -They also support `else` blocks: - -```elixir -iex> if nil do -...> "This won't be seen" -...> else -...> "This will" -...> end -"This will" -``` - -This is also a good opportunity to talk about variable scoping in Elixir. If any variable is declared or changed inside `if`, `case`, and similar constructs, the declaration and change will only be visible inside the construct. For example: - -```elixir -iex> x = 1 -1 -iex> if true do -...> x = x + 1 -...> end -2 -iex> x -1 -``` - -In said cases, if you want to change a value, you must return the value from the `if`: - -```elixir -iex> x = 1 -1 -iex> x = if true do -...> x + 1 -...> else -...> x -...> end -2 -``` - -> Note: An interesting note regarding `if/2` and `unless/2` is that they are implemented as macros in the language; they aren't special language constructs as they would be in many languages. You can check the documentation and the source of `if/2` in [the `Kernel` module docs](https://hexdocs.pm/elixir/Kernel.html). The `Kernel` module is also where operators like `+/2` and functions like `is_function/2` are defined, all automatically imported and available in your code by default. - -We have concluded the introduction to the most fundamental control-flow constructs in Elixir. Now it is time to talk about "Binaries, strings, and char lists". \ No newline at end of file diff --git a/getting-started/comprehensions.markdown b/getting-started/comprehensions.markdown index 97e1f4bf5..a1ddb4dd7 100644 --- a/getting-started/comprehensions.markdown +++ b/getting-started/comprehensions.markdown @@ -1,114 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Comprehensions +layout: redirect +sitemap: false +redirect_to: comprehensions --- - -In Elixir, it is common to loop over an Enumerable, often filtering out some results and mapping values into another list. Comprehensions are syntactic sugar for such constructs: they group those common tasks into the `for` special form. - -For example, we can map a list of integers into their squared values: - -```elixir -iex> for n <- [1, 2, 3, 4], do: n * n -[1, 4, 9, 16] -``` - -A comprehension is made of three parts: generators, filters, and collectables. - -## Generators and filters - -In the expression above, `n <- [1, 2, 3, 4]` is the **generator**. It is literally generating values to be used in the comprehension. Any enumerable can be passed on the right-hand side of the generator expression: - -```elixir -iex> for n <- 1..4, do: n * n -[1, 4, 9, 16] -``` - -Generator expressions also support pattern matching on their left-hand side; all non-matching patterns are *ignored*. Imagine that, instead of a range, we have a keyword list where the key is the atom `:good` or `:bad` and we only want to compute the square of the `:good` values: - -```elixir -iex> values = [good: 1, good: 2, bad: 3, good: 4] -iex> for {:good, n} <- values, do: n * n -[1, 4, 16] -``` - -Alternatively to pattern matching, filters can be used to select some particular elements. For example, we can select the multiples of 3 and discard all others: - -```elixir -iex> for n <- 0..5, rem(n, 3) == 0, do: n * n -[0, 9] -``` - -Comprehensions discard all elements for which the filter expression returns `false` or `nil`; all other values are selected. - -Comprehensions generally provide a much more concise representation than using the equivalent functions from the `Enum` and `Stream` modules. Furthermore, comprehensions also allow multiple generators and filters to be given. Here is an example that receives a list of directories and gets the size of each file in those directories: - -```elixir -dirs = ["/home/mikey", "/home/james"] - -for dir <- dirs, - file <- File.ls!(dir), - path = Path.join(dir, file), - File.regular?(path) do - File.stat!(path).size -end -``` - -Multiple generators can also be used to calculate the cartesian product of two lists: - -```elixir -iex> for i <- [:a, :b, :c], j <- [1, 2], do: {i, j} -[a: 1, a: 2, b: 1, b: 2, c: 1, c: 2] -``` - -Finally, keep in mind that variable assignments inside the comprehension, be it in generators, filters or inside the block, are not reflected outside of the comprehension. - -## Bitstring generators - -Bitstring generators are also supported and are very useful when you need to comprehend over bitstring streams. The example below receives a list of pixels from a binary with their respective red, green and blue values and converts them into tuples of three elements each: - -```elixir -iex> pixels = <<213, 45, 132, 64, 76, 32, 76, 0, 0, 234, 32, 15>> -iex> for <>, do: {r, g, b} -[{213, 45, 132}, {64, 76, 32}, {76, 0, 0}, {234, 32, 15}] -``` - -A bitstring generator can be mixed with "regular" enumerable generators, and supports filters as well. - -## The `:into` option - -In the examples above, all the comprehensions returned lists as their result. However, the result of a comprehension can be inserted into different data structures by passing the `:into` option to the comprehension. - -For example, a bitstring generator can be used with the `:into` option in order to easily remove all spaces in a string: - -```elixir -iex> for <>, c != ?\s, into: "", do: <> -"helloworld" -``` - -Sets, maps, and other dictionaries can also be given to the `:into` option. In general, `:into` accepts any structure that implements the [`Collectable`](https://hexdocs.pm/elixir/Collectable.html) protocol. - -A common use case of `:into` can be transforming values in a map: - -```elixir -iex> for {key, val} <- %{"a" => 1, "b" => 2}, into: %{}, do: {key, val * val} -%{"a" => 1, "b" => 4} -``` - -Let's make another example using streams. Since the `IO` module provides streams (that are both `Enumerable`s and `Collectable`s), an echo terminal that echoes back the upcased version of whatever is typed can be implemented using comprehensions: - -```elixir -iex> stream = IO.stream(:stdio, :line) -iex> for line <- stream, into: stream do -...> String.upcase(line) <> "\n" -...> end -``` - -Now type any string into the terminal and you will see that the same value will be printed in upper-case. Unfortunately, this example also got your IEx shell stuck in the comprehension, so you will need to hit `Ctrl+C` twice to get out of it. :) - -## Other options - -Comprehensions support other options, such as `:reduce` and `:uniq`. Here are additional resources to learn more about comprehensions: - - * [`for` official reference in Elixir documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#for/1) - * [Mitchell Hanberg's comprehensive guide to Elixir's comprehensions](https://www.mitchellhanberg.com/the-comprehensive-guide-to-elixirs-for-comprehension/) diff --git a/getting-started/debugging.markdown b/getting-started/debugging.markdown index 12eb14861..c63f3e447 100644 --- a/getting-started/debugging.markdown +++ b/getting-started/debugging.markdown @@ -1,167 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Debugging +layout: redirect +sitemap: false +redirect_to: debugging --- - -There are a number of ways to debug code in Elixir. In this chapter we will cover some of the more common ways of doing so. - -## IO.inspect/2 - -What makes `IO.inspect(item, opts \\ [])` really useful in debugging is that it returns the `item` argument passed to it without affecting the behavior of the original code. Let's see an example. - -```elixir -(1..10) -|> IO.inspect -|> Enum.map(fn x -> x * 2 end) -|> IO.inspect -|> Enum.sum -|> IO.inspect -``` - -Prints: - -```elixir -1..10 -[2, 4, 6, 8, 10, 12, 14, 16, 18, 20] -110 -``` - -As you can see `IO.inspect/2` makes it possible to "spy" on values almost anywhere in your code without altering the result, making it very helpful inside of a pipeline like in the above case. - -`IO.inspect/2` also provides the ability to decorate the output with a `label` option. The label will be printed before the inspected `item`: - -```elixir -[1, 2, 3] -|> IO.inspect(label: "before") -|> Enum.map(&(&1 * 2)) -|> IO.inspect(label: "after") -|> Enum.sum -``` - -Prints: - -```elixir -before: [1, 2, 3] -after: [2, 4, 6] -``` - -It is also very common to use `IO.inspect/2` with [`binding()`](https://hexdocs.pm/elixir/Kernel.html#binding/0), which returns all variable names and their values: - -```elixir -def some_fun(a, b, c) do - IO.inspect binding() - ... -end -``` - -When `some_fun/3` is invoked with `:foo`, `"bar"`, `:baz` it prints: - -```elixir -[a: :foo, b: "bar", c: :baz] -``` - -Please see [IO.inspect/2](https://hexdocs.pm/elixir/IO.html#inspect/2) to read more about other ways in which one could use this function. Also, in order to find a full list of other formatting options that one can use alongside `IO.inspect/2`, see [Inspect.Opts](https://hexdocs.pm/elixir/Inspect.Opts.html). - -## `dbg` - -Elixir v1.14 introduced `dbg/2`. `dbg` is similar to `IO.inspect/2`, but specifically tailored for debugging. It prints the value passed to it and returns it (just like `IO.inspect/2`), but it also prints the code and location. - -```elixir -# In my_file.exs -feature = %{name: :dbg, inspiration: "Rust"} -dbg(feature) -dbg(Map.put(feature, :in_version, "1.14.0")) -``` - -The code above prints this: - -```shell -[my_file.exs:2: (file)] -feature #=> %{inspiration: "Rust", name: :dbg} -[my_file.exs:3: (file)] -Map.put(feature, :in_version, "1.14.0") #=> %{in_version: "1.14.0", inspiration: "Rust", name: :dbg} -``` - -When talking about `IO.inspect/2`, we mentioned its usefulness when placed between steps of `|>` pipelines. `dbg` does it better: it understands Elixir code, so it will print values at *every step of the pipeline*. - -```elixir -# In dbg_pipes.exs -__ENV__.file -|> String.split("/", trim: true) -|> List.last() -|> File.exists?() -|> dbg() -``` - -This code prints: - -```shell -[dbg_pipes.exs:5: (file)] -__ENV__.file #=> "/home/myuser/dbg_pipes.exs" -|> String.split("/", trim: true) #=> ["home", "myuser", "dbg_pipes.exs"] -|> List.last() #=> "dbg_pipes.exs" -|> File.exists?() #=> true -``` - -Note `dbg` only supports stepping for pipelines (in other words, it can only step through the code it sees). For general stepping of functions, you will need to set breakpoints using `IEx.break!/4`. - -## Breakpoints - -When code calling `dbg` is executed via `iex`, IEx will ask you to "stop" the code execution where the `dbg` call is. If you accept, you'll be able to access all variables, as well as imports and aliases from the code, directly from IEx. This is called "prying". While the pry session is running, the code execution stops, until `continue` or `next` are called. Remember you can always run `iex` in the context of a project with `iex -S mix TASK`. - - - -`dbg` calls require us to change the code we intend to debug and has limited stepping functionality. Luckily IEx also provides a [`break!/2`](https://hexdocs.pm/iex/IEx.html#break!/2) function which allows you to set and manage breakpoints on any Elixir code without modifying its source: - - - -Similar to `dbg`, once a breakpoint is reached code execution stops until `continue` or `next` are invoked. However, `break!/2` does not have access to aliases and imports from the debugged code as it works on the compiled artifact rather than on source code. - -## Observer - -For debugging complex systems, jumping at the code is not enough. It is necessary to have an understanding of the whole virtual machine, processes, applications, as well as set up tracing mechanisms. Luckily this can be achieved in Erlang with `:observer`. In your application: - -```elixir -$ iex -iex> :observer.start() -``` - -> When running `iex` inside a project with `iex -S mix`, `observer` won't be available as a dependency from Elixir v1.15. To do so, you will need to call the following functions before: -> -> ```elixir -> iex> Mix.ensure_application!(:wx) -> iex> Mix.ensure_application!(:runtime_tools) -> iex> Mix.ensure_application!(:observer) -> iex> :observer.start() -> ``` -> -> If any of the calls above fail, here is what may have happened: some package managers default to installing a minimized Erlang without WX bindings for GUI support. In some package managers, you may be able to replace the headless Erlang with a more complete package (look for packages named `erlang` vs `erlang-nox` on Debian/Ubuntu/Arch). In others managers, you may need to install a separate `erlang-wx` (or similarly named) package. -> -> There are conversations to improve this experience in future releases. - -The above will open another Graphical User Interface that provides many panes to fully understand and navigate the runtime and your project: - -Observer GUI screenshot - -We explore the Observer in the context of an actual project [in the Dynamic Supervisor chapter of the Mix & OTP guide](/getting-started/mix-otp/dynamic-supervisor.html). This is one of the debugging techniques [the Phoenix framework used to achieve 2 million connections on a single machine](https://phoenixframework.org/blog/the-road-to-2-million-websocket-connections). - -If you are using the Phoenix web framework, it ships with the [Phoenix LiveDashboard](https://github.com/phoenixframework/phoenix_live_dashboard), a web dashboard for production nodes which provides similar features to Observer. - -Finally, remember you can also get a mini-overview of the runtime info by calling `runtime_info/0` directly in IEx. - -## Other tools and community - -We have just scratched the surface of what the Erlang VM has to offer, for example: - - * Alongside the observer application, Erlang also includes a `:crashdump_viewer` to view crash dumps - - * Integration with OS level tracers, such as [Linux Trace Toolkit,](http://www.erlang.org/doc/apps/runtime_tools/LTTng.html) [DTRACE,](http://www.erlang.org/doc/apps/runtime_tools/DTRACE.html) and [SystemTap](http://www.erlang.org/doc/apps/runtime_tools/SYSTEMTAP.html) - - * [Microstate accounting](http://www.erlang.org/doc/man/msacc.html) measures how much time the runtime spends in several low-level tasks in a short time interval - - * Mix ships with many tasks under the `profile` namespace, such as `cprof` and `fprof` - - * For more advanced use cases, we recommend the excellent [Erlang in Anger](https://www.erlang-in-anger.com/), which is available as a free ebook - -Happy debugging! diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 7e1b18d19..93f8db8d5 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -1,126 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Enumerables and Streams +layout: redirect +sitemap: false +redirect_to: enumerables-and-streams --- - -## Enumerables - -Elixir provides the concept of enumerables and [the `Enum` module](https://hexdocs.pm/elixir/Enum.html) to work with them. We have already learned two enumerables: lists and maps. - -```elixir -iex> Enum.map([1, 2, 3], fn x -> x * 2 end) -[2, 4, 6] -iex> Enum.map(%{1 => 2, 3 => 4}, fn {k, v} -> k * v end) -[2, 12] -``` - -The `Enum` module provides a huge range of functions to transform, sort, group, filter and retrieve items from enumerables. It is one of the modules developers use frequently in their Elixir code. - -Elixir also provides ranges: - -```elixir -iex> Enum.map(1..3, fn x -> x * 2 end) -[2, 4, 6] -iex> Enum.reduce(1..3, 0, &+/2) -6 -``` - -The functions in the Enum module are limited to, as the name says, enumerating values in data structures. For specific operations, like inserting and updating particular elements, you may need to reach for modules specific to the data type. For example, if you want to insert an element at a given position in a list, you should use the `List.insert_at/3` function from [the `List` module](https://hexdocs.pm/elixir/List.html), as it would make little sense to insert a value into, for example, a range. - -We say the functions in the `Enum` module are polymorphic because they can work with diverse data types. In particular, the functions in the `Enum` module can work with any data type that implements [the `Enumerable` protocol](https://hexdocs.pm/elixir/Enumerable.html). We are going to discuss Protocols in a later chapter; for now we are going to move on to a specific kind of enumerable called a stream. - -## Eager vs Lazy - -All the functions in the `Enum` module are eager. Many functions expect an enumerable and return a list back: - -```elixir -iex> odd? = &(rem(&1, 2) != 0) -#Function<6.80484245/1 in :erl_eval.expr/5> -iex> Enum.filter(1..3, odd?) -[1, 3] -``` - -This means that when performing multiple operations with `Enum`, each operation is going to generate an intermediate list until we reach the result: - -```elixir -iex> 1..100_000 |> Enum.map(&(&1 * 3)) |> Enum.filter(odd?) |> Enum.sum() -7500000000 -``` - -The example above has a pipeline of operations. We start with a range and then multiply each element in the range by 3. This first operation will now create and return a list with `100_000` items. Then we keep all odd elements from the list, generating a new list, now with `50_000` items, and then we sum all entries. - -## The pipe operator - -The `|>` symbol used in the snippet above is the **pipe operator**: it takes the output from the expression on its left side and passes it as the first argument to the function call on its right side. It's similar to the Unix `|` operator. Its purpose is to highlight the data being transformed by a series of functions. To see how it can make the code cleaner, have a look at the example above rewritten without using the `|>` operator: - -```elixir -iex> Enum.sum(Enum.filter(Enum.map(1..100_000, &(&1 * 3)), odd?)) -7500000000 -``` - -Find more about the pipe operator [by reading its documentation](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2). - -## Streams - -As an alternative to `Enum`, Elixir provides [the `Stream` module](https://hexdocs.pm/elixir/Stream.html) which supports lazy operations: - -```elixir -iex> 1..100_000 |> Stream.map(&(&1 * 3)) |> Stream.filter(odd?) |> Enum.sum -7500000000 -``` - -Streams are lazy, composable enumerables. - -In the example above, `1..100_000 |> Stream.map(&(&1 * 3))` returns a data type, an actual stream, that represents the `map` computation over the range `1..100_000`: - -```elixir -iex> 1..100_000 |> Stream.map(&(&1 * 3)) -#Stream<[enum: 1..100000, funs: [#Function<34.16982430/1 in Stream.map/2>]]> -``` - -Furthermore, they are composable because we can pipe many stream operations: - -```elixir -iex> 1..100_000 |> Stream.map(&(&1 * 3)) |> Stream.filter(odd?) -#Stream<[enum: 1..100000, funs: [...]]> -``` - -Instead of generating intermediate lists, streams build a series of computations that are invoked only when we pass the underlying stream to the `Enum` module. Streams are useful when working with large, *possibly infinite*, collections. - -Many functions in the `Stream` module accept any enumerable as an argument and return a stream as a result. It also provides functions for creating streams. For example, `Stream.cycle/1` can be used to create a stream that cycles a given enumerable infinitely. Be careful to not call a function like `Enum.map/2` on such streams, as they would cycle forever: - -```elixir -iex> stream = Stream.cycle([1, 2, 3]) -#Function<15.16982430/2 in Stream.unfold/2> -iex> Enum.take(stream, 10) -[1, 2, 3, 1, 2, 3, 1, 2, 3, 1] -``` - -On the other hand, `Stream.unfold/2` can be used to generate values from a given initial value: - -```elixir -iex> stream = Stream.unfold("hełło", &String.next_codepoint/1) -#Function<39.75994740/2 in Stream.unfold/2> -iex> Enum.take(stream, 3) -["h", "e", "ł"] -``` - -Another interesting function is `Stream.resource/3` which can be used to wrap around resources, guaranteeing they are opened right before enumeration and closed afterwards, even in the case of failures. For example, `File.stream!/1` builds on top of `Stream.resource/3` to stream files: - -```elixir -iex> stream = File.stream!("path/to/file") -%File.Stream{ - line_or_bytes: :line, - modes: [:raw, :read_ahead, :binary], - path: "path/to/file", - raw: true -} -iex> Enum.take(stream, 10) -``` - -The example above will fetch the first 10 lines of the file you have selected. This means streams can be very useful for handling large files or even slow resources like network resources. - -The amount of functionality in the [`Enum`](https://hexdocs.pm/elixir/Enum.html) and [`Stream`](https://hexdocs.pm/elixir/Stream.html) modules can be daunting at first, but you will get familiar with them case by case. In particular, focus on the `Enum` module first and only move to `Stream` for the particular scenarios where laziness is required, to either deal with slow resources or large, possibly infinite, collections. - -Next, we'll look at a feature central to Elixir, Processes, which allows us to write concurrent, parallel and distributed programs in an easy and understandable way. diff --git a/getting-started/erlang-libraries.markdown b/getting-started/erlang-libraries.markdown index 5719d9175..8af923cc7 100644 --- a/getting-started/erlang-libraries.markdown +++ b/getting-started/erlang-libraries.markdown @@ -1,208 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Erlang libraries +layout: redirect +sitemap: false +redirect_to: erlang-libraries --- - -Elixir provides excellent interoperability with Erlang libraries. In fact, -Elixir discourages simply wrapping Erlang libraries in favor of directly -interfacing with Erlang code. In this section, we will present some of the -most common and useful Erlang functionality that is not found in Elixir. - -As you grow more proficient in Elixir, you may want to explore the Erlang -[STDLIB Reference Manual](http://www.erlang.org/doc/apps/stdlib/index.html) in more -detail. - -## The binary module - -The built-in Elixir String module handles binaries that are UTF-8 encoded. -[The binary module](http://www.erlang.org/doc/man/binary.html) is useful when -you are dealing with binary data that is not necessarily UTF-8 encoded. - -```elixir -iex> String.to_charlist "Ø" -[216] -iex> :binary.bin_to_list "Ø" -[195, 152] -``` - -The above example shows the difference; the `String` module returns Unicode -codepoints, while `:binary` deals with raw data bytes. - -## Formatted text output - -Elixir does not contain a function similar to `printf` found in C and other -languages. Luckily, the Erlang standard library functions `:io.format/2` and -`:io_lib.format/2` may be used. The first formats to terminal output, while -the second formats to an iolist. The format specifiers differ from `printf`, -[refer to the Erlang documentation for details](http://www.erlang.org/doc/man/io.html#format-1). - -```elixir -iex> :io.format("Pi is approximately given by:~10.3f~n", [:math.pi]) -Pi is approximately given by: 3.142 -:ok -iex> to_string :io_lib.format("Pi is approximately given by:~10.3f~n", [:math.pi]) -"Pi is approximately given by: 3.142\n" -``` - -Also note that Erlang's formatting functions require special attention to -Unicode handling. - -## The crypto module - -[The crypto module](http://www.erlang.org/doc/man/crypto.html) contains hashing -functions, digital signatures, encryption and more: - -```elixir -iex> Base.encode16(:crypto.hash(:sha256, "Elixir")) -"3315715A7A3AD57428298676C5AE465DADA38D951BDFAC9348A8A31E9C7401CB" -``` - -The `:crypto` module is part of the `:crypto` application that ships with -Erlang. This means you must list the `:crypto` application as an additional -application in your project configuration. To do this, edit your `mix.exs` -file to include: - -```elixir -def application do - [extra_applications: [:crypto]] -end -``` - -Any module that is not part of the `:kernel` or `:stdlib` Erlang applications -must have their application explicitly listed in your `mix.exs`. You can find -the application name of any Erlang module in the Erlang documentation, immediately -below the Erlang logo in the sidebar. - -## The digraph module - -[The digraph module](http://www.erlang.org/doc/man/digraph.html) (as well as -[digraph_utils](http://www.erlang.org/doc/man/digraph_utils.html)) contains -functions for dealing with directed graphs built of vertices and edges. -After constructing the graph, the algorithms in there will help find, -for instance, the shortest path between two vertices, or loops in the graph. - -Given three vertices, find the shortest path from the first to the last. - -```elixir -iex> digraph = :digraph.new() -iex> coords = [{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}] -iex> [v0, v1, v2] = (for c <- coords, do: :digraph.add_vertex(digraph, c)) -iex> :digraph.add_edge(digraph, v0, v1) -iex> :digraph.add_edge(digraph, v1, v2) -iex> :digraph.get_short_path(digraph, v0, v2) -[{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}] -``` - -Note that the functions in `:digraph` alter the graph structure in-place, this -is possible because they are implemented as ETS tables, explained next. - -## Erlang Term Storage - -The modules [`ets`](http://www.erlang.org/doc/man/ets.html) and -[`dets`](http://www.erlang.org/doc/man/dets.html) handle storage of large -data structures in memory or on disk respectively. - -ETS lets you create a table containing tuples. By default, ETS tables -are protected, which means only the owner process may write to the table -but any other process can read. ETS has some functionality to allow a -table to be used as a simple database, a key-value store or as a cache -mechanism. - -The functions in the `ets` module will modify the state of the table as a -side-effect. - -```elixir -iex> table = :ets.new(:ets_test, []) -# Store as tuples with {name, population} -iex> :ets.insert(table, {"China", 1_374_000_000}) -iex> :ets.insert(table, {"India", 1_284_000_000}) -iex> :ets.insert(table, {"USA", 322_000_000}) -iex> :ets.i(table) -<1 > {<<"India">>,1284000000} -<2 > {<<"USA">>,322000000} -<3 > {<<"China">>,1374000000} -``` - -## The math module - -[The `math` module](http://www.erlang.org/doc/man/math.html) contains common -mathematical operations covering trigonometry, exponential, and logarithmic -functions. - -```elixir -iex> angle_45_deg = :math.pi() * 45.0 / 180.0 -iex> :math.sin(angle_45_deg) -0.7071067811865475 -iex> :math.exp(55.0) -7.694785265142018e23 -iex> :math.log(7.694785265142018e23) -55.0 -``` - -## The queue module - -The [`queue` is a data structure](http://www.erlang.org/doc/man/queue.html) -that implements (double-ended) FIFO (first-in first-out) queues efficiently: - -```elixir -iex> q = :queue.new -iex> q = :queue.in("A", q) -iex> q = :queue.in("B", q) -iex> {value, q} = :queue.out(q) -iex> value -{:value, "A"} -iex> {value, q} = :queue.out(q) -iex> value -{:value, "B"} -iex> {value, q} = :queue.out(q) -iex> value -:empty -``` - -## The rand module - -[`rand` has functions](http://www.erlang.org/doc/man/rand.html) for returning -random values and setting the random seed. - -```elixir -iex> :rand.uniform() -0.8175669086010815 -iex> _ = :rand.seed(:exs1024, {123, 123534, 345345}) -iex> :rand.uniform() -0.5820506340260994 -iex> :rand.uniform(6) -6 -``` - -## The zip and zlib modules - -[The `zip` module](http://www.erlang.org/doc/man/zip.html) lets you read and write -ZIP files to and from disk or memory, as well as extracting file information. - -This code counts the number of files in a ZIP file: - -```elixir -iex> :zip.foldl(fn _, _, _, acc -> acc + 1 end, 0, :binary.bin_to_list("file.zip")) -{:ok, 633} -``` - -[The `zlib` module](http://www.erlang.org/doc/man/zlib.html) deals with data compression in zlib format, as found in the -`gzip` command. - -```elixir -iex> song = " -...> Mary had a little lamb, -...> His fleece was white as snow, -...> And everywhere that Mary went, -...> The lamb was sure to go." -iex> compressed = :zlib.compress(song) -iex> byte_size song -110 -iex> byte_size compressed -99 -iex> :zlib.uncompress(compressed) -"\nMary had a little lamb,\nHis fleece was white as snow,\nAnd everywhere that Mary went,\nThe lamb was sure to go." -``` - -Now let's take a look at existing Elixir (and Erlang) libraries you might use while debugging. \ No newline at end of file diff --git a/getting-started/index.html b/getting-started/index.html index a5a74f690..c50365d75 100644 --- a/getting-started/index.html +++ b/getting-started/index.html @@ -1,7 +1,5 @@ - - - - Introduction - Elixir - - - +--- +layout: redirect +sitemap: false +redirect_to: introduction +--- diff --git a/getting-started/introduction.markdown b/getting-started/introduction.markdown index 031c6b7e4..c50365d75 100644 --- a/getting-started/introduction.markdown +++ b/getting-started/introduction.markdown @@ -1,64 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Introduction +layout: redirect +sitemap: false +redirect_to: introduction --- -{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} - -Welcome! - -In this tutorial, we are going to teach you about Elixir fundamentals - the language syntax, how to define modules, how to manipulate the characteristics of common data structures, and more. This chapter will focus on ensuring that Elixir is installed and that you can successfully run Elixir's Interactive Shell, called IEx. - -Our requirements are (see `elixir -v`): - - * Elixir 1.11.0 onwards - * Erlang/OTP 22 onwards - -Let's get started! - -> If you find any errors in the tutorial or on the website, [please report a bug or send a pull request to our issue tracker](https://github.com/elixir-lang/elixir-lang.github.com). - -## Installation - -If you haven't yet installed Elixir, visit our [installation page](/install.html). Once you are done, you can run `elixir --version` to get the current Elixir version. - -## Interactive mode - -When you install Elixir, you will have three new executables: `iex`, `elixir` and `elixirc`. If you compiled Elixir from source or are using a packaged version, you can find these inside the `bin` directory. - -For now, let's start by running `iex` (or `iex.bat` if you are on Windows PowerShell, where `iex` is a PowerShell command) which stands for Interactive Elixir. In interactive mode, we can type any Elixir expression and get its result. Let's warm up with some basic expressions. - -Open up `iex` and type the following expressions: - -```elixir -Erlang/OTP {{ stable.minimum_otp }} [64-bit] [smp:2:2] [...] - -Interactive Elixir ({{ stable.version }}) - press Ctrl+C to exit -iex> 40 + 2 -42 -iex> "hello" <> " world" -"hello world" -``` - -Please note that some details like version numbers may differ a bit in your session; that's not important. From now on `iex` sessions will be stripped down to focus on the code. To exit `iex` press `Ctrl+C` twice. - -It seems we are ready to go! We will use the interactive shell quite a lot in the next chapters to get a bit more familiar with the language constructs and basic types, starting in the next chapter. - -> Note: if you are on Windows and running on an Erlang/OTP version earlier than 26, you can also try `iex --werl` (`iex.bat --werl` on PowerShell) which may provide a better experience depending on which console you are using. - -## Running scripts - -After getting familiar with the basics of the language you may want to try writing simple programs. This can be accomplished by putting the following Elixir code into a file: - -```elixir -IO.puts("Hello world from Elixir") -``` - -Save it as `simple.exs` and execute it with `elixir`: - -```console -$ elixir simple.exs -Hello world from Elixir -``` - -Later on we will learn how to compile Elixir code (in [Chapter 8](/getting-started/modules-and-functions.html)) and how to use the Mix build tool (in the [Mix & OTP guide](/getting-started/mix-otp/introduction-to-mix.html)). For now, let's move on to [Chapter 2](/getting-started/basic-types.html). diff --git a/getting-started/io-and-the-file-system.markdown b/getting-started/io-and-the-file-system.markdown index 3a02f35f2..17a6e7bef 100644 --- a/getting-started/io-and-the-file-system.markdown +++ b/getting-started/io-and-the-file-system.markdown @@ -1,223 +1,5 @@ --- -section: getting-started -layout: getting-started -title: IO and the file system +layout: redirect +sitemap: false +redirect_to: io-and-the-file-system --- - -This chapter is an introduction to input/output mechanisms, file-system-related tasks, and related modules such as [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html), and [`Path`](https://hexdocs.pm/elixir/Path.html). The IO system provides a great opportunity to shed some light on some philosophies and curiosities of Elixir and the VM. - -## The `IO` module - -The [`IO`](https://hexdocs.pm/elixir/IO.html) module is the main mechanism in Elixir for reading and writing to standard input/output (`:stdio`), standard error (`:stderr`), files, and other IO devices. Usage of the module is pretty straightforward: - -```elixir -iex> IO.puts("hello world") -hello world -:ok -iex> IO.gets("yes or no? ") -yes or no? yes -"yes\n" -``` - -By default, functions in the `IO` module read from the standard input and write to the standard output. We can change that by passing, for example, `:stderr` as an argument (in order to write to the standard error device): - -```elixir -iex> IO.puts(:stderr, "hello world") -hello world -:ok -``` - -## The `File` module - -The [`File`](https://hexdocs.pm/elixir/File.html) module contains functions that allow us to open files as IO devices. By default, files are opened in binary mode, which requires developers to use the specific `IO.binread/2` and `IO.binwrite/2` functions from the `IO` module: - -```elixir -iex> {:ok, file} = File.open("path/to/file/hello", [:write]) -{:ok, #PID<0.47.0>} -iex> IO.binwrite(file, "world") -:ok -iex> File.close(file) -:ok -iex> File.read("path/to/file/hello") -{:ok, "world"} -``` - -A file can also be opened with `:utf8` encoding, which tells the `File` module to interpret the bytes read from the file as UTF-8-encoded bytes. - -Besides functions for opening, reading and writing files, the `File` module has many functions to work with the file system. Those functions are named after their UNIX equivalents. For example, `File.rm/1` can be used to remove files, `File.mkdir/1` to create directories, `File.mkdir_p/1` to create directories and all their parent chain. There are even `File.cp_r/2` and `File.rm_rf/1` to respectively copy and remove files and directories recursively (i.e., copying and removing the contents of the directories too). - -You will also notice that functions in the `File` module have two variants: one "regular" variant and another variant with a trailing bang (`!`). For example, when we read the `"hello"` file in the example above, we use `File.read/1`. Alternatively, we can use `File.read!/1`: - -```elixir -iex> File.read("path/to/file/hello") -{:ok, "world"} -iex> File.read!("path/to/file/hello") -"world" -iex> File.read("path/to/file/unknown") -{:error, :enoent} -iex> File.read!("path/to/file/unknown") -** (File.Error) could not read file "path/to/file/unknown": no such file or directory -``` - -Notice that the version with `!` returns the contents of the file instead of a tuple, and if anything goes wrong the function raises an error. - -The version without `!` is preferred when you want to handle different outcomes using pattern matching: - -```elixir -case File.read("path/to/file/hello") do - {:ok, body} -> # do something with the `body` - {:error, reason} -> # handle the error caused by `reason` -end -``` - -However, if you expect the file to be there, the bang variation is more useful as it raises a meaningful error message. Avoid writing: - -```elixir -{:ok, body} = File.read("path/to/file/unknown") -``` - -as, in case of an error, `File.read/1` will return `{:error, reason}` and the pattern matching will fail. You will still get the desired result (a raised error), but the message will be about the pattern which doesn't match (thus being cryptic in respect to what the error actually is about). - -Therefore, if you don't want to handle the error outcomes, prefer to use the functions ending with an exclamation mark, such as `File.read!/1`. - -## The `Path` module - -The majority of the functions in the `File` module expect paths as arguments. Most commonly, those paths will be regular binaries. The [`Path`](https://hexdocs.pm/elixir/Path.html) module provides facilities for working with such paths: - -```elixir -iex> Path.join("foo", "bar") -"foo/bar" -iex> Path.expand("~/hello") -"/Users/jose/hello" -``` - -Using functions from the `Path` module as opposed to directly manipulating strings is preferred since the `Path` module takes care of different operating systems transparently. Finally, keep in mind that Elixir will automatically convert slashes (`/`) into backslashes (`\`) on Windows when performing file operations. - -With this, we have covered the main modules that Elixir provides for dealing with IO and interacting with the file system. In the next section, we will peek a bit under the covers and learn how the IO system is implemented in the VM. - -## Processes - -You may have noticed that `File.open/2` returns a tuple like `{:ok, pid}`: - -```elixir -iex> {:ok, file} = File.open("hello", [:write]) -{:ok, #PID<0.47.0>} -``` - -This happens because the `IO` module actually works with processes (see [chapter 11](/getting-started/processes.html)). Given a file is a process, when you write to a file that has been closed, you are actually sending a message to a process which has been terminated: - -```elixir -iex> File.close(file) -:ok -iex> IO.write(file, "is anybody out there") -** (ErlangError) Erlang error: :terminated: - - * 1st argument: the device has terminated - - (stdlib 5.0) io.erl:94: :io.put_chars(#PID<0.114.0>, "is anybody out there") - iex:4: (file) -``` - -Let's see in more detail what happens when you request `IO.write(pid, binary)`. The `IO` module sends a message to the process identified by `pid` with the desired operation. A small ad-hoc process can help us see it: - -```elixir -iex> pid = spawn(fn -> -...> receive do: (msg -> IO.inspect msg) -...> end) -#PID<0.57.0> -iex> IO.write(pid, "hello") -{:io_request, #PID<0.41.0>, #Reference<0.0.8.91>, - {:put_chars, :unicode, "hello"}} -** (ErlangError) erlang error: :terminated -``` - -After `IO.write/2`, we can see the request sent by the `IO` module printed out (a four-elements tuple). Soon after that, we see that it fails since the `IO` module expected some kind of result, which we did not supply. - -By modeling IO devices with processes, the Erlang VM allows IO messages to be routed between different nodes running Distributed Erlang or even exchange files to perform read/write operations across nodes. Neat! - -## `iodata` and `chardata` - -In all of the examples above, we used binaries when writing to files. However, most of the IO functions in Elixir also accept either "iodata" or "chardata". - -One of the main reasons for using "iodata" and "chardata" is for performance. For example, -imagine you need to greet someone in your application: - -```elixir -name = "Mary" -IO.puts("Hello " <> name <> "!") -``` - -Given strings in Elixir are immutable, as most data structures, the example above will copy the string "Mary" into the new "Hello Mary!" string. While this is unlikely to matter for the short string as above, copying can be quite expensive for large strings! For this reason, the IO functions in Elixir allow you to pass instead a list of strings: - -```elixir -name = "Mary" -IO.puts(["Hello ", name, "!"]) -``` - -In the example above, there is no copying. Instead we create a list that contains the original name. We call such lists either "iodata" or "chardata" and we will learn the precise difference between them soon. - -Those lists are very useful because it can actually simplify the processing strings in several scenarios. For example, imagine you have a list of values, such as `["apple", "banana", "lemon"]` that you want to write to disk separated by commas. How can you achieve this? - -One option is to use `Enum.join/2` and convert the values to a string: - -```elixir -iex> Enum.join(["apple", "banana", "lemon"], ",") -"apple,banana,lemon" -``` - -The above returns a new string by copying each value into the new string. However, with the knowledge in this section, we know that we can pass a list of strings to the IO/File functions. So instead we can do: - -```elixir -iex> Enum.intersperse(["apple", "banana", "lemon"], ",") -["apple", ",", "banana", ",", "lemon"] -``` - -"iodata" and "chardata" do not only contain strings, but they may contain arbitrary nested lists of strings too: - -```elixir -iex> IO.puts(["apple", [",", "banana", [",", "lemon"]]]) -``` - -"iodata" and "chardata" may also contain integers. For example, we could print our comma separated list of values by using `?,` as separator, which is the integer representing a comma (`44`): - -```elixir -iex> IO.puts(["apple", ?,, "banana", ?,, "lemon"]) -``` - -The difference between "iodata" and "chardata" is precisely what said integer represents. For iodata, the integers represent bytes. For chardata, the integers represent Unicode codepoints. For ASCII characters, the byte representation is the same as the codepoint representation, so it fits both classifications. However, the default IO device works with chardata, which means we can do: - -```elixir -iex> IO.puts([?O, ?l, ?á, ?\s, "Mary", ?!]) -``` - -Overall, integers in a list may represent either a bunch of bytes or a bunch of characters and which one to use depends on the encoding of the IO device. If the file is opened without encoding, the file is expected to be in raw mode, and the functions in the `IO` module starting with `bin*` must be used. Those functions expect an `iodata` as an argument, where integers in the list would represent bytes. - -On the other hand, the default IO device (`:stdio`) and files opened with `:utf8` encoding work with the remaining functions in the `IO` module. Those functions expect a `chardata` as an argument, where integers represent codepoints. - -Although this is a subtle difference, you only need to worry about these details if you intend to pass lists containing integers to those functions. If you pass binaries, or list of binaries, then there is no ambiguity. - -Finally, there is one last construct called charlist, which is a special case of chardata where we have a list in which all of its values are integers representing Unicode codepoints. They can be created with the `~c` sigil: - -```elixir -iex> ~c"hello" -~c"hello" -``` - -> Note: the above is printed as 'hello' in Elixir v1.14 and earlier, which is the deprecated syntax for charlists. - -They mostly show up when interfacing with Erlang, as some Erlang APIs use charlist as their representation for strings. For this reason, any list containing printable ASCII codepoints will be printed as a charlist: - -```elixir -iex> [?a, ?b, ?c] -~c"abc" -``` - -We packed a lot into this small section, so let's break it down: - - * iodata and chardata are lists of binaries and integers. Those binaries and integers can be arbitrarily nested inside lists. Their goal is to give flexibility and performance when working with IO devices and files - - * the choice between iodata and chardata depends on the encoding of the IO device. If the file is opened without encoding, the file expects iodata, and the functions in the `IO` module starting with `bin*` must be used. The default IO device (`:stdio`) and files opened with `:utf8` encoding expect chardata and work with the remaining functions in the `IO` module - - * charlists are a special case of chardata, where it exclusively uses a list of integers Unicode codepoints. They can be created with the `~c` sigil. Lists of integers are automatically printed using the `~c` sigil if all integers in a list represent printable ASCII codepoints. - -This finishes our tour of IO devices and IO related functionality. We have learned about three Elixir modules - [`IO`](https://hexdocs.pm/elixir/IO.html), [`File`](https://hexdocs.pm/elixir/File.html), and [`Path`](https://hexdocs.pm/elixir/Path.html) - as well as how the VM uses processes for the underlying IO mechanisms and how to use `chardata` and `iodata` for IO operations. diff --git a/getting-started/keywords-and-maps.markdown b/getting-started/keywords-and-maps.markdown index c41d7d16f..a7430b486 100644 --- a/getting-started/keywords-and-maps.markdown +++ b/getting-started/keywords-and-maps.markdown @@ -1,272 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Keyword lists and maps -redirect_from: /getting-started/maps-and-dicts.html +layout: redirect +sitemap: false +redirect_to: keywords-and-maps --- - -Now let's talk about associative data structures. Associative data structures are able to associate a key to a certain value. Different languages call these different names like dictionaries, hashes, associative arrays, etc. - -In Elixir, we have two main associative data structures: keyword lists and maps. It's time to learn more about them! - -## Keyword lists - -Keyword lists are a data-structure used to pass options to functions. Imagine you want to split a string of numbers. We can use `String.split/2`: - -```elixir -iex> String.split("1 2 3", " ") -["1", "2", "3"] -``` - -However, what happens if there is an additional space between the numbers: - -```elixir -iex> String.split("1 2 3", " ") -["1", "", "2", "", "3"] -``` - -As you can see, there are now empty strings in our results. Luckily, the `String.split/3` function allows the `trim` option to be set to true: - -```elixir -iex> String.split("1 2 3", " ", [trim: true]) -["1", "2", "3"] -``` - -`[trim: true]` is a keyword list. Furthermore, when a keyword list is the last argument of a function, we can skip the brackets and write: - -```elixir -iex> String.split("1 2 3", " ", trim: true) -["1", "2", "3"] -``` - -As the name implies, keyword lists are simply lists. In particular, they are lists consisting of 2-item tuples where the first element (the key) is an atom and the second element can be any value. Both representations are the same: - -```elixir -iex> [{:trim, true}] == [trim: true] -true -``` - -Since keyword lists are lists, we can use all operations available to lists. For example, we can use `++` to add new values to a keyword list: - -```elixir -iex> list = [a: 1, b: 2] -[a: 1, b: 2] -iex> list ++ [c: 3] -[a: 1, b: 2, c: 3] -iex> [a: 0] ++ list -[a: 0, a: 1, b: 2] -``` - -You can read the value of a keyword list using the brackets syntax: - -```elixir -iex> list[:a] -1 -iex> list[:b] -2 -``` - -In case of duplicate keys, values added to the front are the ones fetched: - -```elixir -iex> new_list = [a: 0] ++ list -[a: 0, a: 1, b: 2] -iex> new_list[:a] -0 -``` - -Keyword lists are important because they have three special characteristics: - - * Keys must be atoms. - * Keys are ordered, as specified by the developer. - * Keys can be given more than once. - -For example, [the Ecto library](https://github.com/elixir-lang/ecto) makes use of these features to provide an elegant DSL for writing database queries: - -```elixir -query = - from w in Weather, - where: w.prcp > 0, - where: w.temp < 20, - select: w -``` - -Although we can pattern match on keyword lists, it is rarely done in practice since pattern matching on lists requires the number of items and their order to match: - -```elixir -iex> [a: a] = [a: 1] -[a: 1] -iex> a -1 -iex> [a: a] = [a: 1, b: 2] -** (MatchError) no match of right hand side value: [a: 1, b: 2] -iex> [b: b, a: a] = [a: 1, b: 2] -** (MatchError) no match of right hand side value: [a: 1, b: 2] -``` - -In order to manipulate keyword lists, Elixir provides [the `Keyword` module](https://hexdocs.pm/elixir/Keyword.html). Remember, though, keyword lists are simply lists, and as such they provide the same linear performance characteristics as them: the longer the list, the longer it will take to find a key, to count the number of items, and so on. For this reason, keyword lists are used in Elixir mainly for passing optional values. If you need to store many items or guarantee one-key associates with at maximum one-value, you should use maps instead. - -### `do`-blocks and keywords - -As we have seen, keywords are mostly used in the language to pass optional values. In fact, we have used keywords before in this guide. For example, we have seen: - -```elixir -iex> if true do -...> "This will be seen" -...> else -...> "This won't" -...> end -"This will be seen" -``` - -It happens that `do` blocks are nothing more than a syntax convenience on top of keywords. We can rewrite the above to: - -```elixir -iex> if true, do: "This will be seen", else: "This won't" -"This will be seen" -``` - -Pay close attention to both syntaxes. In the keyword list format, we separate each key-value pair with commas, and each key is followed by `:`. In the `do`-blocks, we get rid of the colons, the commas, and separate each keyword by a newline. They are useful exactly because they remove the verbosity when writing blocks of code. Most of the time, you will use the block syntax, but it is good to know they are equivalent. - -Note that only a handful of keyword lists can be converted to blocks: `do`, `else`, `catch`, `rescue`, and `after`. Those are all the keywords used by Elixir control-flow constructs. We have already learned some of them and we will learn others in the future. - -With this out of the way, let's see how we can work with nested data structures. - -## Maps as key-value pairs - -Whenever you need to store key-value pairs, maps are the "go to" data structure in Elixir. A map is created using the `%{}` syntax: - -```elixir -iex> map = %{:a => 1, 2 => :b} -%{2 => :b, :a => 1} -iex> map[:a] -1 -iex> map[2] -:b -iex> map[:c] -nil -``` - -Compared to keyword lists, we can already see two differences: - - * Maps allow any value as a key. - * Maps' keys do not follow any ordering. - -In contrast to keyword lists, maps are very useful with pattern matching. When a map is used in a pattern, it will always match on a subset of the given value: - -```elixir -iex> %{} = %{:a => 1, 2 => :b} -%{2 => :b, :a => 1} -iex> %{:a => a} = %{:a => 1, 2 => :b} -%{2 => :b, :a => 1} -iex> a -1 -iex> %{:c => c} = %{:a => 1, 2 => :b} -** (MatchError) no match of right hand side value: %{2 => :b, :a => 1} -``` - -As shown above, a map matches as long as the keys in the pattern exist in the given map. Therefore, an empty map matches all maps. - -[The `Map` module](https://hexdocs.pm/elixir/Map.html) provides a very similar API to the `Keyword` module with convenience functions to add, remove, and update maps keys: - -```elixir -iex> Map.get(%{:a => 1, 2 => :b}, :a) -1 -iex> Map.put(%{:a => 1, 2 => :b}, :c, 3) -%{2 => :b, :a => 1, :c => 3} -iex> Map.to_list(%{:a => 1, 2 => :b}) -[{2, :b}, {:a, 1}] -``` - -## Maps of fixed keys - -In the previous section, we have used maps as a key-value data structure where keys can be added or removed at any time. However, it is also common to create maps with a pre-defined set of keys. Their values may be updated, but new keys are never added nor removed. This is useful when we know the shape of the data we are working with and, if we get a different key, it likely means a mistake -was done elsewhere. - -We define such maps using the same syntax as in the previous section, except -that all keys must be atoms: - -```elixir -iex> map = %{:name => "John", :age => 23} -%{name: "John", age: 23} -``` - -As you can see from the printed result above, Elixir also allows you to -write maps of atom keys using the same `key: value` syntax as keyword lists. - -When the keys are atoms, we can also access them using the `map.key` -syntax: - -```elixir -iex> map = %{name: "John", age: 23} -%{name: "John", age: 23} - -iex> map.name -"John" -iex> map.agee -** (KeyError) key :agee not found in: %{name: "John", age: 23} -``` - -This syntax has one large benefit in that it raises an exception if the key does not exist in the map. Sometimes the Elixir compiler may even warn too. This makes it useful to get quick feedback and spot bugs and typos early on. This is also -the syntax used to power another Elixir feature called "Structs". - -Elixir developers typically prefer to use the `map.key` syntax and pattern matching instead of the functions in the `Map` module when working with maps because they lead to an assertive style of programming. [This blog post by José Valim](https://dashbit.co/blog/writing-assertive-code-with-elixir) provides insight and examples on how you get more concise and faster software by writing assertive code in Elixir. - -## Nested data structures - -Often we will have maps inside maps, or even keywords lists inside maps, and so forth. Elixir provides conveniences for manipulating nested data structures via the `put_in/2`, `update_in/2` and other macros giving the same conveniences you would find in imperative languages while keeping the immutable properties of the language. - -Imagine you have the following structure: - -```elixir -iex> users = [ - john: %{name: "John", age: 27, languages: ["Erlang", "Ruby", "Elixir"]}, - mary: %{name: "Mary", age: 29, languages: ["Elixir", "F#", "Clojure"]} -] -[ - john: %{age: 27, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, - mary: %{age: 29, languages: ["Elixir", "F#", "Clojure"], name: "Mary"} -] -``` - -We have a keyword list of users where each value is a map containing the name, age and a list of programming languages each user likes. If we wanted to access the age for john, we could write: - -```elixir -iex> users[:john].age -27 -``` - -It happens we can also use this same syntax for updating the value: - -```elixir -iex> users = put_in users[:john].age, 31 -[ - john: %{age: 31, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, - mary: %{age: 29, languages: ["Elixir", "F#", "Clojure"], name: "Mary"} -] -``` - -The `update_in/2` macro is similar but allows us to pass a function that controls how the value changes. For example, let's remove "Clojure" from Mary's list of languages: - -```elixir -iex> users = update_in users[:mary].languages, fn languages -> List.delete(languages, "Clojure") end -[ - john: %{age: 31, languages: ["Erlang", "Ruby", "Elixir"], name: "John"}, - mary: %{age: 29, languages: ["Elixir", "F#"], name: "Mary"} -] -``` - -There is more to learn about `put_in/2` and `update_in/2`, including the `get_and_update_in/2` that allows us to extract a value and update the data structure at once. There are also `put_in/3`, `update_in/3` and `get_and_update_in/3` which allow dynamic access into the data structure. [Check their respective documentation in the `Kernel` module for more information](https://hexdocs.pm/elixir/Kernel.html). Between the Access -module and pattern matching, Elixir developers have a rich set of tools -for manipulating nested and complex data structures. - -## Summary - -This concludes our introduction to associative data structures in Elixir. -As a summary, you should: - - * Use keyword lists for passing optional values to functions - - * Use maps for general key-value data structures and when working with known data (with fixed keys) - -Now we can move on to talk about modules and functions. diff --git a/getting-started/meta/domain-specific-languages.markdown b/getting-started/meta/domain-specific-languages.markdown index ba4f9ac22..96c2c5f2b 100644 --- a/getting-started/meta/domain-specific-languages.markdown +++ b/getting-started/meta/domain-specific-languages.markdown @@ -1,204 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Domain-specific languages -category: Meta-programming in Elixir +layout: redirect +sitemap: false +redirect_to: domain-specific-languages --- - -## Foreword - -[Domain-specific languages (DSL)](https://en.wikipedia.org/wiki/Domain-specific_language) allow developers to tailor their application to a particular domain. You don't need macros in order to have a DSL: every data structure and every function you define in your module is part of your Domain-specific language. - -For example, imagine we want to implement a Validator module which provides a data validation domain-specific language. We could implement it using data structures, functions or macros. Let's see what those different DSLs would look like: - -```elixir -# 1. data structures -import Validator -validate user, name: [length: 1..100], - email: [matches: ~r/@/] - -# 2. functions -import Validator -user -|> validate_length(:name, 1..100) -|> validate_matches(:email, ~r/@/) - -# 3. macros + modules -defmodule MyValidator do - use Validator - validate_length :name, 1..100 - validate_matches :email, ~r/@/ -end - -MyValidator.validate(user) -``` - -Of all the approaches above, the first is definitely the most flexible. If our domain rules can be encoded with data structures, they are by far the easiest to compose and implement, as Elixir's standard library is filled with functions for manipulating different data types. - -The second approach uses function calls which better suits more complex APIs (for example, if you need to pass many options) and reads nicely in Elixir thanks to the pipe operator. - -The third approach uses macros, and is by far the most complex. It will take more lines of code to implement, it is hard and expensive to test (compared to testing simple functions), and it limits how the user may use the library since all validations need to be defined inside a module. - -To drive the point home, imagine you want to validate a certain attribute only if a given condition is met. We could easily achieve it with the first solution, by manipulating the data structure accordingly, or with the second solution by using conditionals (if/else) before invoking the function. However, it is impossible to do so with the macros approach unless its DSL is augmented. - -In other words: - - data > functions > macros - -That said, there are still cases where using macros and modules to build domain-specific languages is useful. Since we have explored data structures and function definitions in the Getting Started guide, this chapter will explore how to use macros and module attributes to tackle more complex DSLs. - -## Building our own test case - -The goal in this chapter is to build a module named `TestCase` that allows us to write the following: - -```elixir -defmodule MyTest do - use TestCase - - test "arithmetic operations" do - 4 = 2 + 2 - end - - test "list operations" do - [1, 2, 3] = [1, 2] ++ [3] - end -end - -MyTest.run -``` - -In the example above, by using `TestCase`, we can write tests using the `test` macro, which defines a function named `run` to automatically run all tests for us. Our prototype will rely on the match operator (`=`) as a mechanism to do assertions. - -## The `test` macro - -Let's start by creating a module that defines and imports the `test` macro when used: - -```elixir -defmodule TestCase do - # Callback invoked by `use`. - # - # For now it returns a quoted expression that - # imports the module itself into the user code. - @doc false - defmacro __using__(_opts) do - quote do - import TestCase - end - end - - @doc """ - Defines a test case with the given description. - - ## Examples - - test "arithmetic operations" do - 4 = 2 + 2 - end - - """ - defmacro test(description, do: block) do - function_name = String.to_atom("test " <> description) - quote do - def unquote(function_name)(), do: unquote(block) - end - end -end -``` - -Assuming we defined `TestCase` in a file named `tests.exs`, we can open it up by running `iex tests.exs` and define our first tests: - -```elixir -iex> defmodule MyTest do -...> use TestCase -...> -...> test "hello" do -...> "hello" = "world" -...> end -...> end -``` - -For now, we don't have a mechanism to run tests, but we know that a function named "test hello" was defined behind the scenes. When we invoke it, it should fail: - -```elixir -iex> MyTest."test hello"() -** (MatchError) no match of right hand side value: "world" -``` - -## Storing information with attributes - -In order to finish our `TestCase` implementation, we need to be able to access all defined test cases. One way of doing this is by retrieving the tests at runtime via `__MODULE__.__info__(:functions)`, which returns a list of all functions in a given module. However, considering that we may want to store more information about each test besides the test name, a more flexible approach is required. - -When discussing module attributes in earlier chapters, we mentioned how they can be used as temporary storage. That's exactly the property we will apply in this section. - -In the `__using__/1` implementation, we will initialize a module attribute named `@tests` to an empty list, then store the name of each defined test in this attribute so the tests can be invoked from the `run` function. - -Here is the updated code for the `TestCase` module: - -```elixir -defmodule TestCase do - @doc false - defmacro __using__(_opts) do - quote do - import TestCase - - # Initialize @tests to an empty list - @tests [] - - # Invoke TestCase.__before_compile__/1 before the module is compiled - @before_compile TestCase - end - end - - @doc """ - Defines a test case with the given description. - - ## Examples - - test "arithmetic operations" do - 4 = 2 + 2 - end - - """ - defmacro test(description, do: block) do - function_name = String.to_atom("test " <> description) - quote do - # Prepend the newly defined test to the list of tests - @tests [unquote(function_name) | @tests] - def unquote(function_name)(), do: unquote(block) - end - end - - # This will be invoked right before the target module is compiled - # giving us the perfect opportunity to inject the `run/0` function - @doc false - defmacro __before_compile__(_env) do - quote do - def run do - Enum.each @tests, fn name -> - IO.puts "Running #{name}" - apply(__MODULE__, name, []) - end - end - end - end -end -``` - -By starting a new IEx session, we can now define our tests and run them: - -```elixir -iex> defmodule MyTest do -...> use TestCase -...> -...> test "hello" do -...> "hello" = "world" -...> end -...> end -iex> MyTest.run -Running test hello -** (MatchError) no match of right hand side value: "world" -``` - -Although we have overlooked some details, this is the main idea behind creating domain-specific modules in Elixir. Macros enable us to return quoted expressions that are executed in the caller, which we can then use to transform code and store relevant information in the target module via module attributes. Finally, callbacks such as `@before_compile` allow us to inject code into the module when its definition is complete. - -Besides `@before_compile`, there are other useful module attributes like `@on_definition` and `@after_compile`, which you can read more about in [the docs for the `Module` module](https://hexdocs.pm/elixir/Module.html). You can also find useful information about macros and the compilation environment in the documentation for the [`Macro` module](https://hexdocs.pm/elixir/Macro.html) and [`Macro.Env`](https://hexdocs.pm/elixir/Macro.Env.html). diff --git a/getting-started/meta/index.html b/getting-started/meta/index.html index 262b2e711..70c16019b 100644 --- a/getting-started/meta/index.html +++ b/getting-started/meta/index.html @@ -1,7 +1,5 @@ - - - - Quote and unquote - Elixir - - - +--- +layout: redirect +sitemap: false +redirect_to: quote-and-unquote +--- diff --git a/getting-started/meta/macros.markdown b/getting-started/meta/macros.markdown index b522df71d..349aee294 100644 --- a/getting-started/meta/macros.markdown +++ b/getting-started/meta/macros.markdown @@ -1,295 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Macros -category: Meta-programming in Elixir +layout: redirect +sitemap: false +redirect_to: macros --- - -## Foreword - -Even though Elixir attempts its best to provide a safe environment for macros, the major responsibility of writing clean code with macros falls on developers. Macros are harder to write than ordinary Elixir functions and it's considered to be bad style to use them when they're not necessary. So write macros responsibly. - -Elixir already provides mechanisms to write your everyday code in a simple and readable fashion by using its data structures and functions. Macros should only be used as a last resort. Remember that **explicit is better than implicit**. **Clear code is better than concise code.** - -## Our first macro - -Macros in Elixir are defined via `defmacro/2`. - -> For this chapter, we will be using files instead of running code samples in IEx. That's because the code samples will span multiple lines of code and typing them all in IEx can be counter-productive. You should be able to run the code samples by saving them into a `macros.exs` file and running it with `elixir macros.exs` or `iex macros.exs`. - -In order to better understand how macros work, let's create a new module where we are going to implement `unless`, which does the opposite of `if`, as a macro and as a function: - -```elixir -defmodule Unless do - def fun_unless(clause, do: expression) do - if(!clause, do: expression) - end - - defmacro macro_unless(clause, do: expression) do - quote do - if(!unquote(clause), do: unquote(expression)) - end - end -end -``` - -The function receives the arguments and passes them to `if`. However, as we learned in the [previous chapter](/getting-started/meta/quote-and-unquote.html), the macro will receive quoted expressions, inject them into the quote, and finally return another quoted expression. - -Let's start `iex` with the module above: - -```console -$ iex macros.exs -``` - -And play with those definitions: - -```elixir -iex> require Unless -iex> Unless.macro_unless true, do: IO.puts "this should never be printed" -nil -iex> Unless.fun_unless true, do: IO.puts "this should never be printed" -"this should never be printed" -nil -``` - -Note that in our macro implementation, the sentence was not printed, although it was printed in our function implementation. That's because the arguments to a function call are evaluated before calling the function. However, macros do not evaluate their arguments. Instead, they receive the arguments as quoted expressions which are then transformed into other quoted expressions. In this case, we have rewritten our `unless` macro to become an `if` behind the scenes. - -In other words, when invoked as: - -```elixir -Unless.macro_unless true, do: IO.puts "this should never be printed" -``` - -Our `macro_unless` macro received the following: - -{% raw %} -```elixir -macro_unless(true, [do: {{:., [], [{:__aliases__, [alias: false], [:IO]}, :puts]}, [], ["this should never be printed"]}]) -``` -{% endraw %} - -And it then returned a quoted expression as follows: - -{% raw %} -```elixir -{:if, [], - [{:!, [], [true]}, - [do: {{:., [], - [{:__aliases__, - [], [:IO]}, - :puts]}, [], ["this should never be printed"]}]]} -``` -{% endraw %} - -We can actually verify that this is the case by using `Macro.expand_once/2`: - -```elixir -iex> expr = quote do: Unless.macro_unless(true, do: IO.puts "this should never be printed") -iex> res = Macro.expand_once(expr, __ENV__) -iex> IO.puts Macro.to_string(res) -if(!true) do - IO.puts("this should never be printed") -end -:ok -``` - -`Macro.expand_once/2` receives a quoted expression and expands it according to the current environment. In this case, it expanded/invoked the `Unless.macro_unless/2` macro and returned its result. We then proceeded to convert the returned quoted expression to a string and print it (we will talk about `__ENV__` later in this chapter). - -That's what macros are all about. They are about receiving quoted expressions and transforming them into something else. In fact, `unless/2` in Elixir is implemented as a macro: - -```elixir -defmacro unless(clause, do: expression) do - quote do - if(!unquote(clause), do: unquote(expression)) - end -end -``` - -Constructs such as `unless/2`, `defmacro/2`, `def/2`, `defprotocol/2`, and many others used throughout this getting started guide are implemented in pure Elixir, often as a macro. This means that the constructs being used to build the language can be used by developers to extend the language to the domains they are working on. - -We can define any function and macro we want, including ones that override the built-in definitions provided by Elixir. The only exceptions are Elixir special forms which are not implemented in Elixir and therefore cannot be overridden, [the full list of special forms is available in `Kernel.SpecialForms`](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#summary). - -## Macro hygiene - -Elixir macros have late resolution. This guarantees that a variable defined inside a quote won't conflict with a variable defined in the context where that macro is expanded. For example: - -```elixir -defmodule Hygiene do - defmacro no_interference do - quote do: a = 1 - end -end - -defmodule HygieneTest do - def go do - require Hygiene - a = 13 - Hygiene.no_interference() - a - end -end - -HygieneTest.go -# => 13 -``` - -In the example above, even though the macro injects `a = 1`, it does not affect the variable `a` defined by the `go` function. If a macro wants to explicitly affect the context, it can use `var!`: - -```elixir -defmodule Hygiene do - defmacro interference do - quote do: var!(a) = 1 - end -end - -defmodule HygieneTest do - def go do - require Hygiene - a = 13 - Hygiene.interference() - a - end -end - -HygieneTest.go -# => 1 -``` - -The code above will work but issue a warning: `variable "a" is unused`. The macro is overriding the original value and the original value is never used. - -Variable hygiene only works because Elixir annotates variables with their context. For example, a variable `x` defined on line 3 of a module would be represented as: - -```elixir -{:x, [line: 3], nil} -``` - -However, a quoted variable is represented as: - -```elixir -defmodule Sample do - def quoted do - quote do: x - end -end - -Sample.quoted() #=> {:x, [line: 3], Sample} -``` - -Notice that the third element in the quoted variable is the atom `Sample`, instead of `nil`, which marks the variable as coming from the `Sample` module. Therefore, Elixir considers these two variables as coming from different contexts and handles them accordingly. - -Elixir provides similar mechanisms for imports and aliases too. This guarantees that a macro will behave as specified by its source module rather than conflicting with the target module where the macro is expanded. Hygiene can be bypassed under specific situations by using macros like `var!/2` and `alias!/1`, although one must be careful when using those as they directly change the user environment. - -Sometimes variable names might be dynamically created. In such cases, `Macro.var/2` can be used to define new variables: - -```elixir -defmodule Sample do - defmacro initialize_to_char_count(variables) do - Enum.map(variables, fn name -> - var = Macro.var(name, nil) - length = name |> Atom.to_string |> String.length - - quote do - unquote(var) = unquote(length) - end - end) - end - - def run do - initialize_to_char_count [:red, :green, :yellow] - [red, green, yellow] - end -end - -> Sample.run #=> [3, 5, 6] -``` - -Take note of the second argument to `Macro.var/2`. This is the context being used and will determine hygiene as described in the next section. - -## The environment - -When calling `Macro.expand_once/2` earlier in this chapter, we used the special form `__ENV__`. - -`__ENV__` returns an instance of the `Macro.Env` struct which contains useful information about the compilation environment, including the current module, file, and line, all variables defined in the current scope, as well as imports, requires and so on: - -```elixir -iex> __ENV__.module -nil -iex> __ENV__.file -"iex" -iex> __ENV__.requires -[IEx.Helpers, Kernel, Kernel.Typespec] -iex> require Integer -nil -iex> __ENV__.requires -[IEx.Helpers, Integer, Kernel, Kernel.Typespec] -``` - -Many of the functions in the `Macro` module expect an environment. You can read more about these functions in [the docs for the `Macro` module](https://hexdocs.pm/elixir/Macro.html) and learn more about the compilation environment in the [docs for `Macro.Env`](https://hexdocs.pm/elixir/Macro.Env.html). - -## Private macros - -Elixir also supports private macros via `defmacrop`. As private functions, these macros are only available inside the module that defines them, and only at compilation time. - -It is important that a macro is defined before its usage. Failing to define a macro before its invocation will raise a compilation error, since the macro won't be expanded and will be translated to a function call: - -```elixir -iex> defmodule Sample do -...> def four, do: two + two -...> defmacrop two, do: 2 -...> end -** (CompileError) iex:2: function two/0 undefined -``` - -## Write macros responsibly - -Macros are a powerful construct and Elixir provides many mechanisms to ensure they are used responsibly. - -* Macros are hygienic: by default, variables defined inside a macro are not going to affect the user code. Furthermore, function calls and aliases available in the macro context are not going to leak into the user context. - -* Macros are lexical: it is impossible to inject code or macros globally. In order to use a macro, you need to explicitly `require` or `import` the module that defines the macro. - -* Macros are explicit: it is impossible to run a macro without explicitly invoking it. For example, some languages allow developers to completely rewrite functions behind the scenes, often via parse transforms or via some reflection mechanisms. In Elixir, a macro must be explicitly invoked in the caller during compilation time. - -* Macros' language is clear: many languages provide syntax shortcuts for `quote` and `unquote`. In Elixir, we preferred to have them explicitly spelled out, in order to clearly delimit the boundaries of a macro definition and its quoted expressions. - -Even with such guarantees, the developer plays a big role when writing macros responsibly. If you are confident you need to resort to macros, remember that macros are not your API. Keep your macro definitions short, including their quoted contents. For example, instead of writing a macro like this: - -```elixir -defmodule MyModule do - defmacro my_macro(a, b, c) do - quote do - do_this(unquote(a)) - ... - do_that(unquote(b)) - ... - and_that(unquote(c)) - end - end -end -``` - -write: - -```elixir -defmodule MyModule do - defmacro my_macro(a, b, c) do - quote do - # Keep what you need to do here to a minimum - # and move everything else to a function - MyModule.do_this_that_and_that(unquote(a), unquote(b), unquote(c)) - end - end - - def do_this_that_and_that(a, b, c) do - do_this(a) - ... - do_that(b) - ... - and_that(c) - end -end -``` - -This makes your code clearer and easier to test and maintain, as you can invoke and test `do_this_that_and_that/3` directly. It also helps you design an actual API for developers that do not want to rely on macros. - -With those lessons, we finish our introduction to macros. The next chapter is a brief discussion on DSLs that shows how we can mix macros and module attributes to annotate and extend modules and functions. diff --git a/getting-started/meta/quote-and-unquote.markdown b/getting-started/meta/quote-and-unquote.markdown index 1447ef509..70c16019b 100644 --- a/getting-started/meta/quote-and-unquote.markdown +++ b/getting-started/meta/quote-and-unquote.markdown @@ -1,155 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Quote and unquote -category: Meta-programming in Elixir +layout: redirect +sitemap: false +redirect_to: quote-and-unquote --- - -This guide aims to introduce the meta-programming techniques available in Elixir. The ability to represent an Elixir program by its own data structures is at the heart of meta-programming. This chapter starts by exploring those structures and the associated `quote` and `unquote` constructs, so we can take a look at macros in the next chapter and finally build our own domain specific language. - -## Quoting - -The building block of an Elixir program is a tuple with three elements. For example, the function call `sum(1, 2, 3)` is represented internally as: - -```elixir -{:sum, [], [1, 2, 3]} -``` - -You can get the representation of any expression by using the `quote` macro: - -```elixir -iex> quote do: sum(1, 2, 3) -{:sum, [], [1, 2, 3]} -``` - -The first element is the function name, the second is a keyword list containing metadata and the third is the arguments list. - -Operators are also represented as such tuples: - -```elixir -iex> quote do: 1 + 2 -{:+, [context: Elixir, import: Kernel], [1, 2]} -``` - -Even a map is represented as a call to `%{}`: - -```elixir -iex> quote do: %{1 => 2} -{:%{}, [], [{1, 2}]} -``` - -Variables are also represented using such triplets, except the last element is an atom, instead of a list: - -```elixir -iex> quote do: x -{:x, [], Elixir} -``` - -When quoting more complex expressions, we can see that the code is represented in such tuples, which are often nested inside each other in a structure resembling a tree. Many languages would call such representations an Abstract Syntax Tree (AST). Elixir calls them quoted expressions: - -```elixir -iex> quote do: sum(1, 2 + 3, 4) -{:sum, [], [1, {:+, [context: Elixir, import: Kernel], [2, 3]}, 4]} -``` - -Sometimes when working with quoted expressions, it may be useful to get the textual code representation back. This can be done with `Macro.to_string/1`: - -```elixir -iex> Macro.to_string(quote do: sum(1, 2 + 3, 4)) -"sum(1, 2 + 3, 4)" -``` - -In general, the tuples above are structured according to the following format: - -```elixir -{atom | tuple, list, list | atom} -``` - -* The first element is an atom or another tuple in the same representation; -* The second element is a keyword list containing metadata, like numbers and contexts; -* The third element is either a list of arguments for the function call or an atom. When this element is an atom, it means the tuple represents a variable. - -Besides the tuple defined above, there are five Elixir literals that, when quoted, return themselves (and not a tuple). They are: - -```elixir -:sum #=> Atoms -1.0 #=> Numbers -[1, 2] #=> Lists -"strings" #=> Strings -{key, value} #=> Tuples with two elements -``` - -Most Elixir code has a straight-forward translation to its underlying quoted expression. We recommend you try out different code samples and see what the results are. For example, what does `String.upcase("foo")` expand to? We have also learned that `if(true, do: :this, else: :that)` is the same as `if true do :this else :that end`. How does this affirmation hold with quoted expressions? - -## Unquoting - -Quote is about retrieving the inner representation of some particular chunk of code. However, sometimes it may be necessary to inject some other particular chunk of code inside the representation we want to retrieve. - -For example, imagine you have a variable `number` which contains the number you want to inject inside a quoted expression. - -```elixir -iex> number = 13 -iex> Macro.to_string(quote do: 11 + number) -"11 + number" -``` - -That's not what we wanted, since the value of the `number` variable has not been injected and `number` has been quoted in the expression. In order to inject the *value* of the `number` variable, `unquote` has to be used inside the quoted representation: - -```elixir -iex> number = 13 -iex> Macro.to_string(quote do: 11 + unquote(number)) -"11 + 13" -``` - -`unquote` can even be used to inject function names: - -```elixir -iex> fun = :hello -iex> Macro.to_string(quote do: unquote(fun)(:world)) -"hello(:world)" -``` - -In some cases, it may be necessary to inject many values inside a list. For example, imagine you have a list containing `[1, 2, 6]` and we want to inject `[3, 4, 5]` into it. Using `unquote` won't yield the desired result: - -```elixir -iex> inner = [3, 4, 5] -iex> Macro.to_string(quote do: [1, 2, unquote(inner), 6]) -"[1, 2, [3, 4, 5], 6]" -``` - -That's when `unquote_splicing` becomes handy: - -```elixir -iex> inner = [3, 4, 5] -iex> Macro.to_string(quote do: [1, 2, unquote_splicing(inner), 6]) -"[1, 2, 3, 4, 5, 6]" -``` - -Unquoting is very useful when working with macros. When writing macros, developers are able to receive code chunks and inject them inside other code chunks, which can be used to transform code or write code that generates code during compilation. - -## Escaping - -As we saw at the beginning of this chapter, only some values are valid quoted expressions in Elixir. For example, a map is not a valid quoted expression. Neither is a tuple with four elements. However, such values *can* be expressed as a quoted expression: - -```elixir -iex> quote do: %{1 => 2} -{:%{}, [], [{1, 2}]} -``` - -In some cases, you may need to inject such *values* into *quoted expressions*. To do that, we need to first escape those values into quoted expressions with the help of `Macro.escape/1`: - -```elixir -iex> map = %{hello: :world} -iex> quote do: map -{:map, [], Elixir} -iex> Macro.escape(map) -{:%{}, [], [hello: :world]} -``` - -Macros receive quoted expressions and must return quoted expressions. However, sometimes during the execution of a macro, you may need to work with values and making a distinction between values and quoted expressions will be required. - -In other words, it is important to make a distinction between a regular Elixir value (like a list, a map, a process, a reference, etc) and a quoted expression. Some values, such as integers, atoms, and strings, have a quoted expression equal to the value itself. Other values, like maps, need to be explicitly converted. Finally, values like functions and references cannot be converted to a quoted expression at all. - -You can read more about `quote` and `unquote` in the [`Kernel.SpecialForms` module](https://hexdocs.pm/elixir/Kernel.SpecialForms.html). Documentation for `Macro.escape/1` and other functions related to quoted expressions can be found in the [`Macro` module](https://hexdocs.pm/elixir/Macro.html). - -In this introduction, we have laid the groundwork to finally write our first macro, so let's move to the next chapter. diff --git a/getting-started/mix-otp/agent.markdown b/getting-started/mix-otp/agent.markdown index 603202eea..419cc43f7 100644 --- a/getting-started/mix-otp/agent.markdown +++ b/getting-started/mix-otp/agent.markdown @@ -1,219 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Agent -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: agents --- - -{% include mix-otp-preface.html %} - -In this chapter, we will learn how to keep and share state between multiple entities. If you have previous programming experience, you may think of globally shared variables, but the model we will learn here is quite different. The next chapters will generalize the concepts introduced here. - -If you have skipped the Getting Started guide or read it long ago, be sure to re-read the [Processes](/getting-started/processes.html) chapter. We will use it as a starting point. - -## The trouble with state - -Elixir is an immutable language where nothing is shared by default. If we want to share information, which can be read and modified from multiple places, we have two main options in Elixir: - -* Using Processes and message passing -* [ETS (Erlang Term Storage)](http://www.erlang.org/doc/man/ets.html) - -We covered processes in the Getting Started guide. ETS is a new topic that we will explore in later chapters. When it comes to processes though, we rarely hand-roll our own, instead we use the abstractions available in Elixir and OTP: - -* [Agent](https://hexdocs.pm/elixir/Agent.html) - Simple wrappers around state. -* [GenServer](https://hexdocs.pm/elixir/GenServer.html) - "Generic servers" (processes) that encapsulate state, provide sync and async calls, support code reloading, and more. -* [Task](https://hexdocs.pm/elixir/Task.html) - Asynchronous units of computation that allow spawning a process and potentially retrieving its result at a later time. - -We will explore most of these abstractions in this guide. Keep in mind that they are all implemented on top of processes using the basic features provided by the VM, like `send`, `receive`, `spawn` and `link`. - -Here we will use Agents, and create a module named `KV.Bucket`, responsible for storing our key-value entries in a way that allows them to be read and modified by other processes. - -## Agents - -[Agents](https://hexdocs.pm/elixir/Agent.html) are simple wrappers around state. If all you want from a process is to keep state, agents are a great fit. Let's start an `iex` session inside the project with: - -```console -$ iex -S mix -``` - -And play a bit with agents: - -```elixir -iex> {:ok, agent} = Agent.start_link fn -> [] end -{:ok, #PID<0.57.0>} -iex> Agent.update(agent, fn list -> ["eggs" | list] end) -:ok -iex> Agent.get(agent, fn list -> list end) -["eggs"] -iex> Agent.stop(agent) -:ok -``` - -We started an agent with an initial state of an empty list. We updated the agent's state, adding our new item to the head of the list. The second argument of [`Agent.update/3`](https://hexdocs.pm/elixir/Agent.html#update/3) is a function that takes the agent's current state as input and returns its desired new state. Finally, we retrieved the whole list. The second argument of [`Agent.get/3`](https://hexdocs.pm/elixir/Agent.html#get/3) is a function that takes the state as input and returns the value that [`Agent.get/3`](https://hexdocs.pm/elixir/Agent.html#get/3) itself will return. Once we are done with the agent, we can call [`Agent.stop/3`](https://hexdocs.pm/elixir/Agent.html#stop/3) to terminate the agent process. - -The `Agent.update/3` function accepts as a second argument any function that receives one argument and returns a value: - -```elixir -iex> {:ok, agent} = Agent.start_link fn -> [] end -{:ok, #PID<0.338.0>} -iex> Agent.update(agent, fn _list -> 123 end) -:ok -iex> Agent.update(agent, fn content -> %{a: content} end) -:ok -iex> Agent.update(agent, fn content -> [12 | [content]] end) -:ok -iex> Agent.update(agent, fn list -> [:nop | list] end) -:ok -iex> Agent.get(agent, fn content -> content end) -[:nop, 12, %{a: 123}] -``` - -As you can see, we can modify the agent state in any way we want. Therefore, we most likely don't want to access the Agent API throughout many different places in our code. Instead, we want to encapsulate all Agent-related functionality in a single module, which we will call `KV.Bucket`. Before we implement it, let's write some tests which will outline the API exposed by our module. - -Create a file at `test/kv/bucket_test.exs` (remember the `.exs` extension) with the following: - -```elixir -defmodule KV.BucketTest do - use ExUnit.Case, async: true - - test "stores values by key" do - {:ok, bucket} = KV.Bucket.start_link([]) - assert KV.Bucket.get(bucket, "milk") == nil - - KV.Bucket.put(bucket, "milk", 3) - assert KV.Bucket.get(bucket, "milk") == 3 - end -end -``` - -`use ExUnit.Case` is responsible for setting up our module for testing and imports many test-related functionality, such as the `test/2` macro. - -Our first test starts a new `KV.Bucket` by calling the `start_link/1` and passing an empty list of options. Then we perform some `get/2` and `put/3` operations on it, asserting the result. - -Also note the `async: true` option passed to `ExUnit.Case`. This option makes the test case run in parallel with other `:async` test cases by using multiple cores in our machine. This is extremely useful to speed up our test suite. However, `:async` must *only* be set if the test case does not rely on or change any global values. For example, if the test requires writing to the filesystem or access a database, keep it synchronous (omit the `:async` option) to avoid race conditions between tests. - -Async or not, our new test should obviously fail, as none of the functionality is implemented in the module being tested: - -``` -** (UndefinedFunctionError) function KV.Bucket.start_link/1 is undefined (module KV.Bucket is not available) -``` - -In order to fix the failing test, let's create a file at `lib/kv/bucket.ex` with the contents below. Feel free to give a try at implementing the `KV.Bucket` module yourself using agents before peeking at the implementation below. - -```elixir -defmodule KV.Bucket do - use Agent - - @doc """ - Starts a new bucket. - """ - def start_link(_opts) do - Agent.start_link(fn -> %{} end) - end - - @doc """ - Gets a value from the `bucket` by `key`. - """ - def get(bucket, key) do - Agent.get(bucket, &Map.get(&1, key)) - end - - @doc """ - Puts the `value` for the given `key` in the `bucket`. - """ - def put(bucket, key, value) do - Agent.update(bucket, &Map.put(&1, key, value)) - end -end -``` - -The first step in our implementation is to call `use Agent`. Most of the functionality we will learn in this guide, such as `GenServer` and `Supervisor`, follow this pattern. For all of them, calling `use` generates a `child_spec` function with default configuration, which will be handy when we start supervising processes in chapter 4. - -Then we define a `start_link/1` function, which will effectively start the agent. It is a convention to define a `start_link/1` function that always accepts a list of options. We don't plan on using any options right now, but we might later on. We then proceed to call `Agent.start_link/1`, which receives an anonymous function that returns the Agent's initial state. - -We are keeping a map inside the agent to store our keys and values. Getting and putting values on the map is done with the Agent API and the capture operator `&`, introduced in [the Getting Started guide](/getting-started/modules-and-functions.html#function-capturing). The agent passes its state to the anonymous function via the `&1` argument when `Agent.get/2` and `Agent.update/2` are called. - -Now that the `KV.Bucket` module has been defined, our test should pass! You can try it yourself by running: `mix test`. - -## Test setup with ExUnit callbacks - -Before moving on and adding more features to `KV.Bucket`, let's talk about ExUnit callbacks. As you may expect, all `KV.Bucket` tests will require a bucket agent to be up and running. Luckily, ExUnit supports callbacks that allow us to skip such repetitive tasks. - -Let's rewrite the test case to use callbacks: - -```elixir -defmodule KV.BucketTest do - use ExUnit.Case, async: true - - setup do - {:ok, bucket} = KV.Bucket.start_link([]) - %{bucket: bucket} - end - - test "stores values by key", %{bucket: bucket} do - assert KV.Bucket.get(bucket, "milk") == nil - - KV.Bucket.put(bucket, "milk", 3) - assert KV.Bucket.get(bucket, "milk") == 3 - end -end -``` - -We have first defined a setup callback with the help of the `setup/1` macro. The `setup/1` macro defines a callback that is run before every test, in the same process as the test itself. - -Note that we need a mechanism to pass the `bucket` pid from the callback to the test. We do so by using the *test context*. When we return `%{bucket: bucket}` from the callback, ExUnit will merge this map into the test context. Since the test context is a map itself, we can pattern match the bucket out of it, providing access to the bucket inside the test: - -```elixir -test "stores values by key", %{bucket: bucket} do - # `bucket` is now the bucket from the setup block -end -``` - -You can read more about ExUnit cases in the [`ExUnit.Case` module documentation](https://hexdocs.pm/ex_unit/ExUnit.Case.html) and more about callbacks in [`ExUnit.Callbacks` docs](https://hexdocs.pm/ex_unit/ExUnit.Callbacks.html). - -## Other agent actions - -Besides getting a value and updating the agent state, agents allow us to get a value and update the agent state in one function call via `Agent.get_and_update/2`. Let's implement a `KV.Bucket.delete/2` function that deletes a key from the bucket, returning its current value: - -```elixir -@doc """ -Deletes `key` from `bucket`. - -Returns the current value of `key`, if `key` exists. -""" -def delete(bucket, key) do - Agent.get_and_update(bucket, &Map.pop(&1, key)) -end -``` - -Now it is your turn to write a test for the functionality above! Also, be sure to explore [the documentation for the `Agent` module](https://hexdocs.pm/elixir/Agent.html) to learn more about them. - -## Client/Server in agents - -Before we move on to the next chapter, let's discuss the client/server dichotomy in agents. Let's expand the `delete/2` function we have just implemented: - -```elixir -def delete(bucket, key) do - Agent.get_and_update(bucket, fn dict -> - Map.pop(dict, key) - end) -end -``` - -Everything that is inside the function we passed to the agent happens in the agent process. In this case, since the agent process is the one receiving and responding to our messages, we say the agent process is the server. Everything outside the function is happening in the client. - -This distinction is important. If there are expensive actions to be done, you must consider if it will be better to perform these actions on the client or on the server. For example: - -```elixir -def delete(bucket, key) do - Process.sleep(1000) # puts client to sleep - Agent.get_and_update(bucket, fn dict -> - Process.sleep(1000) # puts server to sleep - Map.pop(dict, key) - end) -end -``` - -When a long action is performed on the server, all other requests to that particular server will wait until the action is done, which may cause some clients to timeout. - -In the next chapter, we will explore GenServers, where the segregation between clients and servers is made more apparent. diff --git a/getting-started/mix-otp/config-and-releases.markdown b/getting-started/mix-otp/config-and-releases.markdown index d62265632..6a141bef9 100644 --- a/getting-started/mix-otp/config-and-releases.markdown +++ b/getting-started/mix-otp/config-and-releases.markdown @@ -1,422 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Configuration and releases -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: config-and-releases --- - -{% include mix-otp-preface.html %} - -In this last chapter, we will make the routing table for our distributed key-value store configurable, and then finally package the software for production. - -Let's do this. - -## Application environment - -So far we have hardcoded the routing table into the `KV.Router` module. However, we would like to make the table dynamic. This allows us not only to configure development/test/production, but also to allow different nodes to run with different entries in the routing table. There is a feature of OTP that does exactly that: the application environment. - -Each application has an environment that stores the application's specific configuration by key. For example, we could store the routing table in the `:kv` application environment, giving it a default value and allowing other applications to change the table as needed. - -Open up `apps/kv/mix.exs` and change the `application/0` function to return the following: - -```elixir -def application do - [ - extra_applications: [:logger], - env: [routing_table: []], - mod: {KV, []} - ] -end -``` - -We have added a new `:env` key to the application. It returns the application default environment, which has an entry of key `:routing_table` and value of an empty list. It makes sense for the application environment to ship with an empty table, as the specific routing table depends on the testing/deployment structure. - -In order to use the application environment in our code, we need to replace `KV.Router.table/0` with the definition below: - -```elixir -@doc """ -The routing table. -""" -def table do - Application.fetch_env!(:kv, :routing_table) -end -``` - -We use `Application.fetch_env!/2` to read the entry for `:routing_table` in `:kv`'s environment. You can find more information and other functions to manipulate the app environment in the [Application module](https://hexdocs.pm/elixir/Application.html). - -Since our routing table is now empty, our distributed tests should fail. Restart the apps and re-run tests to see the failure: - -```console -$ iex --sname bar -S mix -$ elixir --sname foo -S mix test --only distributed -``` - -We need a way to configure the application environment. That's when we use configuration files. - -## Configuration - -Configuration files provide a mechanism for us to configure the environment of any application. Elixir provides two configuration entry points: - - * `config/config.exs` - this file is read at build time, before we compile our application and before we even load our dependencies. This means we can't access the code in our application nor in our dependencies. However, it means we can control how they are compiled - - * `config/runtime.exs` - this file is read after our application and dependencies are compiled and therefore it can configure how our application works at runtime. If you want to read system environment variables (via `System.get_env/1`) or any sort of external configuration, this is the appropriate place to do so - -For example, we can configure IEx default prompt to another value. Let's create the `config/runtime.exs` file with the following content: - -```elixir -import Config -config :iex, default_prompt: ">>>" -``` - -Start IEx with `iex -S mix` and you can see that the IEx prompt has changed. - -This means we can also configure our `:routing_table` directly in the `config/runtime.exs` file. However, which configuration value should we use? - -Currently we have two tests tagged with `@tag :distributed`. The "server interaction" test in `KVServerTest`, and the "route requests across nodes" in `KV.RouterTest`. Both tests are failing since they require a routing table, which is currently empty. - -For simplicity, we will define a routing table that always points to the current node. That's the table we will use for development and most of our tests. Back in `config/runtime.exs`, add this line: - -```elixir -config :kv, :routing_table, [{?a..?z, node()}] -``` - -With such a simple table available, we can now remove `@tag :distributed` from the test in `test/kv_server_test.exs`. If you run the complete suite, the test should now pass. - -However, for the tests in `KV.RouterTest`, we effectively need two nodes in our routing table. To do so, we will write a setup block that runs before all tests in that file. The setup block will change the application environment and revert it back once we are done, like this: - -```elixir -defmodule KV.RouterTest do - use ExUnit.Case - - setup_all do - current = Application.get_env(:kv, :routing_table) - - Application.put_env(:kv, :routing_table, [ - {?a..?m, :"foo@computer-name"}, - {?n..?z, :"bar@computer-name"} - ]) - - on_exit fn -> Application.put_env(:kv, :routing_table, current) end - end - - @tag :distributed - test "route requests across nodes" do -``` - -Note we removed `async: true` from `use ExUnit.Case`. Since the application environment is a global storage, tests that modify it cannot run concurrently. With all changes in place, all tests should pass, including the distributed one. - -Details of other configuration strategies are beyond the scope of this document, but you should be aware that other sources of runtime configuration data can be specified as configuration providers in `mix.exs`. For more details see the documentation for the [Config.Provider module](https://hexdocs.pm/elixir/main/Config.Provider.html#content). Excellent libraries for many types of config providers can be found on [Hex](https://hex.pm). These can ease the use of environment variables and configuration files of various formats, such as TOML, YAML, INI, and JSON. - -## Releases - -Now that our application runs distributed, you may be wondering how we can package our application to run in production. After all, all of our code so far depends on Erlang and Elixir versions that are installed in your current system. To achieve this goal, Elixir provides releases. - -A release is a self-contained directory that consists of your application code, all of its dependencies, plus the whole Erlang Virtual Machine (VM) and runtime. Once a release is assembled, it can be packaged and deployed to a target as long as the target runs on the same operating system (OS) distribution and version as the machine that assembled the release. - -In a regular project, we can assemble a release by simply running `mix release`. However, we have an umbrella project, and in such cases Elixir requires some extra input from us. Let's see what is necessary: - - $ MIX_ENV=prod mix release - ** (Mix) Umbrella projects require releases to be explicitly defined with a non-empty applications key that chooses which umbrella children should be part of the releases: - - releases: [ - foo: [ - applications: [child_app_foo: :permanent] - ], - bar: [ - applications: [child_app_bar: :permanent] - ] - ] - - Alternatively you can perform the release from the children applications - -That's because an umbrella project gives us plenty of options when deploying the software. We can: - - * deploy all applications in the umbrella to a node that will work as both TCP server and key-value storage - - * deploy the `:kv_server` application to work only as a TCP server as long as the routing table points only to other nodes - - * deploy only the `:kv` application when we want a node to work only as storage (no TCP access) - -As a starting point, let's define a release that includes both `:kv_server` and `:kv` applications. We will also add a version to it. Open up the `mix.exs` in the umbrella root and add inside `def project`: - -```elixir -releases: [ - foo: [ - version: "0.0.1", - applications: [kv_server: :permanent, kv: :permanent] - ] -] -``` - - -That defines a release named `foo` with both `kv_server` and `kv` applications. Their mode is set to `:permanent`, which means that, if those applications crash, the whole node terminates. That's reasonable since those applications are essential to our system. - -Before we assemble the release, let's also define our routing table for production. Given we expect to have two nodes, we need to update `config/runtime.exs` to look like this: - -```elixir -import Config - -config :kv, :routing_table, [{?a..?z, node()}] - -if config_env() == :prod do - config :kv, :routing_table, [ - {?a..?m, :"foo@computer-name"}, - {?n..?z, :"bar@computer-name"} - ] -end -``` - -We have hardcoded the table and node names, which is good enough for our example, but you would likely move it to an external configuration system in an actual production setup. We have also wrapped it in a `config_env() == :prod` check, so this configuration does not apply to other environments. - -With the configuration in place, let's give assembling the release another try: - - $ MIX_ENV=prod mix release foo - * assembling foo-0.0.1 on MIX_ENV=prod - * skipping runtime configuration (config/runtime.exs not found) - - Release created at _build/prod/rel/foo - - # To start your system - _build/prod/rel/foo/bin/foo start - - Once the release is running: - - # To connect to it remotely - _build/prod/rel/foo/bin/foo remote - - # To stop it gracefully (you may also send SIGINT/SIGTERM) - _build/prod/rel/foo/bin/foo stop - - To list all commands: - - _build/prod/rel/foo/bin/foo - -Excellent! A release was assembled in `_build/prod/rel/foo`. Inside the release, there will be a `bin/foo` file which is the entry point to your system. It supports multiple commands, such as: - - * `bin/foo start`, `bin/foo start_iex`, `bin/foo restart`, and `bin/foo stop` - for general management of the release - - * `bin/foo rpc COMMAND` and `bin/foo remote` - for running commands on the running system or to connect to the running system - - * `bin/foo eval COMMAND` - to start a fresh system that runs a single command and then shuts down - - * `bin/foo daemon` and `bin/foo daemon_iex` - to start the system as a daemon on Unix-like systems - - * `bin/foo install` - to install the system as a service on Windows machines - -If you run `bin/foo start`, it will start the system using a short name (`--sname`) equal to the release name, which in this case is `foo`. The next step is to start a system named `bar`, so we can connect `foo` and `bar` together, like we did in the previous chapter. But before we achieve this, let's talk a bit about the benefits of releases. - -## Why releases? - -Releases allow developers to precompile and package all of their code and the runtime into a single unit. The benefits of releases are: - - * Code preloading. The VM has two mechanisms for loading code: interactive and embedded. By default, it runs in the interactive mode which dynamically loads modules when they are used for the first time. The first time your application calls `Enum.map/2`, the VM will find the `Enum` module and load it. There's a downside. When you start a new server in production, it may need to load many other modules, causing the first requests to have an unusual spike in response time. Releases run in embedded mode, which loads all available modules upfront, guaranteeing your system is ready to handle requests after booting. - - * Configuration and customization. Releases give developers fine grained control over system configuration and the VM flags used to start the system. - - * Self-contained. A release does not require the source code to be included in your production artifacts. All of the code is precompiled and packaged. Releases do not even require Erlang or Elixir on your servers, as they include the Erlang VM and its runtime by default. Furthermore, both Erlang and Elixir standard libraries are stripped to bring only the parts you are actually using. - - * Multiple releases. You can assemble different releases with different configuration per application or even with different applications altogether. - -We have written extensive documentation on releases, so [please check the official docs for more information](https://hexdocs.pm/mix/Mix.Tasks.Release.html). For now, we will continue exploring some of the features outlined above. - -## Assembling multiple releases - -So far, we have assembled a release named `foo`, but our routing table contains information for both `foo` and `bar`. Let's start `foo`: - - $ _build/prod/rel/foo/bin/foo start - 16:58:58.508 [info] Accepting connections on port 4040 - -And let's connect to it and issue a request in another terminal: - - $ telnet 127.0.0.1 4040 - Trying 127.0.0.1... - Connected to localhost. - Escape character is '^]'. - CREATE bitsandpieces - OK - PUT bitsandpieces sword 1 - OK - GET bitsandpieces sword - 1 - OK - GET shopping foo - Connection closed by foreign host. - -Our application works already when we operate on the bucket named "bitsandpieces". But since the "shopping" bucket would be stored on `bar`, the request fails as `bar` is not available. If you go back to the terminal running `foo`, you will see: - - 17:16:19.555 [error] Task #PID<0.622.0> started from #PID<0.620.0> terminating - ** (stop) exited in: GenServer.call({KV.RouterTasks, :"bar@computer-name"}, {:start_task, [{:"foo@josemac-2", #PID<0.622.0>, #PID<0.622.0>}, [#PID<0.622.0>, #PID<0.620.0>, #PID<0.618.0>], :monitor, {KV.Router, :route, ["shopping", KV.Registry, :lookup, [KV.Registry, "shopping"]]}], :temporary, nil}, :infinity) - ** (EXIT) no connection to bar@computer-name - (elixir) lib/gen_server.ex:1010: GenServer.call/3 - (elixir) lib/task/supervisor.ex:454: Task.Supervisor.async/6 - (kv) lib/kv/router.ex:21: KV.Router.route/4 - (kv_server) lib/kv_server/command.ex:74: KVServer.Command.lookup/2 - (kv_server) lib/kv_server.ex:29: KVServer.serve/1 - (elixir) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2 - (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3 - Function: #Function<0.128611034/0 in KVServer.loop_acceptor/1> - Args: [] - -Let's now define a release for `:bar`. One first step could be to define a release exactly like `foo` inside `mix.exs`. Additionally we will set the `cookie` option on both releases to `weknoweachother` in order for them to allow connections from each other. See the [Distributed Erlang Documentation](http://www.erlang.org/doc/reference_manual/distributed.html) for further information on this topic: - -```elixir -releases: [ - foo: [ - version: "0.0.1", - applications: [kv_server: :permanent, kv: :permanent], - cookie: "weknoweachother" - ], - bar: [ - version: "0.0.1", - applications: [kv_server: :permanent, kv: :permanent], - cookie: "weknoweachother" - ] -] -``` - -And now let's assemble both releases: - - $ MIX_ENV=prod mix release foo - $ MIX_ENV=prod mix release bar - -Stop `foo` if it's still running and re-start it to load the `cookie`: - - $ _build/prod/rel/foo/bin/foo start - -And start `bar` in another terminal: - - $ _build/prod/rel/bar/bin/bar start - -You should see an error like the error below happen 5 times, before the application finally shuts down: - - 17:21:57.567 [error] Task #PID<0.620.0> started from KVServer.Supervisor terminating - ** (MatchError) no match of right hand side value: {:error, :eaddrinuse} - (kv_server) lib/kv_server.ex:12: KVServer.accept/1 - (elixir) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2 - (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3 - Function: #Function<0.98032413/0 in KVServer.Application.start/2> - Args: [] - -That's happening because the release `foo` is already listening on port `4040` and `bar` is trying to do the same! One option could be to move the `:port` configuration to the application environment, like we did for the routing table, and setup different ports per node. - -But let's try something else. Let's make it so the `bar` release contains only the `:kv` application. So it works as a storage but it won't have a front-end. Change the `:bar` information to this: - -```elixir -releases: [ - foo: [ - version: "0.0.1", - applications: [kv_server: :permanent, kv: :permanent], - cookie: "weknoweachother" - ], - bar: [ - version: "0.0.1", - applications: [kv: :permanent], - cookie: "weknoweachother" - ] -] -``` - -And now let's assemble `bar` once more: - - $ MIX_ENV=prod mix release bar - -And finally successfully boot it: - - $ _build/prod/rel/bar/bin/bar start - -If you connect to localhost once again and perform another request, now everything should work, as long as the routing table contains the correct node names. Outstanding! - -With releases, we were able to "cut different slices" of our project and prepared them to run in production, all packaged into a single directory. - -## Configuring releases - -Releases also provide built-in hooks for configuring almost every need of the production system: - - * `config/config.exs` - provides build-time application configuration, which is executed before our application compiles. This file often imports configuration files based on the environment, such as `config/dev.exs` and `config/prod.exs` - - * `config/runtime.exs` - provides runtime application configuration. It is executed every time the release boots and is further extensible via config providers - - * `rel/env.sh.eex` and `rel/env.bat.eex` - template files that are copied into every release and executed on every command to set up environment variables, including ones specific to the VM, and the general environment - - * `rel/vm.args.eex` - a template file that is copied into every release and provides static configuration of the Erlang Virtual Machine and other runtime flags - -As we have seen, `config/config.exs` and `config/runtime.exs` are loaded during releases and regular Mix commands. On the other hand, `rel/env.sh.eex` and `rel/vm.args.eex` are specific to releases. Let's take a look. - -### Operating System environment configuration - -Every release contains an environment file, named `env.sh` on Unix-like systems and `env.bat` on Windows machines, that executes before the Elixir system starts. In this file, you can execute any OS-level code, such as invoke other applications, set environment variables and so on. Some of those environment variables can even configure how the release itself runs. - -For instance, releases run using short-names (`--sname`). However, if you want to actually run a distributed key-value store in production, you will need multiple nodes and start the release with the `--name` option. We can achieve this by setting the `RELEASE_DISTRIBUTION` environment variable inside the `env.sh` and `env.bat` files. Mix already has a template for said files which we can customize, so let's ask Mix to copy them to our application: - - $ mix release.init - * creating rel/vm.args.eex - * creating rel/remote.vm.args.eex - * creating rel/env.sh.eex - * creating rel/env.bat.eex - -If you open up `rel/env.sh.eex`, you will see: - -```shell -#!/bin/sh - -# # Sets and enables heart (recommended only in daemon mode) -# case $RELEASE_COMMAND in -# daemon*) -# HEART_COMMAND="$RELEASE_ROOT/bin/$RELEASE_NAME $RELEASE_COMMAND" -# export HEART_COMMAND -# export ELIXIR_ERL_OPTIONS="-heart" -# ;; -# *) -# ;; -# esac - -# # Set the release to load code on demand (interactive) instead of preloading (embedded). -# export RELEASE_MODE=interactive - -# # Set the release to work across nodes. -# # RELEASE_DISTRIBUTION must be "sname" (local), "name" (distributed) or "none". -# export RELEASE_DISTRIBUTION=name -# export RELEASE_NODE=<%= @release.name %> -``` - -The steps necessary to work across nodes is already commented out as an example. You can enable full distribution by uncommenting the last two lines by removing the leading `# `. - -If you are on Windows, you will have to open up `rel/env.bat.eex`, where you will find this: - -```bat -@echo off -rem Set the release to load code on demand (interactive) instead of preloading (embedded). -rem set RELEASE_MODE=interactive - -rem Set the release to work across nodes. -rem RELEASE_DISTRIBUTION must be "sname" (local), "name" (distributed) or "none". -rem set RELEASE_DISTRIBUTION=name -rem set RELEASE_NODE=<%= @release.name %> -``` - -Once again, uncomment the last two lines by removing the leading `rem ` to enable full distribution. And that's all! - -### VM args - -The `rel/vm.args.eex` allows you to specify low-level flags that control how the Erlang VM and its runtime operate. You specify entries as if you were specifying arguments in the command line with code comments also supported. Here is the default generated file: - - ## Customize flags given to the VM: https://www.erlang.org/doc/man/erl.html - ## -mode/-name/-sname/-setcookie are configured via env vars, do not set them here - - ## Increase number of concurrent ports/sockets - ##+Q 65536 - - ## Tweak GC to run more often - ##-env ERL_FULLSWEEP_AFTER 10 - -You can see [a complete list of VM args and flags in the Erlang documentation](http://www.erlang.org/doc/man/erl.html). - -## Summing up - -Throughout the guide, we have built a very simple distributed key-value store as an opportunity to explore many constructs like generic servers, supervisors, tasks, agents, applications and more. Not only that, we have written tests for the whole application, got familiar with ExUnit, and learned how to use the Mix build tool to accomplish a wide range of tasks. - -If you are looking for a distributed key-value store to use in production, you should definitely look into [Riak](http://basho.com/products/riak-kv/), which also runs in the Erlang VM. In Riak, the buckets are replicated, to avoid data loss, and instead of a router, they use [consistent hashing](https://en.wikipedia.org/wiki/Consistent_hashing) to map a bucket to a node. A consistent hashing algorithm helps reduce the amount of data that needs to be migrated when new storage nodes are added to your live system. - -Of course, Elixir can be used for much more than distributed key-value stores. Embedded systems, data-processing and data-ingestion, web applications, audio/video streaming systems, and others are many of the different domains Elixir excels at. We hope this guide has prepared you to explore any of those domains or any future domain you may desire to bring Elixir into. - -Happy coding! diff --git a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown index 6ffcedc29..946955ce2 100644 --- a/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown +++ b/getting-started/mix-otp/dependencies-and-umbrella-projects.markdown @@ -1,310 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Dependencies and umbrella projects -redirect_from: /getting-started/mix-otp/dependencies-and-umbrella-apps.html -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: dependencies-and-umbrella-projects --- - -{% include mix-otp-preface.html %} - -In this chapter, we will discuss how to manage dependencies in Mix. - -Our `kv` application is complete, so it's time to implement the server that will handle the requests we defined in the first chapter: - -``` -CREATE shopping -OK - -PUT shopping milk 1 -OK - -PUT shopping eggs 3 -OK - -GET shopping milk -1 -OK - -DELETE shopping eggs -OK -``` - -However, instead of adding more code to the `kv` application, we are going to build the TCP server as another application that is a client of the `kv` application. Since the whole runtime and Elixir ecosystem are geared towards applications, it makes sense to break our projects into smaller applications that work together rather than building a big, monolithic app. - -Before creating our new application, we must discuss how Mix handles dependencies. In practice, there are two kinds of dependencies we usually work with: internal and external dependencies. Mix supports mechanisms to work with both of them. - -## External dependencies - -External dependencies are the ones not tied to your business domain. For example, if you need an HTTP API for your distributed KV application, you can use the [Plug](https://github.com/elixir-lang/plug) project as an external dependency. - -Installing external dependencies is simple. Most commonly, we use the [Hex Package Manager](https://hex.pm), by listing the dependency inside the deps function in our `mix.exs` file: - -```elixir -def deps do - [{:plug, "~> 1.0"}] -end -``` - -This dependency refers to the latest version of Plug in the 1.x.x version series that has been pushed to Hex. This is indicated by the `~>` preceding the version number. For more information on specifying version requirements, see the [documentation for the Version module](https://hexdocs.pm/elixir/Version.html). - -Typically, stable releases are pushed to Hex. If you want to depend on an external dependency still in development, Mix is able to manage Git dependencies too: - -```elixir -def deps do - [{:plug, git: "https://github.com/elixir-lang/plug.git"}] -end -``` - -You will notice that when you add a dependency to your project, Mix generates a `mix.lock` file that guarantees *repeatable builds*. The lock file must be checked in to your version control system, to guarantee that everyone who uses the project will use the same dependency versions as you. - -Mix provides many tasks for working with dependencies, which can be seen in `mix help`: - -```console -$ mix help -mix deps # Lists dependencies and their status -mix deps.clean # Deletes the given dependencies' files -mix deps.compile # Compiles dependencies -mix deps.get # Gets all out of date dependencies -mix deps.tree # Prints the dependency tree -mix deps.unlock # Unlocks the given dependencies -mix deps.update # Updates the given dependencies -``` - -The most common tasks are `mix deps.get` and `mix deps.update`. Once fetched, dependencies are automatically compiled for you. You can read more about deps by typing `mix help deps`, and in the [documentation for the Mix.Tasks.Deps module](https://hexdocs.pm/mix/Mix.Tasks.Deps.html). - -## Internal dependencies - -Internal dependencies are the ones that are specific to your project. They usually don't make sense outside the scope of your project/company/organization. Most of the time, you want to keep them private, whether due to technical, economic or business reasons. - -If you have an internal dependency, Mix supports two methods to work with them: Git repositories or umbrella projects. - -For example, if you push the `kv` project to a Git repository, you'll need to list it in your deps code in order to use it: - -```elixir -def deps do - [{:kv, git: "https://github.com/YOUR_ACCOUNT/kv.git"}] -end -``` - -If the repository is private though, you may need to specify the private URL `git@github.com:YOUR_ACCOUNT/kv.git`. In any case, Mix will be able to fetch it for you as long as you have the proper credentials. - -Using Git repositories for internal dependencies is somewhat discouraged in Elixir. Remember that the runtime and the Elixir ecosystem already provide the concept of applications. As such, we expect you to frequently break your code into applications that can be organized logically, even within a single project. - -However, if you push every application as a separate project to a Git repository, your projects may become very hard to maintain as you will spend a lot of time managing those Git repositories rather than writing your code. - -For this reason, Mix supports "umbrella projects". Umbrella projects are used to build applications that run together in a single repository. That is exactly the style we are going to explore in the next sections. - -Let's create a new Mix project. We are going to creatively name it `kv_umbrella`, and this new project will have both the existing `kv` application and the new `kv_server` application inside. The directory structure will look like this: - - + kv_umbrella - + apps - + kv - + kv_server - -The interesting thing about this approach is that Mix has many conveniences for working with such projects, such as the ability to compile and test all applications inside `apps` with a single command. However, even though they are all listed together inside `apps`, they are still decoupled from each other, so you can build, test and deploy each application in isolation if you want to. - -So let's get started! - -## Umbrella projects - -Let's start a new project using `mix new`. This new project will be named `kv_umbrella` and we need to pass the `--umbrella` option when creating it. Do not create this new project inside the existing `kv` project! - -```console -$ mix new kv_umbrella --umbrella -* creating README.md -* creating .formatter.exs -* creating .gitignore -* creating mix.exs -* creating apps -* creating config -* creating config/config.exs -``` - -From the printed information, we can see far fewer files are generated. The generated `mix.exs` file is different too. Let's take a look (comments have been removed): - -```elixir -defmodule KvUmbrella.MixProject do - use Mix.Project - - def project do - [ - apps_path: "apps", - start_permanent: Mix.env() == :prod, - deps: deps() - ] - end - - defp deps do - [] - end -end -``` - -What makes this project different from the previous one is the `apps_path: "apps"` entry in the project definition. This means this project will act as an umbrella. Such projects do not have source files nor tests, although they can have their own dependencies. Each child application must be defined inside the `apps` directory. - -Let's move inside the apps directory and start building `kv_server`. This time, we are going to pass the `--sup` flag, which will tell Mix to generate a supervision tree automatically for us, instead of building one manually as we did in previous chapters: - -```console -$ cd kv_umbrella/apps -$ mix new kv_server --module KVServer --sup -``` - -The generated files are similar to the ones we first generated for `kv`, with a few differences. Let's open up `mix.exs`: - -```elixir -defmodule KVServer.MixProject do - use Mix.Project - - def project do - [ - app: :kv_server, - version: "0.1.0", - build_path: "../../_build", - config_path: "../../config/config.exs", - deps_path: "../../deps", - lockfile: "../../mix.lock", - elixir: "~> 1.14", - start_permanent: Mix.env() == :prod, - deps: deps() - ] - end - - # Run "mix help compile.app" to learn about applications - def application do - [ - extra_applications: [:logger], - mod: {KVServer.Application, []} - ] - end - - # Run "mix help deps" to learn about dependencies - defp deps do - [ - # {:dep_from_hexpm, "~> 0.3.0"}, - # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"}, - # {:sibling_app_in_umbrella, in_umbrella: true}, - ] - end -end -``` - -First of all, since we generated this project inside `kv_umbrella/apps`, Mix automatically detected the umbrella structure and added four lines to the project definition: - -```elixir -build_path: "../../_build", -config_path: "../../config/config.exs", -deps_path: "../../deps", -lockfile: "../../mix.lock", -``` - -Those options mean all dependencies will be checked out to `kv_umbrella/deps`, and they will share the same build, config, and lock files. We haven't talked about configuration yet, but keep in mind all configuration and dependencies are shared across all projects in an umbrella, and it is not per application. - -The second change is in the `application` function inside `mix.exs`: - -```elixir -def application do - [ - extra_applications: [:logger], - mod: {KVServer.Application, []} - ] -end -``` - -Because we passed the `--sup` flag, Mix automatically added `mod: {KVServer.Application, []}`, specifying that `KVServer.Application` is our application callback module. `KVServer.Application` will start our application supervision tree. - -In fact, let's open up `lib/kv_server/application.ex`: - -```elixir -defmodule KVServer.Application do - # See https://hexdocs.pm/elixir/Application.html - # for more information on OTP Applications - @moduledoc false - - use Application - - @impl true - def start(_type, _args) do - # List all child processes to be supervised - children = [ - # Starts a worker by calling: KVServer.Worker.start_link(arg) - # {KVServer.Worker, arg}, - ] - - # See https://hexdocs.pm/elixir/Supervisor.html - # for other strategies and supported options - opts = [strategy: :one_for_one, name: KVServer.Supervisor] - Supervisor.start_link(children, opts) - end -end -``` - -Notice that it defines the application callback function, `start/2`, and instead of defining a supervisor named `KVServer.Supervisor` that uses the `Supervisor` module, it conveniently defined the supervisor inline! You can read more about such supervisors by reading [the Supervisor module documentation](https://hexdocs.pm/elixir/Supervisor.html). - -We can already try out our first umbrella child. We could run tests inside the `apps/kv_server` directory, but that wouldn't be much fun. Instead, go to the root of the umbrella project and run `mix test`: - -```console -$ mix test -``` - -And it works! - -Since we want `kv_server` to eventually use the functionality we defined in `kv`, we need to add `kv` as a dependency to our application. - -## Dependencies within an umbrella project - -Dependencies between applications in an umbrella project must still be explicitly defined and Mix makes it easy to do so. Open up `apps/kv_server/mix.exs` and change the `deps/0` function to the following: - -```elixir -defp deps do - [{:kv, in_umbrella: true}] -end -``` - -The line above makes `:kv` available as a dependency inside `:kv_server` and automatically starts the `:kv` application before the server starts. - -Finally, copy the `kv` application we have built so far to the `apps` directory in our new umbrella project. The final directory structure should match the structure we mentioned earlier: - - + kv_umbrella - + apps - + kv - + kv_server - -We now need to modify `apps/kv/mix.exs` to contain the umbrella entries we have seen in `apps/kv_server/mix.exs`. Open up `apps/kv/mix.exs` and add to the `project/0` function: - -```elixir -build_path: "../../_build", -config_path: "../../config/config.exs", -deps_path: "../../deps", -lockfile: "../../mix.lock", -``` - -Now you can run tests for both projects from the umbrella root with `mix test`. Sweet! - -## Don't drink the kool aid - -Umbrella projects are a convenience to help you organize and manage multiple applications. While it provides a degree of separation between applications, those applications are not fully decoupled, as they share the same configuration and the same dependencies. - -The pattern of keeping multiple applications in the same repository is known as "mono-repo". Umbrella projects maximize this pattern by providing conveniences to compile, test and run multiple applications at once. - -If you find yourself in a position where you want to use different configurations in each application for the same dependency or use different dependency versions, then it is likely your codebase has grown beyond what umbrellas can provide. - -The good news is that breaking an umbrella apart is quite straightforward, as you simply need to move applications outside of the umbrella project's `apps/` directory and update the project's mix.exs file to no longer set the `build_path`, `config_path`, `deps_path`, and `lockfile` configuration. You can depend on private projects outside of the umbrella in multiple ways: - - 1. Move it to a separate folder within the same repository and point to it using a path dependency (the mono-repo pattern) - 2. Move the repository to a separate Git repository and depend on it - 3. Publish the project to a private [Hex.pm](https://hex.pm/) organization - -## Summing up - -In this chapter, we have learned more about Mix dependencies and umbrella projects. While we may run `kv` without a server, our `kv_server` depends directly on `kv`. By breaking them into separate applications, we gain more control in how they are developed and tested. - -When using umbrella applications, it is important to have a clear boundary between them. Our upcoming `kv_server` must only access public APIs defined in `kv`. Think of your umbrella apps as any other dependency or even Elixir itself: you can only access what is public and documented. Reaching into private functionality in your dependencies is a poor practice that will eventually cause your code to break when a new version is up. - -Umbrella applications can also be used as a stepping stone for eventually extracting an application from your codebase. For example, imagine a web application that has to send "push notifications" to its users. The whole "push notifications system" can be developed as a separate application in the umbrella, with its own supervision tree and APIs. If you ever run into a situation where another project needs the push notifications system, the system can be moved to a private repository or a Hex package. - -Developers may also use umbrella projects to break large business domains apart. The caution here is to make sure the domains don't depend on each other (also known as cyclic dependencies). If you run into such situations, it means those applications are not as isolated from each other as you originally thought, and you have architectural and design issues to solve. - -Finally, keep in mind that applications in an umbrella project all share the same configurations and dependencies. If two applications in your umbrella need to configure the same dependency in drastically different ways or even use different versions, you have probably outgrown the benefits brought by umbrellas. Remember you can break the umbrella and still leverage the benefits behind "mono-repos". - -With our umbrella project up and running, it is time to start writing our server. diff --git a/getting-started/mix-otp/distributed-tasks.markdown b/getting-started/mix-otp/distributed-tasks.markdown index 400e6b74b..a75f95d9a 100644 --- a/getting-started/mix-otp/distributed-tasks.markdown +++ b/getting-started/mix-otp/distributed-tasks.markdown @@ -1,361 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Distributed tasks and tags -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: distributed-tasks --- - -{% include mix-otp-preface.html %} - -In this chapter, we will go back to the `:kv` application and add a routing layer that will allow us to distribute requests between nodes based on the bucket name. - -The routing layer will receive a routing table of the following format: - -```elixir -[ - {?a..?m, :"foo@computer-name"}, - {?n..?z, :"bar@computer-name"} -] -``` - -The router will check the first byte of the bucket name against the table and dispatch to the appropriate node based on that. For example, a bucket starting with the letter "a" (`?a` represents the Unicode codepoint of the letter "a") will be dispatched to node `foo@computer-name`. - -If the matching entry points to the node evaluating the request, then we've finished routing, and this node will perform the requested operation. If the matching entry points to a different node, we'll pass the request to said node, which will look at its own routing table (which may be different from the one in the first node) and act accordingly. If no entry matches, an error will be raised. - -> Note: we will be using two nodes in the same machine throughout this chapter. You are free to use two (or more) different machines on the same network but you need to do some prep work. First of all, you need to ensure all machines have a `~/.erlang.cookie` file with exactly the same value. Then you need to guarantee [epmd](http://www.erlang.org/doc/man/epmd.html) is running on a port that is not blocked (you can run `epmd -d` for debug info). - -## Our first distributed code - -Elixir ships with facilities to connect nodes and exchange information between them. In fact, we use the same concepts of processes, message passing and receiving messages when working in a distributed environment because Elixir processes are *location transparent*. This means that when sending a message, it doesn't matter if the recipient process is on the same node or on another node, the VM will be able to deliver the message in both cases. - -In order to run distributed code, we need to start the VM with a name. The name can be short (when in the same network) or long (requires the full computer address). Let's start a new IEx session: - -```console -$ iex --sname foo -``` - -You can see now the prompt is slightly different and shows the node name followed by the computer name: - - Interactive Elixir - press Ctrl+C to exit (type h() ENTER for help) - iex(foo@jv)1> - -My computer is named `jv`, so I see `foo@jv` in the example above, but you will get a different result. We will use `foo@computer-name` in the following examples and you should update them accordingly when trying out the code. - -Let's define a module named `Hello` in this shell: - -```elixir -iex> defmodule Hello do -...> def world, do: IO.puts "hello world" -...> end -``` - -If you have another computer on the same network with both Erlang and Elixir installed, you can start another shell on it. If you don't, you can start another IEx session in another terminal. In either case, give it the short name of `bar`: - -```console -$ iex --sname bar -``` - -Note that inside this new IEx session, we cannot access `Hello.world/0`: - -```elixir -iex> Hello.world -** (UndefinedFunctionError) function Hello.world/0 is undefined (module Hello is not available) - Hello.world() -``` - -However, we can spawn a new process on `foo@computer-name` from `bar@computer-name`! Let's give it a try (where `@computer-name` is the one you see locally): - -```elixir -iex> Node.spawn_link(:"foo@computer-name", fn -> Hello.world() end) -#PID<9014.59.0> -hello world -``` - -Elixir spawned a process on another node and returned its pid. The code then executed on the other node where the `Hello.world/0` function exists and invoked that function. Note that the result of "hello world" was printed on the current node `bar` and not on `foo`. In other words, the message to be printed was sent back from `foo` to `bar`. This happens because the process spawned on the other node (`foo`) knows all of the output should be sent back to the original node! - -We can send and receive messages from the pid returned by `Node.spawn_link/2` as usual. Let's try a quick ping-pong example: - -```elixir -iex> pid = Node.spawn_link(:"foo@computer-name", fn -> -...> receive do -...> {:ping, client} -> send(client, :pong) -...> end -...> end) -#PID<9014.59.0> -iex> send(pid, {:ping, self()}) -{:ping, #PID<0.73.0>} -iex> flush() -:pong -:ok -``` - -From our quick exploration, we could conclude that we should use `Node.spawn_link/2` to spawn processes on a remote node every time we need to do a distributed computation. However, we have learned throughout this guide that spawning processes outside of supervision trees should be avoided if possible, so we need to look for other options. - -There are three better alternatives to `Node.spawn_link/2` that we could use in our implementation: - -1. We could use Erlang's [:erpc](http://www.erlang.org/doc/man/erpc.html) module to execute functions on a remote node. Inside the `bar@computer-name` shell above, you can call `:erpc.call(:"foo@computer-name", Hello, :world, [])` and it will print "hello world" - -2. We could have a server running on the other node and send requests to that node via the [GenServer](https://hexdocs.pm/elixir/GenServer.html) API. For example, you can call a server on a remote node by using `GenServer.call({name, node}, arg)` or passing the remote process PID as the first argument - -3. We could use [tasks](https://hexdocs.pm/elixir/Task.html), which we have learned about in [a previous chapter](/getting-started/mix-otp/task-and-gen-tcp.html), as they can be spawned on both local and remote nodes - -The options above have different properties. The GenServer would serialize your requests on a single server, while tasks are effectively running asynchronously on the remote node, with the only serialization point being the spawning done by the supervisor. - -For our routing layer, we are going to use tasks, but feel free to explore the other alternatives too. - -## async/await - -So far we have explored tasks that are started and run in isolation, without regard to their return value. However, sometimes it is useful to run a task to compute a value and read its result later on. For this, tasks also provide the `async/await` pattern: - -```elixir -task = Task.async(fn -> compute_something_expensive() end) -res = compute_something_else() -res + Task.await(task) -``` - -`async/await` provides a very simple mechanism to compute values concurrently. Not only that, `async/await` can also be used with the same [`Task.Supervisor`](https://hexdocs.pm/elixir/Task.Supervisor.html) we have used in previous chapters. We just need to call `Task.Supervisor.async/2` instead of `Task.Supervisor.start_child/2` and use `Task.await/2` to read the result later on. - -## Distributed tasks - -Distributed tasks are exactly the same as supervised tasks. The only difference is that we pass the node name when spawning the task on the supervisor. Open up `lib/kv/supervisor.ex` from the `:kv` application. Let's add a task supervisor as the last child of the tree: - -```elixir -{Task.Supervisor, name: KV.RouterTasks}, -``` - -Now, let's start two named nodes again, but inside the `:kv` application: - -```console -$ iex --sname foo -S mix -$ iex --sname bar -S mix -``` - -From inside `bar@computer-name`, we can now spawn a task directly on the other node via the supervisor: - -```elixir -iex> task = Task.Supervisor.async({KV.RouterTasks, :"foo@computer-name"}, fn -> -...> {:ok, node()} -...> end) -%Task{ - mfa: {:erlang, :apply, 2}, - owner: #PID<0.122.0>, - pid: #PID<12467.88.0>, - ref: #Reference<0.0.0.400> -} -iex> Task.await(task) -{:ok, :"foo@computer-name"} -``` - -Our first distributed task retrieves the name of the node the task is running on. Notice we have given an anonymous function to `Task.Supervisor.async/2` but, in distributed cases, it is preferable to give the module, function, and arguments explicitly: - -```elixir -iex> task = Task.Supervisor.async({KV.RouterTasks, :"foo@computer-name"}, Kernel, :node, []) -%Task{ - mfa: {Kernel, :node, 0}, - owner: #PID<0.122.0>, - pid: #PID<12467.89.0>, - ref: #Reference<0.0.0.404> -} -iex> Task.await(task) -:"foo@computer-name" -``` - -The difference is that anonymous functions require the target node to have exactly the same code version as the caller. Using module, function, and arguments is more robust because you only need to find a function with matching arity in the given module. - -With this knowledge in hand, let's finally write the routing code. - -## Routing layer - -Create a file at `lib/kv/router.ex` with the following contents: - -```elixir -defmodule KV.Router do - @doc """ - Dispatch the given `mod`, `fun`, `args` request - to the appropriate node based on the `bucket`. - """ - def route(bucket, mod, fun, args) do - # Get the first byte of the binary - first = :binary.first(bucket) - - # Try to find an entry in the table() or raise - entry = - Enum.find(table(), fn {enum, _node} -> - first in enum - end) || no_entry_error(bucket) - - # If the entry node is the current node - if elem(entry, 1) == node() do - apply(mod, fun, args) - else - {KV.RouterTasks, elem(entry, 1)} - |> Task.Supervisor.async(KV.Router, :route, [bucket, mod, fun, args]) - |> Task.await() - end - end - - defp no_entry_error(bucket) do - raise "could not find entry for #{inspect bucket} in table #{inspect table()}" - end - - @doc """ - The routing table. - """ - def table do - # Replace computer-name with your local machine name - [{?a..?m, :"foo@computer-name"}, {?n..?z, :"bar@computer-name"}] - end -end -``` - -Let's write a test to verify our router works. Create a file named `test/kv/router_test.exs` containing: - -```elixir -defmodule KV.RouterTest do - use ExUnit.Case, async: true - - test "route requests across nodes" do - assert KV.Router.route("hello", Kernel, :node, []) == - :"foo@computer-name" - assert KV.Router.route("world", Kernel, :node, []) == - :"bar@computer-name" - end - - test "raises on unknown entries" do - assert_raise RuntimeError, ~r/could not find entry/, fn -> - KV.Router.route(<<0>>, Kernel, :node, []) - end - end -end -``` - -The first test invokes `Kernel.node/0`, which returns the name of the current node, based on the bucket names "hello" and "world". According to our routing table so far, we should get `foo@computer-name` and `bar@computer-name` as responses, respectively. - -The second test checks that the code raises for unknown entries. - -In order to run the first test, we need to have two nodes running. Move into `apps/kv` and let's restart the node named `bar` which is going to be used by tests. - -```console -$ iex --sname bar -S mix -``` - -And now run tests with: - -```console -$ elixir --sname foo -S mix test -``` - -The test should pass. - -## Test filters and tags - -Although our tests pass, our testing structure is getting more complex. In particular, running tests with only `mix test` causes failures in our suite, since our test requires a connection to another node. - -Luckily, ExUnit ships with a facility to tag tests, allowing us to run specific callbacks or even filter tests altogether based on those tags. We have already used the `:capture_log` tag in the previous chapter, which has its semantics specified by ExUnit itself. - -This time let's add a `:distributed` tag to `test/kv/router_test.exs`: - -```elixir -@tag :distributed -test "route requests across nodes" do -``` - -Writing `@tag :distributed` is equivalent to writing `@tag distributed: true`. - -With the test properly tagged, we can now check if the node is alive on the network and, if not, we can exclude all distributed tests. Open up `test/test_helper.exs` inside the `:kv` application and add the following: - -```elixir -exclude = - if Node.alive?(), do: [], else: [distributed: true] - -ExUnit.start(exclude: exclude) -``` - -Now run tests with `mix test`: - -```console -$ mix test -Excluding tags: [distributed: true] - -....... - -Finished in 0.05 seconds -9 tests, 0 failures, 1 excluded -``` - -This time all tests passed and ExUnit warned us that distributed tests were being excluded. If you run tests with `$ elixir --sname foo -S mix test`, one extra test should run and successfully pass as long as the `bar@computer-name` node is available. - -The `mix test` command also allows us to dynamically include and exclude tags. For example, we can run `$ mix test --include distributed` to run distributed tests regardless of the value set in `test/test_helper.exs`. We could also pass `--exclude` to exclude a particular tag from the command line. Finally, `--only` can be used to run only tests with a particular tag: - -```console -$ elixir --sname foo -S mix test --only distributed -``` - -You can read more about filters, tags and the default tags in [`ExUnit.Case` module documentation](https://hexdocs.pm/ex_unit/ExUnit.Case.html). - -## Wiring it all up - -Now with our routing system in place, let's change `KVServer` to use the router. Replace the `lookup/2` function in `KVServer.Command` from this: - -```elixir -defp lookup(bucket, callback) do - case KV.Registry.lookup(KV.Registry, bucket) do - {:ok, pid} -> callback.(pid) - :error -> {:error, :not_found} - end -end -``` - -by this: - -```elixir -defp lookup(bucket, callback) do - case KV.Router.route(bucket, KV.Registry, :lookup, [KV.Registry, bucket]) do - {:ok, pid} -> callback.(pid) - :error -> {:error, :not_found} - end -end -``` - -Instead of directly looking up the registry, we are using the router instead to match a specific node. Then we get a `pid` that can be from any process in our cluster. From now on, `GET`, `PUT` and `DELETE` requests are all routed to the appropriate node. - -Let's also make sure that when a new bucket is created it ends up on the correct node. Replace the `run/1` function in `KVServer.Command`, the one that matches the `:create` command, with the following: - -```elixir -def run({:create, bucket}) do - case KV.Router.route(bucket, KV.Registry, :create, [KV.Registry, bucket]) do - pid when is_pid(pid) -> {:ok, "OK\r\n"} - _ -> {:error, "FAILED TO CREATE BUCKET"} - end -end -``` - -Now if you run the tests, you will see that an existing test that checks the server interaction will fail, as it will attempt to use the routing table. To address this failure, change the `test_helper.exs` for `:kv_server` application as we did for `:kv` and add `@tag :distributed` to this test too: - -```elixir -@tag :distributed -test "server interaction", %{socket: socket} do -``` - -However, keep in mind that by making the test distributed, we will likely run it less frequently, since we may not do the distributed setup on every test run. We will learn how to address this in the next chapter, by effectively learning how to make the routing table configurable. - -## Summing up - -We have only scratched the surface of what is possible when it comes to distribution. - -In all of our examples, we relied on Erlang's ability to automatically connect nodes whenever there is a request. For example, when we invoked `Node.spawn_link(:"foo@computer-name", fn -> Hello.world() end)`, Erlang automatically connected to said node and started a new process. However, you may also want to take a more explicit approach to connections, by using [`Node.connect/1`](https://hexdocs.pm/elixir/Node.html#connect/1) and [`Node.disconnect/1`](https://hexdocs.pm/elixir/Node.html#disconnect/1). - -By default, Erlang establishes a fully meshed network, which means all nodes are connected to each other. Under this topology, the Erlang distribution is known to scale to several dozens of nodes in the same cluster. Erlang also has the concept of hidden nodes, which can allow developers to assemble custom topologies as seen in projects such as [Partisan](https://github.com/lasp-lang/partisan). - -In production, you may have nodes connecting and disconnecting at any time. In such scenarios, you need to provide _node discoverability_. Libraries such as [libcluster](https://github.com/bitwalker/libcluster/) and [peerage](https://github.com/mrluc/peerage) provide several strategies for node discoverability using DNS, Kubernetes, etc. - -Distributed key-value stores, used in real-life, need to consider the fact nodes may go up and down at any time and also migrate the bucket across nodes. Even further, buckets often need to be duplicated between nodes, so a failure in a node does not lead to the whole bucket being lost. This process is called *replication*. Our implementation won't attempt to tackle such problems. Instead, we assume there is a fixed number of nodes and therefore use a fixed routing table. - -These topics can be daunting at first but remember that most Elixir frameworks abstract those concerns for you. For example, when using [the Phoenix web framework](https://phoenixframework.org), its plug-and-play abstractions take care of sending messages and tracking how users join and leave a cluster. However, if you are interested in distributed systems after all, there is much to explore. Here are some additional references: - - * [The excellent Distribunomicon chapter from Learn You Some Erlang](http://learnyousomeerlang.com/distribunomicon) - * [Erlang's global module](https://www.erlang.org/doc/man/global.html), which can provide global names and global locks, allowing unique names and unique locks in a whole cluster of machines - * [Erlang's pg module](https://www.erlang.org/doc/man/pg.html), which allows process to join different groups shared across the whole cluster - * [Phoenix PubSub project](https://github.com/phoenixframework/phoenix_pubsub), which provides a distributed messaging system and a distributed presence system for tracking users and processes in a cluster - -You will also find many libraries for building distributed systems within the overall Erlang ecosystem. For now, it is time to go back to our simple distributed key-value store and learn how to configure and package it for production. diff --git a/getting-started/mix-otp/docs-tests-and-with.markdown b/getting-started/mix-otp/docs-tests-and-with.markdown index 95153c9c5..dbeb73254 100644 --- a/getting-started/mix-otp/docs-tests-and-with.markdown +++ b/getting-started/mix-otp/docs-tests-and-with.markdown @@ -1,455 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Doctests, patterns and with -redirect_from: /getting-started/mix_otp/docs-tests-and-pipelines.html -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: docs-tests-and-with --- - -{% include mix-otp-preface.html %} - -In this chapter, we will implement the code that parses the commands we described in the first chapter: - -``` -CREATE shopping -OK - -PUT shopping milk 1 -OK - -PUT shopping eggs 3 -OK - -GET shopping milk -1 -OK - -DELETE shopping eggs -OK -``` - -After the parsing is done, we will update our server to dispatch the parsed commands to the `:kv` application we built previously. - -## Doctests - -On the language homepage, we mention that Elixir makes documentation a first-class citizen in the language. We have explored this concept many times throughout this guide, be it via `mix help` or by typing `h Enum` or another module in an IEx console. - -In this section, we will implement the parsing functionality, document it and make sure our documentation is up to date with doctests. This helps us provide documentation with accurate code samples. - -We need two steps to achieve this: first we write the documentation and then we instruct ExUnit to extract and run the examples in it by calling [`ExUnit.DocTest.doctest/1`](https://hexdocs.pm/ex_unit/ExUnit.DocTest.html#doctest/1). - -Let's start by creating an empty definition of the parsing function with documentation at `lib/kv_server/command.ex`: - -```elixir -defmodule KVServer.Command do - @doc ~S""" - Parses the given `line` into a command. - - ## Examples - - iex> KVServer.Command.parse("CREATE shopping\r\n") - {:ok, {:create, "shopping"}} - - """ - def parse(_line) do - :not_implemented - end -end -``` - -Doctests are specified by an indentation of four spaces followed by the `iex>` prompt in a documentation string. If a command spans multiple lines, you can use `...>`, as in IEx. The expected result should start at the next line after `iex>` or `...>` line(s) and is terminated either by a newline or a new `iex>` prefix. - -Also, note that we started the documentation string using `@doc ~S"""`. The `~S` prevents the `\r\n` characters from being converted to a carriage return and line feed until they are evaluated in the test. - -To run our doctests, we'll create a file at `test/kv_server/command_test.exs` and call `doctest KVServer.Command` in the test case: - -```elixir -defmodule KVServer.CommandTest do - use ExUnit.Case, async: true - doctest KVServer.Command -end -``` - -Run the test suite and the doctest should fail: - -``` - 1) doctest KVServer.Command.parse/1 (1) (KVServer.CommandTest) - test/kv_server/command_test.exs:3 - Doctest failed - doctest: - iex> KVServer.Command.parse("CREATE shopping\r\n") - {:ok, {:create, "shopping"}} - code: KVServer.Command.parse "CREATE shopping\r\n" === {:ok, {:create, "shopping"}} - left: :not_implemented - right: {:ok, {:create, "shopping"}} - stacktrace: - lib/kv_server/command.ex:7: KVServer.Command (module) -``` - -Excellent! - -Now let's make the doctest pass. Let's implement the `parse/1` function: - -```elixir -def parse(line) do - case String.split(line) do - ["CREATE", bucket] -> {:ok, {:create, bucket}} - end -end -``` - -Our implementation splits the line on whitespace and then matches the command against a list. Using `String.split/1` means our commands will be whitespace-insensitive. Leading and trailing whitespace won't matter, nor will consecutive spaces between words. Let's add some new doctests to test this behaviour along with the other commands: - -```elixir -@doc ~S""" -Parses the given `line` into a command. - -## Examples - - iex> KVServer.Command.parse "CREATE shopping\r\n" - {:ok, {:create, "shopping"}} - - iex> KVServer.Command.parse "CREATE shopping \r\n" - {:ok, {:create, "shopping"}} - - iex> KVServer.Command.parse "PUT shopping milk 1\r\n" - {:ok, {:put, "shopping", "milk", "1"}} - - iex> KVServer.Command.parse "GET shopping milk\r\n" - {:ok, {:get, "shopping", "milk"}} - - iex> KVServer.Command.parse "DELETE shopping eggs\r\n" - {:ok, {:delete, "shopping", "eggs"}} - -Unknown commands or commands with the wrong number of -arguments return an error: - - iex> KVServer.Command.parse "UNKNOWN shopping eggs\r\n" - {:error, :unknown_command} - - iex> KVServer.Command.parse "GET shopping\r\n" - {:error, :unknown_command} - -""" -``` - -With doctests at hand, it is your turn to make tests pass! Once you're ready, you can compare your work with our solution below: - -```elixir -def parse(line) do - case String.split(line) do - ["CREATE", bucket] -> {:ok, {:create, bucket}} - ["GET", bucket, key] -> {:ok, {:get, bucket, key}} - ["PUT", bucket, key, value] -> {:ok, {:put, bucket, key, value}} - ["DELETE", bucket, key] -> {:ok, {:delete, bucket, key}} - _ -> {:error, :unknown_command} - end -end -``` - -Notice how we were able to elegantly parse the commands without adding a bunch of `if/else` clauses that check the command name and number of arguments! - -Finally, you may have observed that each doctest corresponds to a different test in our suite, which now reports a total of 7 doctests. That is because ExUnit considers the following to define two different doctests: - -```elixir -iex> KVServer.Command.parse("UNKNOWN shopping eggs\r\n") -{:error, :unknown_command} - -iex> KVServer.Command.parse("GET shopping\r\n") -{:error, :unknown_command} -``` - -Without new lines, as seen below, ExUnit compiles it into a single doctest: - -```elixir -iex> KVServer.Command.parse("UNKNOWN shopping eggs\r\n") -{:error, :unknown_command} -iex> KVServer.Command.parse("GET shopping\r\n") -{:error, :unknown_command} -``` - -As the name says, doctest is documentation first and a test later. Their goal is not to replace tests but to provide up to date documentation. You can read more about doctests in [the `ExUnit.DocTest` docs](https://hexdocs.pm/ex_unit/ExUnit.DocTest.html). - -## with - -As we are now able to parse commands, we can finally start implementing the logic that runs the commands. Let's add a stub definition for this function for now: - -```elixir -defmodule KVServer.Command do - @doc """ - Runs the given command. - """ - def run(command) do - {:ok, "OK\r\n"} - end -end -``` - -Before we implement this function, let's change our server to start using our new `parse/1` and `run/1` functions. Remember, our `read_line/1` function was also crashing when the client closed the socket, so let's take the opportunity to fix it, too. Open up `lib/kv_server.ex` and replace the existing server definition: - -```elixir -defp serve(socket) do - socket - |> read_line() - |> write_line(socket) - - serve(socket) -end - -defp read_line(socket) do - {:ok, data} = :gen_tcp.recv(socket, 0) - data -end - -defp write_line(line, socket) do - :gen_tcp.send(socket, line) -end -``` - -by the following: - -```elixir -defp serve(socket) do - msg = - case read_line(socket) do - {:ok, data} -> - case KVServer.Command.parse(data) do - {:ok, command} -> - KVServer.Command.run(command) - {:error, _} = err -> - err - end - {:error, _} = err -> - err - end - - write_line(socket, msg) - serve(socket) -end - -defp read_line(socket) do - :gen_tcp.recv(socket, 0) -end - -defp write_line(socket, {:ok, text}) do - :gen_tcp.send(socket, text) -end - -defp write_line(socket, {:error, :unknown_command}) do - # Known error; write to the client - :gen_tcp.send(socket, "UNKNOWN COMMAND\r\n") -end - -defp write_line(_socket, {:error, :closed}) do - # The connection was closed, exit politely - exit(:shutdown) -end - -defp write_line(socket, {:error, error}) do - # Unknown error; write to the client and exit - :gen_tcp.send(socket, "ERROR\r\n") - exit(error) -end -``` - -If we start our server, we can now send commands to it. For now, we will get two different responses: "OK" when the command is known and "UNKNOWN COMMAND" otherwise: - -```console -$ telnet 127.0.0.1 4040 -Trying 127.0.0.1... -Connected to localhost. -Escape character is '^]'. -CREATE shopping -OK -HELLO -UNKNOWN COMMAND -``` - -This means our implementation is going in the correct direction, but it doesn't look very elegant, does it? - -The previous implementation used pipelines which made the logic straightforward to follow. However, now that we need to handle different error codes along the way, our server logic is nested inside many `case` calls. - -Thankfully, Elixir v1.2 introduced the `with` construct, which allows you to simplify code like the above, replacing nested `case` calls with a chain of matching clauses. Let's rewrite the `serve/1` function to use `with`: - -```elixir -defp serve(socket) do - msg = - with {:ok, data} <- read_line(socket), - {:ok, command} <- KVServer.Command.parse(data), - do: KVServer.Command.run(command) - - write_line(socket, msg) - serve(socket) -end -``` - -Much better! `with` will retrieve the value returned by the right-side of `<-` and match it against the pattern on the left side. If the value matches the pattern, `with` moves on to the next expression. In case there is no match, the non-matching value is returned. - -In other words, we converted each expression given to `case/2` as a step in `with`. As soon as any of the steps return something that does not match `{:ok, x}`, `with` aborts, and returns the non-matching value. - -You can read more about [`with` in our documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#with/1). - -## Running commands - -The last step is to implement `KVServer.Command.run/1`, to run the parsed commands against the `:kv` application. Its implementation is shown below: - -```elixir -@doc """ -Runs the given command. -""" -def run(command) - -def run({:create, bucket}) do - KV.Registry.create(KV.Registry, bucket) - {:ok, "OK\r\n"} -end - -def run({:get, bucket, key}) do - lookup(bucket, fn pid -> - value = KV.Bucket.get(pid, key) - {:ok, "#{value}\r\nOK\r\n"} - end) -end - -def run({:put, bucket, key, value}) do - lookup(bucket, fn pid -> - KV.Bucket.put(pid, key, value) - {:ok, "OK\r\n"} - end) -end - -def run({:delete, bucket, key}) do - lookup(bucket, fn pid -> - KV.Bucket.delete(pid, key) - {:ok, "OK\r\n"} - end) -end - -defp lookup(bucket, callback) do - case KV.Registry.lookup(KV.Registry, bucket) do - {:ok, pid} -> callback.(pid) - :error -> {:error, :not_found} - end -end -``` - -Every function clause dispatches the appropriate command to the `KV.Registry` server that we registered during the `:kv` application startup. Since our `:kv_server` depends on the `:kv` application, it is completely fine to depend on the services it provides. - -You might have noticed we have a function head, `def run(command)`, without a body. In the [Modules and Functions](/getting-started/modules-and-functions#default-arguments) chapter, we learned that a bodiless function can be used to declare default arguments for a multi-clause function. Here is another use case where we use a function without a body to document what the arguments are. - -Note that we have also defined a private function named `lookup/2` to help with the common functionality of looking up a bucket and returning its `pid` if it exists, `{:error, :not_found}` otherwise. - -By the way, since we are now returning `{:error, :not_found}`, we should amend the `write_line/2` function in `KVServer` to print such error as well: - -```elixir -defp write_line(socket, {:error, :not_found}) do - :gen_tcp.send(socket, "NOT FOUND\r\n") -end -``` - -Our server functionality is almost complete. Only tests are missing. This time, we have left tests for last because there are some important considerations to be made. - -`KVServer.Command.run/1`'s implementation is sending commands directly to the server named `KV.Registry`, which is registered by the `:kv` application. This means this server is global and if we have two tests sending messages to it at the same time, our tests will conflict with each other (and likely fail). We need to decide between having unit tests that are isolated and can run asynchronously, or writing integration tests that work on top of the global state, but exercise our application's full stack as it is meant to be exercised in production. - -So far we have only written unit tests, typically testing a single module directly. However, in order to make `KVServer.Command.run/1` testable as a unit we would need to change its implementation to not send commands directly to the `KV.Registry` process but instead pass a server as an argument. For example, we would need to change `run`'s signature to `def run(command, pid)` and then change all clauses accordingly: - -```elixir -def run({:create, bucket}, pid) do - KV.Registry.create(pid, bucket) - {:ok, "OK\r\n"} -end - -# ... other run clauses ... -``` - -Feel free to go ahead and do the changes above and write some unit tests. The idea is that your tests will start an instance of the `KV.Registry` and pass it as an argument to `run/2` instead of relying on the global `KV.Registry`. This has the advantage of keeping our tests asynchronous as there is no shared state. - -But let's also try something different. Let's write integration tests that rely on the global server names to exercise the whole stack from the TCP server to the bucket. Our integration tests will rely on global state and must be synchronous. With integration tests, we get coverage on how the components in our application work together at the cost of test performance. They are typically used to test the main flows in your application. For example, we should avoid using integration tests to test an edge case in our command parsing implementation. - -Our integration test will use a TCP client that sends commands to our server and assert we are getting the desired responses. - -Let's implement the integration test in `test/kv_server_test.exs` as shown below: - -```elixir -defmodule KVServerTest do - use ExUnit.Case - - setup do - Application.stop(:kv) - :ok = Application.start(:kv) - end - - setup do - opts = [:binary, packet: :line, active: false] - {:ok, socket} = :gen_tcp.connect('localhost', 4040, opts) - %{socket: socket} - end - - test "server interaction", %{socket: socket} do - assert send_and_recv(socket, "UNKNOWN shopping\r\n") == - "UNKNOWN COMMAND\r\n" - - assert send_and_recv(socket, "GET shopping eggs\r\n") == - "NOT FOUND\r\n" - - assert send_and_recv(socket, "CREATE shopping\r\n") == - "OK\r\n" - - assert send_and_recv(socket, "PUT shopping eggs 3\r\n") == - "OK\r\n" - - # GET returns two lines - assert send_and_recv(socket, "GET shopping eggs\r\n") == "3\r\n" - assert send_and_recv(socket, "") == "OK\r\n" - - assert send_and_recv(socket, "DELETE shopping eggs\r\n") == - "OK\r\n" - - # GET returns two lines - assert send_and_recv(socket, "GET shopping eggs\r\n") == "\r\n" - assert send_and_recv(socket, "") == "OK\r\n" - end - - defp send_and_recv(socket, command) do - :ok = :gen_tcp.send(socket, command) - {:ok, data} = :gen_tcp.recv(socket, 0, 1000) - data - end -end -``` - -Our integration test checks all server interaction, including unknown commands and not found errors. It is worth noting that, as with ETS tables and linked processes, there is no need to close the socket. Once the test process exits, the socket is automatically closed. - -This time, since our test relies on global data, we have not given `async: true` to `use ExUnit.Case`. Furthermore, in order to guarantee our test is always in a clean state, we stop and start the `:kv` application before each test. In fact, stopping the `:kv` application even prints a warning on the terminal: - -``` -18:12:10.698 [info] Application kv exited: :stopped -``` - -To avoid printing log messages during tests, ExUnit provides a neat feature called `:capture_log`. By setting `@tag :capture_log` before each test or `@moduletag :capture_log` for the whole test module, ExUnit will automatically capture anything that is logged while the test runs. In case our test fails, the captured logs will be printed alongside the ExUnit report. - -Between `use ExUnit.Case` and setup, add the following call: - -```elixir -@moduletag :capture_log -``` - -In case the test crashes, you will see a report as follows: - -``` - 1) test server interaction (KVServerTest) - test/kv_server_test.exs:17 - ** (RuntimeError) oops - stacktrace: - test/kv_server_test.exs:29 - - The following output was logged: - - 13:44:10.035 [notice] Application kv exited: :stopped -``` - -With this simple integration test, we start to see why integration tests may be slow. Not only can this test not run asynchronously, but it also requires the expensive setup of stopping and starting the `:kv` application. In fact, your test suite may even fail and run into timeouts. If that's the case, you can tweak the `:gen_tcp.recv(socket, 0)` call to pass a third argument, which is the timeout in milliseconds. In the next chapter we will learn about application configuration, which we could use to make the timeout configurable, if desired. - -At the end of the day, it is up to you and your team to figure out the best testing strategy for your applications. You need to balance code quality, confidence, and test suite runtime. For example, we may start with testing the server only with integration tests, but if the server continues to grow in future releases, or it becomes a part of the application with frequent bugs, it is important to consider breaking it apart and writing more intensive unit tests that don't have the weight of an integration test. - -Let's move to the next chapter. We will finally make our system distributed by adding a bucket routing mechanism. We will use this opportunity to also improve our testing chops. diff --git a/getting-started/mix-otp/dynamic-supervisor.markdown b/getting-started/mix-otp/dynamic-supervisor.markdown index bb0d7c8a4..9dfcd0300 100644 --- a/getting-started/mix-otp/dynamic-supervisor.markdown +++ b/getting-started/mix-otp/dynamic-supervisor.markdown @@ -1,207 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Dynamic supervisors -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: dynamic-supervisor --- - -{% include mix-otp-preface.html %} - -We have now successfully defined our supervisor which is automatically started (and stopped) as part of our application lifecycle. - -Remember, however, that our `KV.Registry` is both linking (via `start_link`) and monitoring (via `monitor`) bucket processes in the `handle_cast/2` callback: - -```elixir -{:ok, bucket} = KV.Bucket.start_link([]) -ref = Process.monitor(bucket) -``` - -Links are bidirectional, which implies that a crash in a bucket will crash the registry. Although we now have the supervisor, which guarantees the registry will be back up and running, crashing the registry still means we lose all data associating bucket names to their respective processes. - -In other words, we want the registry to keep on running even if a bucket crashes. Let's write a new registry test: - -```elixir -test "removes bucket on crash", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - - # Stop the bucket with non-normal reason - Agent.stop(bucket, :shutdown) - assert KV.Registry.lookup(registry, "shopping") == :error -end -``` - -The test is similar to "removes bucket on exit" except that we are being a bit more harsh by sending `:shutdown` as the exit reason instead of `:normal`. If a process terminates with a reason different than `:normal`, all linked processes receive an EXIT signal, causing the linked process to also terminate unless it is trapping exits. - -Since the bucket terminated, the registry also stopped, and our test fails when trying to `GenServer.call/3` it: - -``` - 1) test removes bucket on crash (KV.RegistryTest) - test/kv/registry_test.exs:26 - ** (exit) exited in: GenServer.call(#PID<0.148.0>, {:lookup, "shopping"}, 5000) - ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started - code: assert KV.Registry.lookup(registry, "shopping") == :error - stacktrace: - (elixir) lib/gen_server.ex:770: GenServer.call/3 - test/kv/registry_test.exs:33: (test) -``` - -We are going to solve this issue by defining a new supervisor that will spawn and supervise all buckets. Opposite to the previous Supervisor we defined, the children are not known upfront, but they are rather started dynamically. For those situations, we use a supervisor optimized to such use cases called `DynamicSupervisor`. The `DynamicSupervisor` does not expect a list of children during initialization; instead each child is started manually via `DynamicSupervisor.start_child/2`. - -## The bucket supervisor - -Since a `DynamicSupervisor` does not define any children during initialization, the `DynamicSupervisor` also allows us to skip the work of defining a whole separate module with the usual `start_link` function and the `init` callback. Instead, we can define a `DynamicSupervisor` directly in the supervision tree, by giving it a name and a strategy. - -Open up `lib/kv/supervisor.ex` and add the dynamic supervisor as a child as follows: - - -```elixir - def init(:ok) do - children = [ - {KV.Registry, name: KV.Registry}, - {DynamicSupervisor, name: KV.BucketSupervisor, strategy: :one_for_one} - ] - - Supervisor.init(children, strategy: :one_for_one) - end -``` - -Remember that the name of a process can be any atom. So far, we have named processes with the same name as the modules that define their implementation. For example, the process defined by `KV.Registry` was given a process name of `KV.Registry`. This is simply a convention: If later there is an error in your system that says, "process named KV.Registry crashed with reason", we know exactly where to investigate. - -In this case, there is no module, so we picked the name `KV.BucketSupervisor`. It could have been any other name. We also chose the `:one_for_one` strategy, which is currently the only available strategy for dynamic supervisors. - -Run `iex -S mix` so we can give our dynamic supervisor a try: - -```elixir -iex> {:ok, bucket} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) -{:ok, #PID<0.72.0>} -iex> KV.Bucket.put(bucket, "eggs", 3) -:ok -iex> KV.Bucket.get(bucket, "eggs") -3 -``` - -`DynamicSupervisor.start_child/2` expects the name of the supervisor and the child specification of the child to be started. - -The last step is to change the registry to use the dynamic supervisor: - -```elixir - def handle_cast({:create, name}, {names, refs}) do - if Map.has_key?(names, name) do - {:noreply, {names, refs}} - else - {:ok, pid} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) - ref = Process.monitor(pid) - refs = Map.put(refs, ref, name) - names = Map.put(names, name, pid) - {:noreply, {names, refs}} - end - end -``` - -That's enough for our tests to pass but there is a resource leakage in our application. When a bucket terminates, the supervisor will start a new bucket in its place. After all, that's the role of the supervisor! - -However, when the supervisor restarts the new bucket, the registry does not know about it. So we will have an empty bucket in the supervisor that nobody can access! To solve this, we want to say that buckets are actually temporary. If they crash, regardless of the reason, they should not be restarted. - -We can do this by passing the `restart: :temporary` option to `use Agent` in `KV.Bucket`: - -```elixir -defmodule KV.Bucket do - use Agent, restart: :temporary -``` - -Let's also add a test to `test/kv/bucket_test.exs` that guarantees the bucket is temporary: - -```elixir - test "are temporary workers" do - assert Supervisor.child_spec(KV.Bucket, []).restart == :temporary - end -``` - -Our test uses the `Supervisor.child_spec/2` function to retrieve the child specification out of a module and then assert its restart value is `:temporary`. At this point, you may be wondering why use a supervisor if it never restarts its children. It happens that supervisors provide more than restarts, they are also responsible for guaranteeing proper startup and shutdown, especially in case of crashes in a supervision tree. - -## Supervision trees - -When we added `KV.BucketSupervisor` as a child of `KV.Supervisor`, we began to have supervisors that supervise other supervisors, forming so-called "supervision trees". - -Every time you add a new child to a supervisor, it is important to evaluate if the supervisor strategy is correct as well as the order of child processes. In this case, we are using `:one_for_one` and the `KV.Registry` is started before `KV.BucketSupervisor`. - -One flaw that shows up right away is the ordering issue. Since `KV.Registry` invokes `KV.BucketSupervisor`, then the `KV.BucketSupervisor` must be started before `KV.Registry`. Otherwise, it may happen that the registry attempts to reach the bucket supervisor before it has started. - -The second flaw is related to the supervision strategy. If `KV.Registry` dies, all information linking `KV.Bucket` names to bucket processes is lost. Therefore the `KV.BucketSupervisor` and all children must terminate too - otherwise we will have orphan processes. - -In light of this observation, we should consider moving to another supervision strategy. The two other candidates are `:one_for_all` and `:rest_for_one`. A supervisor using the `:rest_for_one` strategy will kill and restart child processes which were started *after* the crashed child. In this case, we would want `KV.BucketSupervisor` to terminate if `KV.Registry` terminates. This would require the bucket supervisor to be placed after the registry which violates the ordering constraints we have established two paragraphs above. - -So our last option is to go all in and pick the `:one_for_all` strategy: the supervisor will kill and restart all of its children processes whenever any one of them dies. This is a completely reasonable approach for our application, since the registry can't work without the bucket supervisor, and the bucket supervisor should terminate without the registry. Let's reimplement `init/1` in `KV.Supervisor` to encode those properties: - -```elixir - def init(:ok) do - children = [ - {DynamicSupervisor, name: KV.BucketSupervisor, strategy: :one_for_one}, - {KV.Registry, name: KV.Registry} - ] - - Supervisor.init(children, strategy: :one_for_all) - end -``` - -There are two topics left before we move on to the next chapter. - -## Shared state in tests - -So far we have been starting one registry per test to ensure they are isolated: - -```elixir -setup do - registry = start_supervised!(KV.Registry) - %{registry: registry} -end -``` - -Since we have changed our registry to use `KV.BucketSupervisor`, our tests are now relying on this shared supervisor even though each test has its own registry. The question is: should we? - -It depends. It is ok to rely on shared state as long as we depend only on a non-shared partition of this state. Although multiple registries may start buckets on the shared bucket supervisor, those buckets and registries are isolated from each other. We would only run into concurrency issues if we used a function like `DynamicSupervisor.count_children(KV.BucketSupervisor)` which would count all buckets from all registries, potentially giving different results when tests run concurrently. - -Since we have relied only on a non-shared partition of the bucket supervisor so far, we don't need to worry about concurrency issues in our test suite. In case it ever becomes a problem, we can start a supervisor per test and pass it as an argument to the registry `start_link` function. - -## Observer - -Now that we have defined our supervision tree, it is a great opportunity to introduce the Observer tool that ships with Erlang. Start your application with `iex -S mix` and key this in: - -```elixir -iex> :observer.start() -``` - -> ### Missing dependencies -> -> When running `iex` inside a project with `iex -S mix`, `observer` won't be available as a dependency. To do so, you will need to call the following functions before: -> -> ```elixir -> iex> Mix.ensure_application!(:wx) -> iex> Mix.ensure_application!(:runtime_tools) -> iex> Mix.ensure_application!(:observer) -> iex> :observer.start() -> ``` -> -> If any of the calls above fail, here is what may have happened: some package managers default to installing a minimized Erlang without WX bindings for GUI support. In some package managers, you may be able to replace the headless Erlang with a more complete package (look for packages named `erlang` vs `erlang-nox` on Debian/Ubuntu/Arch). In others managers, you may need to install a separate `erlang-wx` (or similarly named) package. -> -> There are conversations to improve this experience in future releases. - -A GUI should pop-up containing all sorts of information about our system, from general statistics to load charts as well as a list of all running processes and applications. - -In the Applications tab, you will see all applications currently running in your system alongside their supervision tree. You can select the `kv` application to explore it further: - -Observer GUI screenshot - -Not only that, as you create new buckets on the terminal, you should see new processes spawned in the supervision tree shown in Observer: - -```elixir -iex> KV.Registry.create(KV.Registry, "shopping") -:ok -``` - -We will leave it up to you to further explore what Observer provides. Note you can double click any process in the supervision tree to retrieve more information about it, as well as right-click a process to send "a kill signal", a perfect way to emulate failures and see if your supervisor reacts as expected. - -At the end of the day, tools like Observer are one of the reasons you want to always start processes inside supervision trees, even if they are temporary, to ensure they are always reachable and introspectable. - -Now that our buckets are properly linked and supervised, let's see how we can speed things up. diff --git a/getting-started/mix-otp/ets.markdown b/getting-started/mix-otp/ets.markdown index 06cabbe22..22e0a0978 100644 --- a/getting-started/mix-otp/ets.markdown +++ b/getting-started/mix-otp/ets.markdown @@ -1,290 +1,5 @@ --- -section: getting-started -layout: getting-started -title: ETS -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: erlang-term-storage --- - -{% include mix-otp-preface.html %} - -Every time we need to look up a bucket, we need to send a message to the registry. In case our registry is being accessed concurrently by multiple processes, the registry may become a bottleneck! - -In this chapter, we will learn about ETS (Erlang Term Storage) and how to use it as a cache mechanism. - -> Warning! Don't use ETS as a cache prematurely! Log and analyze your application performance and identify which parts are bottlenecks, so you know *whether* you should cache, and *what* you should cache. This chapter is merely an example of how ETS can be used, once you've determined the need. - -## ETS as a cache - -ETS allows us to store any Elixir term in an in-memory table. Working with ETS tables is done via [Erlang's `:ets` module](http://www.erlang.org/doc/man/ets.html): - -```elixir -iex> table = :ets.new(:buckets_registry, [:set, :protected]) -#Reference<0.1885502827.460455937.234656> -iex> :ets.insert(table, {"foo", self()}) -true -iex> :ets.lookup(table, "foo") -[{"foo", #PID<0.41.0>}] -``` - -When creating an ETS table, two arguments are required: the table name and a set of options. From the available options, we passed the table type and its access rules. We have chosen the `:set` type, which means that keys cannot be duplicated. We've also set the table's access to `:protected`, meaning only the process that created the table can write to it, but all processes can read from it. The possible access controls: - - `:public` — Read/Write available to all processes. - - `:protected` — Read available to all processes. Only writable by owner process. This is the default. - - `:private` — Read/Write limited to owner process. - -Be aware that if your Read/Write call violates the access control, the operation will raise `ArgumentError`. Finally, since `:set` and `:protected` are the default values, we will skip them from now on. - -ETS tables can also be named, allowing us to access them by a given name: - -```elixir -iex> :ets.new(:buckets_registry, [:named_table]) -:buckets_registry -iex> :ets.insert(:buckets_registry, {"foo", self()}) -true -iex> :ets.lookup(:buckets_registry, "foo") -[{"foo", #PID<0.41.0>}] -``` - -Let's change the `KV.Registry` to use ETS tables. The first change is to modify our registry to require a name argument, we will use it to name the ETS table and the registry process itself. ETS names and process names are stored in different locations, so there is no chance of conflicts. - -Open up `lib/kv/registry.ex`, and let's change its implementation. We've added comments to the source code to highlight the changes we've made: - -```elixir -defmodule KV.Registry do - use GenServer - - ## Client API - - @doc """ - Starts the registry with the given options. - - `:name` is always required. - """ - def start_link(opts) do - # 1. Pass the name to GenServer's init - server = Keyword.fetch!(opts, :name) - GenServer.start_link(__MODULE__, server, opts) - end - - @doc """ - Looks up the bucket pid for `name` stored in `server`. - - Returns `{:ok, pid}` if the bucket exists, `:error` otherwise. - """ - def lookup(server, name) do - # 2. Lookup is now done directly in ETS, without accessing the server - case :ets.lookup(server, name) do - [{^name, pid}] -> {:ok, pid} - [] -> :error - end - end - - @doc """ - Ensures there is a bucket associated with the given `name` in `server`. - """ - def create(server, name) do - GenServer.cast(server, {:create, name}) - end - - ## Server callbacks - - @impl true - def init(table) do - # 3. We have replaced the names map by the ETS table - names = :ets.new(table, [:named_table, read_concurrency: true]) - refs = %{} - {:ok, {names, refs}} - end - - # 4. The previous handle_call callback for lookup was removed - - @impl true - def handle_cast({:create, name}, {names, refs}) do - # 5. Read and write to the ETS table instead of the map - case lookup(names, name) do - {:ok, _pid} -> - {:noreply, {names, refs}} - :error -> - {:ok, pid} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) - ref = Process.monitor(pid) - refs = Map.put(refs, ref, name) - :ets.insert(names, {name, pid}) - {:noreply, {names, refs}} - end - end - - @impl true - def handle_info({:DOWN, ref, :process, _pid, _reason}, {names, refs}) do - # 6. Delete from the ETS table instead of the map - {name, refs} = Map.pop(refs, ref) - :ets.delete(names, name) - {:noreply, {names, refs}} - end - - @impl true - def handle_info(_msg, state) do - {:noreply, state} - end -end -``` - -Notice that before our changes `KV.Registry.lookup/2` sent requests to the server, but now it reads directly from the ETS table, which is shared across all processes. That's the main idea behind the cache mechanism we are implementing. - -In order for the cache mechanism to work, the created ETS table needs to have access `:protected` (the default), so all clients can read from it, while only the `KV.Registry` process writes to it. We have also set `read_concurrency: true` when starting the table, optimizing the table for the common scenario of concurrent read operations. - -The changes we have performed above have broken our tests because the registry requires the `:name` option when starting up. Furthermore, some registry operations such as `lookup/2` require the name to be given as an argument, instead of a PID, so we can do the ETS table lookup. Let's change the setup function in `test/kv/registry_test.exs` to fix both issues: - -```elixir - setup context do - _ = start_supervised!({KV.Registry, name: context.test}) - %{registry: context.test} - end -``` - -Since each test has a unique name, we use the test name to name our registries. This way, we no longer need to pass the registry PID around, instead we identify it by the test name. Also note we assigned the result of `start_supervised!` to underscore (`_`). This idiom is often used to signal that we are not interested in the result of `start_supervised!`. - -Once we change `setup`, some tests will continue to fail. You may even notice tests pass and fail inconsistently between runs. For example, the "spawns buckets" test: - -```elixir -test "spawns buckets", %{registry: registry} do - assert KV.Registry.lookup(registry, "shopping") == :error - - KV.Registry.create(registry, "shopping") - assert {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - - KV.Bucket.put(bucket, "milk", 1) - assert KV.Bucket.get(bucket, "milk") == 1 -end -``` - -may be failing on this line: - -```elixir -{:ok, bucket} = KV.Registry.lookup(registry, "shopping") -``` - -How can this line fail if we just created the bucket in the previous line? - -The reason those failures are happening is because, for didactic purposes, we have made two mistakes: - - 1. We are prematurely optimizing (by adding this cache layer) - 2. We are using `cast/2` (while we should be using `call/2`) - -## Race conditions? - -Developing in Elixir does not make your code free of race conditions. However, Elixir's abstractions where nothing is shared by default make it easier to spot a race condition's root cause. - -What is happening in our tests is that there is a delay in between an operation and the time we can observe this change in the ETS table. Here is what we were expecting to happen: - -1. We invoke `KV.Registry.create(registry, "shopping")` -2. The registry creates the bucket and updates the cache table -3. We access the information from the table with `KV.Registry.lookup(registry, "shopping")` -4. The command above returns `{:ok, bucket}` - -However, since `KV.Registry.create/2` is a cast operation, the command will return before we actually write to the table! In other words, this is happening: - -1. We invoke `KV.Registry.create(registry, "shopping")` -2. We access the information from the table with `KV.Registry.lookup(registry, "shopping")` -3. The command above returns `:error` -4. The registry creates the bucket and updates the cache table - -To fix the failure we need to make `KV.Registry.create/2` synchronous by using `call/2` rather than `cast/2`. This will guarantee that the client will only continue after changes have been made to the table. Let's go back to `lib/kv/registry.ex` and change the function and its callback as follows: - -```elixir -def create(server, name) do - GenServer.call(server, {:create, name}) -end -``` -```elixir -@impl true -def handle_call({:create, name}, _from, {names, refs}) do - case lookup(names, name) do - {:ok, pid} -> - {:reply, pid, {names, refs}} - :error -> - {:ok, pid} = DynamicSupervisor.start_child(KV.BucketSupervisor, KV.Bucket) - ref = Process.monitor(pid) - refs = Map.put(refs, ref, name) - :ets.insert(names, {name, pid}) - {:reply, pid, {names, refs}} - end -end -``` - -We changed the callback from `handle_cast/2` to `handle_call/3` and changed it to reply with the pid of the created bucket. Generally speaking, Elixir developers prefer to use `call/2` instead of `cast/2` as it also provides back-pressure - you block until you get a reply. Using `cast/2` when not necessary can also be considered a premature optimization. - -Let's run the tests once again. This time though, we will pass the `--trace` option: - -```console -$ mix test --trace -``` - -The `--trace` option is useful when your tests are deadlocking or there are race conditions, as it runs all tests synchronously (`async: true` has no effect) and shows detailed information about each test. If you run the tests multiple times you may see this intermittent failure: - -``` - 1) test removes buckets on exit (KV.RegistryTest) - test/kv/registry_test.exs:19 - Assertion with == failed - code: assert KV.Registry.lookup(registry, "shopping") == :error - left: {:ok, #PID<0.109.0>} - right: :error - stacktrace: - test/kv/registry_test.exs:23 -``` - -According to the failure message, we are expecting that the bucket no longer exists on the table, but it still does! This problem is the opposite of the one we have just solved: while previously there was a delay between the command to create a bucket and updating the table, now there is a delay between the bucket process dying and its entry being removed from the table. Since this is a race condition, you may not be able to reproduce it on your machine, but it is there. - -Last time we fixed the race condition by replacing the asynchronous operation, a `cast`, by a `call`, which is synchronous. Unfortunately, the `handle_info/2` callback we are using to receive the `:DOWN` message and delete the entry from the ETS table does not have a synchronous equivalent. This time, we need to find a way to guarantee the registry has processed the `:DOWN` notification sent when the bucket process terminated. - -An easy way to do so is by sending a synchronous request to the registry before we do the bucket lookup. The `Agent.stop/2` operation is synchronous and only returns after the bucket process terminates and all `:DOWN` messages are delivered. Therefore, once `Agent.stop/2` returns, the registry has already received the `:DOWN` message but it may not have processed it yet. In order to guarantee the processing of the `:DOWN` message, we can do a synchronous request. Since messages are processed in order, once the registry replies to the synchronous request, then the `:DOWN` message will definitely have been processed. - -Let's do so by creating a "bogus" bucket, which is a synchronous request, after `Agent.stop/2` in both "remove" tests at `test/kv/registry_test.exs`: - -```elixir - test "removes buckets on exit", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - Agent.stop(bucket) - - # Do a call to ensure the registry processed the DOWN message - _ = KV.Registry.create(registry, "bogus") - assert KV.Registry.lookup(registry, "shopping") == :error - end - - test "removes bucket on crash", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - - # Stop the bucket with non-normal reason - Agent.stop(bucket, :shutdown) - - # Do a call to ensure the registry processed the DOWN message - _ = KV.Registry.create(registry, "bogus") - assert KV.Registry.lookup(registry, "shopping") == :error - end -``` - -Our tests should now (always) pass! - -Note that the purpose of the test is to check whether the registry processes the bucket's shutdown message correctly. The fact that the `KV.Registry.lookup/2` sends us a valid bucket does not mean that the bucket is still alive by the time you call it. For example, it might have crashed for some reason. The following test depicts this situation: - -```elixir - test "bucket can crash at any time", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - - # Simulate a bucket crash by explicitly and synchronously shutting it down - Agent.stop(bucket, :shutdown) - - # Now trying to call the dead process causes a :noproc exit - catch_exit KV.Bucket.put(bucket, "milk", 3) - end -``` - -This concludes our optimization chapter. We have used ETS as a cache mechanism where reads can happen from any processes but writes are still serialized through a single process. More importantly, we have also learned that once data can be read asynchronously, we need to be aware of the race conditions it might introduce. - -In practice, if you find yourself in a position where you need a process registry for dynamic processes, you should use [the `Registry` module](https://hexdocs.pm/elixir/Registry.html) provided as part of Elixir. It provides functionality similar to the one we have built using a GenServer + `:ets` while also being able to perform both writes and reads concurrently. [It has been benchmarked to scale across all cores even on machines with 40 cores](https://elixir-lang.org/blog/2017/01/05/elixir-v1-4-0-released/). - -Next, let's discuss external and internal dependencies and how Mix helps us manage large codebases. diff --git a/getting-started/mix-otp/genserver.markdown b/getting-started/mix-otp/genserver.markdown index 9e6ff7652..0c548b6bb 100644 --- a/getting-started/mix-otp/genserver.markdown +++ b/getting-started/mix-otp/genserver.markdown @@ -1,345 +1,5 @@ --- -section: getting-started -layout: getting-started -title: GenServer -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: genservers --- - -{% include mix-otp-preface.html %} - -In the [previous chapter](/getting-started/mix-otp/agent.html), we used agents to represent our buckets. In the [introduction to mix](/getting-started/mix-otp/introduction-to-mix.html), we specified we would like to name each bucket so we can do the following: - -```elixir -CREATE shopping -OK - -PUT shopping milk 1 -OK - -GET shopping milk -1 -OK -``` - -In the session above we interacted with the "shopping" bucket. - -Since agents are processes, each bucket has a process identifier (pid), but buckets do not have a name. Back [in the Process chapter](/getting-started/processes.html), we have learned that we can register processes in Elixir by giving them atom names: - -```elixir -iex> Agent.start_link(fn -> %{} end, name: :shopping) -{:ok, #PID<0.43.0>} -iex> KV.Bucket.put(:shopping, "milk", 1) -:ok -iex> KV.Bucket.get(:shopping, "milk") -1 -``` - -However, naming dynamic processes with atoms is a terrible idea! If we use atoms, we would need to convert the bucket name (often received from an external client) to atoms, and **we should never convert user input to atoms**. This is because atoms are not garbage collected. Once an atom is created, it is never reclaimed. Generating atoms from user input would mean the user can inject enough different names to exhaust our system memory! - -In practice, it is more likely you will reach the Erlang VM limit for the maximum number of atoms before you run out of memory, which will bring your system down regardless. - -Instead of abusing the built-in name facility, we will create our own *process registry* that associates the bucket name to the bucket process. - -The registry needs to guarantee that it is always up to date. For example, if one of the bucket processes crashes due to a bug, the registry must notice this change and avoid serving stale entries. In Elixir, we say the registry needs to *monitor* each bucket. Because our *registry* needs to be able to receive and handle ad-hoc messages from the system, the `Agent` API is not enough. - -We will use a [GenServer](https://hexdocs.pm/elixir/GenServer.html) to create a registry process that can monitor the bucket processes. GenServer provides industrial strength functionality for building servers in both Elixir and OTP. - -Please read [the GenServer module documentation](https://hexdocs.pm/elixir/GenServer.html) for an overview if you haven't yet. Once you do so, we are ready to proceed. - -## GenServer callbacks - -A GenServer is a process that invokes a limited set of functions under specific conditions. When we used an `Agent`, we would keep both the client code and the server code side by side, like this: - -```elixir -def put(bucket, key, value) do - Agent.update(bucket, &Map.put(&1, key, value)) -end -``` - -Let's break that code apart a bit: - -```elixir -def put(bucket, key, value) do - # Here is the client code - Agent.update(bucket, fn state -> - # Here is the server code - Map.put(state, key, value) - end) - # Back to the client code -end -``` - -In the code above, we have a process, which we call "the client" sending a request to an agent, "the server". The request contains an anonymous function, which must be executed by the server. - -In a GenServer, the code above would be two separate functions, roughly like this: - -```elixir -def put(bucket, key, value) do - # Send the server a :put "instruction" - GenServer.call(bucket, {:put, key, value}) -end - -# Server callback - -def handle_call({:put, key, value}, _from, state) do - {:reply, :ok, Map.put(state, key, value)} -end -``` - -There is quite a bit more ceremony in the GenServer code but, as we will see, it brings some benefits too. - -For now, we will write only the server callbacks for our bucket registering logic, without providing a proper API, which we will do later. - -Create a new file at `lib/kv/registry.ex` with the following contents: - -```elixir -defmodule KV.Registry do - use GenServer - - ## Missing Client API - will add this later - - ## Defining GenServer Callbacks - - @impl true - def init(:ok) do - {:ok, %{}} - end - - @impl true - def handle_call({:lookup, name}, _from, names) do - {:reply, Map.fetch(names, name), names} - end - - @impl true - def handle_cast({:create, name}, names) do - if Map.has_key?(names, name) do - {:noreply, names} - else - {:ok, bucket} = KV.Bucket.start_link([]) - {:noreply, Map.put(names, name, bucket)} - end - end -end -``` - -There are two types of requests you can send to a GenServer: calls and casts. Calls are synchronous and the server **must** send a response back to such requests. While the server computes the response, the client is **waiting**. Casts are asynchronous: the server won't send a response back and therefore the client won't wait for one. Both requests are messages sent to the server, and will be handled in sequence. In the above implementation, we pattern-match on the `:create` messages, to be handled as cast, and on the `:lookup` messages, to be handled as call. - -In order to invoke the callbacks above, we need to go through the corresponding `GenServer` functions. Let's start a registry, create a named bucket, and then look it up: - -```elixir -iex> {:ok, registry} = GenServer.start_link(KV.Registry, :ok) -{:ok, #PID<0.136.0>} -iex> GenServer.cast(registry, {:create, "shopping"}) -:ok -iex> {:ok, bk} = GenServer.call(registry, {:lookup, "shopping"}) -{:ok, #PID<0.174.0>} -``` - -Our `KV.Registry` process received a cast with `{:create, "shopping"}` and a call with `{:lookup, "shopping"}`, in this sequence. `GenServer.cast` will immediately return, as soon as the message is sent to the `registry`. The `GenServer.call` on the other hand, is where we would be waiting for an answer, provided by the above `KV.Registry.handle_call` callback. - -You may also have noticed that we have added `@impl true` before each callback. The `@impl true` informs the compiler that our intention for the subsequent function definition is to define a callback. If by any chance we make a mistake in the function name or in the number of arguments, like we define a `handle_call/2`, the compiler would warn us there isn't any `handle_call/2` to define, and would give us the complete list of known callbacks for the `GenServer` module. - -This is all good and well, but we still want to offer our users an API that allows us to hide our implementation details. - -## The Client API - -A GenServer is implemented in two parts: the client API and the server callbacks. You can either combine both parts into a single module or you can separate them into a client module and a server module. The client is any process that invokes the client function. The server is always the process identifier or process name that we will explicitly pass as argument to the client API. Here we'll use a single module for both the server callbacks and the client API. - -Edit the file at `lib/kv/registry.ex`, filling in the blanks for the client API: - -```elixir - ## Client API - - @doc """ - Starts the registry. - """ - def start_link(opts) do - GenServer.start_link(__MODULE__, :ok, opts) - end - - @doc """ - Looks up the bucket pid for `name` stored in `server`. - - Returns `{:ok, pid}` if the bucket exists, `:error` otherwise. - """ - def lookup(server, name) do - GenServer.call(server, {:lookup, name}) - end - - @doc """ - Ensures there is a bucket associated with the given `name` in `server`. - """ - def create(server, name) do - GenServer.cast(server, {:create, name}) - end -``` - -The first function is `start_link/1`, which starts a new GenServer passing a list of options. `start_link/1` calls out to `GenServer.start_link/3`, which takes three arguments: - -1. The module where the server callbacks are implemented, in this case `__MODULE__` (meaning the current module) - -2. The initialization arguments, in this case the atom `:ok` - -3. A list of options which can be used to specify things like the name of the server. For now, we forward the list of options that we receive on `start_link/1` to `GenServer.start_link/3` - -The next two functions, `lookup/2` and `create/2`, are responsible for sending these requests to the server. In this case, we have used `{:lookup, name}` and `{:create, name}` respectively. Requests are often specified as tuples, like this, in order to provide more than one "argument" in that first argument slot. It's common to specify the action being requested as the first element of a tuple, and arguments for that action in the remaining elements. Note that the requests must match the first argument to `handle_call/3` or `handle_cast/2`. - -That's it for the client API. On the server side, we can implement a variety of callbacks to guarantee the server initialization, termination, and handling of requests. Those callbacks are optional and for now, we have only implemented the ones we care about. Let's recap. - -The first is the `init/1` callback, that receives the second argument given to `GenServer.start_link/3` and returns `{:ok, state}`, where state is a new map. We can already notice how the `GenServer` API makes the client/server segregation more apparent. `start_link/3` happens in the client, while `init/1` is the respective callback that runs on the server. - -For `call/2` requests, we implement a `handle_call/3` callback that receives the `request`, the process from which we received the request (`_from`), and the current server state (`names`). The `handle_call/3` callback returns a tuple in the format `{:reply, reply, new_state}`. The first element of the tuple, `:reply`, indicates that the server should send a reply back to the client. The second element, `reply`, is what will be sent to the client while the third, `new_state` is the new server state. - -For `cast/2` requests, we implement a `handle_cast/2` callback that receives the `request` and the current server state (`names`). The `handle_cast/2` callback returns a tuple in the format `{:noreply, new_state}`. Note that in a real application we would have probably implemented the callback for `:create` with a synchronous call instead of an asynchronous cast. We are doing it this way to illustrate how to implement a cast callback. - -There are other tuple formats both `handle_call/3` and `handle_cast/2` callbacks may return. There are also other callbacks like `terminate/2` and `code_change/3` that we could implement. You are welcome to explore the [full GenServer documentation](https://hexdocs.pm/elixir/GenServer.html) to learn more about those. - -For now, let's write some tests to guarantee our GenServer works as expected. - -## Testing a GenServer - -Testing a GenServer is not much different from testing an agent. We will spawn the server on a setup callback and use it throughout our tests. Create a file at `test/kv/registry_test.exs` with the following: - -```elixir -defmodule KV.RegistryTest do - use ExUnit.Case, async: true - - setup do - registry = start_supervised!(KV.Registry) - %{registry: registry} - end - - test "spawns buckets", %{registry: registry} do - assert KV.Registry.lookup(registry, "shopping") == :error - - KV.Registry.create(registry, "shopping") - assert {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - - KV.Bucket.put(bucket, "milk", 1) - assert KV.Bucket.get(bucket, "milk") == 1 - end -end -``` - -Our test case first asserts there's no buckets in our registry, creates a named bucket, looks it up, and asserts it behaves as a bucket. - -There is one important difference between the `setup` block we wrote for `KV.Registry` and the one we wrote for `KV.Bucket`. Instead of starting the registry by hand by calling `KV.Registry.start_link/1`, we instead called [the `start_supervised!/2` function](https://hexdocs.pm/ex_unit/ExUnit.Callbacks.html#start_supervised/2), passing the `KV.Registry` module. - -The `start_supervised!` function was injected into our test module by `use ExUnit.Case`. It does the job of starting the `KV.Registry` process, by calling its `start_link/1` function. The advantage of using `start_supervised!` is that ExUnit will guarantee that the registry process will be shutdown **before** the next test starts. In other words, it helps guarantee that the state of one test is not going to interfere with the next one in case they depend on shared resources. - -When starting processes during your tests, we should always prefer to use `start_supervised!`. We recommend you to change the `setup` block in `bucket_test.exs` to use `start_supervised!` too. - -Run the tests and they should all pass! - -## The need for monitoring - -Everything we have done so far could have been implemented with an `Agent`. In this section, we will see one of many things that we can achieve with a GenServer that is not possible with an Agent. - -Let's start with a test that describes how we want the registry to behave if a bucket stops or crashes: - -```elixir -test "removes buckets on exit", %{registry: registry} do - KV.Registry.create(registry, "shopping") - {:ok, bucket} = KV.Registry.lookup(registry, "shopping") - Agent.stop(bucket) - assert KV.Registry.lookup(registry, "shopping") == :error -end -``` - -The test above will fail on the last assertion as the bucket name remains in the registry even after we stop the bucket process. - -In order to fix this bug, we need the registry to monitor every bucket it spawns. Once we set up a monitor, the registry will receive a notification every time a bucket process exits, allowing us to clean the registry up. - -Let's first play with monitors by starting a new console with `iex -S mix`: - -```elixir -iex> {:ok, pid} = KV.Bucket.start_link([]) -{:ok, #PID<0.66.0>} -iex> Process.monitor(pid) -#Reference<0.0.0.551> -iex> Agent.stop(pid) -:ok -iex> flush() -{:DOWN, #Reference<0.0.0.551>, :process, #PID<0.66.0>, :normal} -``` - -Note `Process.monitor(pid)` returns a unique reference that allows us to match upcoming messages to that monitoring reference. After we stop the agent, we can `flush/0` all messages and notice a `:DOWN` message arrived, with the exact reference returned by `monitor`, notifying that the bucket process exited with reason `:normal`. - -Let's reimplement the server callbacks to fix the bug and make the test pass. First, we will modify the GenServer state to two dictionaries: one that contains `name -> pid` and another that holds `ref -> name`. Then we need to monitor the buckets on `handle_cast/2` as well as implement a `handle_info/2` callback to handle the monitoring messages. The full server callbacks implementation is shown below: - -```elixir -## Server callbacks - -@impl true -def init(:ok) do - names = %{} - refs = %{} - {:ok, {names, refs}} -end - -@impl true -def handle_call({:lookup, name}, _from, state) do - {names, _} = state - {:reply, Map.fetch(names, name), state} -end - -@impl true -def handle_cast({:create, name}, {names, refs}) do - if Map.has_key?(names, name) do - {:noreply, {names, refs}} - else - {:ok, bucket} = KV.Bucket.start_link([]) - ref = Process.monitor(bucket) - refs = Map.put(refs, ref, name) - names = Map.put(names, name, bucket) - {:noreply, {names, refs}} - end -end - -@impl true -def handle_info({:DOWN, ref, :process, _pid, _reason}, {names, refs}) do - {name, refs} = Map.pop(refs, ref) - names = Map.delete(names, name) - {:noreply, {names, refs}} -end - -@impl true -def handle_info(msg, state) do - require Logger - Logger.debug("Unexpected message in KV.Registry: #{inspect(msg)}") - {:noreply, state} -end -``` - -Observe that we were able to considerably change the server implementation without changing any of the client API. That's one of the benefits of explicitly segregating the server and the client. - -Finally, different from the other callbacks, we have defined a "catch-all" clause for `handle_info/2` that discards and logs any unknown message. To understand why, let's move on to the next section. - -## `call`, `cast` or `info`? - -So far we have used three callbacks: `handle_call/3`, `handle_cast/2` and `handle_info/2`. Here is what we should consider when deciding when to use each: - -1. `handle_call/3` must be used for synchronous requests. This should be the default choice as waiting for the server reply is a useful backpressure mechanism. - -2. `handle_cast/2` must be used for asynchronous requests, when you don't care about a reply. A cast does not guarantee the server has received the message and, for this reason, should be used sparingly. For example, the `create/2` function we have defined in this chapter should have used `call/2`. We have used `cast/2` for didactic purposes. - -3. `handle_info/2` must be used for all other messages a server may receive that are not sent via `GenServer.call/2` or `GenServer.cast/2`, including regular messages sent with `send/2`. The monitoring `:DOWN` messages are an example of this. - -Since any message, including the ones sent via `send/2`, go to `handle_info/2`, there is a chance unexpected messages will arrive to the server. Therefore, if we don't define the catch-all clause, those messages could cause our registry to crash, because no clause would match. We don't need to worry about such cases for `handle_call/3` and `handle_cast/2` though. Calls and casts are only done via the `GenServer` API, so an unknown message is quite likely a developer mistake. - -To help developers remember the differences between call, cast and info, the supported return values and more, we have a tiny [GenServer cheat sheet](/downloads/cheatsheets/gen-server.pdf). - -## Monitors or links? - -We have previously learned about links in the [Process chapter](/getting-started/processes.html). Now, with the registry complete, you may be wondering: when should we use monitors and when should we use links? - -Links are bi-directional. If you link two processes and one of them crashes, the other side will crash too (unless it is trapping exits). A monitor is uni-directional: only the monitoring process will receive notifications about the monitored one. In other words: use links when you want linked crashes, and monitors when you just want to be informed of crashes, exits, and so on. - -Returning to our `handle_cast/2` implementation, you can see the registry is both linking and monitoring the buckets: - -```elixir -{:ok, bucket} = KV.Bucket.start_link([]) -ref = Process.monitor(bucket) -``` - -This is a bad idea, as we don't want the registry to crash when a bucket crashes. The proper fix is to actually not link the bucket to the registry. Instead, we will link each bucket to a special type of process called Supervisors, which are explicitly designed to handle failures and crashes. We will learn more about them in the next chapter. diff --git a/getting-started/mix-otp/index.html b/getting-started/mix-otp/index.html index b2f271a12..6406e2fed 100644 --- a/getting-started/mix-otp/index.html +++ b/getting-started/mix-otp/index.html @@ -1,7 +1,5 @@ - - - - Introduction to Mix - Elixir - - - +--- +layout: redirect +sitemap: false +redirect_to: introduction-to-mix +--- diff --git a/getting-started/mix-otp/introduction-to-mix.markdown b/getting-started/mix-otp/introduction-to-mix.markdown index 820ddb545..6406e2fed 100644 --- a/getting-started/mix-otp/introduction-to-mix.markdown +++ b/getting-started/mix-otp/introduction-to-mix.markdown @@ -1,317 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Introduction to Mix -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: introduction-to-mix --- - -In this guide, we will learn how to build a complete Elixir application, with its own supervision tree, configuration, tests and more. - -The requirements for this guide are (see `elixir -v`): - - * Elixir 1.11.0 onwards - * Erlang/OTP 22 onwards - -The application works as a distributed key-value store. We are going to organize key-value pairs into buckets and distribute those buckets across multiple nodes. We will also build a simple client that allows us to connect to any of those nodes and send requests such as: - -``` -CREATE shopping -OK - -PUT shopping milk 1 -OK - -PUT shopping eggs 3 -OK - -GET shopping milk -1 -OK - -DELETE shopping eggs -OK -``` - -In order to build our key-value application, we are going to use three main tools: - -* ***OTP*** _(Open Telecom Platform)_ is a set of libraries that ships with Erlang. Erlang developers use OTP to build robust, fault-tolerant applications. In this chapter we will explore how many aspects from OTP integrate with Elixir, including supervision trees, event managers and more; - -* ***[Mix](https://hexdocs.pm/mix/)*** is a build tool that ships with Elixir that provides tasks for creating, compiling, testing your application, managing its dependencies and much more; - -* ***[ExUnit](https://hexdocs.pm/ex_unit/)*** is a test-unit based framework that ships with Elixir; - -In this chapter, we will create our first project using Mix and explore different features in OTP, Mix and ExUnit as we go. - -> If you have any questions or improvements to the guide, please reach discussion channels such as the [Elixir Forum](https://elixirforum.com) or the [issues tracker](https://github.com/elixir-lang/elixir-lang.github.com/issues). Your input is really important to help us guarantee the guides are accessible and up to date! -> -> The final code for the application built in this guide is in [this repository](https://github.com/josevalim/kv_umbrella) and can be used as a reference. - -## Our first project - -When you install Elixir, besides getting the `elixir`, `elixirc` and `iex` executables, you also get an executable Elixir script named `mix`. - -Let's create our first project by invoking `mix new` from the command line. We'll pass the project path as the argument (`kv`, in this case). By default the application name and module name will be retrieved from the path. So we tell Mix that our main module should be the all-uppercase `KV`, instead of the default, which would have been `Kv`: - -```console -$ mix new kv --module KV -``` - -Mix will create a directory named `kv` with a few files in it: - - * creating README.md - * creating .formatter.exs - * creating .gitignore - * creating mix.exs - * creating lib - * creating lib/kv.ex - * creating test - * creating test/test_helper.exs - * creating test/kv_test.exs - -Let's take a brief look at those generated files. - -> Note: Mix is an Elixir executable. This means that in order to run `mix`, you need to have both `mix` and `elixir` executables in your PATH. That's what happens when you install Elixir. - -## Project compilation - -A file named `mix.exs` was generated inside our new project folder (`kv`) and its main responsibility is to configure our project. Let's take a look at it: - -```elixir -defmodule KV.MixProject do - use Mix.Project - - def project do - [ - app: :kv, - version: "0.1.0", - elixir: "~> 1.11", - start_permanent: Mix.env() == :prod, - deps: deps() - ] - end - - # Run "mix help compile.app" to learn about applications - def application do - [ - extra_applications: [:logger] - ] - end - - # Run "mix help deps" to learn about dependencies - defp deps do - [ - # {:dep_from_hexpm, "~> 0.3.0"}, - # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"}, - ] - end -end -``` - -Our `mix.exs` defines two public functions: `project`, which returns project configuration like the project name and version, and `application`, which is used to generate an application file. - -There is also a private function named `deps`, which is invoked from the `project` function, that defines our project dependencies. Defining `deps` as a separate function is not required, but it helps keep the project configuration tidy. - -Mix also generates a file at `lib/kv.ex` with a module containing exactly one function, called `hello`: - -```elixir -defmodule KV do - @moduledoc """ - Documentation for KV. - """ - - @doc """ - Hello world. - - ## Examples - - iex> KV.hello() - :world - - """ - def hello do - :world - end -end - -``` - -This structure is enough to compile our project: - -```console -$ cd kv -$ mix compile -``` - -Will output: - - Compiling 1 file (.ex) - Generated kv app - -The `lib/kv.ex` file was compiled, an application manifest named `kv.app` was generated. All compilation artifacts are placed inside the `_build` directory using the options defined in the `mix.exs` file. - -Once the project is compiled, you can start an `iex` session inside the project by running the command below. The `-S mix` is necessary to load the project in the interactive shell: - -```console -$ iex -S mix -``` - -We are going to work on this `kv` project, making modifications and trying out the latest changes from an `iex` session. While you may start a new session whenever there are changes to the project source code, you can also recompile the project from within `iex` with the `recompile` helper, like this: - -```elixir -iex> recompile() -Compiling 1 file (.ex) -:ok -iex> recompile() -:noop -``` - -If anything had to be compiled, you see some informative text, and get the `:ok` atom back, otherwise the function is silent, and returns `:noop`. - -## Running tests - -Mix also generated the appropriate structure for running our project tests. Mix projects usually follow the convention of having a `_test.exs` file in the `test` directory for each file in the `lib` directory. For this reason, we can already find a `test/kv_test.exs` corresponding to our `lib/kv.ex` file. It doesn't do much at this point: - -```elixir -defmodule KVTest do - use ExUnit.Case - doctest KV - - test "greets the world" do - assert KV.hello() == :world - end -end -``` - -It is important to note a couple of things: - -1. the test file is an Elixir script file (`.exs`). This is convenient because we don't need to compile test files before running them; - -2. we define a test module named `KVTest`, in which we [`use ExUnit.Case`](https://hexdocs.pm/ex_unit/ExUnit.Case.html) to inject the testing API; - -3. we use one of the imported macros, [`doctest/1`](https://hexdocs.pm/ex_unit/ExUnit.DocTest.html#doctest/1), to indicate that the `KV` module contains doctests (we will discuss those in a later chapter); - -4. we use the [`test/2`](https://hexdocs.pm/ex_unit/ExUnit.Case.html#test/2) macro to define a simple test; - -Mix also generated a file named `test/test_helper.exs` which is responsible for setting up the test framework: - -```elixir -ExUnit.start() -``` - -This file will be required by Mix every time before we run our tests. We can run tests with: - -```console -$ mix test -Compiled lib/kv.ex -Generated kv app -.. - -Finished in 0.04 seconds -1 doctest, 1 test, 0 failures - -Randomized with seed 540224 -``` - -Notice that by running `mix test`, Mix has compiled the source files and generated the application manifest once again. This happens because Mix supports multiple environments, which we will discuss later in this chapter. - -Furthermore, you can see that ExUnit prints a dot for each successful test and automatically randomizes tests too. Let's make the test fail on purpose and see what happens. - -Change the assertion in `test/kv_test.exs` to the following: - -```elixir -assert KV.hello() == :oops -``` - -Now run `mix test` again (notice this time there will be no compilation): - -``` - 1) test greets the world (KVTest) - test/kv_test.exs:5 - Assertion with == failed - code: assert KV.hello() == :oops - left: :world - right: :oops - stacktrace: - test/kv_test.exs:6: (test) - -. - -Finished in 0.05 seconds -1 doctest, 1 test, 1 failure -``` - -For each failure, ExUnit prints a detailed report, containing the test name with the test case, the code that failed and the values for the left side and right side (rhs) of the `==` operator. - -In the second line of the failure, right below the test name, there is the location where the test was defined. If you copy the test location in full, including the file and line number, and append it to `mix test`, Mix will load and run just that particular test: - -```console -$ mix test test/kv_test.exs:5 -``` - -This shortcut will be extremely useful as we build our project, allowing us to quickly iterate by running a single test. - -Finally, the stacktrace relates to the failure itself, giving information about the test and often the place the failure was generated from within the source files. - -## Automatic code formatting - -One of the files generated by `mix new` is the `.formatter.exs`. Elixir ships with a code formatter that is capable of automatically formatting our codebase according to a consistent style. The formatter is triggered with the `mix format` task. The generated `.formatter.exs` file configures which files should be formatted when `mix format` runs. - -To give the formatter a try, change a file in the `lib` or `test` directories to include extra spaces or extra newlines, such as `def hello do`, and then run `mix format`. - -Most editors provide built-in integration with the formatter, allowing a file to be formatted on save or via a chosen keybinding. If you are learning Elixir, editor integration gives you useful and quick feedback when learning the Elixir syntax. - -For companies and teams, we recommend developers to run `mix format --check-formatted` on their continuous integration servers, ensuring all current and future code follows the standard. - -You can learn more about the code formatter by checking [the format task documentation](https://hexdocs.pm/mix/Mix.Tasks.Format.html) or by reading [the release announcement for Elixir v1.6](https://elixir-lang.org/blog/2018/01/17/elixir-v1-6-0-released/), the first version to include the formatter. - -## Environments - -Mix provides the concept of "environments". They allow a developer to customize compilation and other options for specific scenarios. By default, Mix understands three environments: - -* `:dev` - the one in which Mix tasks (like `compile`) run by default -* `:test` - used by `mix test` -* `:prod` - the one you will use to run your project in production - -The environment applies only to the current project. As we will see in future chapters, any dependency you add to your project will by default run in the `:prod` environment. - -Customization per environment can be done by accessing [the `Mix.env` function](https://hexdocs.pm/mix/Mix.html#env/0) in your `mix.exs` file, which returns the current environment as an atom. That's what we have used in the `:start_permanent` options: - -```elixir -def project do - [ - ..., - start_permanent: Mix.env() == :prod, - ... - ] -end -``` - -When true, the `:start_permanent` option starts your application in permanent mode, which means the Erlang VM will crash if your application's supervision tree shuts down. Notice we don't want this behaviour in dev and test because it is useful to keep the VM instance running in those environments for troubleshooting purposes. - -Mix will default to the `:dev` environment, except for the `test` task that will default to the `:test` environment. The environment can be changed via the `MIX_ENV` environment variable: - -```console -$ MIX_ENV=prod mix compile -``` - -Or on Windows: - -```batch -> set "MIX_ENV=prod" && mix compile -``` - -> Mix is a build tool and, as such, it is not expected to be available in production. Therefore, it is recommended to access `Mix.env` only in configuration files and inside `mix.exs`, never in your application code (`lib`). - -## Exploring - -There is much more to Mix, and we will continue to explore it as we build our project. A [general overview is available on the Mix documentation](https://hexdocs.pm/mix/). Read [the Mix source code here](https://github.com/elixir-lang/elixir/tree/main/lib/mix). - -Keep in mind that you can always invoke the help task to list all available tasks: - -```console -$ mix help -``` - -You can get further information about a particular task by invoking `mix help TASK`. - -Let's write some code! diff --git a/getting-started/mix-otp/supervisor-and-application.markdown b/getting-started/mix-otp/supervisor-and-application.markdown index 60a9b41d4..2d073b41b 100644 --- a/getting-started/mix-otp/supervisor-and-application.markdown +++ b/getting-started/mix-otp/supervisor-and-application.markdown @@ -1,273 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Supervisor and Application -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: supervisor-and-application --- - -{% include mix-otp-preface.html %} - -In the previous chapter about `GenServer`, we implemented `KV.Registry` to manage buckets. At some point, we started monitoring buckets so we were able to take action whenever a `KV.Bucket` crashed. Although the change was relatively small, it introduced a question which is frequently asked by Elixir developers: what happens when something fails? - -Before we added monitoring, if a bucket crashed, the registry would forever point to a bucket that no longer exists. If a user tried to read or write to the crashed bucket, it would fail. Any attempt at creating a new bucket with the same name would just return the PID of the crashed bucket. In other words, that registry entry for that bucket would forever be in a bad state. Once we added monitoring, the registry automatically removes the entry for the crashed bucket. Trying to lookup the crashed bucket now (correctly) says the bucket does not exist and a user of the system can successfully create a new one if desired. - -In practice, we are not expecting the processes working as buckets to fail. But, if it does happen, for whatever reason, we can rest assured that our system will continue to work as intended. - -If you have prior programming experience, you may be wondering: "could we just guarantee the bucket does not crash in the first place?". As we will see, Elixir developers tend to refer to those practices as "defensive programming". That's because a live production system has dozens of different reasons why something can go wrong. The disk can fail, memory can be corrupted, bugs, the network may stop working for a second, etc. If we were to write software that attempted to protect or circumvent all of those errors, we would spend more time handling failures than writing our own software! - -Therefore, an Elixir developer prefers to "let it crash" or "fail fast". And one of the most common ways we can recover from a failure is by restarting whatever part of the system crashed. - -For example, imagine your computer, router, printer, or whatever device is not working properly. How often do you fix it by restarting it? Once we restart the device, we reset the device back to its initial state, which is well-tested and guaranteed to work. In Elixir, we apply this same approach to software: whenever a process crashes, we start a new process to perform the same job as the crashed process. - -In Elixir, this is done by a Supervisor. A Supervisor is a process that supervises other processes and restarts them whenever they crash. To do so, Supervisors manage the whole life-cycle of any supervised processes, including startup and shutdown. - -In this chapter, we will learn how to put those concepts into practice by supervising the `KV.Registry` process. After all, if something goes wrong with the registry, the whole registry is lost and no bucket could ever be found! To address this, we will define a `KV.Supervisor` module that guarantees that our `KV.Registry` is up and running at any given moment. - -At the end of the chapter, we will also talk about Applications. As we will see, Mix has been packaging all of our code into an application, and we will learn how to customize our application to guarantee that our Supervisor and the Registry are up and running whenever our system starts. - -## Our first supervisor - -A supervisor is a process which supervises other processes, which we refer to as child processes. The act of supervising a process includes three distinct responsibilities. The first one is to start child processes. Once a child process is running, the supervisor may restart a child process, either because it terminated abnormally or because a certain condition was reached. For example, a supervisor may restart all children if any child dies. Finally, a supervisor is also responsible for shutting down the child processes when the system is shutting down. Please see the [Supervisor](https://hexdocs.pm/elixir/Supervisor.html) module for a more in-depth discussion. - -Creating a supervisor is not much different from creating a GenServer. We are going to define a module named `KV.Supervisor`, which will use the Supervisor behaviour, inside the `lib/kv/supervisor.ex` file: - -```elixir -defmodule KV.Supervisor do - use Supervisor - - def start_link(opts) do - Supervisor.start_link(__MODULE__, :ok, opts) - end - - @impl true - def init(:ok) do - children = [ - KV.Registry - ] - - Supervisor.init(children, strategy: :one_for_one) - end -end -``` - -Our supervisor has a single child so far: `KV.Registry`. After we define a list of children, we call `Supervisor.init/2`, passing the children and the supervision strategy. - -The supervision strategy dictates what happens when one of the children crashes. `:one_for_one` means that if a child dies, it will be the only one restarted. Since we have only one child now, that's all we need. The `Supervisor` behaviour supports many different strategies and we will discuss them in this chapter. - -Once the supervisor starts, it will traverse the list of children and it will invoke the `child_spec/1` function on each module. - -The `child_spec/1` function returns the child specification which describes how to start the process, if the process is a worker or a supervisor, if the process is temporary, transient or permanent and so on. The `child_spec/1` function is automatically defined when we `use Agent`, `use GenServer`, `use Supervisor`, etc. Let's give it a try in the terminal with `iex -S mix`: - -```elixir -iex> KV.Registry.child_spec([]) -%{id: KV.Registry, start: {KV.Registry, :start_link, [[]]}} -``` - -We will learn those details as we move forward on this guide. If you would rather peek ahead, check the [Supervisor](https://hexdocs.pm/elixir/Supervisor.html) docs. - -After the supervisor retrieves all child specifications, it proceeds to start its children one by one, in the order they were defined, using the information in the `:start` key in the child specification. For our current specification, it will call `KV.Registry.start_link([])`. - -Let's take the supervisor for a spin: - -```elixir -iex> {:ok, sup} = KV.Supervisor.start_link([]) -{:ok, #PID<0.148.0>} -iex> Supervisor.which_children(sup) -[{KV.Registry, #PID<0.150.0>, :worker, [KV.Registry]}] -``` - -So far we have started the supervisor and listed its children. Once the supervisor started, it also started all of its children. - -What happens if we intentionally crash the registry started by the supervisor? Let's do so by sending it a bad input on `call`: - -```elixir -iex> [{_, registry, _, _}] = Supervisor.which_children(sup) -[{KV.Registry, #PID<0.150.0>, :worker, [KV.Registry]}] -iex> GenServer.call(registry, :bad_input) -08:52:57.311 [error] GenServer #PID<0.150.0> terminating -** (FunctionClauseError) no function clause matching in KV.Registry.handle_call/3 -iex> Supervisor.which_children(sup) -[{KV.Registry, #PID<0.157.0>, :worker, [KV.Registry]}] -``` - -Notice how the supervisor automatically started a new registry, with a new PID, in place of the first one once we caused it to crash due to a bad input. - -In the previous chapters, we have always started processes directly. For example, we would call `KV.Registry.start_link([])`, which would return `{:ok, pid}`, and that would allow us to interact with the registry via its `pid`. Now that processes are started by the supervisor, we have to directly ask the supervisor who its children are, and fetch the pid from the returned list of children. In practice, doing so every time would be very expensive. To address this, we often give names to processes, allowing them to be uniquely identified in a single machine from anywhere in our code. - -Let's learn how to do that. - -## Naming processes - -While our application will have many buckets, it will only have a single registry. Therefore, whenever we start the registry, we want to give it a unique name so we can reach out to it from anywhere. We do so by passing a `:name` option to `KV.Registry.start_link/1`. - -Let's slightly change our children definition (in `KV.Supervisor.init/1`) to be a list of tuples instead of a list of atoms: - -```elixir - def init(:ok) do - children = [ - {KV.Registry, name: KV.Registry} - ] -``` - -With this in place, the supervisor will now start `KV.Registry` by calling `KV.Registry.start_link(name: KV.Registry)`. - -If you revisit the `KV.Registry.start_link/1` implementation, you will remember it simply passes the options to GenServer: - -```elixir - def start_link(opts) do - GenServer.start_link(__MODULE__, :ok, opts) - end -``` - -which in turn will register the process with the given name. The `:name` option expects an atom for locally named processes (locally named means it is available to this machine - there are other options, which we won't discuss here). Since module identifiers are atoms (try `i(KV.Registry)` in IEx), we can name a process after the module that implements it, provided there is only one process for that name. This helps when debugging and introspecting the system. - -Let's give the updated supervisor a try inside `iex -S mix`: - -```elixir -iex> KV.Supervisor.start_link([]) -{:ok, #PID<0.66.0>} -iex> KV.Registry.create(KV.Registry, "shopping") -:ok -iex> KV.Registry.lookup(KV.Registry, "shopping") -{:ok, #PID<0.70.0>} -``` - -This time the supervisor started a named registry, allowing us to create buckets without having to explicitly fetch the PID from the supervisor. You should also know how to make the registry crash again, without looking up its PID: give it a try. - -> At this point, you may be wondering: should you also locally name bucket processes? Remember buckets are started dynamically based on user input. Since local names MUST be atoms, we would have to dynamically create atoms, which is a bad idea since once an atom is defined, it is never erased nor garbage collected. This means that, if we create atoms dynamically based on user input, we will eventually run out of memory (or to be more precise, the VM will crash because it imposes a hard limit on the number of atoms). This limitation is precisely why we created our own registry (or why one would use Elixir's built-in [`Registry`](https://hexdocs.pm/elixir/Registry.html) module). - -We are getting closer and closer to a fully working system. The supervisor automatically starts the registry. But how can we automatically start the supervisor whenever our system starts? To answer this question, let's talk about applications. - -## Understanding applications - -We have been working inside an application this entire time. Every time we changed a file and ran `mix compile`, we could see a `Generated kv app` message in the compilation output. - -We can find the generated `.app` file at `_build/dev/lib/kv/ebin/kv.app`. Let's have a look at its contents: - -```erlang -{application,kv, - [{applications,[kernel,stdlib,elixir,logger]}, - {description,"kv"}, - {modules,['Elixir.KV','Elixir.KV.Bucket','Elixir.KV.Registry', - 'Elixir.KV.Supervisor']}, - {registered,[]}, - {vsn,"0.1.0"}]}. -``` - -This file contains Erlang terms (written using Erlang syntax). Even though we are not familiar with Erlang, it is easy to guess this file holds our application definition. It contains our application `version`, all the modules defined by it, as well as a list of applications we depend on, like Erlang's `kernel`, `elixir` itself, and `logger`. - -> The `logger` application ships as part of Elixir. We stated that our application needs it by specifying it in the `:extra_applications` list in `mix.exs`. See the [official docs](https://hexdocs.pm/logger) for more information. - -In a nutshell, an application consists of all of the modules defined in the `.app` file, including the `.app` file itself. An application has generally only two directories: `ebin`, for Elixir artefacts, such as `.beam` and `.app` files, and `priv`, with any other artefact or asset you may need in your application. - -Although Mix generates and maintains the `.app` file for us, we can customize its contents by adding new entries to the `application/0` function inside the `mix.exs` project file. We are going to do our first customization soon. - -### Starting applications - -Each application in our system can be started and stopped. The rules for starting and stopping an application are also defined in the `.app` file. When we invoke `iex -S mix`, Mix compiles our application and then starts it. - -Let's see this in practice. Start a console with `iex -S mix` and try: - -```elixir -iex> Application.start(:kv) -{:error, {:already_started, :kv}} -``` - -Oops, it's already started. Mix starts the current application and all of its dependencies automatically. This is also true for `mix test` and many other Mix commands. - -You can change this behaviour by giving the `--no-start` flag to Mix. It is rarely used in practice but it allows us to understand the underlying mechanisms better. Let's give it a try. - -Invoking `mix` is the same as `mix run`. Therefore, if you want to pass a flag to `mix` or `iex -S mix`, we just need to add the task name and the desired flags. For example, run `iex -S mix run --no-start`: - -```elixir -iex> Application.start(:kv) -:ok -``` - -We can stop our `:kv` application as well as the `:logger` application, which is started by default with Elixir: - -```elixir -iex> Application.stop(:kv) -:ok -iex> Application.stop(:logger) -:ok -``` - -And let's try to start our application again: - -```elixir -iex> Application.start(:kv) -{:error, {:not_started, :logger}} -``` - -Now we get an error because an application that `:kv` depends on (`:logger` in this case) isn't started. We need to either start each application manually in the correct order or call `Application.ensure_all_started` as follows: - -```elixir -iex> Application.ensure_all_started(:kv) -{:ok, [:logger, :kv]} -``` - -In practice, our tools always start our applications for us, but there is an API available if you need fine-grained control. - -## The application callback - -Whenever we invoke `iex -S mix`, Mix automatically starts our application by calling `Application.start(:kv)`. But can we customize what happens when our application starts? As a matter of fact, we can! To do so, we define an application callback. - -The first step is to tell our application definition (i.e. our `.app` file) which module is going to implement the application callback. Let's do so by opening `mix.exs` and changing `def application` to the following: - -```elixir - def application do - [ - extra_applications: [:logger], - mod: {KV, []} - ] - end -``` - -The `:mod` option specifies the "application callback module", followed by the arguments to be passed on application start. The application callback module can be any module that implements the [Application](https://hexdocs.pm/elixir/Application.html) behaviour. - -To implement the `Application` behaviour, we have to `use Application` and define a `start/2` function. The goal of `start/2` is to start a supervisor, which will then start any child services or execute any other code our application may need. Let's use this opportunity to start the `KV.Supervisor` we have implemented earlier in this chapter. - -Since we have specified `KV` as the module callback, let's change the `KV` module defined in `lib/kv.ex` to implement a `start/2` function: - -```elixir -defmodule KV do - use Application - - @impl true - def start(_type, _args) do - # Although we don't use the supervisor name below directly, - # it can be useful when debugging or introspecting the system. - KV.Supervisor.start_link(name: KV.Supervisor) - end -end -``` - -> Please note that by doing this, we are breaking the boilerplate test case which tested the `hello` function in `KV`. You can simply remove that test case. - -When we `use Application`, we may define a couple of functions, similar to when we used `Supervisor` or `GenServer`. This time we only had to define a `start/2` function. The `Application` behaviour also has a `stop/1` callback, but it is rarely used in practice. You can check the documentation for more information. - -Now that you have defined an application callback which starts our supervisor, we expect the `KV.Registry` process to be up and running as soon as we start `iex -S mix`. Let's give it another try: - -```elixir -iex> KV.Registry.create(KV.Registry, "shopping") -:ok -iex> KV.Registry.lookup(KV.Registry, "shopping") -{:ok, #PID<0.88.0>} -``` - -Let's recap what is happening. Whenever we invoke `iex -S mix`, it automatically starts our application by calling `Application.start(:kv)`, which then invokes the application callback. The application callback's job is to start a **supervision tree**. Right now, our supervisor has a single child named `KV.Registry`, started with name `KV.Registry`. Our supervisor could have other children, and some of these children could be their own supervisors with their own children, leading to the so-called supervision trees. - -## Projects or applications? - -Mix makes a distinction between projects and applications. Based on the contents of our `mix.exs` file, we would say we have a Mix project that defines the `:kv` application. As we will see in later chapters, there are projects that don't define any application. - -When we say "project" you should think about Mix. Mix is the tool that manages your project. It knows how to compile your project, test your project and more. It also knows how to compile and start the application relevant to your project. - -When we talk about applications, we talk about OTP. Applications are the entities that are started and stopped as a whole by the runtime. You can learn more about applications and how they relate to booting and shutting down of your system as a whole in the [docs for the Application module](https://hexdocs.pm/elixir/Application.html). - -## Next steps - -Although this chapter was the first time we implemented a supervisor, it was not the first time we used one! In the previous chapter, when we used `start_supervised!` to start the registry during our tests, `ExUnit` started the registry under a supervisor managed by the ExUnit framework itself. By defining our own supervisor, we provide more structure on how we initialize, shutdown and supervise processes in our applications, aligning our production code and tests with best practices. - -But we are not done yet. So far we are supervising the registry but our application is also starting buckets. Since buckets are started dynamically, we can use a special type of supervisor called `DynamicSupervisor`, which is optimized to handle such scenarios. Let's explore it next. diff --git a/getting-started/mix-otp/task-and-gen-tcp.markdown b/getting-started/mix-otp/task-and-gen-tcp.markdown index a90bca993..a278081ed 100644 --- a/getting-started/mix-otp/task-and-gen-tcp.markdown +++ b/getting-started/mix-otp/task-and-gen-tcp.markdown @@ -1,312 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Task and gen_tcp -category: Mix and OTP +layout: redirect +sitemap: false +redirect_to: task-and-gen-tcp --- - -{% include mix-otp-preface.html %} - -In this chapter, we are going to learn how to use [Erlang's `:gen_tcp` module](http://www.erlang.org/doc/man/gen_tcp.html) to serve requests. This provides a great opportunity to explore Elixir's `Task` module. In future chapters, we will expand our server so it can actually serve the commands. - -## Echo server - -We will start our TCP server by first implementing an echo server. It will send a response with the text it received in the request. We will slowly improve our server until it is supervised and ready to handle multiple connections. - -A TCP server, in broad strokes, performs the following steps: - - 1. Listens to a port until the port is available and it gets hold of the socket - 2. Waits for a client connection on that port and accepts it - 3. Reads the client request and writes a response back - -Let's implement those steps. Move to the `apps/kv_server` application, open up `lib/kv_server.ex`, and add the following functions: - -```elixir -defmodule KVServer do - require Logger - - def accept(port) do - # The options below mean: - # - # 1. `:binary` - receives data as binaries (instead of lists) - # 2. `packet: :line` - receives data line by line - # 3. `active: false` - blocks on `:gen_tcp.recv/2` until data is available - # 4. `reuseaddr: true` - allows us to reuse the address if the listener crashes - # - {:ok, socket} = - :gen_tcp.listen(port, [:binary, packet: :line, active: false, reuseaddr: true]) - Logger.info("Accepting connections on port #{port}") - loop_acceptor(socket) - end - - defp loop_acceptor(socket) do - {:ok, client} = :gen_tcp.accept(socket) - serve(client) - loop_acceptor(socket) - end - - defp serve(socket) do - socket - |> read_line() - |> write_line(socket) - - serve(socket) - end - - defp read_line(socket) do - {:ok, data} = :gen_tcp.recv(socket, 0) - data - end - - defp write_line(line, socket) do - :gen_tcp.send(socket, line) - end -end -``` - -We are going to start our server by calling `KVServer.accept(4040)`, where 4040 is the port. The first step in `accept/1` is to listen to the port until the socket becomes available and then call `loop_acceptor/1`. `loop_acceptor/1` is a loop accepting client connections. For each accepted connection, we call `serve/1`. - -`serve/1` is another loop that reads a line from the socket and writes those lines back to the socket. Note that the `serve/1` function uses [the pipe operator `|>`](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2) to express this flow of operations. The pipe operator evaluates the left side and passes its result as the first argument to the function on the right side. The example above: - -```elixir -socket |> read_line() |> write_line(socket) -``` - -is equivalent to: - -```elixir -write_line(read_line(socket), socket) -``` - -The `read_line/1` implementation receives data from the socket using `:gen_tcp.recv/2` and `write_line/2` writes to the socket using `:gen_tcp.send/2`. - -Note that `serve/1` is an infinite loop called sequentially inside `loop_acceptor/1`, so the tail call to `loop_acceptor/1` is never reached and could be avoided. However, as we shall see, we will need to execute `serve/1` in a separate process, so we will need that tail call soon. - -This is pretty much all we need to implement our echo server. Let's give it a try! - -Start an IEx session inside the `kv_server` application with `iex -S mix`. Inside IEx, run: - -```elixir -iex> KVServer.accept(4040) -``` - -The server is now running, and you will even notice the console is blocked. Let's use [a `telnet` client](https://en.wikipedia.org/wiki/Telnet) to access our server. There are clients available on most operating systems, and their command lines are generally similar: - -```console -$ telnet 127.0.0.1 4040 -Trying 127.0.0.1... -Connected to localhost. -Escape character is '^]'. -hello -hello -is it me -is it me -you are looking for? -you are looking for? -``` - -Type "hello", press enter, and you will get "hello" back. Excellent! - -My particular telnet client can be exited by typing `ctrl + ]`, typing `quit`, and pressing ``, but your client may require different steps. - -Once you exit the telnet client, you will likely see an error in the IEx session: - - ** (MatchError) no match of right hand side value: {:error, :closed} - (kv_server) lib/kv_server.ex:45: KVServer.read_line/1 - (kv_server) lib/kv_server.ex:37: KVServer.serve/1 - (kv_server) lib/kv_server.ex:30: KVServer.loop_acceptor/1 - -That's because we were expecting data from `:gen_tcp.recv/2` but the client closed the connection. We need to handle such cases better in future revisions of our server. - -For now, there is a more important bug we need to fix: what happens if our TCP acceptor crashes? Since there is no supervision, the server dies and we won't be able to serve more requests, because it won't be restarted. That's why we must move our server to a supervision tree. - -## Tasks - -We have learned about agents, generic servers, and supervisors. They are all meant to work with multiple messages or manage state. But what do we use when we only need to execute some task and that is it? - -[The Task module](https://hexdocs.pm/elixir/Task.html) provides this functionality exactly. For example, it has a `start_link/1` function that receives an anonymous function and executes it inside a new process that will be part of a supervision tree. - -Let's give it a try. Open up `lib/kv_server/application.ex`, and let's change the supervisor in the `start/2` function to the following: - -```elixir - def start(_type, _args) do - children = [ - {Task, fn -> KVServer.accept(4040) end} - ] - - opts = [strategy: :one_for_one, name: KVServer.Supervisor] - Supervisor.start_link(children, opts) - end -``` - -As usual, we've passed a two-element tuple as a child specification, which in turn will invoke `Task.start_link/1`. - -With this change, we are saying that we want to run `KVServer.accept(4040)` as a task. We are hardcoding the port for now but this could be changed in a few ways, for example, by reading the port out of the system environment when starting the application: - -```elixir -port = String.to_integer(System.get_env("PORT") || "4040") -# ... -{Task, fn -> KVServer.accept(port) end} -``` - -Insert these changes in your code and now you may start your application using the following command `PORT=4321 mix run --no-halt`, notice how we are passing the port as a variable, but still defaults to 4040 if none is given. - -Now that the server is part of the supervision tree, it should start automatically when we run the application. Start your server, now passing the port, and once again use the `telnet` client to make sure that everything still works: - -```console -$ telnet 127.0.0.1 4321 -Trying 127.0.0.1... -Connected to localhost. -Escape character is '^]'. -say you -say you -say me -say me -``` - -Yes, it works! However, does it *scale*? - -Try to connect two telnet clients at the same time. When you do so, you will notice that the second client doesn't echo: - -```console -$ telnet 127.0.0.1 4321 -Trying 127.0.0.1... -Connected to localhost. -Escape character is '^]'. -hello -hello? -HELLOOOOOO? -``` - -It doesn't seem to work at all. That's because we are serving requests in the same process that are accepting connections. When one client is connected, we can't accept another client. - -## Task supervisor - -In order to make our server handle simultaneous connections, we need to have one process working as an acceptor that spawns other processes to serve requests. One solution would be to change: - -```elixir -defp loop_acceptor(socket) do - {:ok, client} = :gen_tcp.accept(socket) - serve(client) - loop_acceptor(socket) -end -``` - -to also use `Task.start_link/1`: - -```elixir -defp loop_acceptor(socket) do - {:ok, client} = :gen_tcp.accept(socket) - Task.start_link(fn -> serve(client) end) - loop_acceptor(socket) -end -``` - -We are starting a linked Task directly from the acceptor process. But we've already made this mistake once. Do you remember? - -This is similar to the mistake we made when we called `KV.Bucket.start_link/1` straight from the registry. That meant a failure in any bucket would bring the whole registry down. - -The code above would have the same flaw: if we link the `serve(client)` task to the acceptor, a crash when serving a request would bring the acceptor, and consequently all other connections, down. - -We fixed the issue for the registry by using a simple one for one supervisor. We are going to use the same tactic here, except that this pattern is so common with tasks that `Task` already comes with a solution: a simple one for one supervisor that starts temporary tasks as part of our supervision tree. - -Let's change `start/2` once again, to add a supervisor to our tree: - -```elixir - def start(_type, _args) do - port = String.to_integer(System.get_env("PORT") || "4040") - - children = [ - {Task.Supervisor, name: KVServer.TaskSupervisor}, - {Task, fn -> KVServer.accept(port) end} - ] - - opts = [strategy: :one_for_one, name: KVServer.Supervisor] - Supervisor.start_link(children, opts) - end -``` - -We'll now start a [`Task.Supervisor`](https://hexdocs.pm/elixir/Task.Supervisor.html) process with name `KVServer.TaskSupervisor`. Remember, since the acceptor task depends on this supervisor, the supervisor must be started first. - -Now we need to change `loop_acceptor/1` to use `Task.Supervisor` to serve each request: - -```elixir -defp loop_acceptor(socket) do - {:ok, client} = :gen_tcp.accept(socket) - {:ok, pid} = Task.Supervisor.start_child(KVServer.TaskSupervisor, fn -> serve(client) end) - :ok = :gen_tcp.controlling_process(client, pid) - loop_acceptor(socket) -end -``` - -You might notice that we added a line, `:ok = :gen_tcp.controlling_process(client, pid)`. This makes the child process the "controlling process" of the `client` socket. If we didn't do this, the acceptor would bring down all the clients if it crashed because sockets would be tied to the process that accepted them (which is the default behaviour). - -Start a new server with `PORT=4040 mix run --no-halt` and we can now open up many concurrent telnet clients. You will also notice that quitting a client does not bring the acceptor down. Excellent! - -Here is the full echo server implementation: - -```elixir -defmodule KVServer do - require Logger - - @doc """ - Starts accepting connections on the given `port`. - """ - def accept(port) do - {:ok, socket} = :gen_tcp.listen(port, - [:binary, packet: :line, active: false, reuseaddr: true]) - Logger.info "Accepting connections on port #{port}" - loop_acceptor(socket) - end - - defp loop_acceptor(socket) do - {:ok, client} = :gen_tcp.accept(socket) - {:ok, pid} = Task.Supervisor.start_child(KVServer.TaskSupervisor, fn -> serve(client) end) - :ok = :gen_tcp.controlling_process(client, pid) - loop_acceptor(socket) - end - - defp serve(socket) do - socket - |> read_line() - |> write_line(socket) - - serve(socket) - end - - defp read_line(socket) do - {:ok, data} = :gen_tcp.recv(socket, 0) - data - end - - defp write_line(line, socket) do - :gen_tcp.send(socket, line) - end -end -``` - -Since we have changed the supervisor specification, we need to ask: is our supervision strategy still correct? - -In this case, the answer is yes: if the acceptor crashes, there is no need to crash the existing connections. On the other hand, if the task supervisor crashes, there is no need to crash the acceptor too. - -However, there is still one concern left, which are the restart strategies. Tasks, by default, have the `:restart` value set to `:temporary`, which means they are not restarted. This is an excellent default for the connections started via the `Task.Supervisor`, as it makes no sense to restart a failed connection, but it is a bad choice for the acceptor. If the acceptor crashes, we want to bring the acceptor up and running again. - -We could fix this by defining our own module that calls `use Task, restart: :permanent` and invokes a `start_link` function responsible for restarting the task, quite similar to `Agent` and `GenServer`. However, let's take a different approach here. When integrating with someone else's library, we won't be able to change how their agents, tasks, and servers are defined. Instead, we need to be able to customize their child specification dynamically. This can be done by using `Supervisor.child_spec/2`, a function that we happen to know from previous chapters. Let's rewrite `start/2` in `KVServer.Application` once more: - -```elixir - def start(_type, _args) do - port = String.to_integer(System.get_env("PORT") || "4040") - - children = [ - {Task.Supervisor, name: KVServer.TaskSupervisor}, - Supervisor.child_spec({Task, fn -> KVServer.accept(port) end}, restart: :permanent) - ] - - opts = [strategy: :one_for_one, name: KVServer.Supervisor] - Supervisor.start_link(children, opts) - end -``` - -`Supervisor.child_spec/2` is capable of building a child specification from a given module and/or tuple, and it also accepts values that override the underlying child specification. Now we have an always running acceptor that starts temporary task processes under an always running task supervisor. - -In the next chapter, we will start parsing the client requests and sending responses, finishing our server. diff --git a/getting-started/module-attributes.markdown b/getting-started/module-attributes.markdown index 5a72cdc1b..026b62136 100644 --- a/getting-started/module-attributes.markdown +++ b/getting-started/module-attributes.markdown @@ -1,190 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Module attributes +layout: redirect +sitemap: false +redirect_to: module-attributes --- - -Module attributes in Elixir serve three purposes: - -1. They serve to annotate the module, often with information to be used by the user or the VM. -2. They work as constants. -3. They work as a temporary module storage to be used during compilation. - -Let's check each case, one by one. - -## As annotations - -Elixir brings the concept of module attributes from Erlang. For example: - -```elixir -defmodule MyServer do - @moduledoc "My server code." -end -``` - -In the example above, we are defining the module documentation by using the module attribute syntax. Elixir has a handful of reserved attributes. Here are a few of them, the most commonly used ones: - -* `@moduledoc` - provides documentation for the current module. -* `@doc` - provides documentation for the function or macro that follows the attribute. -* `@spec` - provides a typespec for the function that follows the attribute. -* `@behaviour` - (notice the British spelling) used for specifying an OTP or user-defined behaviour. - -`@moduledoc` and `@doc` are by far the most used attributes, and we expect you to use them a lot. Elixir treats documentation as first-class and provides many functions to access documentation. You can read more about [writing documentation in Elixir in our official documentation](https://hexdocs.pm/elixir/writing-documentation.html). - -Let's go back to the `Math` module defined in the previous chapters, add some documentation and save it to the `math.ex` file: - -```elixir -defmodule Math do - @moduledoc """ - Provides math-related functions. - - ## Examples - - iex> Math.sum(1, 2) - 3 - - """ - - @doc """ - Calculates the sum of two numbers. - """ - def sum(a, b), do: a + b -end -``` - -Elixir promotes the use of Markdown with heredocs to write readable documentation. Heredocs are multi-line strings, they start and end with triple double-quotes, keeping the formatting of the inner text. We can access the documentation of any compiled module directly from IEx: - -```console -$ elixirc math.ex -$ iex -``` - -```elixir -iex> h Math # Access the docs for the module Math -... -iex> h Math.sum # Access the docs for the sum function -... -``` - -We also provide a tool called [ExDoc](https://github.com/elixir-lang/ex_doc) which is used to generate HTML pages from the documentation. - -You can take a look at the docs for [Module](https://hexdocs.pm/elixir/Module.html) for a complete list of supported attributes. Elixir also uses attributes to define [typespecs](/getting-started/typespecs-and-behaviours.html). - -This section covers built-in attributes. However, attributes can also be used by developers or extended by libraries to support custom behaviour. - -## As "constants" - -Elixir developers often use module attributes when they wish to make a value more visible or reusable: - -```elixir -defmodule MyServer do - @initial_state %{host: "127.0.0.1", port: 3456} - IO.inspect @initial_state -end -``` - -Trying to access an attribute that was not defined will print a warning: - -```elixir -defmodule MyServer do - @unknown -end -warning: undefined module attribute @unknown, please remove access to @unknown or explicitly set it before access -``` - -Attributes can also be read inside functions: - -```elixir -defmodule MyServer do - @my_data 14 - def first_data, do: @my_data - @my_data 13 - def second_data, do: @my_data -end - -MyServer.first_data #=> 14 -MyServer.second_data #=> 13 -``` - -> Note: do not add a newline between the attribute and its value, otherwise Elixir will assume you are reading the value, rather than setting it. - -Functions may be called when defining a module attribute: - -```elixir -defmodule MyApp.Status do - @service URI.parse("https://example.com") - def status(email) do - SomeHttpClient.get(@service) - end -end -``` - -The function above will be called at compilation time and its *return value*, not the function call itself, is what will be substituted in for the attribute. So the above will effectively compile to this: - -```elixir -defmodule MyApp.Status do - def status(email) do - SomeHttpClient.get(%URI{ - authority: "example.com", - host: "example.com", - port: 443, - scheme: "https" - }) - end -end -``` - -This can be useful for pre-computing constant values, but it can also cause problems if you're expecting the function to be called at runtime. For example, if you are reading a value from a database or an environment variable inside an attribute, be aware that it will read that value only at compilation time. Be careful, however: *functions defined in the same module as the attribute itself cannot be called* because they have not yet been compiled when the attribute is being defined. - -Every time an attribute is read inside a function, Elixir takes a snapshot of its current value. Therefore if you read the same attribute multiple times inside multiple functions, you may end-up making multiple copies of it. That's usually not an issue, but if you are using functions to compute large module attributes, that can slow down compilation. The solution is to move the attribute to shared function. For example, instead of this: - -```elixir -def some_function, do: do_something_with(@example) -def another_function, do: do_something_else_with(@example) -``` - -Prefer this: - -```elixir -def some_function, do: do_something_with(example()) -def another_function, do: do_something_else_with(example()) -defp example, do: @example -``` - -If `@example` is cheap to compute, it may be even better to skip the module attribute altogether, and compute its value inside the function. - -### Accumulating attributes - -Normally, repeating a module attribute will cause its value to be reassigned, but there are circumstances where you may want to [configure the module attribute](https://hexdocs.pm/elixir/Module.html#register_attribute/3) so that its values are accumulated: - -```elixir -defmodule Foo do - Module.register_attribute __MODULE__, :param, accumulate: true - - @param :foo - @param :bar - # here @param == [:bar, :foo] -end -``` - -## As temporary storage - -To see an example of using module attributes as storage, look no further than Elixir's unit test framework called [ExUnit](https://hexdocs.pm/ex_unit/). ExUnit uses module attributes for multiple different purposes: - -```elixir -defmodule MyTest do - use ExUnit.Case, async: true - - @tag :external - @tag os: :unix - test "contacts external service" do - # ... - end -end -``` - -In the example above, `ExUnit` stores the value of `async: true` in a module attribute to change how the module is compiled. Tags are also defined as `accumulate: true` attributes, and they store tags that can be used to setup and filter tests. For example, you can avoid running external tests on your machine because they are slow and dependent on other services, while they can still be enabled in your build system. - -In order to understand the underlying code, we'd need macros, so we will revisit this pattern in the meta-programming guide and learn how to use module attributes as storage to allow developers to create Domain Specific Languages (DSLs). - -In the next chapters, we'll explore structs and protocols before moving to exception handling and other constructs like sigils and comprehensions. diff --git a/getting-started/modules-and-functions.markdown b/getting-started/modules-and-functions.markdown index b561e95e7..263315f14 100644 --- a/getting-started/modules-and-functions.markdown +++ b/getting-started/modules-and-functions.markdown @@ -1,294 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Modules and functions -redirect_from: /getting-started/modules.html +layout: redirect +sitemap: false +redirect_to: modules-and-functions --- - -In Elixir we group several functions into modules. We've already used many different modules in the previous chapters such as [the `String` module](https://hexdocs.pm/elixir/String.html): - -```elixir -iex> String.length("hello") -5 -``` - -In order to create our own modules in Elixir, we use the `defmodule` macro. The first letter of the module must be in uppercase. We use the `def` macro to define functions in that module. The first letter of every function must be in lowercase (or underscore): - -```elixir -iex> defmodule Math do -...> def sum(a, b) do -...> a + b -...> end -...> end - -iex> Math.sum(1, 2) -3 -``` - -In the following sections, our examples are going to get longer in size, and it can be tricky to type them all in the shell. It's about time for us to learn how to compile Elixir code and also how to run Elixir scripts. - -## Compilation - -Most of the time it is convenient to write modules into files so they can be compiled and reused. Let's assume we have a file named `math.ex` with the following contents: - -```elixir -defmodule Math do - def sum(a, b) do - a + b - end -end -``` - -This file can be compiled using `elixirc`: - -```console -$ elixirc math.ex -``` - -This will generate a file named `Elixir.Math.beam` containing the bytecode for the defined module. If we start `iex` again, our module definition will be available (provided that `iex` is started in the same directory the bytecode file is in): - -```elixir -iex> Math.sum(1, 2) -3 -``` - -Elixir projects are usually organized into three directories: - -* `_build` - contains compilation artifacts -* `lib` - contains Elixir code (usually `.ex` files) -* `test` - contains tests (usually `.exs` files) - -When working on actual projects, the build tool called `mix` will be responsible for compiling and setting up the proper paths for you. For learning and convenience purposes, Elixir also supports a scripted mode which is more flexible and does not generate any compiled artifacts. - -## Scripted mode - -In addition to the Elixir file extension `.ex`, Elixir also supports `.exs` files for scripting. Elixir treats both files exactly the same way, the only difference is in intention. `.ex` files are meant to be compiled while `.exs` files are used for scripting. This convention is followed by projects like `mix`. - -For instance, we can create a file called `math.exs`: - -```elixir -defmodule Math do - def sum(a, b) do - a + b - end -end - -IO.puts Math.sum(1, 2) -``` - -And execute it as: - -```console -$ elixir math.exs -``` - -Because we used `elixir` instead of `elixirc`, the module was compiled and loaded into memory, but no `.beam` file was written to disk. In the following examples, we recommend you write your code into script files and execute them as shown above. - -## Named functions - -Inside a module, we can define functions with `def/2` and private functions with `defp/2`. A function defined with `def/2` can be invoked from other modules while a private function can only be invoked locally. - -```elixir -defmodule Math do - def sum(a, b) do - do_sum(a, b) - end - - defp do_sum(a, b) do - a + b - end -end - -IO.puts Math.sum(1, 2) #=> 3 -IO.puts Math.do_sum(1, 2) #=> ** (UndefinedFunctionError) -``` - -Function declarations also support guards and multiple clauses. If a function has several clauses, Elixir will try each clause until it finds one that matches. Here is an implementation of a function that checks if the given number is zero or not: - -```elixir -defmodule Math do - def zero?(0) do - true - end - - def zero?(x) when is_integer(x) do - false - end -end - -IO.puts Math.zero?(0) #=> true -IO.puts Math.zero?(1) #=> false -IO.puts Math.zero?([1, 2, 3]) #=> ** (FunctionClauseError) -IO.puts Math.zero?(0.0) #=> ** (FunctionClauseError) -``` - -The trailing question mark in `zero?` means that this function returns a boolean. To learn more about the naming conventions for modules, function names, variables and more in Elixir, see [Naming Conventions](https://hexdocs.pm/elixir/naming-conventions.html). - -Giving an argument that does not match any of the clauses raises an error. - -Similar to constructs like `if`, named functions support both `do:` and `do`-block syntax, as [we learned in the previous chapter](/getting-started/keywords-and-maps.html#do-blocks-and-keywords). For example, we can edit `math.exs` to look like this: - -```elixir -defmodule Math do - def zero?(0), do: true - def zero?(x) when is_integer(x), do: false -end -``` - -And it will provide the same behaviour. You may use `do:` for one-liners but always use `do`-blocks for functions spanning multiple lines. If you prefer to be consistent, you can use `do`-blocks throughout your codebase. - -## Function capturing - -Throughout this tutorial, we have been using the notation `name/arity` to refer to functions. It happens that this notation can actually be used to retrieve a named function as a function type. Start `iex`, running the `math.exs` file defined above: - -```console -$ iex math.exs -``` - -```elixir -iex> Math.zero?(0) -true -iex> fun = &Math.zero?/1 -&Math.zero?/1 -iex> is_function(fun) -true -iex> fun.(0) -true -``` - -Remember Elixir makes a distinction between anonymous functions and named functions, where the former must be invoked with a dot (`.`) between the variable name and parentheses. The capture operator (`&`) bridges this gap by allowing named functions to be assigned to variables and passed as arguments in the same way we assign, invoke and pass anonymous functions. - -Local or imported functions, like `is_function/1`, can be captured without the module: - -```elixir -iex> &is_function/1 -&:erlang.is_function/1 -iex> (&is_function/1).(fun) -true -``` - -You can also capture operators: - -```elixir -iex> add = &+/2 -&:erlang.+/2 -iex> add.(1, 2) -3 -``` - -Note the capture syntax can also be used as a shortcut for creating functions: - -```elixir -iex> fun = &(&1 + 1) -#Function<6.71889879/1 in :erl_eval.expr/5> -iex> fun.(1) -2 - -iex> fun2 = &"Good #{&1}" -#Function<6.127694169/1 in :erl_eval.expr/5> -iex> fun2.("morning") -"Good morning" -``` - -The `&1` represents the first argument passed into the function. `&(&1 + 1)` above is exactly the same as `fn x -> x + 1 end`. The syntax above is useful for short function definitions. - -You can read more about the capture operator `&` in [the `Kernel.SpecialForms` documentation](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#&/1). - -## Default arguments - -Named functions in Elixir also support default arguments: - -```elixir -defmodule Concat do - def join(a, b, sep \\ " ") do - a <> sep <> b - end -end - -IO.puts Concat.join("Hello", "world") #=> Hello world -IO.puts Concat.join("Hello", "world", "_") #=> Hello_world -``` - -Any expression is allowed to serve as a default value, but it won't be evaluated during the function definition. Every time the function is invoked and any of its default values have to be used, the expression for that default value will be evaluated: - -```elixir -defmodule DefaultTest do - def dowork(x \\ "hello") do - x - end -end -``` - -```elixir -iex> DefaultTest.dowork -"hello" -iex> DefaultTest.dowork 123 -123 -iex> DefaultTest.dowork -"hello" -``` - -If a function with default values has multiple clauses, it is required to create a function head (a function definition without a body) for declaring defaults: - -```elixir -defmodule Concat do - # A function head declaring defaults - def join(a, b \\ nil, sep \\ " ") - - def join(a, b, _sep) when is_nil(b) do - a - end - - def join(a, b, sep) do - a <> sep <> b - end -end - -IO.puts Concat.join("Hello", "world") #=> Hello world -IO.puts Concat.join("Hello", "world", "_") #=> Hello_world -IO.puts Concat.join("Hello") #=> Hello -``` - -When a variable is not used by a function or a clause, we add a leading underscore (`_`) to its name to signal this intent. This rule is also covered in our [Naming Conventions](https://hexdocs.pm/elixir/main/naming-conventions.html#underscore-_foo) document. - -When using default values, one must be careful to avoid overlapping function definitions. Consider the following example: - -```elixir -defmodule Concat do - def join(a, b) do - IO.puts "***First join" - a <> b - end - - def join(a, b, sep \\ " ") do - IO.puts "***Second join" - a <> sep <> b - end -end -``` - -Elixir will emit the following warning: - - concat.ex:7: warning: this clause cannot match because a previous clause at line 2 always matches - -The compiler is telling us that invoking the `join` function with two arguments will always choose the first definition of `join` whereas the second one will only be invoked when three arguments are passed: - -```console -$ iex concat.ex -``` - -```elixir -iex> Concat.join "Hello", "world" -***First join -"Helloworld" -``` - -```elixir -iex> Concat.join "Hello", "world", "_" -***Second join -"Hello_world" -``` - -Removing the default argument in this case will fix the warning. - -This finishes our short introduction to modules. In the next chapters, we will learn how to use named functions for recursion, explore Elixir lexical directives that can be used for importing functions from other modules and discuss module attributes. diff --git a/getting-started/optional-syntax.markdown b/getting-started/optional-syntax.markdown index 88160157b..9231aebf5 100644 --- a/getting-started/optional-syntax.markdown +++ b/getting-started/optional-syntax.markdown @@ -1,98 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Optional syntax sheet +layout: redirect +sitemap: false +redirect_to: optional-syntax --- - -In this guide so far, we learned that the Elixir syntax allows developers to omit delimiters in a few occasions to make code more readable. For example, we learned that parentheses are optional: - -```elixir -iex> length([1, 2, 3]) == length [1, 2, 3] -true -``` - -and that `do`-`end` blocks are equivalent to keyword lists: - -```elixir -# do-end blocks -iex> if true do -...> :this -...> else -...> :that -...> end -:this - -# keyword lists -iex> if true, do: :this, else: :that -:this -``` - -Keyword lists use Elixir's regular notation for separating arguments, where we separate each key-value pair with commas, and each key is followed by `:`. In the `do`-blocks, we get rid of the colons, the commas, and separate each keyword by a newline. They are useful exactly because they remove the verbosity when writing blocks of code. Most of the time, we use the block syntax, but it is good to know they are equivalent. - -Those conveniences, which we call here "optional syntax", allow the language syntax core to be small, without sacrificing the readability and expressiveness of your code. In this brief chapter, we will review the four rules provided by the language, using a short snippet as playground. - -## Walk-through - -Take the following code: - -```elixir -if variable? do - Call.this() -else - Call.that() -end -``` - -Now let's remove the conveniences one by one: - -1. `do`-`end` blocks are equivalent to keywords: - - ```elixir - if variable?, do: Call.this(), else: Call.that() - ``` - -2. Keyword lists as last argument do not require square brackets, but let's add them: - - ```elixir - if variable?, [do: Call.this(), else: Call.that()] - ``` - -3. Keyword lists are the same as lists of two-element tuples: - - ```elixir - if variable?, [{:do, Call.this()}, {:else, Call.that()}] - ``` - -4. Finally, parentheses are optional on function calls, but let's add them: - - ```elixir - if(variable?, [{:do, Call.this()}, {:else, Call.that()}]) - ``` - -That's it! Those four rules outline the optional syntax available in Elixir. - -To understand why these rules matter, we can briefly compare Elixir with many other programming languages. Most programming languages have several keywords for defining methods, functions, conditionals, loops, and so forth. Each of those keywords have their own syntax rules attached to them. - -However, in Elixir, none of these language features require special "keywords", instead they all build from this small set of rules. The other benefit is that developers can also extend the language in a way that is consistent with the language itself, since the constructs for designing and extending the language are the same. We further explore this topic in [the Meta-programming in Elixir guide](/getting-started/meta/quote-and-unquote.html). - -At the end of the day, those rules are what enables us to write: - -```elixir -defmodule Math do - def add(a, b) do - a + b - end -end -``` - -instead of: - -```elixir -defmodule(Math, [ - {:do, def(add(a, b), [{:do, a + b}])} -]) -``` - -Whenever you have any questions, this quick walk-through has you covered. - -Finally, if you are concerned about when to apply these rules, it's worth noting that the Elixir formatter handles those concerns for you. Most Elixir developers use the [`mix format`](https://hexdocs.pm/mix/Mix.Tasks.Format.html) task to format their codebases according to a well-defined set of rules defined by the Elixir team and the community. For instance, `mix format` will always add parentheses to function calls unless explicitly configured not to do so. This helps to maintain consistency across all codebases within organizations and the wider community. diff --git a/getting-started/pattern-matching.markdown b/getting-started/pattern-matching.markdown index 3358d3472..bfa53ced1 100644 --- a/getting-started/pattern-matching.markdown +++ b/getting-started/pattern-matching.markdown @@ -1,203 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Pattern matching +layout: redirect +sitemap: false +redirect_to: pattern-matching --- - -In this chapter, we will show how the `=` operator in Elixir is actually a match operator and how to use it to pattern match inside data structures. Finally, we will learn about the pin operator `^` used to access previously bound values. - -## The match operator - -We have used the `=` operator a couple times to assign variables in Elixir: - -```elixir -iex> x = 1 -1 -iex> x -1 -``` - -In Elixir, the `=` operator is actually called *the match operator*. Let's see why: - -```elixir -iex> x = 1 -1 -iex> 1 = x -1 -iex> 2 = x -** (MatchError) no match of right hand side value: 1 -``` - -Notice that `1 = x` is a valid expression, and it matched because both the left and right side are equal to 1. When the sides do not match, a `MatchError` is raised. - -A variable can only be assigned on the left side of `=`: - -```elixir -iex> 1 = unknown -** (CompileError) iex:1: undefined variable "unknown" -``` - -## Pattern matching - -The match operator is not only used to match against simple values, but it is also useful for destructuring more complex data types. For example, we can pattern match on tuples: - -```elixir -iex> {a, b, c} = {:hello, "world", 42} -{:hello, "world", 42} -iex> a -:hello -iex> b -"world" -iex> c -42 -``` - -A pattern match error will occur if the sides can't be matched, for example if the tuples have different sizes: - -```elixir -iex> {a, b, c} = {:hello, "world"} -** (MatchError) no match of right hand side value: {:hello, "world"} -``` - -And also when comparing different types, for example if matching a tuple on the left side with a list on the right side: - -```elixir -iex> {a, b, c} = [:hello, "world", 42] -** (MatchError) no match of right hand side value: [:hello, "world", 42] -``` - -More interestingly, we can match on specific values. The example below asserts that the left side will only match the right side when the right side is a tuple that starts with the atom `:ok`: - -```elixir -iex> {:ok, result} = {:ok, 13} -{:ok, 13} -iex> result -13 - -iex> {:ok, result} = {:error, :oops} -** (MatchError) no match of right hand side value: {:error, :oops} -``` - -We can pattern match on lists: - -```elixir -iex> [a, b, c] = [1, 2, 3] -[1, 2, 3] -iex> a -1 -``` - -A list also supports matching on its own head and tail: - -```elixir -iex> [head | tail] = [1, 2, 3] -[1, 2, 3] -iex> head -1 -iex> tail -[2, 3] -``` - -Similar to the `hd/1` and `tl/1` functions, we can't match an empty list with a head and tail pattern: - -```elixir -iex> [head | tail] = [] -** (MatchError) no match of right hand side value: [] -``` - -The `[head | tail]` format is not only used on pattern matching but also for prepending items to a list: - -```elixir -iex> list = [1, 2, 3] -[1, 2, 3] -iex> [0 | list] -[0, 1, 2, 3] -``` - -Pattern matching allows developers to easily destructure data types such as tuples and lists. As we will see in the following chapters, it is one of the foundations of recursion in Elixir and applies to other types as well, like maps and binaries. - -## The pin operator - -Variables in Elixir can be rebound: - -```elixir -iex> x = 1 -1 -iex> x = 2 -2 -``` -However, there are times when we don't want variables to be rebound. - -Use the pin operator `^` when you want to pattern match against a variable's _existing value_ rather than rebinding the variable. - -```elixir -iex> x = 1 -1 -iex> ^x = 2 -** (MatchError) no match of right hand side value: 2 -``` - -Because we have pinned `x` when it was bound to the value of `1`, it is equivalent to the following: - -```elixir -iex> 1 = 2 -** (MatchError) no match of right hand side value: 2 -``` - -Notice that we even see the exact same error message. - -We can use the pin operator inside other pattern matches, such as tuples or lists: - -```elixir -iex> x = 1 -1 -iex> [^x, 2, 3] = [1, 2, 3] -[1, 2, 3] -iex> {y, ^x} = {2, 1} -{2, 1} -iex> y -2 -iex> {y, ^x} = {2, 2} -** (MatchError) no match of right hand side value: {2, 2} -``` - -Because `x` was bound to the value of `1` when it was pinned, this last example could have been written as: - -```elixir -iex> {y, 1} = {2, 2} -** (MatchError) no match of right hand side value: {2, 2} -``` - -If a variable is mentioned more than once in a pattern, all references should bind to the same value: - -```elixir -iex> {x, x} = {1, 1} -{1, 1} -iex> {x, x} = {1, 2} -** (MatchError) no match of right hand side value: {1, 2} -``` - -In some cases, you don't care about a particular value in a pattern. It is a common practice to bind those values to the underscore, `_`. For example, if only the head of the list matters to us, we can assign the tail to underscore: - -```elixir -iex> [head | _] = [1, 2, 3] -[1, 2, 3] -iex> head -1 -``` - -The variable `_` is special in that it can never be read from. Trying to read from it gives a compile error: - -```elixir -iex> _ -** (CompileError) iex:1: invalid use of _. "_" represents a value to be ignored in a pattern and cannot be used in expressions -``` - -Although pattern matching allows us to build powerful constructs, its usage is limited. For instance, you cannot make function calls on the left side of a match. The following example is invalid: - -```elixir -iex> length([1, [2], 3]) = 3 -** (CompileError) iex:1: cannot invoke remote function :erlang.length/1 inside match -``` - -This finishes our introduction to pattern matching. As we will see in the next chapter, pattern matching is very common in many language constructs. diff --git a/getting-started/processes.markdown b/getting-started/processes.markdown index 6da747bb7..1435024b8 100644 --- a/getting-started/processes.markdown +++ b/getting-started/processes.markdown @@ -1,239 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Processes +layout: redirect +sitemap: false +redirect_to: processes --- - -In Elixir, all code runs inside processes. Processes are isolated from each other, run concurrent to one another and communicate via message passing. Processes are not only the basis for concurrency in Elixir, but they also provide the means for building distributed and fault-tolerant programs. - -Elixir's processes should not be confused with operating system processes. Processes in Elixir are extremely lightweight in terms of memory and CPU (even compared to threads as used in many other programming languages). Because of this, it is not uncommon to have tens or even hundreds of thousands of processes running simultaneously. - -In this chapter, we will learn about the basic constructs for spawning new processes, as well as sending and receiving messages between processes. - -## `spawn` - -The basic mechanism for spawning new processes is the auto-imported `spawn/1` function: - -```elixir -iex> spawn(fn -> 1 + 2 end) -#PID<0.43.0> -``` - -`spawn/1` takes a function which it will execute in another process. - -Notice `spawn/1` returns a PID (process identifier). At this point, the process you spawned is very likely dead. The spawned process will execute the given function and exit after the function is done: - -```elixir -iex> pid = spawn(fn -> 1 + 2 end) -#PID<0.44.0> -iex> Process.alive?(pid) -false -``` - -> Note: you will likely get different process identifiers than the ones we are getting in this guide. - -We can retrieve the PID of the current process by calling `self/0`: - -```elixir -iex> self() -#PID<0.41.0> -iex> Process.alive?(self()) -true -``` - -Processes get much more interesting when we are able to send and receive messages. - -## `send` and `receive` - -We can send messages to a process with `send/2` and receive them with `receive/1`: - -```elixir -iex> send(self(), {:hello, "world"}) -{:hello, "world"} -iex> receive do -...> {:hello, msg} -> msg -...> {:world, _msg} -> "won't match" -...> end -"world" -``` - -When a message is sent to a process, the message is stored in the process mailbox. The `receive/1` block goes through the current process mailbox searching for a message that matches any of the given patterns. `receive/1` supports guards and many clauses, such as `case/2`. - -The process that sends the message does not block on `send/2`, it puts the message in the recipient's mailbox and continues. In particular, a process can send messages to itself. - -If there is no message in the mailbox matching any of the patterns, the current process will wait until a matching message arrives. A timeout can also be specified: - -```elixir -iex> receive do -...> {:hello, msg} -> msg -...> after -...> 1_000 -> "nothing after 1s" -...> end -"nothing after 1s" -``` - -A timeout of 0 can be given when you already expect the message to be in the mailbox. - -Let's put it all together and send messages between processes: - -```elixir -iex> parent = self() -#PID<0.41.0> -iex> spawn(fn -> send(parent, {:hello, self()}) end) -#PID<0.48.0> -iex> receive do -...> {:hello, pid} -> "Got hello from #{inspect pid}" -...> end -"Got hello from #PID<0.48.0>" -``` - -The `inspect/1` function is used to convert a data structure's internal representation into a string, typically for printing. Notice that when the `receive` block gets executed the sender process we have spawned may already be dead, as its only instruction was to send a message. - -While in the shell, you may find the helper `flush/0` quite useful. It flushes and prints all the messages in the mailbox. - -```elixir -iex> send(self(), :hello) -:hello -iex> flush() -:hello -:ok -``` - -## Links - -The majority of times we spawn processes in Elixir, we spawn them as linked processes. Before we show an example with `spawn_link/1`, let's see what happens when a process started with `spawn/1` fails: - -```elixir -iex> spawn(fn -> raise "oops" end) -#PID<0.58.0> - -[error] Process #PID<0.58.00> raised an exception -** (RuntimeError) oops - (stdlib) erl_eval.erl:668: :erl_eval.do_apply/6 -``` - -It merely logged an error but the parent process is still running. That's because processes are isolated. If we want the failure in one process to propagate to another one, we should link them. This can be done with `spawn_link/1`: - -```elixir -iex> self() -#PID<0.41.0> -iex> spawn_link(fn -> raise "oops" end) - -** (EXIT from #PID<0.41.0>) evaluator process exited with reason: an exception was raised: - ** (RuntimeError) oops - (stdlib) erl_eval.erl:668: :erl_eval.do_apply/6 - -[error] Process #PID<0.289.0> raised an exception -** (RuntimeError) oops - (stdlib) erl_eval.erl:668: :erl_eval.do_apply/6 -``` - -Because processes are linked, we now see a message saying the parent process, which is the shell process, has received an EXIT signal from another process causing the shell to terminate. IEx detects this situation and starts a new shell session. - -Linking can also be done manually by calling `Process.link/1`. We recommend that you take a look at [the `Process` module](https://hexdocs.pm/elixir/Process.html) for other functionality provided by processes. - -Processes and links play an important role when building fault-tolerant systems. Elixir processes are isolated and don't share anything by default. Therefore, a failure in a process will never crash or corrupt the state of another process. Links, however, allow processes to establish a relationship in case of failure. We often link our processes to supervisors which will detect when a process dies and start a new process in its place. - -While other languages would require us to catch/handle exceptions, in Elixir we are actually fine with letting processes fail because we expect supervisors to properly restart our systems. "Failing fast" (sometimes referred as "let it crash") is a common philosophy when writing Elixir software! - -`spawn/1` and `spawn_link/1` are the basic primitives for creating processes in Elixir. Although we have used them exclusively so far, most of the time we are going to use abstractions that build on top of them. Let's see the most common one, called tasks. - -## Tasks - -Tasks build on top of the spawn functions to provide better error reports and introspection: - -```elixir -iex> Task.start(fn -> raise "oops" end) -{:ok, #PID<0.55.0>} - -15:22:33.046 [error] Task #PID<0.55.0> started from #PID<0.53.0> terminating -** (RuntimeError) oops - (stdlib) erl_eval.erl:668: :erl_eval.do_apply/6 - (elixir) lib/task/supervised.ex:85: Task.Supervised.do_apply/2 - (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3 -Function: #Function<20.99386804/0 in :erl_eval.expr/5> - Args: [] -``` - -Instead of `spawn/1` and `spawn_link/1`, we use `Task.start/1` and `Task.start_link/1` which return `{:ok, pid}` rather than just the PID. This is what enables tasks to be used in supervision trees. Furthermore, `Task` provides convenience functions, like `Task.async/1` and `Task.await/1`, and functionality to ease distribution. - -We will explore those functionalities in the ***Mix and OTP guide***, for now it is enough to remember to use `Task` to get better error reports. - -## State - -We haven't talked about state so far in this guide. If you are building an application that requires state, for example, to keep your application configuration, or you need to parse a file and keep it in memory, where would you store it? - -Processes are the most common answer to this question. We can write processes that loop infinitely, maintain state, and send and receive messages. As an example, let's write a module that starts new processes that work as a key-value store in a file named `kv.exs`: - -```elixir -defmodule KV do - def start_link do - Task.start_link(fn -> loop(%{}) end) - end - - defp loop(map) do - receive do - {:get, key, caller} -> - send caller, Map.get(map, key) - loop(map) - {:put, key, value} -> - loop(Map.put(map, key, value)) - end - end -end -``` - -Note that the `start_link` function starts a new process that runs the `loop/1` function, starting with an empty map. The `loop/1` (private) function then waits for messages and performs the appropriate action for each message. We made `loop/1` private by using `defp` instead of `def`. In the case of a `:get` message, it sends a message back to the caller and calls `loop/1` again, to wait for a new message. While the `:put` message actually invokes `loop/1` with a new version of the map, with the given `key` and `value` stored. - -Let's give it a try by running `iex kv.exs`: - -```elixir -iex> {:ok, pid} = KV.start_link() -{:ok, #PID<0.62.0>} -iex> send(pid, {:get, :hello, self()}) -{:get, :hello, #PID<0.41.0>} -iex> flush() -nil -:ok -``` - -At first, the process map has no keys, so sending a `:get` message and then flushing the current process inbox returns `nil`. Let's send a `:put` message and try it again: - -```elixir -iex> send(pid, {:put, :hello, :world}) -{:put, :hello, :world} -iex> send(pid, {:get, :hello, self()}) -{:get, :hello, #PID<0.41.0>} -iex> flush() -:world -:ok -``` - -Notice how the process is keeping a state and we can get and update this state by sending the process messages. In fact, any process that knows the `pid` above will be able to send it messages and manipulate the state. - -It is also possible to register the `pid`, giving it a name, and allowing everyone that knows the name to send it messages: - -```elixir -iex> Process.register(pid, :kv) -true -iex> send(:kv, {:get, :hello, self()}) -{:get, :hello, #PID<0.41.0>} -iex> flush() -:world -:ok -``` - -Using processes to maintain state and name registration are very common patterns in Elixir applications. However, most of the time, we won't implement those patterns manually as above, but by using one of the many abstractions that ship with Elixir. For example, Elixir provides [agents](https://hexdocs.pm/elixir/Agent.html), which are simple abstractions around state: - -```elixir -iex> {:ok, pid} = Agent.start_link(fn -> %{} end) -{:ok, #PID<0.72.0>} -iex> Agent.update(pid, fn map -> Map.put(map, :hello, :world) end) -:ok -iex> Agent.get(pid, fn map -> Map.get(map, :hello) end) -:world -``` - -A `:name` option could also be given to `Agent.start_link/2` and it would be automatically registered. Besides agents, Elixir provides an API for building generic servers (called `GenServer`), tasks, and more, all powered by processes underneath. Those, along with supervision trees, will be explored with more detail in the ***Mix and OTP guide*** which will build a complete Elixir application from start to finish. - -For now, let's move on and explore the world of I/O in Elixir. diff --git a/getting-started/protocols.markdown b/getting-started/protocols.markdown index 29193e918..a44082f4e 100644 --- a/getting-started/protocols.markdown +++ b/getting-started/protocols.markdown @@ -1,260 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Protocols +layout: redirect +sitemap: false +redirect_to: protocols --- - -Protocols are a mechanism to achieve polymorphism in Elixir when you want behaviour to vary depending on the data type. We are already familiar with one way of solving this type of problem: via pattern matching and guard clauses. Consider a simple utility module that would tell us the type of input variable: - -```elixir -defmodule Utility do - def type(value) when is_binary(value), do: "string" - def type(value) when is_integer(value), do: "integer" - # ... other implementations ... -end -``` - -If the use of this module were confined to your own project, you would be able to keep defining new `type/1` functions for each new data type. However, this code could be problematic if it was shared as a dependency by multiple apps because there would be no easy way to extend its functionality. - -This is where protocols can help us: protocols allow us to extend the original behaviour for as many data types as we need. That's because **dispatching on a protocol is available to any data type that has implemented the protocol** and a protocol can be implemented by anyone, at any time. - -Here's how we could write the same `Utility.type/1` functionality as a protocol: - -```elixir -defprotocol Utility do - @spec type(t) :: String.t() - def type(value) -end - -defimpl Utility, for: BitString do - def type(_value), do: "string" -end - -defimpl Utility, for: Integer do - def type(_value), do: "integer" -end -``` - -We define the protocol using `defprotocol` - its functions and specs may look similar to interfaces or abstract base classes in other languages. We can add as many implementations as we like using `defimpl`. The output is exactly the same as if we had a single module with multiple functions: - -```elixir -iex> Utility.type("foo") -"string" -iex> Utility.type(123) -"integer" -``` - -With protocols, however, we are no longer stuck having to continuously modify the same module to support more and more data types. For example, we could get the `defimpl` calls above and spread them over multiple files and Elixir will dispatch the execution to the appropriate implementation based on the data type. Functions defined in a protocol may have more than one input, but the **dispatching will always be based on the data type of the first input**. - -One of the most common protocols you may encounter is the [`String.Chars`](https://hexdocs.pm/elixir/String.Chars.html) protocol: implementing its `to_string/1` function for your custom structs will tell the Elixir kernel how to represent them as strings. We will explore all built-in protocols later. For now, let's implement our own. - -## Example - -Now that you have seen an example of the type of problem protocols help solve and how they solve them, let's look at a more in-depth example. - -In Elixir, we have two idioms for checking how many items there are in a data structure: `length` and `size`. `length` means the information must be computed. For example, `length(list)` needs to traverse the whole list to calculate its length. On the other hand, `tuple_size(tuple)` and `byte_size(binary)` do not depend on the tuple and binary size as the size information is pre-computed in the data structure. - -Even if we have type-specific functions for getting the size built into Elixir (such as `tuple_size/1`), we could implement a generic `Size` protocol that all data structures for which size is pre-computed would implement. - -The protocol definition would look like this: - -```elixir -defprotocol Size do - @doc "Calculates the size (and not the length!) of a data structure" - def size(data) -end -``` - -The `Size` protocol expects a function called `size` that receives one argument (the data structure we want to know the size of) to be implemented. We can now implement this protocol for the data structures that would have a compliant implementation: - -```elixir -defimpl Size, for: BitString do - def size(string), do: byte_size(string) -end - -defimpl Size, for: Map do - def size(map), do: map_size(map) -end - -defimpl Size, for: Tuple do - def size(tuple), do: tuple_size(tuple) -end -``` - -We didn't implement the `Size` protocol for lists as there is no "size" information pre-computed for lists, and the length of a list has to be computed (with `length/1`). - -Now with the protocol defined and implementations in hand, we can start using it: - -```elixir -iex> Size.size("foo") -3 -iex> Size.size({:ok, "hello"}) -2 -iex> Size.size(%{label: "some label"}) -1 -``` - -Passing a data type that doesn't implement the protocol raises an error: - -```elixir -iex> Size.size([1, 2, 3]) -** (Protocol.UndefinedError) protocol Size not implemented for [1, 2, 3] of type List -``` - -It's possible to implement protocols for all Elixir data types: - -* `Atom` -* `BitString` -* `Float` -* `Function` -* `Integer` -* `List` -* `Map` -* `PID` -* `Port` -* `Reference` -* `Tuple` - -## Protocols and structs - -The power of Elixir's extensibility comes when protocols and structs are used together. - -In the [previous chapter](/getting-started/structs.html), we have learned that although structs are maps, they do not share protocol implementations with maps. For example, [`MapSet`](https://hexdocs.pm/elixir/MapSet.html)s (sets based on maps) are implemented as structs. Let's try to use the `Size` protocol with a `MapSet`: - -```elixir -iex> Size.size(%{}) -0 -iex> set = %MapSet{} = MapSet.new -MapSet.new([]) -iex> Size.size(set) -** (Protocol.UndefinedError) protocol Size not implemented for MapSet.new([]) of type MapSet (a struct) -``` - -Instead of sharing protocol implementation with maps, structs require their own protocol implementation. Since a `MapSet` has its size precomputed and accessible through `MapSet.size/1`, we can define a `Size` implementation for it: - -```elixir -defimpl Size, for: MapSet do - def size(set), do: MapSet.size(set) -end -``` - -If desired, you could come up with your own semantics for the size of your struct. Not only that, you could use structs to build more robust data types, like queues, and implement all relevant protocols, such as `Enumerable` and possibly `Size`, for this data type. - -```elixir -defmodule User do - defstruct [:name, :age] -end - -defimpl Size, for: User do - def size(_user), do: 2 -end -``` - -## Implementing `Any` - -Manually implementing protocols for all types can quickly become repetitive and tedious. In such cases, Elixir provides two options: we can explicitly derive the protocol implementation for our types or automatically implement the protocol for all types. In both cases, we need to implement the protocol for `Any`. - -### Deriving - -Elixir allows us to derive a protocol implementation based on the `Any` implementation. Let's first implement `Any` as follows: - -```elixir -defimpl Size, for: Any do - def size(_), do: 0 -end -``` - -The implementation above is arguably not a reasonable one. For example, it makes no sense to say that the size of a `PID` or an `Integer` is `0`. - -However, we should be fine with the implementation for `Any`, in order to use such implementation we would need to tell our struct to explicitly derive the `Size` protocol: - -```elixir -defmodule OtherUser do - @derive [Size] - defstruct [:name, :age] -end -``` - -When deriving, Elixir will implement the `Size` protocol for `OtherUser` based on the implementation provided for `Any`. - -### Fallback to `Any` - -Another alternative to `@derive` is to explicitly tell the protocol to fallback to `Any` when an implementation cannot be found. This can be achieved by setting `@fallback_to_any` to `true` in the protocol definition: - -```elixir -defprotocol Size do - @fallback_to_any true - def size(data) -end -``` - -As we said in the previous section, the implementation of `Size` for `Any` is not one that can apply to any data type. That's one of the reasons why `@fallback_to_any` is an opt-in behaviour. For the majority of protocols, raising an error when a protocol is not implemented is the proper behaviour. That said, assuming we have implemented `Any` as in the previous section: - -```elixir -defimpl Size, for: Any do - def size(_), do: 0 -end -``` - -Now all data types (including structs) that have not implemented the `Size` protocol will be considered to have a size of `0`. - -Which technique is best between deriving and falling back to `Any` depends on the use case but, given Elixir developers prefer explicit over implicit, you may see many libraries pushing towards the `@derive` approach. - -## Built-in protocols - -Elixir ships with some built-in protocols. In previous chapters, we have discussed the `Enum` module which provides many functions that work with any data structure that implements the `Enumerable` protocol: - -```elixir -iex> Enum.map([1, 2, 3], fn x -> x * 2 end) -[2, 4, 6] -iex> Enum.reduce(1..3, 0, fn x, acc -> x + acc end) -6 -``` - -Another useful example is the `String.Chars` protocol, which specifies how to convert a data structure to its human representation as a string. It's exposed via the `to_string` function: - -```elixir -iex> to_string :hello -"hello" -``` - -Notice that string interpolation in Elixir calls the `to_string` function: - -```elixir -iex> "age: #{25}" -"age: 25" -``` - -The snippet above only works because numbers implement the `String.Chars` protocol. Passing a tuple, for example, will lead to an error: - -```elixir -iex> tuple = {1, 2, 3} -{1, 2, 3} -iex> "tuple: #{tuple}" -** (Protocol.UndefinedError) protocol String.Chars not implemented for {1, 2, 3} of type Tuple -``` - -When there is a need to "print" a more complex data structure, one can use the `inspect` function, based on the `Inspect` protocol: - -```elixir -iex> "tuple: #{inspect tuple}" -"tuple: {1, 2, 3}" -``` - -The `Inspect` protocol is the protocol used to transform any data structure into a readable textual representation. This is what tools like IEx use to print results: - -```elixir -iex> {1, 2, 3} -{1, 2, 3} -iex> %User{} -%User{name: "john", age: 27} -``` - -Keep in mind that, by convention, whenever the inspected value starts with `#`, it is representing a data structure in non-valid Elixir syntax. This means the inspect protocol is not reversible as information may be lost along the way: - -```elixir -iex> inspect &(&1+2) -"#Function<6.71889879/1 in :erl_eval.expr/5>" -``` - -There are other protocols in Elixir but this covers the most common ones. You can learn more about protocols and implementations in the [`Protocol`](https://hexdocs.pm/elixir/Protocol.html) module. diff --git a/getting-started/recursion.markdown b/getting-started/recursion.markdown index 95d797ee1..ed7c1c2c9 100644 --- a/getting-started/recursion.markdown +++ b/getting-started/recursion.markdown @@ -1,142 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Recursion +layout: redirect +sitemap: false +redirect_to: recursion --- - -## Loops through recursion - -Due to immutability, loops in Elixir (as in any functional programming language) are written differently from imperative languages. For example, in an imperative language like C, one would write: - -```c -for(i = 0; i < sizeof(array); i++) { - array[i] = array[i] * 2; -} -``` - -In the example above, we are mutating both the array and the variable `i`. However, data structures in Elixir are immutable. For this reason, functional languages rely on recursion: a function is called recursively until a condition is reached that stops the recursive action from continuing. No data is mutated in this process. Consider the example below that prints a string an arbitrary number of times: - -```elixir -defmodule Recursion do - def print_multiple_times(msg, n) when n > 0 do - IO.puts(msg) - print_multiple_times(msg, n - 1) - end - - def print_multiple_times(_msg, 0) do - :ok - end -end - -Recursion.print_multiple_times("Hello!", 3) -# Hello! -# Hello! -# Hello! -:ok -``` - -Similar to `case`, a function may have many clauses. A particular clause is executed when the arguments passed to the function match the clause's argument patterns and its guards evaluate to `true`. - -When `print_multiple_times/2` is initially called in the example above, the argument `n` is equal to `3`. - -The first clause has a guard which says "use this definition if and only if `n` is more than `0`". Since this is the case, it prints the `msg` and then calls itself passing `n - 1` (`2`) as the second argument. - -Now we execute the same function again, starting from the first clause. Given the second argument, `n`, is still more than 0, we print the message and call ourselves once more, now with the second argument set to `1`. Then we print the message one last time and call `print_multiple_times("Hello!", 0)`, starting from the top once again. - -When the second argument is zero, the guard `n > 0` evaluates to false, and the first function clause won't execute. Elixir then proceeds to try the next function clause, which explicitly matches on the case where `n` is `0`. This clause, also known as the termination clause, ignores the message argument by assigning it to the `_msg` variable and returns the atom `:ok`. - -Finally, if you pass an argument that does not match any clause, Elixir raises a `FunctionClauseError`: - -```elixir -iex> Recursion.print_multiple_times "Hello!", -1 -** (FunctionClauseError) no function clause matching in Recursion.print_multiple_times/2 - - The following arguments were given to Recursion.print_multiple_times/2: - - # 1 - "Hello!" - - # 2 - -1 - - iex:1: Recursion.print_multiple_times/2 -``` - -## Reduce and map algorithms - -Let's now see how we can use the power of recursion to sum a list of numbers: - -```elixir -defmodule Math do - def sum_list([head | tail], accumulator) do - sum_list(tail, head + accumulator) - end - - def sum_list([], accumulator) do - accumulator - end -end - -IO.puts Math.sum_list([1, 2, 3], 0) #=> 6 -``` - -We invoke `sum_list` with the list `[1, 2, 3]` and the initial value `0` as arguments. We will try each clause until we find one that matches according to the pattern matching rules. In this case, the list `[1, 2, 3]` matches against `[head | tail]` which binds `head` to `1` and `tail` to `[2, 3]`; `accumulator` is set to `0`. - -Then, we add the head of the list to the accumulator `head + accumulator` and call `sum_list` again, recursively, passing the tail of the list as its first argument. The tail will once again match `[head | tail]` until the list is empty, as seen below: - -```elixir -sum_list [1, 2, 3], 0 -sum_list [2, 3], 1 -sum_list [3], 3 -sum_list [], 6 -``` - -When the list is empty, it will match the final clause which returns the final result of `6`. - -The process of taking a list and _reducing_ it down to one value is known as a _reduce algorithm_ and is central to functional programming. - -What if we instead want to double all of the values in our list? - -```elixir -defmodule Math do - def double_each([head | tail]) do - [head * 2 | double_each(tail)] - end - - def double_each([]) do - [] - end -end -``` - -```console -$ iex math.exs -``` - -```elixir -iex> Math.double_each([1, 2, 3]) #=> [2, 4, 6] -``` - -Here we have used recursion to traverse a list, doubling each element and returning a new list. The process of taking a list and _mapping_ over it is known as a _map algorithm_. - -Recursion and [tail call](https://en.wikipedia.org/wiki/Tail_call) optimization are an important part of Elixir and are commonly used to create loops. However, when programming in Elixir you will rarely use recursion as above to manipulate lists. - -The [`Enum` module](https://hexdocs.pm/elixir/Enum.html), which we're going to see in the next chapter, already provides many conveniences for working with lists. For instance, the examples above could be written as: - -```elixir -iex> Enum.reduce([1, 2, 3], 0, fn(x, acc) -> x + acc end) -6 -iex> Enum.map([1, 2, 3], fn(x) -> x * 2 end) -[2, 4, 6] -``` - -Or, using the capture syntax: - -```elixir -iex> Enum.reduce([1, 2, 3], 0, &+/2) -6 -iex> Enum.map([1, 2, 3], &(&1 * 2)) -[2, 4, 6] -``` - -Let's take a deeper look at `Enumerable` and, while we're at it, its lazy counterpart, `Stream`. diff --git a/getting-started/sigils.markdown b/getting-started/sigils.markdown index 69c834223..0f929e472 100644 --- a/getting-started/sigils.markdown +++ b/getting-started/sigils.markdown @@ -1,244 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Sigils +layout: redirect +sitemap: false +redirect_to: sigils --- - -We have already learned that Elixir provides double-quoted strings and single-quoted char lists. However, this only covers the surface of structures that have textual representation in the language. Atoms, for example, are mostly created via the `:atom` representation. - -One of Elixir's goals is extensibility: developers should be able to extend the language to fit any particular domain. Computer science has become such a wide field that it is impossible for a language to tackle all aspects of it as part of its core. Instead, Elixir aims to make itself extensible so developers, companies, and communities can extend the language to their relevant domains. - -In this chapter, we are going to explore sigils, which are one of the mechanisms provided by the language for working with textual representations. Sigils start with the tilde (`~`) character which is followed by a letter (which identifies the sigil) and then a delimiter; optionally, modifiers can be added after the final delimiter. - -## Regular expressions - -The most common sigil in Elixir is `~r`, which is used to create [regular expressions](https://en.wikipedia.org/wiki/Regular_Expressions): - -```elixir -# A regular expression that matches strings which contain "foo" or "bar": -iex> regex = ~r/foo|bar/ -~r/foo|bar/ -iex> "foo" =~ regex -true -iex> "bat" =~ regex -false -``` - -Elixir provides Perl-compatible regular expressions (regexes), as implemented by the [PCRE](http://www.pcre.org/) library. Regexes also support modifiers. For example, the `i` modifier makes a regular expression case insensitive: - -```elixir -iex> "HELLO" =~ ~r/hello/ -false -iex> "HELLO" =~ ~r/hello/i -true -``` - -Check out the [`Regex` module](https://hexdocs.pm/elixir/Regex.html) for more information on other modifiers and the supported operations with regular expressions. - -So far, all examples have used `/` to delimit a regular expression. However, sigils support 8 different delimiters: - -``` -~r/hello/ -~r|hello| -~r"hello" -~r'hello' -~r(hello) -~r[hello] -~r{hello} -~r -``` - -The reason behind supporting different delimiters is to provide a way to write literals without escaped delimiters. For example, a regular expression with forward slashes like `~r(^https?://)` reads arguably better than `~r/^https?:\/\//`. Similarly, if the regular expression has forward slashes and capturing groups (that use `()`), you may then choose double quotes instead of parentheses. - -## Strings, char lists, and word lists sigils - -Besides regular expressions, Elixir ships with three other sigils. - -### Strings - -The `~s` sigil is used to generate strings, like double quotes are. The `~s` sigil is useful when a string contains double quotes: - -```elixir -iex> ~s(this is a string with "double" quotes, not 'single' ones) -"this is a string with \"double\" quotes, not 'single' ones" -``` - -### Char lists - -The `~c` sigil is the regular way to represent charlists. - -```elixir -iex> [?c, ?a, ?t] -~c"cat" -iex> ~c(this is a char list containing "double quotes") -~c"this is a char list containing \"double quotes\"" -``` - -### Word lists - -The `~w` sigil is used to generate lists of words (*words* are just regular strings). Inside the `~w` sigil, words are separated by whitespace. - -```elixir -iex> ~w(foo bar bat) -["foo", "bar", "bat"] -``` - -The `~w` sigil also accepts the `c`, `s` and `a` modifiers (for char lists, strings, and atoms, respectively), which specify the data type of the elements of the resulting list: - -```elixir -iex> ~w(foo bar bat)a -[:foo, :bar, :bat] -``` - -## Interpolation and escaping in string sigils - -Elixir supports some sigil variants to deal with escaping characters and interpolation. In particular, uppercase letters sigils do not perform interpolation nor escaping. For example, although both `~s` and `~S` will return strings, the former allows escape codes and interpolation while the latter does not: - -```elixir -iex> ~s(String with escape codes \x26 #{"inter" <> "polation"}) -"String with escape codes & interpolation" -iex> ~S(String without escape codes \x26 without #{interpolation}) -"String without escape codes \\x26 without \#{interpolation}" -``` - -The following escape codes can be used in strings and char lists: - -* `\\` – single backslash -* `\a` – bell/alert -* `\b` – backspace -* `\d` - delete -* `\e` - escape -* `\f` - form feed -* `\n` – newline -* `\r` – carriage return -* `\s` – space -* `\t` – tab -* `\v` – vertical tab -* `\0` - null byte -* `\xDD` - represents a single byte in hexadecimal (such as `\x13`) -* `\uDDDD` and `\u{D...}` - represents a Unicode codepoint in hexadecimal (such as `\u{1F600}`) - -In addition to those, a double quote inside a double-quoted string needs to be escaped as `\"`, and, analogously, a single quote inside a single-quoted char list needs to be escaped as `\'`. Nevertheless, it is better style to change delimiters as seen above than to escape them. - -Sigils also support heredocs, that is, three double-quotes or single-quotes as separators: - -```elixir -iex> ~s""" -...> this is -...> a heredoc string -...> """ -``` - -The most common use case for heredoc sigils is when writing documentation. For example, writing escape characters in the documentation would soon become error prone because of the need to double-escape some characters: - -```elixir -@doc """ -Converts double-quotes to single-quotes. - -## Examples - - iex> convert("\\\"foo\\\"") - "'foo'" - -""" -def convert(...) -``` - -By using `~S`, this problem can be avoided altogether: - -```elixir -@doc ~S""" -Converts double-quotes to single-quotes. - -## Examples - - iex> convert("\"foo\"") - "'foo'" - -""" -def convert(...) -``` - -## Calendar sigils - -Elixir offers several sigils to deal with various flavors of times and dates. - -### Date - -A [%Date{}](https://hexdocs.pm/elixir/Date.html) struct contains the fields `year`, `month`, `day`, and `calendar`. You can create one using the `~D` sigil: - -```elixir -iex> d = ~D[2019-10-31] -~D[2019-10-31] -iex> d.day -31 -``` - -### Time - -The [%Time{}](https://hexdocs.pm/elixir/Time.html) struct contains the fields `hour`, `minute`, `second`, `microsecond`, and `calendar`. You can create one using the `~T` sigil: - -```elixir -iex> t = ~T[23:00:07.0] -~T[23:00:07.0] -iex> t.second -7 -``` - -### NaiveDateTime - -The [%NaiveDateTime{}](https://hexdocs.pm/elixir/NaiveDateTime.html) struct contains fields from both `Date` and `Time`. You can create one using the `~N` sigil: - -```elixir -iex> ndt = ~N[2019-10-31 23:00:07] -~N[2019-10-31 23:00:07] -``` - -Why is it called naive? Because it does not contain timezone information. Therefore, the given datetime may not exist at all or it may exist twice in certain timezones - for example, when we move the clock back and forward for daylight saving time. - -### UTC DateTime - -A [%DateTime{}](https://hexdocs.pm/elixir/DateTime.html) struct contains the same fields as a `NaiveDateTime` with the addition of fields to track timezones. The `~U` sigil allows developers to create a DateTime in the UTC timezone: - -```elixir -iex> dt = ~U[2019-10-31 19:59:03Z] -~U[2019-10-31 19:59:03Z] -iex> %DateTime{minute: minute, time_zone: time_zone} = dt -~U[2019-10-31 19:59:03Z] -iex> minute -59 -iex> time_zone -"Etc/UTC" -``` - -## Custom sigils - -As hinted at the beginning of this chapter, sigils in Elixir are extensible. In fact, using the sigil `~r/foo/i` is equivalent to calling `sigil_r` with a binary and a char list as the argument: - -```elixir -iex> sigil_r(<<"foo">>, ~c"i") -~r"foo"i -``` - -We can access the documentation for the `~r` sigil via `sigil_r`: - -```elixir -iex> h sigil_r -... -``` - -We can also provide our own sigils by implementing functions that follow the `sigil_{character}` pattern. For example, let's implement the `~i` sigil that returns an integer (with the optional `n` modifier to make it negative): - -```elixir -iex> defmodule MySigils do -...> def sigil_i(string, []), do: String.to_integer(string) -...> def sigil_i(string, [?n]), do: -String.to_integer(string) -...> end -iex> import MySigils -iex> ~i(13) -13 -iex> ~i(42)n --42 -``` - -Sigils can also be used to do compile-time work with the help of macros. For example, regular expressions in Elixir are compiled into an efficient representation during compilation of the source code, therefore skipping this step at runtime. If you're interested in the subject, we recommend you learn more about macros and check out how sigils are implemented in the `Kernel` module (where the `sigil_*` functions are defined). diff --git a/getting-started/structs.markdown b/getting-started/structs.markdown index f45868d28..2a92104e6 100644 --- a/getting-started/structs.markdown +++ b/getting-started/structs.markdown @@ -1,160 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Structs -redirect_from: /getting-started/struct.html +layout: redirect +sitemap: false +redirect_to: structs --- - -In [chapter 7](/getting-started/keywords-and-maps.html) we learned about maps: - -```elixir -iex> map = %{a: 1, b: 2} -%{a: 1, b: 2} -iex> map[:a] -1 -iex> %{map | a: 3} -%{a: 3, b: 2} -``` - -Structs are extensions built on top of maps that provide compile-time checks and default values. - -## Defining structs - -To define a struct, the `defstruct` construct is used: - -```elixir -iex> defmodule User do -...> defstruct name: "John", age: 27 -...> end -``` - -The keyword list used with `defstruct` defines what fields the struct will have along with their default values. - -Structs take the name of the module they're defined in. In the example above, we defined a struct named `User`. - -We can now create `User` structs by using a syntax similar to the one used to create maps: - -```elixir -iex> %User{} -%User{age: 27, name: "John"} -iex> %User{name: "Jane"} -%User{age: 27, name: "Jane"} -``` - -> Note: If you have defined the struct in a separate file, you can compile the file inside IEx before proceeding by running `c "file.exs"`. Be aware you may get an error saying `the struct was not yet defined` if you try the example above in a file directly due to when definitions are resolved. - -Structs provide *compile-time* guarantees that only the fields defined through `defstruct` will be allowed to exist in a struct: - -```elixir -iex> %User{oops: :field} -** (KeyError) key :oops not found expanding struct: User.__struct__/1 -``` - -## Accessing and updating structs - -When we discussed maps, we showed how we can access and update the fields of a map. The same techniques (and the same syntax) apply to structs as well: - -```elixir -iex> john = %User{} -%User{age: 27, name: "John"} -iex> john.name -"John" -iex> jane = %{john | name: "Jane"} -%User{age: 27, name: "Jane"} -iex> %{jane | oops: :field} -** (KeyError) key :oops not found in: %User{age: 27, name: "Jane"} -``` - -When using the update syntax (`|`), the VM is aware that no new keys will be added to the struct, allowing the maps underneath to share their structure in memory. In the example above, both `john` and `jane` share the same key structure in memory. - -Structs can also be used in pattern matching, both for matching on the value of specific keys as well as for ensuring that the matching value is a struct of the same type as the matched value. - -```elixir -iex> %User{name: name} = john -%User{age: 27, name: "John"} -iex> name -"John" -iex> %User{} = %{} -** (MatchError) no match of right hand side value: %{} -``` - -## Structs are bare maps underneath - -In the example above, pattern matching works because underneath structs are bare maps with a fixed set of fields. As maps, structs store a "special" field named `__struct__` that holds the name of the struct: - -```elixir -iex> is_map(john) -true -iex> john.__struct__ -User -``` - -Notice that we referred to structs as **bare** maps because none of the protocols implemented for maps are available for structs. For example, you can neither enumerate nor access a struct: - -```elixir -iex> john = %User{} -%User{age: 27, name: "John"} -iex> john[:name] -** (UndefinedFunctionError) function User.fetch/2 is undefined (User does not implement the Access behaviour) - User.fetch(%User{age: 27, name: "John"}, :name) -iex> Enum.each(john, fn {field, value} -> IO.puts(value) end) -** (Protocol.UndefinedError) protocol Enumerable not implemented for %User{age: 27, name: "John"} of type User (a struct) -``` - -However, since structs are just maps, they work with the functions from the `Map` module: - -```elixir -iex> jane = Map.put(%User{}, :name, "Jane") -%User{age: 27, name: "Jane"} -iex> Map.merge(jane, %User{name: "John"}) -%User{age: 27, name: "John"} -iex> Map.keys(jane) -[:__struct__, :age, :name] -``` - -Structs alongside protocols provide one of the most important features for Elixir developers: data polymorphism. That's what we will explore in the next chapter. - -## Default values and required keys - -If you don't specify a default key value when defining a struct, `nil` will be assumed: - -```elixir -iex> defmodule Product do -...> defstruct [:name] -...> end -iex> %Product{} -%Product{name: nil} -``` - -You can define a structure combining both fields with explicit default values, and implicit `nil` values. In this case you must first specify the fields which implicitly default to nil: - -```elixir -iex> defmodule User do -...> defstruct [:email, name: "John", age: 27] -...> end -iex> %User{} -%User{age: 27, email: nil, name: "John"} -``` - -Doing it in reverse order will raise a syntax error: - -```elixir -iex> defmodule User do -...> defstruct [name: "John", age: 27, :email] -...> end -** (SyntaxError) iex:107: unexpected expression after keyword list. Keyword lists must always come last in lists and maps. -``` - -You can also enforce that certain keys have to be specified when creating the struct via the `@enforce_keys` module attribute: - -```elixir -iex> defmodule Car do -...> @enforce_keys [:make] -...> defstruct [:model, :make] -...> end -iex> %Car{} -** (ArgumentError) the following keys must also be given when building struct Car: [:make] - expanding struct: Car.__struct__/1 -``` - -Enforcing keys provides a simple compile-time guarantee to aid developers when building structs. It is not enforced on updates and it does not provide any sort of value-validation. diff --git a/getting-started/try-catch-and-rescue.markdown b/getting-started/try-catch-and-rescue.markdown index e1a6d393d..158dc94ce 100644 --- a/getting-started/try-catch-and-rescue.markdown +++ b/getting-started/try-catch-and-rescue.markdown @@ -1,284 +1,5 @@ --- -section: getting-started -layout: getting-started -title: try, catch, and rescue +layout: redirect +sitemap: false +redirect_to: try-catch-and-rescue --- - -Elixir has three error mechanisms: errors, throws, and exits. In this chapter, we will explore each of them and include remarks about when each should be used. - -## Errors - -Errors (or *exceptions*) are used when exceptional things happen in the code. A sample error can be retrieved by trying to add a number to an atom: - -```elixir -iex> :foo + 1 -** (ArithmeticError) bad argument in arithmetic expression - :erlang.+(:foo, 1) -``` - -A runtime error can be raised any time by using `raise/1`: - -```elixir -iex> raise "oops" -** (RuntimeError) oops -``` - -Other errors can be raised with `raise/2` passing the error name and a list of keyword arguments: - -```elixir -iex> raise ArgumentError, message: "invalid argument foo" -** (ArgumentError) invalid argument foo -``` - -You can also define your own errors by creating a module and using the `defexception` construct inside it. This way, you'll create an error with the same name as the module it's defined in. The most common case is to define a custom exception with a message field: - -```elixir -iex> defmodule MyError do -iex> defexception message: "default message" -iex> end -iex> raise MyError -** (MyError) default message -iex> raise MyError, message: "custom message" -** (MyError) custom message -``` - -Errors can be **rescued** using the `try/rescue` construct: - -```elixir -iex> try do -...> raise "oops" -...> rescue -...> e in RuntimeError -> e -...> end -%RuntimeError{message: "oops"} -``` - -The example above rescues the runtime error and returns the exception itself, which is then printed in the `iex` session. - -If you don't have any use for the exception, you don't have to pass a variable to `rescue`: - -```elixir -iex> try do -...> raise "oops" -...> rescue -...> RuntimeError -> "Error!" -...> end -"Error!" -``` - -In practice, Elixir developers rarely use the `try/rescue` construct. For example, many languages would force you to rescue an error when a file cannot be opened successfully. Elixir instead provides a `File.read/1` function which returns a tuple containing information about whether the file was opened successfully: - -```elixir -iex> File.read("hello") -{:error, :enoent} -iex> File.write("hello", "world") -:ok -iex> File.read("hello") -{:ok, "world"} -``` - -There is no `try/rescue` here. In case you want to handle multiple outcomes of opening a file, you can use pattern matching using the `case` construct: - -```elixir -iex> case File.read("hello") do -...> {:ok, body} -> IO.puts("Success: #{body}") -...> {:error, reason} -> IO.puts("Error: #{reason}") -...> end -``` - -For the cases where you do expect a file to exist (and the lack of that file is truly an *error*) you may use `File.read!/1`: - -```elixir -iex> File.read!("unknown") -** (File.Error) could not read file "unknown": no such file or directory - (elixir) lib/file.ex:272: File.read!/1 -``` - -At the end of the day, it's up to your application to decide if an error while opening a file is exceptional or not. That's why Elixir doesn't impose exceptions on `File.read/1` and many other functions. Instead, it leaves it up to the developer to choose the best way to proceed. - -Many functions in the standard library follow the pattern of having a counterpart that raises an exception instead of returning tuples to match against. The convention is to create a function (`foo`) which returns `{:ok, result}` or `{:error, reason}` tuples and another function (`foo!`, same name but with a trailing `!`) that takes the same arguments as `foo` but which raises an exception if there's an error. `foo!` should return the result (not wrapped in a tuple) if everything goes fine. The [`File` module](https://hexdocs.pm/elixir/File.html) is a good example of this convention. - -### Fail fast / Let it crash - -One saying that is common in the Erlang community, as well as Elixir's, is "fail fast" / "let it crash". The idea behind let it crash is that, in case something _unexpected_ happens, it is best to let the exception happen, without rescuing it. - -It is important to emphasize the word _unexpected_. For example, imagine you are building a script to process files. Your script receives filenames as inputs. It is expected that users may make mistakes and provide unknown filenames. In this scenario, while you could use `File.read!/1` to read files and let it crash in case of invalid filenames, it probably makes more sense to use `File.read/1` and provide users of your script with a clear and precise feedback of what went wrong. - -Other times, you may fully expect a certain file to exist, and in case it does not, it means something terribly wrong has happened elsewhere. In such cases, `File.read!/1` is all you need. - -The second approach also works because, as discussed in the [Processes](/getting-started/processes.html) chapter, all Elixir code runs inside processes that are isolated and don't share anything by default. Therefore, an unhandled exception in a process will never crash or corrupt the state of another process. This allows us to define supervisor processes, which are meant to observe when a process terminates unexpectedly, and start a new one in its place. - -At the end of the day, "fail fast" / "let it crash" is a way of saying that, when something _unexpected_ happens, it is best to start from scratch within a new process, freshly started by a supervisor, rather than blindly trying to rescue all possible error cases without the full context of when and how they can happen. - -### Reraise - -While we generally avoid using `try/rescue` in Elixir, one situation where we may want to use such constructs is for observability/monitoring. Imagine you want to log that something went wrong, you could do: - -```elixir -try do - ... some code ... -rescue - e -> - Logger.error(Exception.format(:error, e, __STACKTRACE__)) - reraise e, __STACKTRACE__ -end -``` - -In the example above, we rescued the exception, logged it, and then re-raised it. We use the `__STACKTRACE__` construct both when formatting the exception and when re-raising. This ensures we reraise the exception as is, without changing value or its origin. - -Generally speaking, we take errors in Elixir literally: they are reserved for unexpected and/or exceptional situations, never for controlling the flow of our code. In case you actually need flow control constructs, *throws* should be used. That's what we are going to see next. - -## Throws - -In Elixir, a value can be thrown and later be caught. `throw` and `catch` are reserved for situations where it is not possible to retrieve a value unless by using `throw` and `catch`. - -Those situations are quite uncommon in practice except when interfacing with libraries that do not provide a proper API. For example, let's imagine the `Enum` module did not provide any API for finding a value and that we needed to find the first multiple of 13 in a list of numbers: - -```elixir -iex> try do -...> Enum.each(-50..50, fn x -> -...> if rem(x, 13) == 0, do: throw(x) -...> end) -...> "Got nothing" -...> catch -...> x -> "Got #{x}" -...> end -"Got -39" -``` - -Since `Enum` *does* provide a proper API, in practice `Enum.find/2` is the way to go: - -```elixir -iex> Enum.find(-50..50, &(rem(&1, 13) == 0)) --39 -``` - -## Exits - -All Elixir code runs inside processes that communicate with each other. When a process dies of "natural causes" (e.g., unhandled exceptions), it sends an `exit` signal. A process can also die by explicitly sending an `exit` signal: - -```elixir -iex> spawn_link(fn -> exit(1) end) -** (EXIT from #PID<0.56.0>) shell process exited with reason: 1 -``` - -In the example above, the linked process died by sending an `exit` signal with a value of 1. The Elixir shell automatically handles those messages and prints them to the terminal. - -`exit` can also be "caught" using `try/catch`: - -```elixir -iex> try do -...> exit("I am exiting") -...> catch -...> :exit, _ -> "not really" -...> end -"not really" -``` - -Using `try/catch` is already uncommon and using it to catch exits is even rarer. - -`exit` signals are an important part of the fault tolerant system provided by the Erlang VM. Processes usually run under supervision trees which are themselves processes that listen to `exit` signals from the supervised processes. Once an `exit` signal is received, the supervision strategy kicks in and the supervised process is restarted. - -It is exactly this supervision system that makes constructs like `try/catch` and `try/rescue` so uncommon in Elixir. Instead of rescuing an error, we'd rather "fail fast" since the supervision tree will guarantee our application will go back to a known initial state after the error. - -## After - -Sometimes it's necessary to ensure that a resource is cleaned up after some action that could potentially raise an error. The `try/after` construct allows you to do that. For example, we can open a file and use an `after` clause to close it -- even if something goes wrong: - -```elixir -iex> {:ok, file} = File.open("sample", [:utf8, :write]) -iex> try do -...> IO.write(file, "olá") -...> raise "oops, something went wrong" -...> after -...> File.close(file) -...> end -** (RuntimeError) oops, something went wrong -``` - -The `after` clause will be executed regardless of whether or not the tried block succeeds. Note, however, that if a linked process exits, -this process will exit and the `after` clause will not get run. Thus `after` provides only a soft guarantee. Luckily, files in Elixir are also linked to the current processes and therefore they will always get closed if the current process crashes, independent of the -`after` clause. You will find the same to be true for other resources like ETS tables, sockets, ports and more. - -Sometimes you may want to wrap the entire body of a function in a `try` construct, often to guarantee some code will be executed afterwards. In such cases, Elixir allows you to omit the `try` line: - -```elixir -iex> defmodule RunAfter do -...> def without_even_trying do -...> raise "oops" -...> after -...> IO.puts "cleaning up!" -...> end -...> end -iex> RunAfter.without_even_trying -cleaning up! -** (RuntimeError) oops -``` - -Elixir will automatically wrap the function body in a `try` whenever one of `after`, `rescue` or `catch` is specified. - -## Else - -If an `else` block is present, it will match on the results of the `try` block whenever the `try` block finishes without a throw or an error. - -```elixir -iex> x = 2 -2 -iex> try do -...> 1 / x -...> rescue -...> ArithmeticError -> -...> :infinity -...> else -...> y when y < 1 and y > -1 -> -...> :small -...> _ -> -...> :large -...> end -:small -``` - -Exceptions in the `else` block are not caught. If no pattern inside the `else` block matches, an exception will be raised; this exception is not caught by the current `try/catch/rescue/after` block. - -## Variables scope - -Similar to `case`, `cond`, `if` and other constructs in Elixir, variables defined inside `try/catch/rescue/after` blocks do not leak to the outer context. In other words, this code is invalid: - -```elixir -iex> try do -...> raise "fail" -...> what_happened = :did_not_raise -...> rescue -...> _ -> what_happened = :rescued -...> end -iex> what_happened -** (CompileError) undefined variable "what_happened" -``` - -Instead, you should return the value of the `try` expression: - -```elixir -iex> what_happened = -...> try do -...> raise "fail" -...> :did_not_raise -...> rescue -...> _ -> :rescued -...> end -iex> what_happened -:rescued -``` - -Furthermore, variables defined in the do-block of `try` are not available inside `rescue/after/else` either. This is because the `try` block may fail at any moment and therefore the variables may have never been bound in the first place. So this also isn't valid: - -```elixir -iex> try do -...> raise "fail" -...> another_what_happened = :did_not_raise -...> rescue -...> _ -> another_what_happened -...> end -** (CompileError) undefined variable "another_what_happened" -``` - -This finishes our introduction to `try`, `catch`, and `rescue`. You will find they are used less frequently in Elixir than in other languages. diff --git a/getting-started/typespecs-and-behaviours.markdown b/getting-started/typespecs-and-behaviours.markdown index c931ba592..af6ce2592 100644 --- a/getting-started/typespecs-and-behaviours.markdown +++ b/getting-started/typespecs-and-behaviours.markdown @@ -1,225 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Typespecs and behaviours +layout: redirect +sitemap: false +redirect_to: typespecs --- - -## Types and specs - -Elixir is a dynamically typed language, so all types in Elixir are checked at runtime. Nonetheless, Elixir comes with **typespecs**, which are a notation used for: - -1. declaring typed function signatures (also called specifications); -2. declaring custom types. - -Typespecs are useful for code clarity and static code analysis (for example, Erlang's [Dialyzer](http://www.erlang.org/doc/man/dialyzer.html) tool). - -### Function specifications - -Elixir provides many [built-in types](https://hexdocs.pm/elixir/typespecs.html#built-in-types), such as `integer` or `pid`, that can be used to document function signatures. For example, the `round/1` function, which rounds a number to its nearest integer. As you can see [in its documentation](https://hexdocs.pm/elixir/Kernel.html#round/1), `round/1`'s typed signature is written as: - -```elixir -round(number()) :: integer() -``` - -The syntax is to put the function and its input on the left side of the `::` and the return value's type on the right side. Be aware that types *may* omit parentheses. - -In code, function specs are written with the `@spec` attribute, typically placed immediately before the function definition. Specs can describe both public and private functions. The function name and the number of arguments used in the `@spec` attribute must match the function it describes. - -Elixir supports compound types as well. For example, a list of integers has type `[integer]`, or maps that define keys and types (see the example below). - -You can see all the built-in types provided by Elixir [in the typespecs docs](https://hexdocs.pm/elixir/typespecs.html). - -### Defining custom types - -Defining custom types can help communicate the intention of your code and increase its readability. Custom types can be defined within modules via the `@type` attribute. - -A simple example of a custom type implementation is to provide a more descriptive alias of an existing type. For example, defining `year` as a type makes your function specs more descriptive than if they had simply used `integer`: - -```elixir -defmodule Person do - @typedoc """ - A 4 digit year, e.g. 1984 - """ - @type year :: integer - - @spec current_age(year) :: integer - def current_age(year_of_birth), do: # implementation -end -``` - -The `@typedoc` attribute, similar to the `@doc` and `@moduledoc` attributes, is used to document custom types. - -You may define compound custom types, e.g. maps: - -```elixir -@type error_map :: %{ - message: String.t, - line_number: integer -} -``` - -[Structs](https://elixir-lang.org/getting-started/structs.html) offer similar functionality. - -Let's look at another example to understand how to define more complex types. Say we have a `LousyCalculator` module, which performs the usual arithmetic operations (sum, product, and so on) but, instead of returning numbers, it returns tuples with the result of an operation as the first element and a random remark as the second element. - -```elixir -defmodule LousyCalculator do - @spec add(number, number) :: {number, String.t} - def add(x, y), do: {x + y, "You need a calculator to do that?!"} - - @spec multiply(number, number) :: {number, String.t} - def multiply(x, y), do: {x * y, "Jeez, come on!"} -end -``` - -Tuples are a compound type and each tuple is identified by the types inside it (in this case, a number and a string). To understand why `String.t` is not written as `string`, have another look at the [typespecs docs](https://hexdocs.pm/elixir/typespecs.html#the-string-type). - -Defining function specs this way works, but we end up repeating the type `{number, String.t}` over and over. We can use the `@type` attribute to declare our own custom type and cut down on the repetition. - -```elixir -defmodule LousyCalculator do - @typedoc """ - Just a number followed by a string. - """ - @type number_with_remark :: {number, String.t} - - @spec add(number, number) :: number_with_remark - def add(x, y), do: {x + y, "You need a calculator to do that?"} - - @spec multiply(number, number) :: number_with_remark - def multiply(x, y), do: {x * y, "It is like addition on steroids."} -end -``` - -Custom types defined through `@type` are exported and are available outside the module they're defined in: - -```elixir -defmodule QuietCalculator do - @spec add(number, number) :: number - def add(x, y), do: make_quiet(LousyCalculator.add(x, y)) - - @spec make_quiet(LousyCalculator.number_with_remark) :: number - defp make_quiet({num, _remark}), do: num -end -``` - -If you want to keep a custom type private, you can use the `@typep` attribute instead of `@type`. The visibility also affects whether or not documentation will be generated by tools like [ExDoc](https://hexdocs.pm/ex_doc/readme.html), Elixir's documentation generator. - -### Static code analysis - -Typespecs are not only useful to developers as additional documentation. The Erlang tool [Dialyzer](http://www.erlang.org/doc/man/dialyzer.html), for example, uses typespecs in order to perform static analysis of code. That's why, in the `QuietCalculator` example, we wrote a spec for the `make_quiet/1` function even though it was defined as a private function. - -## Behaviours - -Many modules share the same public API. Take a look at [Plug](https://github.com/elixir-lang/plug), which, as its description states, is a **specification** for composable modules in web applications. Each *plug* is a module which **has to** implement at least two public functions: `init/1` and `call/2`. - -Behaviours provide a way to: - -* define a set of functions that have to be implemented by a module; -* ensure that a module implements all the functions in that set. - -If you have to, you can think of behaviours like interfaces in object oriented languages like Java: a set of function signatures that a module has to implement. Unlike Protocols, behaviours are independent of the type/data. - -### Defining behaviours - -Say we want to implement a bunch of parsers, each parsing structured data: for example, a JSON parser and a MessagePack parser. Each of these two parsers will *behave* the same way: both will provide a `parse/1` function and an `extensions/0` function. The `parse/1` function will return an Elixir representation of the structured data, while the `extensions/0` function will return a list of file extensions that can be used for each type of data (e.g., `.json` for JSON files). - -We can create a `Parser` behaviour: - -```elixir -defmodule Parser do - @doc """ - Parses a string. - """ - @callback parse(String.t) :: {:ok, term} | {:error, atom} - - @doc """ - Lists all supported file extensions. - """ - @callback extensions() :: [String.t] -end -``` - -Modules adopting the `Parser` behaviour will have to implement all the functions defined with the `@callback` attribute. As you can see, `@callback` expects a function name but also a function specification like the ones used with the `@spec` attribute we saw above. Also note that the `term` type is used to represent the parsed value. In Elixir, the `term` type is a shortcut to represent any type. - -### Implementing behaviours - -Implementing a behaviour is straightforward: - -```elixir -defmodule JSONParser do - @behaviour Parser - - @impl Parser - def parse(str), do: {:ok, "some json " <> str} # ... parse JSON - - @impl Parser - def extensions, do: [".json"] -end -``` - -```elixir -defmodule CSVParser do - @behaviour Parser - - @impl Parser - def parse(str), do: {:ok, "some csv " <> str} # ... parse CSV - - @impl Parser - def extensions, do: [".csv"] -end -``` - -If a module adopting a given behaviour doesn't implement one of the callbacks required by that behaviour, a compile-time warning will be generated. - -Furthermore, with `@impl` you can also make sure that you are implementing the **correct** callbacks from the given behaviour in an explicit manner. For example, the following parser implements both `parse` and `extensions`. However, thanks to a typo, `BADParser` is implementing `parse/0` instead of `parse/1`. - -```elixir -defmodule BADParser do - @behaviour Parser - - @impl Parser - def parse, do: {:ok, "something bad"} - - @impl Parser - def extensions, do: ["bad"] -end -``` - -This code generates a warning letting you know that you are mistakenly implementing `parse/0` instead of `parse/1`. -You can read more about `@impl` in the [module documentation](https://hexdocs.pm/elixir/main/Module.html#module-impl). - -### Using behaviours - -Behaviours are useful because you can pass modules around as arguments and you can then _call back_ to any of the functions specified in the behaviour. For example, we can have a function that receives a filename, several parsers, and parses the file based on its extension: - -```elixir -@spec parse_path(Path.t(), [module()]) :: {:ok, term} | {:error, atom} -def parse_path(filename, parsers) do - with {:ok, ext} <- parse_extension(filename), - {:ok, parser} <- find_parser(ext, parsers), - {:ok, contents} <- File.read(filename) do - parser.parse(contents) - end -end - -defp parse_extension(filename) do - if ext = Path.extname(filename) do - {:ok, ext} - else - {:error, :no_extension} - end -end - -defp find_parser(ext, parsers) do - if parser = Enum.find(parsers, fn parser -> ext in parser.extensions() end) do - {:ok, parser} - else - {:error, :no_matching_parser} - end -end -``` - -Of course, you could also invoke any parser directly: `CSVParser.parse(...)`. - -Note you don't need to define a behaviour in order to dynamically dispatch on a module, but those features often go hand in hand. diff --git a/getting-started/where-to-go-next.markdown b/getting-started/where-to-go-next.markdown index 2a62b0acc..c50365d75 100644 --- a/getting-started/where-to-go-next.markdown +++ b/getting-started/where-to-go-next.markdown @@ -1,43 +1,5 @@ --- -section: getting-started -layout: getting-started -title: Where to go next +layout: redirect +sitemap: false +redirect_to: introduction --- - -Eager to learn more? Keep reading! - -## Build your first Elixir project - -In order to get your first project started, Elixir ships with a build tool called Mix. You can get your new project started by running: - -```console -$ mix new path/to/new/project -``` - -We have written a guide that covers how to build an Elixir application, with its own supervision tree, configuration, tests, and more. The application works as a distributed key-value store where we organize key-value pairs into buckets and distribute those buckets across multiple nodes: - -* [Mix and OTP](/getting-started/mix-otp/introduction-to-mix.html) - -If you are planning to write your first library for other developers to use, don't forget to read our [Library Guidelines](https://hexdocs.pm/elixir/library-guidelines.html). - -## Meta-programming - -Elixir is an extensible and very customizable programming language thanks to its meta-programming support. Most meta-programming in Elixir is done through macros, which are very useful in several situations, especially for writing DSLs. We have written a short guide that explains the basic mechanisms behind macros, shows how to write macros, and how to use macros to create DSLs: - -* [Meta-programming in Elixir](/getting-started/meta/quote-and-unquote.html) - -## Community and other resources - -We have a [Learning](/learning.html) section that suggests books, screencasts, and other resources for learning Elixir and exploring the ecosystem. There are also plenty of Elixir resources out there, like conference talks, open source projects, and other learning material produced by the community. - -Don't forget that you can also check the [source code of Elixir itself](https://github.com/elixir-lang/elixir), which is mostly written in Elixir (mainly the `lib` directory), or [explore Elixir's documentation](/docs.html). - -## A byte of Erlang - -Elixir runs on the Erlang Virtual Machine and, sooner or later, an Elixir developer will want to interface with existing Erlang libraries. Here's a list of online resources that cover Erlang's fundamentals and its more advanced features: - -* This [Erlang Syntax: A Crash Course](/crash-course.html) provides a concise intro to Erlang's syntax. Each code snippet is accompanied by equivalent code in Elixir. This is an opportunity for you to not only get some exposure to Erlang's syntax but also review some of the things you have learned in this guide. - -* Erlang's official website has a short [tutorial](https://www.erlang.org/course). There is a chapter with pictures briefly describing Erlang's primitives for [concurrent programming](https://www.erlang.org/course/concurrent_programming.html). - -* [Learn You Some Erlang for Great Good!](http://learnyousomeerlang.com/) is an excellent introduction to Erlang, its design principles, standard library, best practices, and much more. Once you have read through the crash course mentioned above, you'll be able to safely skip the first couple of chapters in the book that mostly deal with the syntax. When you reach [The Hitchhiker's Guide to Concurrency](http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency) chapter, that's where the real fun starts. diff --git a/index.html b/index.html index 6d733fda0..530c08aab 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,7 @@
    Elixir is a dynamic, functional language for building scalable and maintaina %{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1} {% endhighlight %} -

    Check our getting started guide and our learning page to begin your journey with Elixir. Or keep scrolling for an overview of the platform, language, and tools. +

    Check our Getting Started guide and our Learning page to begin your journey with Elixir. Or keep scrolling for an overview of the platform, language, and tools.

    @@ -195,7 +195,7 @@

    Erlang compatible

    <<192, 223, 75, 115, ...>> {% endhighlight %} -

    To learn more about Elixir, check our getting started guide. We also have online documentation available and a Crash Course for Erlang developers.

    +

    To learn more about Elixir, check our Getting Started guide. We also have online documentation available and a Crash Course for Erlang developers.

    diff --git a/learning.markdown b/learning.markdown index d4d9eaa38..a666cbc0c 100644 --- a/learning.markdown +++ b/learning.markdown @@ -8,7 +8,7 @@ layout: default {% include toc.html %} -Our website provides a [Getting Started guide](/getting-started/introduction.html) to learn more about Elixir's foundations. Later on, it explores how to build projects with [Mix and OTP](/getting-started/mix-otp/introduction-to-mix.html). Elixir also includes [extensive API documentation](/docs.html). +Our website provides a [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more about Elixir's foundations. Later on, it explores how to build projects with [Mix and OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html). Elixir also includes [extensive API documentation](/docs.html). Outside of our website, the Elixir Community has also produced plenty of resources to learn the language from different backgrounds and other perspectives. We list some of them below. We are sure you will find a resource that suits your pace and goals. From d552b7bbf02676c8fa738fc6784c5e43d721231c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 31 Oct 2023 13:22:42 +0100 Subject: [PATCH 1637/1761] Bring guides link back --- _includes/top.html | 1 + learning.markdown | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/_includes/top.html b/_includes/top.html index 3cdd10c6f..4c5b8c31c 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -38,6 +38,7 @@ + diff --git a/learning.markdown b/learning.markdown index a666cbc0c..4a932df78 100644 --- a/learning.markdown +++ b/learning.markdown @@ -8,9 +8,9 @@ layout: default {% include toc.html %} -Our website provides a [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more about Elixir's foundations. Later on, it explores how to build projects with [Mix and OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html). Elixir also includes [extensive API documentation](/docs.html). +Elixir's official documentation includes a [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more about Elixir's foundations. Later on, it explores how to build projects with [Mix and OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html). Elixir also includes [extensive API documentation](/docs.html). -Outside of our website, the Elixir Community has also produced plenty of resources to learn the language from different backgrounds and other perspectives. We list some of them below. We are sure you will find a resource that suits your pace and goals. +The Elixir Community has also produced plenty of resources to learn the language from different backgrounds and other perspectives. We list some of them below. We are sure you will find a resource that suits your pace and goals. ## Books From 1c4ff69be1f7403e2e3a91f22d2c390f200a92d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 21 Nov 2023 10:17:22 +0800 Subject: [PATCH 1638/1761] Add missing redirect, closes #1738 --- .../mix-otp/dependencies-and-umbrella-apps.markdown | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 getting-started/mix-otp/dependencies-and-umbrella-apps.markdown diff --git a/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown new file mode 100644 index 000000000..946955ce2 --- /dev/null +++ b/getting-started/mix-otp/dependencies-and-umbrella-apps.markdown @@ -0,0 +1,5 @@ +--- +layout: redirect +sitemap: false +redirect_to: dependencies-and-umbrella-projects +--- From dafcb10c63ad3892d880f6b6e9b7fedb6e5432f5 Mon Sep 17 00:00:00 2001 From: Panagiotis Nezis Date: Tue, 21 Nov 2023 15:24:03 +0200 Subject: [PATCH 1639/1761] Fix broken links (#1741) --- _posts/2016-01-03-elixir-v1-2-0-released.markdown | 2 +- _posts/2016-06-21-elixir-v1-3-0-released.markdown | 2 +- _posts/2017-01-05-elixir-v1-4-0-released.markdown | 2 +- _posts/2017-07-25-elixir-v1-5-0-released.markdown | 2 +- _posts/2018-01-17-elixir-v1-6-0-released.markdown | 2 +- _posts/2018-07-25-elixir-v1-7-0-released.markdown | 2 +- _posts/2019-01-14-elixir-v1-8-0-released.markdown | 2 +- _posts/2020-01-27-elixir-v1-10-0-released.markdown | 2 +- _posts/2020-10-06-elixir-v1-11-0-released.markdown | 2 +- _posts/2021-05-19-elixir-v1-12-0-released.markdown | 2 +- _posts/2021-12-03-elixir-v1-13-0-released.markdown | 2 +- _posts/2022-09-01-elixir-v1-14-0-released.markdown | 2 +- _posts/2023-06-19-elixir-v1-15-0-released.markdown | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/_posts/2016-01-03-elixir-v1-2-0-released.markdown b/_posts/2016-01-03-elixir-v1-2-0-released.markdown index 303643f7a..71c49eb70 100644 --- a/_posts/2016-01-03-elixir-v1-2-0-released.markdown +++ b/_posts/2016-01-03-elixir-v1-2-0-released.markdown @@ -112,6 +112,6 @@ These are great additions on top of the faster compilation times we have achieve With Rebar 3 gaining more adoption in the Erlang community, Mix is now able to fetch and compile Rebar 3 dependencies. This feature is currently experimental and therefore opt-in: if you have a Rebar 3 dependency, you can ask Mix to use Rebar 3 to compile it by passing the `manager: :rebar3` option. Once configured, Mix will prompt you to install Rebar 3 if it is not yet available. -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.2.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.2.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy coding! diff --git a/_posts/2016-06-21-elixir-v1-3-0-released.markdown b/_posts/2016-06-21-elixir-v1-3-0-released.markdown index 680a1d96a..2f0433320 100644 --- a/_posts/2016-06-21-elixir-v1-3-0-released.markdown +++ b/_posts/2016-06-21-elixir-v1-3-0-released.markdown @@ -282,6 +282,6 @@ By restricting hierarchies in favor of named setups, it is straight-forward for ## Summing up -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.3.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.3.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy coding! diff --git a/_posts/2017-01-05-elixir-v1-4-0-released.markdown b/_posts/2017-01-05-elixir-v1-4-0-released.markdown index 46a85b0c2..902063056 100644 --- a/_posts/2017-01-05-elixir-v1-4-0-released.markdown +++ b/_posts/2017-01-05-elixir-v1-4-0-released.markdown @@ -129,6 +129,6 @@ It is also possible to install escripts and archives by providing a Git/GitHub r ## Summing up -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.4.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.4.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy coding! diff --git a/_posts/2017-07-25-elixir-v1-5-0-released.markdown b/_posts/2017-07-25-elixir-v1-5-0-released.markdown index ed62d55fc..90773f262 100644 --- a/_posts/2017-07-25-elixir-v1-5-0-released.markdown +++ b/_posts/2017-07-25-elixir-v1-5-0-released.markdown @@ -175,4 +175,4 @@ Overall, using `@impl` has the following advantages: The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.5.0). There are many other exciting changes, such as compiler enhancements that reduces compilation times by 10%-15% on averages. When taken into account with the compiler improvements in Erlang/OTP 20 itself, some applications have seen gains up to 30% in compilation times. -Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. diff --git a/_posts/2018-01-17-elixir-v1-6-0-released.markdown b/_posts/2018-01-17-elixir-v1-6-0-released.markdown index d70970c20..59c598dad 100644 --- a/_posts/2018-01-17-elixir-v1-6-0-released.markdown +++ b/_posts/2018-01-17-elixir-v1-6-0-released.markdown @@ -153,4 +153,4 @@ The full list of changes is available in our [release notes](https://github.com/ Work on Elixir v1.7 has already started. We still welcome developers to try out the [previously announced StreamData library](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/), that aims to bring data generation and property-based testing to Elixir. The other [features scheduled for v1.7 can be found in the issues tracker](https://github.com/elixir-lang/elixir/issues). -Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. diff --git a/_posts/2018-07-25-elixir-v1-7-0-released.markdown b/_posts/2018-07-25-elixir-v1-7-0-released.markdown index 311e4b083..376258993 100644 --- a/_posts/2018-07-25-elixir-v1-7-0-released.markdown +++ b/_posts/2018-07-25-elixir-v1-7-0-released.markdown @@ -153,4 +153,4 @@ We have also seen important developments in other areas not directly related to Finally, don't forget [ElixirConf US](https://elixirconf.com/) is coming soon, in Bellevue, WA, September 4-7. Last year my keynote focused on the last 5 years with Elixir. This year we are ready to look into the 5 years ahead. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. diff --git a/_posts/2019-01-14-elixir-v1-8-0-released.markdown b/_posts/2019-01-14-elixir-v1-8-0-released.markdown index 25ac7600b..d3783bb9f 100644 --- a/_posts/2019-01-14-elixir-v1-8-0-released.markdown +++ b/_posts/2019-01-14-elixir-v1-8-0-released.markdown @@ -77,6 +77,6 @@ There is only one last major feature planned for upcoming Elixir versions, which During [my keynote at ElixirConf 2018 US](https://www.youtube.com/watch?v=suOzNeMJXl0), I talked about the next five years for Elixir and much of the emphasis is put on the community. Elixir was designed to be an extensible language and therefore the work on the language itself is meant to reduce with time, which we have seen in the last two releases. We trust the community to continue building on this solid foundation, bringing new challenges to the ecosystem and taking the language to new domains. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Your turn. :) \ No newline at end of file diff --git a/_posts/2020-01-27-elixir-v1-10-0-released.markdown b/_posts/2020-01-27-elixir-v1-10-0-released.markdown index 01b411e7d..baa133f93 100644 --- a/_posts/2020-01-27-elixir-v1-10-0-released.markdown +++ b/_posts/2020-01-27-elixir-v1-10-0-released.markdown @@ -165,6 +165,6 @@ Finally, this release also adds two new guards, `is_struct/1` and `is_map_key/2` To learn what else is new, you can read the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.10.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Have fun! diff --git a/_posts/2020-10-06-elixir-v1-11-0-released.markdown b/_posts/2020-10-06-elixir-v1-11-0-released.markdown index 672c92d99..8669efb7c 100644 --- a/_posts/2020-10-06-elixir-v1-11-0-released.markdown +++ b/_posts/2020-10-06-elixir-v1-11-0-released.markdown @@ -219,6 +219,6 @@ Finally, to bring visibility to the compiler tracking improvements described in For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.11.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Have fun! diff --git a/_posts/2021-05-19-elixir-v1-12-0-released.markdown b/_posts/2021-05-19-elixir-v1-12-0-released.markdown index a920211a6..6b547bc9e 100644 --- a/_posts/2021-05-19-elixir-v1-12-0-released.markdown +++ b/_posts/2021-05-19-elixir-v1-12-0-released.markdown @@ -96,6 +96,6 @@ The `Code` module got a [`cursor_context/2`](https://hexdocs.pm/elixir/1.12/Code The EEx application has also been extended to provide metadata on text segments. This has enabled the Surface and Phoenix LiveView teams to implement [a new template language called HEEx](https://github.com/phoenixframework/phoenix_live_view/pull/1440), which validates both HTML and EEx. Finally, the `Registry` module supports the `:compressed` option, which is useful for GraphQL applications managing hundreds of thousands of subscriptions via [Absinthe](http://absinthe-graphql.org/). -For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.12.0). Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.12.0). Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Have fun! diff --git a/_posts/2021-12-03-elixir-v1-13-0-released.markdown b/_posts/2021-12-03-elixir-v1-13-0-released.markdown index 0f3a64ade..efd630628 100644 --- a/_posts/2021-12-03-elixir-v1-13-0-released.markdown +++ b/_posts/2021-12-03-elixir-v1-13-0-released.markdown @@ -147,6 +147,6 @@ The `Code` module has also been augmented with two functions: [`Code.string_to_q For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.13.0). You can also [watch my ElixirConf 2021 keynote about Elixir v1.13](https://youtu.be/ydjx2kKHzrM) to learn more. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Have fun! diff --git a/_posts/2022-09-01-elixir-v1-14-0-released.markdown b/_posts/2022-09-01-elixir-v1-14-0-released.markdown index cdaa6b642..cdaaa6ae9 100644 --- a/_posts/2022-09-01-elixir-v1-14-0-released.markdown +++ b/_posts/2022-09-01-elixir-v1-14-0-released.markdown @@ -186,6 +186,6 @@ Finally, we have improved the `Inspect` protocol for structs so that fields are For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.14.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy debugging! diff --git a/_posts/2023-06-19-elixir-v1-15-0-released.markdown b/_posts/2023-06-19-elixir-v1-15-0-released.markdown index 51a2920a3..e42768803 100644 --- a/_posts/2023-06-19-elixir-v1-15-0-released.markdown +++ b/_posts/2023-06-19-elixir-v1-15-0-released.markdown @@ -163,7 +163,7 @@ For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.15.0). Check [the Install section](/install.html) to get Elixir installed and -read our [Getting Started guide](http://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) +read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. Happy compiling! From 89e644965c577349321acdc605b48606b693c558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 22 Dec 2023 10:18:14 +0100 Subject: [PATCH 1640/1761] More redirects --- getting-started/modules.markdown | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 getting-started/modules.markdown diff --git a/getting-started/modules.markdown b/getting-started/modules.markdown new file mode 100644 index 000000000..263315f14 --- /dev/null +++ b/getting-started/modules.markdown @@ -0,0 +1,5 @@ +--- +layout: redirect +sitemap: false +redirect_to: modules-and-functions +--- From 82cb637812c6c80645dbd80dadbc7a947681048c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 22 Dec 2023 17:53:57 +0100 Subject: [PATCH 1641/1761] Elixir v1.16.0 announcement (#1742) --- _includes/search.html | 32 ++- ...023-12-22-elixir-v1-16-0-released.markdown | 188 ++++++++++++++++++ 2 files changed, 212 insertions(+), 8 deletions(-) create mode 100644 _posts/2023-12-22-elixir-v1-16-0-released.markdown diff --git a/_includes/search.html b/_includes/search.html index 2ab39ede8..7eda15f00 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,15 +1,31 @@ diff --git a/_posts/2023-12-22-elixir-v1-16-0-released.markdown b/_posts/2023-12-22-elixir-v1-16-0-released.markdown new file mode 100644 index 000000000..cc24ba15a --- /dev/null +++ b/_posts/2023-12-22-elixir-v1-16-0-released.markdown @@ -0,0 +1,188 @@ +--- +layout: post +title: Elixir v1.16 released +author: José Valim +category: Releases +excerpt: Elixir v1.16 released with compiler diagnostics and extensive documentation +--- + +Elixir v1.16 has just been released. 🎉 + +The Elixir team continues improving the developer experience +via tooling, documentation, and precise feedback, while keeping +the language stable and compatible. + +The major improvements in this release is the addition of +compiler diagnostics and extensive improvements to our docs +in the forms of guides, anti-patterns, diagrams and more. + +## Code snippets in diagnostics + +Elixir v1.15 introduced a new compiler diagnostic format and +the ability to print multiple error diagnostics per compilation +(in addition to multiple warnings). + +With Elixir v1.16, we also include code snippets in exceptions +and diagnostics raised by the compiler, including ANSI coloring +on supported terminals. For example, a syntax error now includes +a pointer to where the error happened: + +``` +** (SyntaxError) invalid syntax found on lib/my_app.ex:1:17: + error: syntax error before: '*' + │ + 1 │ [1, 2, 3, 4, 5, *] + │ ^ + │ + └─ lib/my_app.ex:1:17 +``` + +For mismatched delimiters, it now shows both delimiters: + +``` +** (MismatchedDelimiterError) mismatched delimiter found on lib/my_app.ex:1:18: + error: unexpected token: ) + │ + 1 │ [1, 2, 3, 4, 5, 6) + │ │ └ mismatched closing delimiter (expected "]") + │ └ unclosed delimiter + │ + └─ lib/my_app.ex:1:18 +``` + +For unclosed delimiters, it now shows where the unclosed delimiter starts: + +``` +** (TokenMissingError) token missing on lib/my_app:8:23: + error: missing terminator: ) + │ + 1 │ my_numbers = (1, 2, 3, 4, 5, 6 + │ └ unclosed delimiter + ... + 8 │ IO.inspect(my_numbers) + │ └ missing closing delimiter (expected ")") + │ + └─ lib/my_app:8:23 +``` + +Errors and warnings diagnostics also include code snippets. +When possible, we will show precise spans, such as on undefined variables: + +``` + error: undefined variable "unknown_var" + │ +5 │ a - unknown_var + │ ^^^^^^^^^^^ + │ + └─ lib/sample.ex:5:9: Sample.foo/1 +``` + +Otherwise the whole line is underlined: + +``` +error: function names should start with lowercase characters or underscore, invalid name CamelCase + │ +3 │ def CamelCase do + │ ^^^^^^^^^^^^^^^^ + │ + └─ lib/sample.ex:3 +``` + +A huge thank you to Vinícius Müller for working on the new diagnostics. + +## Revamped documentation + +The [ExDoc](https://github.com/elixir-lang/ex_doc) package provides Elixir developers +with one of the most complete and robust documentation generator. It [supports API +references, tutorials, cheatsheets, and more](/blog/2022/12/22/cheatsheets-and-8-other-features-in-exdoc-that-improve-the-developer-experience/). + +However, because many of the language tutorials and reference documentation +were written before ExDoc, they were maintained separately as part of the +official website, separate from the language source code. With Elixir v1.16, +[we have moved our learning material to the language repository](https://hexdocs.pm/elixir/introduction.html). +This provides several benefits: + +1. Tutorials are versioned alongside their relevant Elixir version + +2. You get full-text search across all API reference and tutorials + +3. ExDoc will autolink module and function names in tutorials to their relevant API documentation + +Another feature we have incorporated in this release is the addition +of cheatsheets, starting with [a cheatsheet for the Enum module](https://hexdocs.pm/elixir/main/enum-cheat.html). +If you would like to contribute future cheatsheets to Elixir itself, +feel free to start a discussion and collect feedback on the +[Elixir Forum](https://elixirforum.com/). + +Finally, we have started enriching our documentation with +[Mermaid.js](https://mermaid.js.org/) diagrams. You can find examples +in the [GenServer](https://hexdocs.pm/elixir/GenServer.html) +and [Supervisor](https://hexdocs.pm/elixir/Supervisor.html) docs. + +Elixir has always been praised by its excellent documentation and +we are glad to continue to raise the bar for the whole ecosystem. + +## Living anti-patterns reference + +Elixir v1.16 incorporates and extends the work on [Understanding Code Smells +in Elixir Functional Language](https://github.com/lucasvegi/Elixir-Code-Smells/blob/main/etc/2023-emse-code-smells-elixir.pdf), +by Lucas Vegi and Marco Tulio Valente, from [ASERG/DCC/UFMG](http://aserg.labsoft.dcc.ufmg.br/), +into [the official documention in the form of anti-patterns](https://hexdocs.pm/elixir/what-anti-patterns.html). +Our goal is to provide examples of potential pitfalls for library and +application developers, with additional context and guidance on how +to improve their codebases. + +In earlier versions, Elixir's official reference for library authors +included a list of anti-patterns for library developers. Lucas Vegi and +Marco Tulio Valente extended and refined this list based on the existing +literature, articles, and community input (including feedback based on +their prevalence in actual codebases). + +To incorporate the anti-patterns into the language, we trimmed the list down +to keep only anti-patterns which are unambiguous and actionable, and divided +them into four categories: [code-related](https://hexdocs.pm/elixir/code-anti-patterns.html), +[design-related](https://hexdocs.pm/elixir/design-anti-patterns.html), +[process-related](https://hexdocs.pm/elixir/process-anti-patterns.html), +and [meta-programming](https://hexdocs.pm/elixir/meta-anti-patterns.html). +Then we collected more community feedback during the release candidate +period, further refining and removing unclear guidance. + +We are quite happy with the current iteration of anti-patterns but +this is just the beginning. As they become available to the whole community, +we expect to receive more input, questions, and concerns. We will +continue listening and improving, as our ultimate goal is to provide +a live reference that reflects the practices of the ecosystem, +rather than a document that is written in stone and ultimately gets +out of date. A perfect example of this is [the recent addition of +"Sending unnecessary data" anti-pattern](https://github.com/elixir-lang/elixir/pull/13194), +which was contributed by the community and describes a pitfall that may +happen across codebases. + +## Type system updates + +As we get Elixir v1.16 out of door, the Elixir team will focus on bringing +the initial core for set-theoretic types into the Elixir compiler, with the +goal of running automated analysis in patterns and guards. This is [the first +step outlined in a previous article](/blog/2023/06/22/type-system-updates-research-dev/) +and is sponsored by [Fresha](https://www.fresha.com) ([they are hiring!](https://www.fresha.com/careers/openings?department=engineering)), +[Starfish*](https://starfish.team) ([they are hiring!](https://starfish.team/jobs/experienced-elixir-developer)), +and [Dashbit](https://dashbit.co). + +## Learn more + +Other notable changes in this release are: + +* the addition of [`String.replace_invalid/2`](https://hexdocs.pm/elixir/String.html#replace_invalid/2), to help deal with invalid UTF-8 encoding + +* the addition of the `:limit` option in [`Task.yield_many/2`](https://hexdocs.pm/elixir/Task.html#yield_many/2) that limits the maximum number of tasks to yield + +* improved binary pattern matching by allowing prefix binary matches, such as `<<^prefix::binary, rest::binary>>` + +For a complete list of all changes, see the +[full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.16.0). + +Check [the Install section](/install.html) to get Elixir installed and +read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) +to learn more. + +Happy learning! From 2e4851daf3a348a2b85bdbff3657aae6cc9d551f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 22 Dec 2023 17:56:19 +0100 Subject: [PATCH 1642/1761] Release v1.16.0 --- _data/elixir-versions.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index d33a48967..16e24bc83 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,4 +1,10 @@ -stable: v1_15 +stable: v1_16 + +v1_16: + name: v1.16 + minimum_otp: 24.0 + otp_versions: [26, 25, 24] + version: 1.16.0 v1_15: name: v1.15 From 638598424be455229aa5fdffb33ceb4e153ca890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 22 Dec 2023 17:59:46 +0100 Subject: [PATCH 1643/1761] Update 2023-12-22-elixir-v1-16-0-released.markdown --- _posts/2023-12-22-elixir-v1-16-0-released.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2023-12-22-elixir-v1-16-0-released.markdown b/_posts/2023-12-22-elixir-v1-16-0-released.markdown index cc24ba15a..bffddd2a1 100644 --- a/_posts/2023-12-22-elixir-v1-16-0-released.markdown +++ b/_posts/2023-12-22-elixir-v1-16-0-released.markdown @@ -12,7 +12,7 @@ The Elixir team continues improving the developer experience via tooling, documentation, and precise feedback, while keeping the language stable and compatible. -The major improvements in this release is the addition of +The notable improvements in this release are the addition of compiler diagnostics and extensive improvements to our docs in the forms of guides, anti-patterns, diagrams and more. From 1fe6de7e1f96a4e4f08e5730c88dd885c52ec9fb Mon Sep 17 00:00:00 2001 From: Tobias Pfeiffer Date: Sat, 23 Dec 2023 09:43:38 +0100 Subject: [PATCH 1644/1761] Fix meta programming anti-patterns link (#1743) The link in the release blog post was broken, fixed with the current right one - whose name is macro not meta :) Thanks for the 1.16 release and happy holidays! --- _posts/2023-12-22-elixir-v1-16-0-released.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2023-12-22-elixir-v1-16-0-released.markdown b/_posts/2023-12-22-elixir-v1-16-0-released.markdown index bffddd2a1..46480837e 100644 --- a/_posts/2023-12-22-elixir-v1-16-0-released.markdown +++ b/_posts/2023-12-22-elixir-v1-16-0-released.markdown @@ -143,7 +143,7 @@ to keep only anti-patterns which are unambiguous and actionable, and divided them into four categories: [code-related](https://hexdocs.pm/elixir/code-anti-patterns.html), [design-related](https://hexdocs.pm/elixir/design-anti-patterns.html), [process-related](https://hexdocs.pm/elixir/process-anti-patterns.html), -and [meta-programming](https://hexdocs.pm/elixir/meta-anti-patterns.html). +and [meta-programming](https://hexdocs.pm/elixir/macro-anti-patterns.html). Then we collected more community feedback during the release candidate period, further refining and removing unclear guidance. From 1f97333215de3e7c3e162ea933a85e57a6ce3115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 26 Dec 2023 10:02:57 +0100 Subject: [PATCH 1645/1761] Fix link, closes #13209 --- getting-started/enumerables-and-streams.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getting-started/enumerables-and-streams.markdown b/getting-started/enumerables-and-streams.markdown index 93f8db8d5..b6abedae7 100644 --- a/getting-started/enumerables-and-streams.markdown +++ b/getting-started/enumerables-and-streams.markdown @@ -1,5 +1,5 @@ --- layout: redirect sitemap: false -redirect_to: enumerables-and-streams +redirect_to: enumerable-and-streams --- From 1f2b181a431a6e09267628fbb7e20e1cbf3000f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 30 Dec 2023 18:48:24 +0100 Subject: [PATCH 1646/1761] Update important-links.html --- _includes/important-links.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_includes/important-links.html b/_includes/important-links.html index ee22c3eaa..596f9a5d6 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -24,6 +24,7 @@

    Join the Community

  • #elixir on irc.libera.chat
  • Elixir Forum
  • Elixir on Discord
  • +
  • IDE/Editor support
  • Meetups around the world
  • Jobs and hiring (community wiki)
  • Events and resources (community wiki)
  • @@ -33,4 +34,4 @@

    Join the Community

    Join the Erlang Ecosystem Foundation -
    \ No newline at end of file + From 67557bc5a3ebed71e738551c6794c20ba695dce1 Mon Sep 17 00:00:00 2001 From: Wojtek Mach Date: Mon, 8 Jan 2024 21:19:50 +0100 Subject: [PATCH 1647/1761] Update 2023-09-20-strong-arrows-gradual-typing.markdown (#1744) --- _posts/2023-09-20-strong-arrows-gradual-typing.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2023-09-20-strong-arrows-gradual-typing.markdown b/_posts/2023-09-20-strong-arrows-gradual-typing.markdown index 9aa5a6997..f3b4f4556 100644 --- a/_posts/2023-09-20-strong-arrows-gradual-typing.markdown +++ b/_posts/2023-09-20-strong-arrows-gradual-typing.markdown @@ -16,7 +16,7 @@ In this article, we will discuss how the proposed type system will tackle gradua The type system we are currently researching and developing for Elixir is based on set-theoretic types, which is to say its operations are based on the fundamental set operations of union, intersection, and negation. -For example, the atom `:ok` is a value in Elixir, that can be represented by the type `:ok`. All atoms in Elixir as represented by themselves in the type system. A function that returns either `:ok` or `:error` is said to return `:ok or :error`, where the `or` operator represents the union. +For example, the atom `:ok` is a value in Elixir, that can be represented by the type `:ok`. All atoms in Elixir are represented by themselves in the type system. A function that returns either `:ok` or `:error` is said to return `:ok or :error`, where the `or` operator represents the union. The types `:ok` and `:error` are contained by the type `atom()`, which is an infinite set representing all atoms. The union of the types `:ok` and `atom()` can be written as `:ok or atom()`, and is equivalent to `atom()` (as `:ok` is a subset of `atom()`). The intersection of the types `:ok` and `atom()` can be written as `:ok and atom()`, and is equivalent to `:ok`. From b89489f449e4b409a2130408fb49fdf565e8ee7b Mon Sep 17 00:00:00 2001 From: Argo <130647255+Argo-OwO@users.noreply.github.com> Date: Sat, 20 Jan 2024 03:51:10 -0800 Subject: [PATCH 1648/1761] Fix broken link (#1745) --- ...traping-a-multiplayer-server-with-elixir-at-x-plane.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown b/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown index 7e5a3b43a..751d858dc 100644 --- a/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown +++ b/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown @@ -36,7 +36,7 @@ They eventually settled on three top contenders: Rust, Go, and Elixir. Elixir to ## Modeling multiplayer with Elixir -Ready to give Elixir a try, Tyler picked up a couple books but soon realized the language's [Getting Started guide](https://elixir-lang.orghttps://hexdocs.pm/elixir/1.16/introduction.html) provided the background he needed. He explains: "while the introductory guide covers the language constructs, the advanced guide on the website has you build an actual project with TCP connections, with the basic architectural patterns we would use in production." +Ready to give Elixir a try, Tyler picked up a couple books but soon realized the language's [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) provided the background he needed. He explains: "while the introductory guide covers the language constructs, the advanced guide on the website has you build an actual project with TCP connections, with the basic architectural patterns we would use in production." However, instead of jumping headfirst into the multiplayer server, he decided to give Elixir a try on a smaller problem. He wrote a web proxy to the National Oceanic and Atmospheric Administration (NOAA) weather services and put it in production. This experience taught him the importance of leveraging all of the instrumentation and metrics provided by the Erlang VM. They chose [AppSignal](https://www.appsignal.com/) to help consume and digest this information. From 687e7f6e2106c9fbc01f67b532aaa1f914028221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 20 Jan 2024 12:53:08 +0100 Subject: [PATCH 1649/1761] Remove version from hexdocs links --- _includes/top.html | 2 +- _layouts/redirect.html | 8 ++++---- _posts/2012-05-25-elixir-v0-5-0-released.markdown | 4 ++-- _posts/2012-08-01-elixir-v0-6-0-released.markdown | 2 +- _posts/2012-10-20-elixir-v0-7-0-released.markdown | 2 +- _posts/2012-11-18-elixir-v0-7-1-released.markdown | 2 +- _posts/2012-12-04-elixir-v0-7-2-released.markdown | 2 +- _posts/2013-01-27-elixir-v0-8-0-released.markdown | 6 +++--- _posts/2013-04-29-elixir-v0-8-2-released.markdown | 2 +- _posts/2013-05-23-elixir-v0-9-0-released.markdown | 2 +- _posts/2013-07-13-elixir-v0-10-0-released.markdown | 2 +- _posts/2013-08-08-elixir-design-goals.markdown | 2 +- _posts/2013-11-05-elixir-v0-11-0-released.markdown | 2 +- _posts/2013-12-15-elixir-v0-12-0-released.markdown | 2 +- _posts/2014-04-21-elixir-v0-13-0-released.markdown | 8 ++++---- _posts/2014-06-17-elixir-v0-14-0-released.markdown | 6 +++--- _posts/2014-08-07-elixir-v0-15-0-released.markdown | 2 +- _posts/2014-09-18-elixir-v1-0-0-released.markdown | 2 +- _posts/2016-01-03-elixir-v1-2-0-released.markdown | 4 ++-- _posts/2016-06-21-elixir-v1-3-0-released.markdown | 2 +- _posts/2017-01-05-elixir-v1-4-0-released.markdown | 2 +- _posts/2017-07-25-elixir-v1-5-0-released.markdown | 2 +- _posts/2018-01-17-elixir-v1-6-0-released.markdown | 2 +- _posts/2018-07-25-elixir-v1-7-0-released.markdown | 2 +- _posts/2019-01-14-elixir-v1-8-0-released.markdown | 2 +- _posts/2019-06-24-elixir-v1-9-0-released.markdown | 2 +- _posts/2020-01-27-elixir-v1-10-0-released.markdown | 2 +- _posts/2020-10-06-elixir-v1-11-0-released.markdown | 2 +- _posts/2021-05-19-elixir-v1-12-0-released.markdown | 2 +- ...g-a-multiplayer-server-with-elixir-at-x-plane.markdown | 2 +- _posts/2021-12-03-elixir-v1-13-0-released.markdown | 2 +- _posts/2022-09-01-elixir-v1-14-0-released.markdown | 2 +- _posts/2023-06-19-elixir-v1-15-0-released.markdown | 2 +- crash-course.markdown | 4 ++-- docs.markdown | 2 +- index.html | 4 ++-- learning.markdown | 2 +- 37 files changed, 51 insertions(+), 51 deletions(-) diff --git a/_includes/top.html b/_includes/top.html index 4c5b8c31c..13ecc8304 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -38,7 +38,7 @@ - + diff --git a/_layouts/redirect.html b/_layouts/redirect.html index bd3a2974d..464f54e82 100644 --- a/_layouts/redirect.html +++ b/_layouts/redirect.html @@ -1,14 +1,14 @@ - + - +

    Redirecting...

    - Click here if you are not redirected. - + Click here if you are not redirected. + diff --git a/_posts/2012-05-25-elixir-v0-5-0-released.markdown b/_posts/2012-05-25-elixir-v0-5-0-released.markdown index cffb98442..cc7fa3fa6 100644 --- a/_posts/2012-05-25-elixir-v0-5-0-released.markdown +++ b/_posts/2012-05-25-elixir-v0-5-0-released.markdown @@ -9,7 +9,7 @@ excerpt: We have finally released Elixir v0.5.0! This marks the first release si We have finally released [Elixir](/) v0.5.0! This marks the first release since the language was rewritten. In this blog post, we will discuss what we achieved during this time and what are the next steps! -If you don't care about any of these, you can go straight to our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html). If you do, keep on reading! +If you don't care about any of these, you can go straight to our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html). If you do, keep on reading! ## Looking back @@ -45,4 +45,4 @@ In parallel, we will improve our [documentation generation tool](https://github. Finally, we will continue improving the Standard Library. Although Elixir's goal is to rely on Erlang the most as possible, we also want to provide a small Standard Library which makes better use of Elixir semantics. For the next weeks, we will focus on improving the IO and File manipulation modules. New data types may also appear, for example, ranges come to my mind. -Check out our [home page](/) and the [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html) for more information. Welcome aboard and grab a cup of Elixir, because you are certainly going to enjoy the ride! +Check out our [home page](/) and the [getting started guide](https://hexdocs.pm/elixir/introduction.html) for more information. Welcome aboard and grab a cup of Elixir, because you are certainly going to enjoy the ride! diff --git a/_posts/2012-08-01-elixir-v0-6-0-released.markdown b/_posts/2012-08-01-elixir-v0-6-0-released.markdown index f991b57d5..355c4d991 100644 --- a/_posts/2012-08-01-elixir-v0-6-0-released.markdown +++ b/_posts/2012-08-01-elixir-v0-6-0-released.markdown @@ -24,4 +24,4 @@ Our interactive shell (IEx) also had many improvements, thanks to the Elixir dev That's it. For the next months, we will continue improving Elixir (you can see some ideas floating around in the [issues tracker](https://github.com/elixir-lang/elixir/issues)) but we will start to focus on other tools and libraries for the community. -Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/1.16/introduction.html)! +Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/introduction.html)! diff --git a/_posts/2012-10-20-elixir-v0-7-0-released.markdown b/_posts/2012-10-20-elixir-v0-7-0-released.markdown index c07d2bda3..2d41eb167 100644 --- a/_posts/2012-10-20-elixir-v0-7-0-released.markdown +++ b/_posts/2012-10-20-elixir-v0-7-0-released.markdown @@ -15,4 +15,4 @@ This release also includes some backwards incompatible changes, but the majority For more information, read out the [CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.7.0/CHANGELOG.md). -Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/1.16/introduction.html)! +Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/introduction.html)! diff --git a/_posts/2012-11-18-elixir-v0-7-1-released.markdown b/_posts/2012-11-18-elixir-v0-7-1-released.markdown index d240e8fbf..7a1ff19a0 100644 --- a/_posts/2012-11-18-elixir-v0-7-1-released.markdown +++ b/_posts/2012-11-18-elixir-v0-7-1-released.markdown @@ -15,7 +15,7 @@ During this time traveling around, we have spoken at many conferences, as [Stran In case you missed any of those conferences, [the talk I presented at Øredev is available and you can watch it now](https://vimeo.com/53221562). The slides are also available below. -If you want to hear more about Elixir at a conference or an event, please let us know. Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/1.16/introduction.html)! +If you want to hear more about Elixir at a conference or an event, please let us know. Thank you and don't forget to [give Elixir a try](https://hexdocs.pm/elixir/introduction.html)! diff --git a/_posts/2012-12-04-elixir-v0-7-2-released.markdown b/_posts/2012-12-04-elixir-v0-7-2-released.markdown index f665a19a3..c18b6ccb4 100644 --- a/_posts/2012-12-04-elixir-v0-7-2-released.markdown +++ b/_posts/2012-12-04-elixir-v0-7-2-released.markdown @@ -50,4 +50,4 @@ under some circumstances when using records. Lastly, but not least importantly, I'd like to mention that we're very excited about how the community around Elixir is building up. Thank you all for being around and supporting us! -[Learn more about Elixir](https://hexdocs.pm/elixir/1.16/introduction.html)! +[Learn more about Elixir](https://hexdocs.pm/elixir/introduction.html)! diff --git a/_posts/2013-01-27-elixir-v0-8-0-released.markdown b/_posts/2013-01-27-elixir-v0-8-0-released.markdown index b7d74b2bd..2a07d42ec 100644 --- a/_posts/2013-01-27-elixir-v0-8-0-released.markdown +++ b/_posts/2013-01-27-elixir-v0-8-0-released.markdown @@ -18,7 +18,7 @@ And applications can be started directly from the command line as well: elixir --app my_app -We have written a whole [guide chapter about creating OTP applications, supervisors and servers](https://hexdocs.pm/elixir/1.16/supervisor-and-application.html). Give it a try! +We have written a whole [guide chapter about creating OTP applications, supervisors and servers](https://hexdocs.pm/elixir/supervisor-and-application.html). Give it a try! ## Improved Unicode support @@ -70,7 +70,7 @@ When some code call the `unless` macro above, in previous Elixir versions, it wo Elixir v0.8 ensures that the `unless` macro above will expand to the same `if` macro available when quoted, guaranteeing different libraries can integrate easily without imposing hidden requirements. -You can read more about [macros in the getting started guide](https://hexdocs.pm/elixir/1.16/case-cond-and-if.html) or [go deep into the quote macro docs](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#quote/2). +You can read more about [macros in the getting started guide](https://hexdocs.pm/elixir/case-cond-and-if.html) or [go deep into the quote macro docs](https://hexdocs.pm/elixir/Kernel.SpecialForms.html#quote/2). ## A new way to manipulate pathnames @@ -100,4 +100,4 @@ We continue actively working on Elixir and this release is the [result of our ef Also, we previously announced Elixir is going to be released frequently, every 2 to 4 weeks. We have made a small detour to get v0.8.0 out of the door, but we are back to our regular schedule as of today! -[Celebrate with us and give Elixir a try](https://hexdocs.pm/elixir/1.16/introduction.html)! +[Celebrate with us and give Elixir a try](https://hexdocs.pm/elixir/introduction.html)! diff --git a/_posts/2013-04-29-elixir-v0-8-2-released.markdown b/_posts/2013-04-29-elixir-v0-8-2-released.markdown index 27f3ddc0b..18f1b2ea9 100644 --- a/_posts/2013-04-29-elixir-v0-8-2-released.markdown +++ b/_posts/2013-04-29-elixir-v0-8-2-released.markdown @@ -46,4 +46,4 @@ end You can learn more about [doctests on our documentation page](https://hexdocs.pm/ex_unit/ExUnit.DocTest.html) and get more information about our latest release [on the CHANGELOG](https://github.com/elixir-lang/elixir/blob/ed27611f48ba150404c95fe15f1d6058a4287330/CHANGELOG.md). -If you are new to Elixir, [it's easy to get started with](https://hexdocs.pm/elixir/1.16/introduction.html)! +If you are new to Elixir, [it's easy to get started with](https://hexdocs.pm/elixir/introduction.html)! diff --git a/_posts/2013-05-23-elixir-v0-9-0-released.markdown b/_posts/2013-05-23-elixir-v0-9-0-released.markdown index 4bcd06ada..289dae2dd 100644 --- a/_posts/2013-05-23-elixir-v0-9-0-released.markdown +++ b/_posts/2013-05-23-elixir-v0-9-0-released.markdown @@ -130,4 +130,4 @@ We have also many other smaller improvements: A huge thank you to our community for sending bug reports, providing bug fixes and contributing all those amazing features. And when are **you** joining us? :) -Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or [check this 30 minute video from PragProg](https://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](https://pragprog.com/book/elixir/programming-elixir). +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/introduction.html), or [check this 30 minute video from PragProg](https://www.youtube.com/watch?v=a-off4Vznjs&feature=youtu.be) or buy the beta version of [Programming Elixir](https://pragprog.com/book/elixir/programming-elixir). diff --git a/_posts/2013-07-13-elixir-v0-10-0-released.markdown b/_posts/2013-07-13-elixir-v0-10-0-released.markdown index 1936a5366..d67b366b8 100644 --- a/_posts/2013-07-13-elixir-v0-10-0-released.markdown +++ b/_posts/2013-07-13-elixir-v0-10-0-released.markdown @@ -82,4 +82,4 @@ Other notable improvements are: There are also improvements to typespecs, error messages, many bug fixes and some backwards incompatible changes. We have posted a detailed [upgrade instructions on the mailing list](https://groups.google.com/forum/?fromgroups#!topic/elixir-lang-talk/ksrefrgK1eY). For a general overview, [check out the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.10.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/introduction.html), or check out our sidebar for other learning resources. diff --git a/_posts/2013-08-08-elixir-design-goals.markdown b/_posts/2013-08-08-elixir-design-goals.markdown index 25ba35be9..7509cc0d3 100644 --- a/_posts/2013-08-08-elixir-design-goals.markdown +++ b/_posts/2013-08-08-elixir-design-goals.markdown @@ -212,4 +212,4 @@ The goal of this post was to sumarize the language goals: compatibility, product We also hope to have clarified what Elixir brings to the Erlang VM, in particular, meta-programming through macros, polymorphic constructs for extensibility and a data-focused standard library with extensible and consistent APIs for diverse types, including strict and lazy enumeration, unicode handling, a test framework and more. -Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/introduction.html), or check out our sidebar for other learning resources. diff --git a/_posts/2013-11-05-elixir-v0-11-0-released.markdown b/_posts/2013-11-05-elixir-v0-11-0-released.markdown index 9debcfe57..f8dbc43b6 100644 --- a/_posts/2013-11-05-elixir-v0-11-0-released.markdown +++ b/_posts/2013-11-05-elixir-v0-11-0-released.markdown @@ -67,6 +67,6 @@ In the optimization front, we have pushed the first iteration of a [feature call And finally, a minor but frequently asked feature has finally arrived into Elixir: variables follow the same rules as other identifiers in the language, which means developers can now name their variables `is_atom?`. For a general overview, [check out the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.11.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/introduction.html), or check out our sidebar for other learning resources. **PS:** We have just released v0.11.1 which addresses a regression in Mix and improves the dependencies update process. diff --git a/_posts/2013-12-15-elixir-v0-12-0-released.markdown b/_posts/2013-12-15-elixir-v0-12-0-released.markdown index 232c14eeb..562f65467 100644 --- a/_posts/2013-12-15-elixir-v0-12-0-released.markdown +++ b/_posts/2013-12-15-elixir-v0-12-0-released.markdown @@ -49,4 +49,4 @@ Eric is also maintainer of both [Ecto](https://github.com/elixir-ecto/ecto) and There were other small changes, like additions to the `Float` module and improvements the to the typespec syntax. To see the full list, please [see the CHANGELOG](https://github.com/elixir-lang/elixir/blob/v0.12.0/CHANGELOG.md). -Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/1.16/introduction.html), or check out our sidebar for other learning resources. +Give Elixir a try! You can start with our [getting started guide](https://hexdocs.pm/elixir/introduction.html), or check out our sidebar for other learning resources. diff --git a/_posts/2014-04-21-elixir-v0-13-0-released.markdown b/_posts/2014-04-21-elixir-v0-13-0-released.markdown index d0735a3db..eb1532441 100644 --- a/_posts/2014-04-21-elixir-v0-13-0-released.markdown +++ b/_posts/2014-04-21-elixir-v0-13-0-released.markdown @@ -28,7 +28,7 @@ In a nutshell, here is what new: * Elixir v0.13 also provides structs, an alternative to Elixir records. Structs are more flexible than records, provide faster polymorphic operations, and still provide the same compile-time guarantees many came to love in records; -* The [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) was rewritten from scratch. The previous guide was comprised of 7 chapters and was about to become 2 years old. The new guide features 20 chapters, it explores the new maps and structs (which are part of this release), and it goes deeper into topics like IO and File handling. It also includes an extra guide, still in development, about [Meta-Programming in Elixir](https://hexdocs.pm/elixir/1.16/quote-and-unquote.html); +* The [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) was rewritten from scratch. The previous guide was comprised of 7 chapters and was about to become 2 years old. The new guide features 20 chapters, it explores the new maps and structs (which are part of this release), and it goes deeper into topics like IO and File handling. It also includes an extra guide, still in development, about [Meta-Programming in Elixir](https://hexdocs.pm/elixir/quote-and-unquote.html); * Elixir v0.13 provides a new comprehension syntax that not only works with lists, but with any [`Enumerable`](https://hexdocs.pm/elixir/Enumerable.html). The output of a comprehension is also extensible via the [`Collectable`](https://hexdocs.pm/elixir/Collectable.html) protocol; @@ -68,7 +68,7 @@ iex> %{"other" => value} = map A map pattern will match any map that has all the keys specified in the pattern. The values for the matching keys must also match. For example, `%{"hello" => world}` will match any map that has the key `"hello"` and assign the value to `world`, while `%{"hello" => "world"}` will match any map that has the key `"hello"` with value equals to `"world"`. An empty map pattern (`%{}`) will match all maps. -Developers can use the functions in the [`Map` module](https://hexdocs.pm/elixir/Map.html) to work with maps. For more information on maps and how they compare to other associative data structures in the language, please check the [Maps chapter in our new Getting Started guide](https://hexdocs.pm/elixir/1.16/keywords-and-maps.html). Elixir Sips has also released two episodes that cover maps ([part 1](http://elixirsips.com/episodes/054_maps_part_1.html) and [part 2](http://elixirsips.com/episodes/055_maps_part_2.html)). +Developers can use the functions in the [`Map` module](https://hexdocs.pm/elixir/Map.html) to work with maps. For more information on maps and how they compare to other associative data structures in the language, please check the [Maps chapter in our new Getting Started guide](https://hexdocs.pm/elixir/keywords-and-maps.html). Elixir Sips has also released two episodes that cover maps ([part 1](http://elixirsips.com/episodes/054_maps_part_1.html) and [part 2](http://elixirsips.com/episodes/055_maps_part_2.html)). Maps also provide special syntax for creating, accessing and updating maps with atom keys: @@ -179,7 +179,7 @@ The `__struct__` field is also used for polymorphic dispatch in protocols, addre It is interesting to note that structs solve both drawbacks we have earlier mentioned regarding records. Structs are purely data and polymorphic dispatch is now faster and more robust as it happens only for explicitly tagged structs. -For more information on structs, check out the [Structs chapter in the getting started guide](https://hexdocs.pm/elixir/1.16/structs.html) (you may also want to read the new [Protocols chapter](https://hexdocs.pm/elixir/1.16/protocols.html) after it). +For more information on structs, check out the [Structs chapter in the getting started guide](https://hexdocs.pm/elixir/structs.html) (you may also want to read the new [Protocols chapter](https://hexdocs.pm/elixir/protocols.html) after it). ## Maps, structs and the future @@ -279,4 +279,4 @@ That said, in the next months we plan to: * Study how patterns like tasks and agents can be integrated into the language, often picking up the lessons learned by libraries like [e2](http://e2project.org/erlang.html) and [functionality exposed by OTP itself](http://www.erlang.org/doc/man/rpc.html); * Rewrite the Mix and ExUnit guides to focus on applications and OTP as a whole, rebranding it to "Building Apps with Mix and OTP"; -You can learn more about Elixir in our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) and download this release in the [v0.13 announcement](https://github.com/elixir-lang/elixir/releases/tag/v0.13.0). We hope to see you at [ElixirConf](http://elixirconf.com/) as well as pushing your packages to [hex.pm](https://hex.pm/). +You can learn more about Elixir in our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) and download this release in the [v0.13 announcement](https://github.com/elixir-lang/elixir/releases/tag/v0.13.0). We hope to see you at [ElixirConf](http://elixirconf.com/) as well as pushing your packages to [hex.pm](https://hex.pm/). diff --git a/_posts/2014-06-17-elixir-v0-14-0-released.markdown b/_posts/2014-06-17-elixir-v0-14-0-released.markdown index b55e0540b..0cd089535 100644 --- a/_posts/2014-06-17-elixir-v0-14-0-released.markdown +++ b/_posts/2014-06-17-elixir-v0-14-0-released.markdown @@ -144,9 +144,9 @@ In v0.14.0, Elixir closely integrates with OTP by providing modules for building We have also introduced the concepts of [agents](https://hexdocs.pm/elixir/Agent.html) and the idea of [tasks](https://hexdocs.pm/elixir/Task.html), which can be supervised and distributed. Application configuration has been made first class in Mix, allowing developers to configure their dependencies, sometimes even using different configurations per environment (dev, test or prod by default). -This functionality is at the core of building applications in Erlang and Elixir. For this reason we have published a new guide called [Mix and OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html) where we build a distributed key-value store to help explore all concepts mentioned above. The guide is quite fresh, so please do submit pull requests for typos and mistakes. Feedback is also welcome! +This functionality is at the core of building applications in Erlang and Elixir. For this reason we have published a new guide called [Mix and OTP](https://hexdocs.pm/elixir/introduction-to-mix.html) where we build a distributed key-value store to help explore all concepts mentioned above. The guide is quite fresh, so please do submit pull requests for typos and mistakes. Feedback is also welcome! -Note "Mix and OTP" is our most advanced guide so far and it expects you to have read our introductory guide. In case you haven't yet, you can [get started here](https://hexdocs.pm/elixir/1.16/introduction.html). +Note "Mix and OTP" is our most advanced guide so far and it expects you to have read our introductory guide. In case you haven't yet, you can [get started here](https://hexdocs.pm/elixir/introduction.html). ## What's next? @@ -160,6 +160,6 @@ With v0.14.0 we have reached many of the milestones [we have set in the previous * Solve all remaining [open issues](https://github.com/elixir-lang/elixir/issues?state=open). We have always kept the issues tracker tidy and there is little work left to solve the existing issues. Note we have also listed all [upcoming backwards incompatible changes](https://github.com/elixir-lang/elixir/issues?labels=Note%3ABackwards+incompatible&page=1&state=open). Many of those changes will actually be deprecated first and developers should be able to follow along without breaking changes in minor releases, but they are breaking changes in the sense they work in v0.14.0 but will work differently by the time v1.0 is released; -That's all for now! Elixir developers can see [a summary of all changes in v0.14.0 in the release notes](https://github.com/elixir-lang/elixir/releases/tag/v0.14.0). In case you are new around here, you can get started with Elixir by reading [our Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html). +That's all for now! Elixir developers can see [a summary of all changes in v0.14.0 in the release notes](https://github.com/elixir-lang/elixir/releases/tag/v0.14.0). In case you are new around here, you can get started with Elixir by reading [our Getting Started guide](https://hexdocs.pm/elixir/introduction.html). We hope to see you all this July at [ElixirConf](http://elixirconf.com/)! diff --git a/_posts/2014-08-07-elixir-v0-15-0-released.markdown b/_posts/2014-08-07-elixir-v0-15-0-released.markdown index b03397d94..e99cebaab 100644 --- a/_posts/2014-08-07-elixir-v0-15-0-released.markdown +++ b/_posts/2014-08-07-elixir-v0-15-0-released.markdown @@ -162,4 +162,4 @@ Alexei is also interested in how we can extend our tooling to the Erlang ecosyst We are very close to launch Elixir v1.0! All planned features are already in Elixir's codebase and at the moment there are only [four open issues in our tracker tagged with the v1.0 milestone](https://github.com/elixir-lang/elixir/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.0). -Our estimated date for the first release candidate for Elixir v1.0 is August 30th. This means there is no better time to learn Elixir than now! If you haven't started yet, you can get started with Elixir by reading [our Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) or by checking one of the many "Learning Resources" on the sidebar. +Our estimated date for the first release candidate for Elixir v1.0 is August 30th. This means there is no better time to learn Elixir than now! If you haven't started yet, you can get started with Elixir by reading [our Getting Started guide](https://hexdocs.pm/elixir/introduction.html) or by checking one of the many "Learning Resources" on the sidebar. diff --git a/_posts/2014-09-18-elixir-v1-0-0-released.markdown b/_posts/2014-09-18-elixir-v1-0-0-released.markdown index 308c7ec99..5e07033dd 100644 --- a/_posts/2014-09-18-elixir-v1-0-0-released.markdown +++ b/_posts/2014-09-18-elixir-v1-0-0-released.markdown @@ -53,7 +53,7 @@ These expectations also apply to future releases under the v1 branch, except for ## Learn more -You can get started with Elixir via our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html). There are quite some Elixir books out there too, now getting sent to the presses, quite a few can be found in the sidebar, which also includes screencasts and other resources. +You can get started with Elixir via our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html). There are quite some Elixir books out there too, now getting sent to the presses, quite a few can be found in the sidebar, which also includes screencasts and other resources. You can also learn more about Elixir by checking out [the videos from ElixirConf 2014](http://www.confreaks.com/events/elixirconf2014), the first (and so far the best) Elixir conference ever! You can learn more about [the language history](http://www.confreaks.com/videos/4134-elixirconf2014-keynote-elixir), [how Elixir can change the way you code](http://www.confreaks.com/videos/4119-elixirconf2014-opening-keynote-think-different) or [even hear stories of how Elixir is being used in production](http://www.confreaks.com/videos/4131-elixirconf2014-otp-in-production-the-nitty-gritty-details-of-game-servers). diff --git a/_posts/2016-01-03-elixir-v1-2-0-released.markdown b/_posts/2016-01-03-elixir-v1-2-0-released.markdown index 71c49eb70..beb51fe8b 100644 --- a/_posts/2016-01-03-elixir-v1-2-0-released.markdown +++ b/_posts/2016-01-03-elixir-v1-2-0-released.markdown @@ -8,7 +8,7 @@ excerpt: Elixir v1.2 brings enhancements, bug fixes, performance improvements an v1.2 brings enhancements, bug fixes, performance improvements and more into Elixir. Elixir v1.2 relies on many features in Erlang 18, requiring at least Erlang 18+. Upgrading to Erlang 18 is therefore necessary before upgrading Elixir. -To celebrate this release and the new year, we have also reviewed both the [Getting Started](https://hexdocs.pm/elixir/1.16/introduction.html) and [Mix & OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html) guides, bringing it up to date and exploring new functionalities added since Elixir v1.0. +To celebrate this release and the new year, we have also reviewed both the [Getting Started](https://hexdocs.pm/elixir/introduction.html) and [Mix & OTP](https://hexdocs.pm/elixir/introduction-to-mix.html) guides, bringing it up to date and exploring new functionalities added since Elixir v1.0. ## Erlang 18 support @@ -112,6 +112,6 @@ These are great additions on top of the faster compilation times we have achieve With Rebar 3 gaining more adoption in the Erlang community, Mix is now able to fetch and compile Rebar 3 dependencies. This feature is currently experimental and therefore opt-in: if you have a Rebar 3 dependency, you can ask Mix to use Rebar 3 to compile it by passing the `manager: :rebar3` option. Once configured, Mix will prompt you to install Rebar 3 if it is not yet available. -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.2.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.2.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Happy coding! diff --git a/_posts/2016-06-21-elixir-v1-3-0-released.markdown b/_posts/2016-06-21-elixir-v1-3-0-released.markdown index 2f0433320..13ade0b0b 100644 --- a/_posts/2016-06-21-elixir-v1-3-0-released.markdown +++ b/_posts/2016-06-21-elixir-v1-3-0-released.markdown @@ -282,6 +282,6 @@ By restricting hierarchies in favor of named setups, it is straight-forward for ## Summing up -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.3.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.3.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Happy coding! diff --git a/_posts/2017-01-05-elixir-v1-4-0-released.markdown b/_posts/2017-01-05-elixir-v1-4-0-released.markdown index 902063056..b333f5446 100644 --- a/_posts/2017-01-05-elixir-v1-4-0-released.markdown +++ b/_posts/2017-01-05-elixir-v1-4-0-released.markdown @@ -129,6 +129,6 @@ It is also possible to install escripts and archives by providing a Git/GitHub r ## Summing up -The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.4.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.4.0). Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Happy coding! diff --git a/_posts/2017-07-25-elixir-v1-5-0-released.markdown b/_posts/2017-07-25-elixir-v1-5-0-released.markdown index 90773f262..2fe2c2794 100644 --- a/_posts/2017-07-25-elixir-v1-5-0-released.markdown +++ b/_posts/2017-07-25-elixir-v1-5-0-released.markdown @@ -175,4 +175,4 @@ Overall, using `@impl` has the following advantages: The full list of changes is available in our [release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.5.0). There are many other exciting changes, such as compiler enhancements that reduces compilation times by 10%-15% on averages. When taken into account with the compiler improvements in Erlang/OTP 20 itself, some applications have seen gains up to 30% in compilation times. -Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. diff --git a/_posts/2018-01-17-elixir-v1-6-0-released.markdown b/_posts/2018-01-17-elixir-v1-6-0-released.markdown index 59c598dad..c9e15c14b 100644 --- a/_posts/2018-01-17-elixir-v1-6-0-released.markdown +++ b/_posts/2018-01-17-elixir-v1-6-0-released.markdown @@ -153,4 +153,4 @@ The full list of changes is available in our [release notes](https://github.com/ Work on Elixir v1.7 has already started. We still welcome developers to try out the [previously announced StreamData library](https://elixir-lang.org/blog/2017/10/31/stream-data-property-based-testing-and-data-generation-for-elixir/), that aims to bring data generation and property-based testing to Elixir. The other [features scheduled for v1.7 can be found in the issues tracker](https://github.com/elixir-lang/elixir/issues). -Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Don't forget to check [the Install section](/install.html) to get Elixir installed and our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. diff --git a/_posts/2018-07-25-elixir-v1-7-0-released.markdown b/_posts/2018-07-25-elixir-v1-7-0-released.markdown index 376258993..8ae4cc12a 100644 --- a/_posts/2018-07-25-elixir-v1-7-0-released.markdown +++ b/_posts/2018-07-25-elixir-v1-7-0-released.markdown @@ -153,4 +153,4 @@ We have also seen important developments in other areas not directly related to Finally, don't forget [ElixirConf US](https://elixirconf.com/) is coming soon, in Bellevue, WA, September 4-7. Last year my keynote focused on the last 5 years with Elixir. This year we are ready to look into the 5 years ahead. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. diff --git a/_posts/2019-01-14-elixir-v1-8-0-released.markdown b/_posts/2019-01-14-elixir-v1-8-0-released.markdown index d3783bb9f..1443d5a10 100644 --- a/_posts/2019-01-14-elixir-v1-8-0-released.markdown +++ b/_posts/2019-01-14-elixir-v1-8-0-released.markdown @@ -77,6 +77,6 @@ There is only one last major feature planned for upcoming Elixir versions, which During [my keynote at ElixirConf 2018 US](https://www.youtube.com/watch?v=suOzNeMJXl0), I talked about the next five years for Elixir and much of the emphasis is put on the community. Elixir was designed to be an extensible language and therefore the work on the language itself is meant to reduce with time, which we have seen in the last two releases. We trust the community to continue building on this solid foundation, bringing new challenges to the ecosystem and taking the language to new domains. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Your turn. :) \ No newline at end of file diff --git a/_posts/2019-06-24-elixir-v1-9-0-released.markdown b/_posts/2019-06-24-elixir-v1-9-0-released.markdown index 0ae452a43..09eb688d4 100644 --- a/_posts/2019-06-24-elixir-v1-9-0-released.markdown +++ b/_posts/2019-06-24-elixir-v1-9-0-released.markdown @@ -96,6 +96,6 @@ First of all, Elixir is built on top of Erlang/OTP and we simply leverage all of Second, Elixir was designed to be an extensible language. The same tools and abstractions we used to create and enhance the language are also available to libraries and frameworks. This means the community can continue to improve the ecosystem without a need to change the language itself, which would effectively become a bottleneck for progress. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. We have also updated our [advanced Mix & OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html) to talk about releases. If you are looking for a more fast paced introduction to the language, see the [How I Start: Elixir](http://howistart.org/posts/elixir/1/index.html) tutorial, which has also been brought to the latest and greatest. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. We have also updated our [advanced Mix & OTP](https://hexdocs.pm/elixir/introduction-to-mix.html) to talk about releases. If you are looking for a more fast paced introduction to the language, see the [How I Start: Elixir](http://howistart.org/posts/elixir/1/index.html) tutorial, which has also been brought to the latest and greatest. Have fun! diff --git a/_posts/2020-01-27-elixir-v1-10-0-released.markdown b/_posts/2020-01-27-elixir-v1-10-0-released.markdown index baa133f93..9a2c80966 100644 --- a/_posts/2020-01-27-elixir-v1-10-0-released.markdown +++ b/_posts/2020-01-27-elixir-v1-10-0-released.markdown @@ -165,6 +165,6 @@ Finally, this release also adds two new guards, `is_struct/1` and `is_map_key/2` To learn what else is new, you can read the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.10.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Have fun! diff --git a/_posts/2020-10-06-elixir-v1-11-0-released.markdown b/_posts/2020-10-06-elixir-v1-11-0-released.markdown index 8669efb7c..1ee4274cc 100644 --- a/_posts/2020-10-06-elixir-v1-11-0-released.markdown +++ b/_posts/2020-10-06-elixir-v1-11-0-released.markdown @@ -219,6 +219,6 @@ Finally, to bring visibility to the compiler tracking improvements described in For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.11.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Have fun! diff --git a/_posts/2021-05-19-elixir-v1-12-0-released.markdown b/_posts/2021-05-19-elixir-v1-12-0-released.markdown index 6b547bc9e..ef4144845 100644 --- a/_posts/2021-05-19-elixir-v1-12-0-released.markdown +++ b/_posts/2021-05-19-elixir-v1-12-0-released.markdown @@ -96,6 +96,6 @@ The `Code` module got a [`cursor_context/2`](https://hexdocs.pm/elixir/1.12/Code The EEx application has also been extended to provide metadata on text segments. This has enabled the Surface and Phoenix LiveView teams to implement [a new template language called HEEx](https://github.com/phoenixframework/phoenix_live_view/pull/1440), which validates both HTML and EEx. Finally, the `Registry` module supports the `:compressed` option, which is useful for GraphQL applications managing hundreds of thousands of subscriptions via [Absinthe](http://absinthe-graphql.org/). -For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.12.0). Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.12.0). Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Have fun! diff --git a/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown b/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown index 751d858dc..03a6a17b8 100644 --- a/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown +++ b/_posts/2021-07-29-bootstraping-a-multiplayer-server-with-elixir-at-x-plane.markdown @@ -36,7 +36,7 @@ They eventually settled on three top contenders: Rust, Go, and Elixir. Elixir to ## Modeling multiplayer with Elixir -Ready to give Elixir a try, Tyler picked up a couple books but soon realized the language's [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) provided the background he needed. He explains: "while the introductory guide covers the language constructs, the advanced guide on the website has you build an actual project with TCP connections, with the basic architectural patterns we would use in production." +Ready to give Elixir a try, Tyler picked up a couple books but soon realized the language's [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) provided the background he needed. He explains: "while the introductory guide covers the language constructs, the advanced guide on the website has you build an actual project with TCP connections, with the basic architectural patterns we would use in production." However, instead of jumping headfirst into the multiplayer server, he decided to give Elixir a try on a smaller problem. He wrote a web proxy to the National Oceanic and Atmospheric Administration (NOAA) weather services and put it in production. This experience taught him the importance of leveraging all of the instrumentation and metrics provided by the Erlang VM. They chose [AppSignal](https://www.appsignal.com/) to help consume and digest this information. diff --git a/_posts/2021-12-03-elixir-v1-13-0-released.markdown b/_posts/2021-12-03-elixir-v1-13-0-released.markdown index efd630628..a406c0790 100644 --- a/_posts/2021-12-03-elixir-v1-13-0-released.markdown +++ b/_posts/2021-12-03-elixir-v1-13-0-released.markdown @@ -147,6 +147,6 @@ The `Code` module has also been augmented with two functions: [`Code.string_to_q For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.13.0). You can also [watch my ElixirConf 2021 keynote about Elixir v1.13](https://youtu.be/ydjx2kKHzrM) to learn more. -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Have fun! diff --git a/_posts/2022-09-01-elixir-v1-14-0-released.markdown b/_posts/2022-09-01-elixir-v1-14-0-released.markdown index cdaaa6ae9..35fbb7414 100644 --- a/_posts/2022-09-01-elixir-v1-14-0-released.markdown +++ b/_posts/2022-09-01-elixir-v1-14-0-released.markdown @@ -186,6 +186,6 @@ Finally, we have improved the `Inspect` protocol for structs so that fields are For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.14.0). -Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more. +Check [the Install section](/install.html) to get Elixir installed and read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Happy debugging! diff --git a/_posts/2023-06-19-elixir-v1-15-0-released.markdown b/_posts/2023-06-19-elixir-v1-15-0-released.markdown index e42768803..b3fda1747 100644 --- a/_posts/2023-06-19-elixir-v1-15-0-released.markdown +++ b/_posts/2023-06-19-elixir-v1-15-0-released.markdown @@ -163,7 +163,7 @@ For a complete list of all changes, see the [full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.15.0). Check [the Install section](/install.html) to get Elixir installed and -read our [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) +read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more. Happy compiling! diff --git a/crash-course.markdown b/crash-course.markdown index e6fb8e847..fec8a7993 100644 --- a/crash-course.markdown +++ b/crash-course.markdown @@ -865,7 +865,7 @@ This should be enough to invoke Elixir functions straight from your Erlang code. ### Manual integration -If you are not using rebar, the easiest approach to use Elixir in your existing Erlang software is to install Elixir using one of the different ways specified in the [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) and add the `lib` directory in your checkout to `ERL_LIBS`. +If you are not using rebar, the easiest approach to use Elixir in your existing Erlang software is to install Elixir using one of the different ways specified in the [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) and add the `lib` directory in your checkout to `ERL_LIBS`. ## Further reading @@ -875,5 +875,5 @@ Erlang's official documentation site has a nice [collection][4] of programming e Elixir also provides a [Getting Started guide][6] and has [documentation available online][7]. [4]: http://www.erlang.org/doc/programming_examples/users_guide.html -[6]: https://hexdocs.pm/elixir/1.16/introduction.html +[6]: https://hexdocs.pm/elixir/introduction.html [7]: /docs.html diff --git a/docs.markdown b/docs.markdown index 5169614c5..4b948bf34 100644 --- a/docs.markdown +++ b/docs.markdown @@ -8,7 +8,7 @@ layout: default The Elixir programming language is broken into 6 applications. The links below reference the documentation for the modules and functions in each of those -applications. See also [our Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) +applications. See also [our Getting Started guide](https://hexdocs.pm/elixir/introduction.html) and [the Learning page](/learning.html) for books, courses, videos, and more. {% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable] %} diff --git a/index.html b/index.html index 530c08aab..75621b552 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,7 @@
    Elixir is a dynamic, functional language for building scalable and maintaina %{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1} {% endhighlight %} -

    Check our Getting Started guide and our Learning page to begin your journey with Elixir. Or keep scrolling for an overview of the platform, language, and tools. +

    Check our Getting Started guide and our Learning page to begin your journey with Elixir. Or keep scrolling for an overview of the platform, language, and tools. @@ -195,7 +195,7 @@

    Erlang compatible

    <<192, 223, 75, 115, ...>> {% endhighlight %} -

    To learn more about Elixir, check our Getting Started guide. We also have online documentation available and a Crash Course for Erlang developers.

    +

    To learn more about Elixir, check our Getting Started guide. We also have online documentation available and a Crash Course for Erlang developers.

    diff --git a/learning.markdown b/learning.markdown index 4a932df78..2bd408ec6 100644 --- a/learning.markdown +++ b/learning.markdown @@ -8,7 +8,7 @@ layout: default {% include toc.html %} -Elixir's official documentation includes a [Getting Started guide](https://hexdocs.pm/elixir/1.16/introduction.html) to learn more about Elixir's foundations. Later on, it explores how to build projects with [Mix and OTP](https://hexdocs.pm/elixir/1.16/introduction-to-mix.html). Elixir also includes [extensive API documentation](/docs.html). +Elixir's official documentation includes a [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) to learn more about Elixir's foundations. Later on, it explores how to build projects with [Mix and OTP](https://hexdocs.pm/elixir/introduction-to-mix.html). Elixir also includes [extensive API documentation](/docs.html). The Elixir Community has also produced plenty of resources to learn the language from different backgrounds and other perspectives. We list some of them below. We are sure you will find a resource that suits your pace and goals. From 035ef95b9492b8ee5af139ce13587035b0c68996 Mon Sep 17 00:00:00 2001 From: Parker Selbert Date: Wed, 24 Jan 2024 16:49:26 -0600 Subject: [PATCH 1650/1761] Add support links for elixir-slack.community (#1746) This restores links to the Elixir Slack using a new domain and invite-driven app. --- _includes/important-links.html | 1 + install.markdown | 1 + 2 files changed, 2 insertions(+) diff --git a/_includes/important-links.html b/_includes/important-links.html index 596f9a5d6..2b9270471 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -23,6 +23,7 @@

    Join the Community

  • @elixirlang on Twitter
  • #elixir on irc.libera.chat
  • Elixir Forum
  • +
  • Elixir on Slack
  • Elixir on Discord
  • IDE/Editor support
  • Meetups around the world
  • diff --git a/install.markdown b/install.markdown index 7fbca6f93..b691ca745 100644 --- a/install.markdown +++ b/install.markdown @@ -216,6 +216,7 @@ After Elixir is up and running, it is common to have questions as you learn and * [#elixir on irc.libera.chat](irc://irc.libera.chat/elixir) * [Elixir Forum](http://elixirforum.com) + * [Elixir on Slack](https://elixir-slack.community) * [Elixir on Discord](https://discord.gg/elixir) * [elixir tag on StackOverflow](https://stackoverflow.com/questions/tagged/elixir) From a525eab416bb2d48978bf0a143d385341f3df8fa Mon Sep 17 00:00:00 2001 From: Parker Selbert Date: Thu, 25 Jan 2024 13:59:42 -0600 Subject: [PATCH 1651/1761] Set og:image meta for seo by default on all pages This adds a larger, wide format version of the elixir log as the og:image and twitter:image seo meta tags for all pages. --- _config.yml | 7 +++++++ cases.html | 1 - images/social/elixir-og-card.jpg | Bin 0 -> 20977 bytes index.html | 1 - 4 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 images/social/elixir-og-card.jpg diff --git a/_config.yml b/_config.yml index 4481c167a..d15cabb55 100644 --- a/_config.yml +++ b/_config.yml @@ -22,7 +22,14 @@ plugins: defaults: - scope: path: "" + type: pages + values: + layout: default + image: /images/social/elixir-og-card.jpg + - scope: + path: "posts" type: posts values: layout: post permalink: /blog/:year/:month/:day/:title/ + image: /images/social/elixir-og-card.jpg diff --git a/cases.html b/cases.html index 63d5502f7..16810a887 100644 --- a/cases.html +++ b/cases.html @@ -1,6 +1,5 @@ --- section: cases -layout: default ---

    Cases

    diff --git a/images/social/elixir-og-card.jpg b/images/social/elixir-og-card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..64cd0da918da7740642cd9eebad47801fee06d2b GIT binary patch literal 20977 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 75621b552..77b2d720b 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,5 @@ --- section: home -layout: default ---
    From dcd2b627ed1c2463af4a1f61b9c1656153ea94ca Mon Sep 17 00:00:00 2001 From: Parker Selbert Date: Thu, 25 Jan 2024 14:06:30 -0600 Subject: [PATCH 1652/1761] Replace blurry rss button png with scalable svg --- _layouts/blog.html | 2 +- images/social/RSSButton.png | Bin 1169 -> 0 bytes images/social/rss-feed-icon.svg | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 images/social/RSSButton.png create mode 100644 images/social/rss-feed-icon.svg diff --git a/_layouts/blog.html b/_layouts/blog.html index aa043b029..92a81743d 100644 --- a/_layouts/blog.html +++ b/_layouts/blog.html @@ -7,7 +7,7 @@ From aa3939a41973cfd60ff151039261b1430b1b118a Mon Sep 17 00:00:00 2001 From: Ostap Brehin Date: Sun, 5 May 2024 08:04:57 +0100 Subject: [PATCH 1667/1761] Fix Nerves case study link (#1757) --- _posts/2020-08-20-embedded-elixir-at-farmbot.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown b/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown index 2d5660e8b..f2120208e 100644 --- a/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown +++ b/_posts/2020-08-20-embedded-elixir-at-farmbot.markdown @@ -47,4 +47,4 @@ Because it's written in Elixir and built within the Erlang runtime system, Nerve FarmBot now has around 300 devices live in NervesHub, with a different deployment for each of their device models. Nerves is built to scale, so as Farmbot continues to grow its user base and expand their product capabilities, they'll be able to continue developing and releasing reliable firmware updates using Nerves. -*This case study has first been published on [Nerves' website](https://www.nerves-project.org/customer-farmbot)*. +*This case study has first been published on [Nerves' website](https://nerves-project.org/cases/farmbot)*. From 4b008543f138107d901b2a72b28b5707ef202a28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 08:34:29 +0200 Subject: [PATCH 1668/1761] Bump nokogiri from 1.16.2 to 1.16.5 (#1758) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.16.2 to 1.16.5. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.16.2...v1.16.5) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 37a3784ba..b962e9b1a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -206,13 +206,13 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - mini_portile2 (2.8.5) + mini_portile2 (2.8.6) minima (2.5.1) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) minitest (5.19.0) - nokogiri (1.16.2) + nokogiri (1.16.5) mini_portile2 (~> 2.8.2) racc (~> 1.4) octokit (4.25.1) From baadaea67b1d8dda51d473072fe300b16d4499dd Mon Sep 17 00:00:00 2001 From: Rodolfo Carvalho Date: Tue, 14 May 2024 11:09:35 +0200 Subject: [PATCH 1669/1761] Document installing recent releases from Fedora Rawhide (#1759) Those using Fedora can get access to more recent releases, often bleeding edge, using Fedora's package manager. Also note that documentation comes in a separate package, and can be useful for offline access. --- install.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/install.markdown b/install.markdown index f982c528c..f2301c1de 100644 --- a/install.markdown +++ b/install.markdown @@ -65,10 +65,12 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se ``` - **Fedora 21 (and older)** - * Run: `yum install elixir` + * Run: `sudo yum install elixir` - **Fedora 22 (and newer)** - * Run `dnf install elixir erlang` + * Run: `sudo dnf install elixir erlang` + * Documentation is available in separate packages: `sudo dnf install elixir-doc erlang-doc` + * Fedora's Rawhide repository has newer versions before they go into the main repositories: `sudo dnf --disablerepo='*' --enablerepo=rawhide install elixir elixir-doc erlang erlang-doc` - **Gentoo** * Run: `emerge --ask dev-lang/elixir` From 6e69f20673ef40df85451c09878639f75aa04811 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 May 2024 22:44:00 +0200 Subject: [PATCH 1670/1761] Bump rexml from 3.2.5 to 3.2.8 (#1760) Bumps [rexml](https://github.com/ruby/rexml) from 3.2.5 to 3.2.8. - [Release notes](https://github.com/ruby/rexml/releases) - [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md) - [Commits](https://github.com/ruby/rexml/compare/v3.2.5...v3.2.8) --- updated-dependencies: - dependency-name: rexml dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b962e9b1a..904d52835 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -225,7 +225,8 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rexml (3.2.5) + rexml (3.2.8) + strscan (>= 3.0.9) rouge (3.26.0) ruby2_keywords (0.0.5) rubyzip (2.3.2) @@ -240,6 +241,7 @@ GEM faraday (>= 0.17.3, < 3) simpleidn (0.2.1) unf (~> 0.1.4) + strscan (3.1.0) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) typhoeus (1.4.0) From b5a34a2859bff32e1cd27f7ef898a73a24f5d5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 21 May 2024 00:26:16 +0200 Subject: [PATCH 1671/1761] Update versions --- _data/elixir-versions.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 5e2100d28..8f136882f 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,13 +4,13 @@ v1_16: name: v1.16 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.16.2 + version: 1.16.3 v1_15: name: v1.15 minimum_otp: 24.0 otp_versions: [26, 25, 24] - version: 1.15.7 + version: 1.15.8 v1_14: name: v1.14 From 0dd5687a0d1cb77a82b0ac70b6d56b717f73eb20 Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Wed, 12 Jun 2024 19:34:31 +0900 Subject: [PATCH 1672/1761] Elixir v1.17.0 announcement (#1761) --- ...024-06-12-elixir-v1-17-0-released.markdown | 180 ++++++++++++++++++ images/contents/type-warning-in-editor.png | Bin 0 -> 163030 bytes .../type-warning-on-date-comparison.png | Bin 0 -> 1273829 bytes .../contents/type-warning-on-struct-field.png | Bin 0 -> 1826215 bytes 4 files changed, 180 insertions(+) create mode 100644 _posts/2024-06-12-elixir-v1-17-0-released.markdown create mode 100644 images/contents/type-warning-in-editor.png create mode 100644 images/contents/type-warning-on-date-comparison.png create mode 100644 images/contents/type-warning-on-struct-field.png diff --git a/_posts/2024-06-12-elixir-v1-17-0-released.markdown b/_posts/2024-06-12-elixir-v1-17-0-released.markdown new file mode 100644 index 000000000..b058ffcc5 --- /dev/null +++ b/_posts/2024-06-12-elixir-v1-17-0-released.markdown @@ -0,0 +1,180 @@ +--- +layout: post +title: "Elixir v1.17 released: set-theoretic types in patterns, calendar durations, and Erlang/OTP 27 support" +author: Andrea Leopardi +category: Releases +excerpt: "Elixir v1.17 released: set-theoretic types in patterns, calendar durations, and Erlang/OTP 27 support" +--- + +Elixir v1.17 has just been released. 🎉 + +This release introduces set-theoretic types into a handful of language constructs. While there are still [many steps ahead of us](https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/), this important milestone already brings benefits to developers in the form of new warnings for common mistakes. This new version also adds support for [Erlang/OTP 27](https://www.erlang.org/downloads/27), the latest and greatest Erlang release. You'll also find a new calendar-related data type (`Duration`) and a `Date.shift/2` function. + +Let's dive in. + +## Warnings from gradual set-theoretic types + +This release introduces gradual set-theoretic types to infer types from patterns and use them to type check programs, enabling the Elixir compiler to find faults and bugs in codebases without requiring changes to existing software. The underlying principles, theory, and roadmap of our work have been outlined in ["The Design Principles of the Elixir Type System" by Giuseppe Castagna, Guillaume Duboc, José Valim](https://arxiv.org/abs/2306.06391). + +At the moment, Elixir developers will interact with set-theoretic types only through **warnings** found by the type system. The current implementation models all data types in the language: + + * `binary()`, `integer()`, `float()`, `pid()`, `port()`, `reference()` - these + types are indivisible. This means both `1` and `13` get the same `integer()` + type. + + * `atom()` - it represents all atoms and it is divisible. For instance, the + atom `:foo` and `:hello_world` are also valid (distinct) types. + + * `map()` and structs - maps can be "closed" or "open". Closed maps only allow + the specified keys, such as `%{key: atom(), value: integer()}`. Open maps + support any other keys in addition to the ones listed and their definition + starts with `...`, such as `%{..., key: atom(), value: integer()}`. Structs + are closed maps with the `__struct__` key. + + * `tuple()`, `list()`, and `function()` - currently they are modelled as + indivisible types. The next Elixir versions will also introduce fine-grained + support to them. + +We focused on *atoms* and *maps* on this initial release as they are respectively the simplest and the most complex types representations, so we can stress the performance of the type system and quality of error messages. Modelling these types will also provide the most immediate benefits to Elixir developers. Assuming there is a variable named `user`, holding a `%User{}` struct with a `address` field, Elixir v1.17 will emit the following warnings at compile-time: + + * Pattern matching against a map or a struct that does not have the given key, + such as `%{adress: ...} = user` (notice `address` vs `adress`). + + * Accessing a key on a map or a struct that does not have the given key, such + as `user.adress`. + + * Updating a struct or a map that does not define the given key, such as + `%{user | adress: ...}`. + + * Invoking a function on non-modules, such as `user.address()`. + + * Capturing a function on non-modules, such as `&user.address/0`. + + * Attempting to call an anonymous function without an actual function, such as + `user.()`. + + * Performing structural comparisons between structs, such as `my_date < + ~D[2010-04-17]`. + + * Performing structural comparisons between non-overlapping types, such as + `integer >= string`. + + * Building and pattern matching on binaries without the relevant specifiers, + such as `<>` (this warns because by default it expects an integer, it + should have been `<>` instead). + + * Attempting to rescue an undefined exception or a struct that is not an + exception. + + * Accessing a field that is not defined in a rescued exception. + +Here's an example of how the warning for accessing a misspelled field of a +struct looks like: + +![Example of a warning when accessing a mispelled struct field](/images/contents/type-warning-on-struct-field.png) + +Another example, this time it's a warning for structural comparison across two +`Date` structs: + +![Example of a warning when comparing two structs with ">"](/images/contents/type-warning-on-date-comparison.png) + +These warnings also work natively in text editors, as they are standard Elixir +compiler warnings: + +![Example of a type warning inline in an editor](/images/contents/type-warning-in-editor.png) + +These new warnings will help Elixir developers find bugs earlier and give more +confidence when refactoring code, especially around maps and structs. While +Elixir already emitted some of these warnings in the past, those were discovered +using syntax analysis. The new warnings are more reliable, precise, and with +better error messages. Keep in mind, however, that the Elixir typechecker only +infers types from patterns within the same function at the moment. Analysis from +guards and across function boundaries will be added in future releases. For more +details, see our new [reference document on gradual set-theoretic +types](https://hexdocs.pm/elixir/main/gradual-set-theoretic-types.html). + +The type system was made possible thanks to a partnership between +[CNRS](https://www.cnrs.fr/) and [Remote](https://remote.com/). The development +work is currently sponsored by [Fresha](https://www.fresha.com/) +([they are hiring!](https://www.fresha.com/careers/openings?department=engineering)), +[Starfish*](https://starfish.team/), and [Dashbit](https://dashbit.co/). + +## Erlang/OTP support + +This release adds support for Erlang/OTP 27 and drops support for Erlang/OTP 24. +We recommend Elixir developers to migrate to Erlang/OTP 26 or later, especially +on Windows. Support for WERL (a graphical user interface for the Erlang terminal +on Windows) will be removed in Elixir v1.18. + +You can read more about Erlang/OTP 27 in [their release +announcement](https://www.erlang.org/downloads/27). The bits that are +particularly interesting for Elixir developers are the addition of a [`json` +module](https://erlang.org/documentation/doc-15.0-rc3/lib/stdlib-6.0/doc/html/json.html) +and process labels (`proc_lib:set_label/1`). The latter will also be available +in this Elixir release as `Process.set_label/1`. + +## New `Duration` data type and shifting functions + +This Elixir version introduces the `Duration` data type and APIs to shift dates, +times, and date times by a given duration, considering different calendars and +time zones. + +```elixir +iex> Date.shift(~D[2016-01-31], month: 2) +~D[2016-03-31] +``` + +We chose the name *"shift"* for this operation (instead of "add") since working +with durations does not obey properties such as **associativity**. For instance, +adding one month and then one month does not give the same result as adding two +months: + +```elixir +iex> ~D[2016-01-31] |> Date.shift(month: 1) |> Date.shift(month: 1) +~D[2016-03-29] +``` + +Still, durations are essential for building intervals, recurring events, and +modelling scheduling complexities found in the world around us. For `DateTime`s, +Elixir will correctly deal with time zone changes (such as Daylight Saving +Time). However, provisions are also available in case you want to surface +conflicts, such as shifting to a wall clock that does not exist, because the +clock has been moved forward by one hour. See `DateTime.shift/2` for examples. + +Finally, we added a new `Kernel.to_timeout/1` function, which helps developers +normalize durations and integers to a timeout used by many APIs—like `Process`, +`GenServer`, and more. For example, to send a message after one hour, you can +now write: + +```elixir +Process.send_after(pid, :wake_up, to_timeout(hour: 1)) +``` + +## Learn more + +Here are other notable changes in this release: + + * There are new `Keyword.intersect/2,3` functions to mirror the equivalent in + the `Map` module. + + * A new Mix profiler was added, `mix profile.tprof`, which lets you use the + new [tprof](https://www.erlang.org/doc/apps/tools/tprof.html) + profiler released with Erlang/OTP 27. This profiler leads to the + soft-deprecation of `mix profile.cprof` and `mix profile.eprof`. + + * We added `Kernel.is_non_struct_map/1`, a new guard to help with the common + pitfall of matching on `%{}`, which also successfully matches structs (as + they are maps underneath). + + * Elixir's Logger now formats + [`gen_statem`](https://www.erlang.org/doc/apps/stdlib/gen_statem.html) + reports and includes Erlang/OTP 27 *process labels* in logger events. + +For a complete list of all changes, see the +[full release notes](https://github.com/elixir-lang/elixir/releases/tag/v1.17.0). + +Check [the Install section](/install.html) to get Elixir installed and +read our [Getting Started guide](https://hexdocs.pm/elixir/introduction.html) +to learn more. + +Happy learning! diff --git a/images/contents/type-warning-in-editor.png b/images/contents/type-warning-in-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..38293a0c863663f29aafe7378ee6a8f8b742208d GIT binary patch literal 163030 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 !$g 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%0DDEK+ClOJ_f1tIXxpAzj4*B2iC$bsaL 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

    g}DIA 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 z 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 z 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%0Ag-R7)Ic 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%0AEJGoAZCl$eLiMbh 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

    cPRR`8n|W!+oHxTE;$SCp4D| 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 %Wtm@@HQPo092-0ILCoQ~d_# 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

    r?P(?<7i=8)g;Lr`6KO4b|e<1|^z-`avc9UoK zG2YWzj1&UuIf(qWm_Z5$?3BXxEpp8m=L2!42D}zMbvQQ495JK9UzmKz4uNZ7a!*G9 zXXARd{}jysKX=v$05rdE{K2GOpU=;$=ei5IQiQ31+cT+@E5GCmKhvm%Ii{EG%-b0i zSuI zAIY-fsO~6-kyE-Kc!d|Q&y!p&OBE5*9=J5WI?-lOy{-ee>@>H^mdxjyqA|@Uhdgb5 zrX7nSF%z5D;>slHziTmW6w9!cbSRyCNK#|`y3Vo5(&nx|C=|E>wG^_+?QDqfD9uRn zaP|6x&yMA2rWSwiIgO7sK)LE{=7ECpQ?<)Gt?g`fGTq~Gkb;7A zw_z|L=OI|^s46|Ui;Hy!dk{R@cS!8yd2ROx52XBhS? z^O)I595?(VK9S3?ET5asixw|dibU0H<_wKS8pKy$&* zwP4Rn7_*qv;o!o;6J!1836cIgw~+&==n6k|$A3WAKWT>HJhcyro?y}DYJU8flVz3q zwIF2emZ+o&Q*bGgHG} zKYMq5{GVpm|1bZ-LiuMWkOz66O?%93@V1f_T>-mkSTB<9^~cA)O@ZA8*%qAsIA=K} z&J=#h<#@XR=V`>cJ#;6URu=jk5ho)5E>Kf{er*%GTbVyx+}7<)+c#uQ>lF4WJ;JX? zP5XTPhgE7kBa&Py=7=#WLU)@UYo}~7JCHSuV>WJx1Q|?X3`8E#fn2~h&z6{m7HR_Z z@D+6dgA! zmglw8stO5XEXh|2Q_`5Sp_2u$L$Aq+?ViYMCLY+>N=|$*XdCB1by%JwZ56ChNpurn?v6Kpv(TD~1NOZ4zsZH>Pu3i$1afp9 zRg0i-gQ)0myD5F5?HE`Av-YEQvvZkb@oP4g`Ip?S}C6>Sp__Wtnbb(?s~b(Glb zi}>ou{2;{*J|N>@rgxvH{(1rc#$2eXFDN(cH0hp}#njKO69=3;z z&}YS&52=uap_5IDu*d(6w`t}I)VZ*cl=WexzI?Y=as>9VWX1SF3;{V8RH+w>%67IsS68M*M_$|k*Qn9uwpUdOp+P8I% z)g4O(Ce_Q$RL;B%WMkAD`w+1L-<@gtZIQm%Fj1{q|b5d?S1wcyk3W7E)f zF!kQ0Ko|6yPWk5QgF6~Gg>i1CKgs)lgc?p-8?9ukS)KY*lO*I3>E+29uZKmOG!IpV zzBJ2|a+rwww|sF?)Z^mm&+J{vVcXs=8><;n6XK-5T_xid8ZUkb2kVnHqjm@zjn^A8!w@zLG z6T$60VQRHL5JhYS@G>;#JAcRPYNni0KjbQEC?8bu^mPO8p^lr2t{Q8ePJAY&@W}%$ z_mhrB*{AE;ieg<1ejKS?PE%5wi1C=5g9^wI>X;T@uam#GSZ>Qx-R*<<1TEOIbNHwQ z6Fq0~`TwHqouVrXyJq2_laAf7Z5umQ$9B?5c5FN8*tTu%*tV^XZ5y4xFTV4Q|BQ3< zzE{s!W8JR#%vCjKRVf%{JpRglHHyjCeKRe9buVqvxwipHFx*WF{(OGww6E73Z(6zK zOvuh{(`=-{!GrOFD83^q2Fl(=CI~j7nhvG;6D%YhjZ9a!BWLXIZ1D>{L*|@ zJ?Mmqsv^)*LDmszUTYHSr@ZqH!!y?NM&V+siRzlLMz`NDB3=w*T$6BRrVO|sVCn99 zr+TW7#FGUYZZ0Go7BPk@bxFq*P^wh^VVHcni#)V*;3f`pJ{#TM9*j@pf2&e(0rBNA z0u7qV;n660|CX(a9b+(y7Y-nD2Z&#l#8Wro;(cW)os`20TuO1_d?_ii1g)2aa6h|{ z?Mj&F_!ypF|5NdjNw~I;Mjo2WMHNeIbzg-?JMRu7vgm9Sp)om%`INT+@ylASd6#9W znpx5?Cx~W}RIbzb^yVb9I{j_+CK;kX7i@f0waun8HyfkcT=0m12lsfPdYT7Z-);~7R0(Fxc^oUxxj{ysR z0r$DP^wR1r+1;rdh?7qmd~>{AXSY5{1?AQM@`40mDCIe*|C8;D|NY79i2nTw?+N@K zZslDu$~LP9%$los#y)$1bP{|e$jvsp*mAK?bCm!Hv3{E++F7ldXVqjljb!H-9meFx zjILh3*BnKycG<*WAWHPBD}q86IU~b<7;O}|7pJ^&k`#T&JMv^!b-Xj?1mp3lfm1)( zhgvwIT?c0cHV$_Y6WYX$%zlu>?7(tZSqZnye*n#;$yWH zYj2P;7>P*b0~%fG;s2l}H8uSxgz{rJO2z`-8^JN8>Rtf3 zx{|XV-@rO9Wo9K6PQ3r%T;56Z@X+9ML?;>t9@ttVrJ^)|%haGdD#8+Rpppp$*pvJ9 z?CC&gc}%VgRRx7$uOwY$p-bBb#|#k}#bl~bQt*ujG#&(H7|0yU)W`oz78f2LeAdOP zbJ|2%yY+qS!-gnztqQ{b*-2)3EV3QOUjgtP>;$#tt4>-q@pkZI`9GEHMdXwdQ&EX1 zMkyHST3RhREwy&Tpi#Kz8cvwH&uY=Uo`jq!D#El@7&1tl+^)@?AuO8@K-9{hO7Qfh z568<#L`Jfekj0PYX_NhkYJ1w4c=X|^WDPEJD#fk0O;1cJLF5{Z*R<@g5bCq7Msi-+NORr1SyTl{zPh zA~^S$sTapO1E2GvL`*tOSXZx3Uk;>vuv7}l5Z0`rd9pHQsV;+|dXp}_Cj#>CF7*FZjfEmYc&ewx!W*g_4tPuv zMGOY%*I^}|-p@I(KY2cz&`4(v^9QI05l~!PiVilI{LF2>2_0d{cP~=nZPYX-K#jb; zGW#%>jLlz;nsNx+hChwutZK*< zhMziBGo=&lA&N(FpweSc;GoOr)G8Ffy%WI2ZE(}~O1p`AWRO8gfCH)Vovv%ZUPbfK zw?b1N#mosPc@zl_%pM2xX7l^V3=@Ao-?yLrrMDts)kf)Q5!wH8eS~P67&xtEOC?ep z#_WV$!7R<4Rimdi6A9gawFG90N4TD zET%obG6GOS6TQq4=&j@O7N#gHC63Q&y=N_=kihm5r2c>~Cqq&K|4K!ruw96RkGkO_ zin98;ts>{2J`_p4>r|fgFRA>yCg8L1e%m39Gi=%yTFP@uZXKmcBPftta*UPG=)gq} z>%VbeAq%XO+=Mq+Z*}lWPa9U4uN6)59=!p!byN4dgGge6%ft6EuL2z+la2`Gq0@hk zP(B-uh2+UN7O~9my9y&;UG?AYfa!#2o#RI_44@RfBDqAAx{ROZ-5B58e%PT(s+GL- za!;QFU_!sUT2^gh{&njtA`H8r1NrTz&C4>JUM=Hs4Ri>GZXPC;{8wc86$b==_;D$R zTZj^W1E)n^V)5kxwfxVo4^)DE0oyW9ET^U$9dlGu1Wu2dHHhHlNsiL!RiBVb z6{Jg=Lr~@vpuX+)uva9m{N`)!-urR5d+BiwPv97%H41Xql@0=~{7ee;W<4f)Pj@0fG$ll=D z=zrr`xyr(r&`F`0(WP`%wc#^YhMektd%|$6(llqBlCnW>`m{%rLNr_mHomZRUgtVT zQd|r9)`dWF9%Y@RBFLb}KdWJfTCZfZZ<_|-i*+ctQnjP2$Gst*^B+6%INHAyW0O7- zVBT)>4|Dc;nB=AdUNf&)*TyIDN+wsBLCPKaShQV<%c!OYlepS(t#{$yp|OZLy@$z`YX40fYQUl^okyj(Nn1 zpu-B$J8;ND=vLQoB@>DH_<*|OJk1)FWnR)kae+I@5~7hq(jG8rBX|{--gj4e1aqF$ zUFYdVYKO_;DTn1Zk2X%I+e=)*U;|`$>NcQgD~YOeTF2)>iqkm9QzwH$Y1(^L(k00d z!y-S|dp-T?J<2C!F%Z@h=3anL@(_TVrvn@Xtk@BcqPZyn8UmhW! z=G31AgiO7=S^KG5H#0vS-sfkpiv{_*Y~hxf>*-U?4hmhe0eeO{G{!*o6v5%lH)EDF z%6~R*H(Jvz3x_|4?9H(08>TynkRm!}+aAPmxF6Wg-`z-Tg8$2Yg8~70{hQ}7@Hi{C z4Qf;+P7-#uSl9Q+k@zZizw|Z7cm^4cPzbsh-<|kI#hr1S?P(S&mNcMwQj{iX=^kei zdGt*;bFa~JvQ%l?_|@cSF*IO93c4KD8p&`=+*7Nd7F)%VnHW2kXW%F6N)mtz6n0mkQH(-zxv2Y*D)Fpzx|lpu`OgWQ%x4rJ-b_W`F>VweDAWTjbY`7g zD5}%-E@(sQr{4qAZd|ztB?4=?D3XD)cp?K!XUQF^nquu7B~tuN^c#t>2xkzn2a!*_ zBjeCd{s3p{{$HArSjA=+sglp(Cv7aDVeT=}S%4H$@*H7SAl1)9z{*R=YVxGq!fa({ z?8DoGvH0&DTwTh$^Of^1Of2dAUt(~QPw`@f!{A_0tp+TN+wcYK^k_5a-z-P=*p%ni z5Y?KM1a>RPFRMtSf!>_!YY7^$=f%68`7h!q1};-|@5MH@mMb#BCN(44s-*66gJ455 z5QoatU9R}WduL>BF7g;EwKTEP;YH>2<5 za|dK;kDsYA6&mP0)>d^u)Yl`>u#rpwdBB#X3J8``=Ju_9Vwre6Y zhEhiUWZFzwBEI190@S*Zi0Q*r%@7|TyxKe)Jd;tvD3MF^EJ)nuj?4#(UA?b$pE|+N zB_A(JYya%eM)(JX0OoCC0 z^UO3Rgi)5v`G6%`rOYXFp-zX!C9;)ik4x1?W{E0L}<_fcxalP8Tgi0(MO!KisD>TV{Is^fYq3-FUC^TkTtB9~tNg%ixfz8!!GB zCjB2u zt6Mq|g^=^p>G}3|VbD01YYWI;A0OJIk#AEBWP%-izg8}>hl$#0pQ*aVp(8xXL4GcV zT99T#ohibKTr;$vC~-@>CgmuB|LW6%6L1YBPmg}h6dl}m=V&$ZcF*P##B;Fbx4M3S z9z(J$lyYaF>R=Vg#M91%XW0zf2Bv{LbM(jA3ELf8Q5d7voaUlIF9Q4ou|#(u+uf%4 z9F`#2#J@oJ?HPQ01^L>=kaqKeS|bbnimd}NbiO{3CrWM0n$Gce0Jzu#v~-pqrNvN@ zeLiZA6MBaVcprDG;+gU993p>*B4BC7Wyo3g>~#F`9R&PY-#B&z&+v&@^Pq0SRfJ#3 zdU+_~-HzxcQ}ao%P>_si8{B#t(s-4zO7~Q`YfI9#_N{n)ltyY`I$D;{G+MeUhB~U; z+M)t>cGy9=cc<@176Hv|a9nwonGH)imvK)))@y=6B7g@o{{F+qp@w>7EO^hV2FTp8 zE7D;%o{Eg^F(UIih?E&+QmiKe=`ghTvFqiJ0wvmd$Q>8XK|0$TZh74Qv5xx?6S#0? z>S(H7-e%AX%^-p3R5mYJH0#w`ck}>#% z)~x6>wg~A|6TvfMM&M5RS3ON1v*<4;jE!Fp4)Wos!oozjSXhC?nw$-@%}Gdsfv;zp;63U3h<QW6+O8%bP?RfF@yFirMl}sL zwE#CR7MR60x#mVNt)%3KwC*f+8;<(CP8!>tHsm83snAJK5(hqA@hi-ELO@2v)B_>5 z_)y&zKZ-|2*>FTiBK@eNn^n4gO@5Ed%Wix_Yee<%IBT6m*N zq|;}qZrpgoWAL>V8Q}Ri56bPHaCNfK-dE_sQ?Nx#D77S==`5eTb&1KY9gqBqpay0i z@q%Ywde?*eXRB#+X4s#=jRsZXTyCDtcs5rV!Dga?@!YG8Wrauq5#kCsmRg_^`w~ZEabN z;g9`hqm(+a*0#p1A+_wjh%Gry4IKo^FS+_e1e*uQD+5+PyP}4^k8@1l)2PSmet^xP z{QjL2cp5V*J$UaUm!qqxeGnwP9>jjaJ(ytFd8v$cs18L*fd(Ns{1odisV^E|Jqwb_ z9g99#W~z;F6GnJ3IhMCn${n_v=GqhVCt+QVm7^FlHKMTEUkRGf@O)vhLNJkp0hB__ zYih3^k#>-|t_A_i^+cv@Y*rNuvSkBT zM}ejNHb}QU7c&C8Hl=o z-Hod@;J)ARd3T`}x_rmJ4g<;18=aJA(V>}<)`|m`$Lo2*gGJb3F=5{5adu^G4zuhj3eB>IERcL56s!hi z42&*Cc3}_yZUfz6nQ!88toyMFk;%ixaKXjI9^*q;DIXAcz&G~*>H!NW9wNR7^b?t; z@s0E3KfY*@JijD~iiNEJI0{Dl3_i>9{I;rkYt!*fjWGN9G)JDpEC%A1eX7zgP3!Bw z!VWz{QC*NBH-ogZ!;w0fHkoKIUeC2tZn8u$=6 zI_;5T|CYD|5PBmM7ej}RT8o~8=zfTwJU;>3LnFD7)OImEV^$yy$al~nqHClSYbVmr z$6;L;bUOgLjY>&laLmj6+k7Qniixwa#-mb>^?z3#)a{QyzWAs^KMg-Zq(bqwwyaU$ zHG*V8|GIgsNlr)p&hy3(@|z@=_MOa4I-=N{(bfIV-oJ{923so`>TN*~>Y6erUnHzd zfsz(Tw{#+YEZq2@i%SS+DhpgeR|3UCsS4y|B!piF*<2)yG3Hde;wUz#-YOAUs%Et~ z#LSKia-N-1+-4N+r56SV=<#|i@$i|9OM>a%06fR~?$a1_6w>Pw%%hqN0;hSfNhi2f zP?(Kt2_g@uBl5{SUQGwR^%A@Puy)*NYFKAUN#ZsS!Xa0loGmDyP~#0-1nM+TbBHIB zfeIGG-K~0ocIEMTO@YSLSUYAqcjptQvI|hZMKNs0Iku7`)$XR^i9q*=6B)S|*ep}W^kPI|1`QHXQa|M9(p>YG6i>V1?x&FvJOH;Axa{CiYP z&NI~}6W#j<_&OxFmiJ+Ol{1O%hwxII%$I)%n9t&999qd?<3T>`4Ql9#|vP& zv#|8YP&qYAwg%z*F^;}*%w&&lqgd>br;~lOu|(M0ON@lT-&#yrOeo2_V$Rq?A1T}| zT%gT_EtFuh~KT#@S{I9IL zcT>1`hTlWXi;BosgtkqBUu(O`)N=0N^+}}JYO#ILXLJv8faNb|C>g_jS-$M_1vJV0v8nkNSt14dYNikScj{WJ@EA2jD+#~%q zJ9-%Xa3Do(Z5uH-S~+iwF7To{IEi1cByeQHLp)Y^Xis*BxuN_q>bI|3OD70$nz9<| z^7HAjL{U-|W|C)ozl*VeuEFO(EQ7<4=o;@*0%1kKliWGGh&ucWQK0mH zHSt0f04$D4^4Zpl?ew(e>;6M?@hnLfQM2mfDRio^$rA_CL*HLz(ki2cI{<1?Y&Uiw z5~POi4C1ZSS?BTvUGB9UD|yKb7?!YFZ~IPNL=HG(>8ipOZLj*Pw~1r_Xm(Y77h|$s zQxR(Ij05f>(9beov#IDo3^Yz^iIY&~bUHpKX z9~%>E>NWof`uiVbxC8keJcq4cI@~Pz&kSc`t)rxAV{e1zp8lZIfoLwPeC{9p(&uC)}`^HL3QbfBp=qE zltp3)sAdGGb;nZF?r=N;nbRNlAEQxQ0u6{CKP`A3@5%MoGxAptM;J{bg8_e+QnRFF z2z>S0hT|yuaBUTc3@BU2wg|660dSI%4cU}Z_}ns+OT2W$*i<%m4$;@(f&{ySm6 zIgF@A@VJ_cOT!}K9(#4|pq@vL1B@ETD8sX4^k8B;ahw+5e)+yI0|O|7$B}9Zf-{?* zaxsdP9ae820c%7wqiyw|1&XQr&#yJU+zZWwqBEKFdAe>K`riXta?HllX|T*d$VncA zRXq4#;LN`uvlbqUWPP69rX~l-SXq;mPt`QAjuKcmE@wFI&k0{E6g0ic;J@+Xk4n~x z2~MPJOlD(N=sWlpr73|%FQv8hOOewGN zeq;S+K1k;cp{EZQdpiSGvhZen7Mv>_@wa$CwqqHkEHG77e^d@@b1fef@LW~z%&%#D zY%KNCc6#~P_es7kJ=SQpL^~TK@+U%L8xOMp2Um??Q6*JoAZ<`wleMe&xpz>z@SS@8 zlmHZiwR77@%8D0VmyvI0Eo*;p#sAKRV0ti==s~zh2~K}d8IkMdkET!e-EW3fn3+Xc zHLJYpB#9y+TB{*l76MFfeQ9FOzMbLCc^FPc(+YqRLgB1%Dzx!_u_C3yg<})F8&(SD zN<~EfI0V8^7MgV8E<-HyBDKY(W?|8Qr{ZH?KrQ!Of|*vI2H6|5psn8pJ}2}B75|dq zO_+IiW$kF_z}u7G)-eUuw9uPwT8cD~9`SAhZ*-HY5x4QwqB`GLr+m-4LmRbzKTnxO zW;(F8yyj&2_$B|%`sMIc`Ry;buq7i=)(A7xmyPAXugaHOV@|(Kup*E*$>+-|K|YQ- zbcVla-hXyn8U1?1@bkRj7QE_!I*{~VK{)fMk2*2JvpG#3T#4vWPBi>cC3^*y@(Fj) z1umZ&6QpZNQ*``FX{xNs3uLvnv<;HsYj5nW(D%?ej7``%;xsNUvvzDv`3Xx^6D_iT zyYBc4S;5huC1b)8ncIup>U7=7&v_S=ky^krleRVrm40Czf%53x6lT<4>^sI;_3iiS z8Pi$Zq8YKrN1hO{d9fP5PKV1ZxLUgtVgv29KLHM{395XqQiYc!S1-L-hH>;kD}GT- zoIDrILW)vjW+FK=^yO@%_IGMVx60BIOiKAg7=BSvN@Rg-1VOnSZ&?|#6&(L-IIak} z<)jvssHFw;tjjost2mvH(fLBZ5Hte+kP74E?|%6sXWmNchKn(n z&=0oKdgGIl4P;t+7sHBM4rH3Wr31|}?!^(82pk^J@{=6cHIC`A2-9KdSWo%M!!3*a z1%_xpx`vu$Xb$gWeD9)3L;{iSH(Z}O^T(%CcRUx|gxZe!-JhBEqP=D`SYxDrc(Ls{ zKYo3szHJl5ObW1ZhW!~7{n>q0fE}{3gm;!o;`CCP*(|EB(kt%2YHF-sY&1MN*HNoG zD&zB%duTBc4bJM9w)}%*ADs)yjTI6X+Hz~>^;$Pf8TIUx?Jf+DVK5f|I^$@=sQY`d z(fte$8&}MP%LGQ;T#dLW=x~!Qi*l-R{1qamm4jvA4Sp90zK&#_C(5ulWe(zZ${GX)3!(p>YX#h_f zs?|Out-(vTt+W0H4Km)E>9onYvsc#X2K)M5JN7oZn+-Y!lb35>`$cdm;FMbF*wWCP zQQ#`|TYrEPGIFr~&^pJFXYLo8-BUDd4aIeAjbYcdM{4jc$>;ZxHoA1LXv-hITGNjN zZA48*dD-te=T`02SuB1;Gi!w2lCNI0`(z*7s=Uv||5;J|Px<)5Le>a4_(<_LPK*b_ zI(`}I3lwgw$X{XU@jr~1JcEo+;J2?{y&ZfpqL$1T@_w}_@PuBTh-IMd`3!yFwWB0hN$l`p zw9Jg=UmS-WOuJUv52K>9(^SIZu!G6Z1XSIMUg`8sicD?ck4JTTw~5$Fa5PCWt`)?B ziKF%!gt2eJ#1;~c+u>|OgOUqehx{v zy#+dl6ois8mkM-#nx8%@hGdRF3sXk!)A+Jl48Yx+{SS$DbLBozX>-EU3$4N4Tbl9~ z1|!Ddhz5!~Mg%}xV=0k#QWZpfUkWPmu48vLo=-=h9h>olX9b)TV#>A&$3W>GUZc|{ zSHd%)>(W|}t~5ub%2$D-QKY!Td`oH-T-`uEEM|{_R9q=X_pJ!SpW`K zfvWD&TVE@Y6zT$wPxzZKO8R-0hVTz<5|*c2faM4Yt;Z0}JHFRxyakr=850!G>+oR7 zjtI>O^*B%^B-Gn7aC}%ic!%fvF0m8ZZ|N!km+Yi)_V^E?0|~XzOqnUJrWO(|eQyiZ z4F{L*U5nC>Ur73@`z3&PV^FZPCyNA*1AJ)Oa%EtM;L(0399``w9TgnvzCKJR!}sBG zVh^YgO&Md9zbO_c@qkWST&5!#yGtU+S|!?~&nVuaNFs-)n|`D5(SVFUPg_hp5~o&fZ%WkC%2em&hS)?*i64hYxNk$p3PO@&;TF{eGC zIXZ$@>IlWRN9Lho^ztk!LD^#tF#eAVRHC~9BrYWJ$^}v!D&QSfZ|p*Q9#f89siM&E zgqSV|6*!`Sb^Tm1A*4)X6Ow8nbIHw3nTVV|RZNUp5hmqyED&EA5bxEag~=~nMaf=) zU;$CAKhx3IM?Sx#J!Fqm!BfQ(DCw;%VdfVvDNPa_7qsU)pV_-0WE_DYaDXB6s2fy< z&o13FpXKmx<(^_tXQ2FR2RI&D+7fy_t0(%Kd0Yi!KQTqz3 zs~ewj6^}6@DG;9j_I=p;hv-m^uBjLd55yx{&s39*CXv${Lxfc+G#BS zmA)He169}f=jmytKH#rNQfMIl>Vg98;(^#y>WE-iMlSx$RmS;iUTVX6)9FPASJ&Cc zL50Goim$@>@dJIjzL|XYvDpw}L|7?S86Af>FRkHP&#m^O+2O-x<&FL9$F!hKa&pnh zwrcCCjRcIt!Q*iH7A#4c?iyP^M(%X*8B4Qp|!HzC_~o97r1d7f@^5Hg5_h~6aM<2|$^FQYwbzMv?A%HVZPZGMQtj`V|kum#}Y zDvy?u3!hK^oLb}5_p|)qeKT5^{(be&TSKd$qfwc*6kE;kU{q~j*i`Egfi|pb#xZ%@ zaYdTa4sP3Us@r4`*aN2QFsPf2J}YX&RQ#!{=#PsD*{r&wX>Tq7Jo;*9Hli!G@sA2g zpws>(ZZB0EJr|NyN(ZNtJ5_Ix%=)=2iDso$<6eGHZX4t6hE9lE;AM8)YmL*;n2BDk zm4|Ushyly?rhqEQw=WsPiZC~zuMOt)TW{**xhvAjb*RF@yQp5;$cJQ|hwdj)hFIW# zSEn4%52K8PZTA;Go|IWn6nDuZURVq{)uzb-IgOYx_G*dBk8n!PFQDT(&FhfPQIc<7 zGfG%%$|^g@eGoMxTQc~Te6&WYp^7)XG`^3#2Xy%qrbjPu45g<=9RlAo6-N?64u87^ z=c4!v>DQ{7$~M?w@?gyD67jTd6^kHjlo^EULY4w-GT?0ujG$H1+@q2^zw3KAxwPd# zmHBY%PDhu?TuK^_j&lR|PvAfEUVx(4)VW_0ER;vhst_19{Va%IVqrOfeLtB+ZIGI& zP{nS`zLHeksY8nc_lA{C70e%vM_>6ZM!6V7At;@M3vL@8~FXYANiN9 z2ZrO2>YkDy&_ylz!!>8o?9F!{Bv6ocj|W3uFh=Gu6)%EMuX0-$fr@-U4)xJ`s;xJ? z_-TmLJHT3k5bZ#S$`U!yukO84vLzV4XTy)wgD z;X&Gt*P@t0MqGybpu zTA8cdaS!B+h^Wt|INza@_7@sjJ7YPshJq>h3EMme8YJgOiQHu?v$o4&Q`|oS104Is4vD)Hxl^yk)<28wofH*stLfyHNNz;gzqjaKq{h~LR`f*2%KON=;g>Jh zFJgp|s5sTfUOdlwJ9K?flDkz86TGs+H>`+mW%>zDwg_&H+FD(u1~`7dz-$dyTrL3$ zCgx9ap>H)Yq6XlkCqI@LE+|%_?@is|_giXpOkZgdx}5_KlwUt;q;ihbf|mG?Z*vfQ zZdnZ`YHRL2y3y~{5UP$mkGWwB6RZ>3f6G-QR-m^& z=EhBkZ)rX>wBkSbke*%&PHI*H>giF3g&2UTVi}G}q#eL}RYj%*S!E}=UC2_@ zcALbczJgI|)P_D(PhG)bc|YXo>WoqkME#t6WDk|$S}l8Y~{j1dywg!5pzlwYruglc+aA5+tSG!h;WRK&<}l`4cBf{@ zj0x$Luf|G@J!;WxW`Z4*d9Bf2GXRVv#Yxx0 zC&}PYT=tg_Sf?Uog!w%97^MxPHhA^Mn}yW(P2!GBlEETgszQ~RTkkVfZH^x0vIt zcXd7=>DV6@<-OXCM>pwsR6!qnv^|aNzBsjwPn>!_d!y~8zL<`t*DIiY(UdAoKeO2; z6Rn&Ds_bh$;e0$<{1+TRhQC3s|EusZFRu%tuY~WT|I_;4zo;zd*8;VFT+O%rl+!W0 zMv4 z*ArKb4SjaPMOyR)VcfdMI)6?G6trG2(^=!x9w822L-RGi~tl7qklzL1usSw4-UtVj}71J9<%CQA6` zrP|$TlBP?O;O*%(PdCMLiVh4`COO-WWaT1)W@~TNzES5$$Ds@T;1@C4(a1X&n~`fszu>2WB4rrB&FDSHCJ%H@siha; zskHf=0MN#^`+j41zPEp+mQa<`tIe)}jRoW4r7KZ)Z8#ze%R=j*kAK_JKo2O*JaOnR z#^f6T8TN--i!kxq8u`-9<6DGWOlJ2Y;v@Mcw@pD=YN^tnk-nfb@k`I>(Tn5@`dd;XYub%v(0ygz;T?K*X693_&#|ha$}2vQ zGesWxNe`aQWJ|2hYk=TGwb8_*m$)6!H8AoewQcA|H;FvAMC&bV+hZPca0|urff9q; z_+NqhzePB+g`@6_3bz=K(3z!)p1P-!9~fME{LM*ugq7Vg{lWLaq5Iz793$)A&68XC zKy<5^#<&AvrK$K;^81+=H7+BS<7^*ge$=zo#!z+o<2LIQlEsPNEA>s`8*s0e*T^q6?3za>`qh?}* zwN^z`ozFQSM`bw2erd97Urb@N8Ipp|dcf)eNAQs>#yerbbz{Njsr?Q4ns-OJ0=?N}yn zWkUoZ55nws2)O;S{_z$n@Sh{vFj777+tNScXO44q@udG*%LHc~FH8(fXw@>Mmh1D^ zbaEpmy1?2hY^xQ#K3Mb1PcPCZ*mVIuAIQ56I8yXMGuuIr4UXQfuE-V2KJM>+8P}CR zl{hT)JAHkHB~405)bK0%6`8)RYRft3aabsh3E+CA1G2(njW=}6E^F&pvX+H87gu?_ zu5OIcpmxgWI|d@8NAW&G-WX%*(#neO6Nf@8!x4#}cEO0apZ^N`*BD*2TJN|bm5j~`eYrSE^zT~0ng*5`c5@3}% zBr(jw*nS6odvO3(usM+GGdod56#gVgm;0AdD6-RoAa2YLp4SN#miR&w3lt0iVsv#3=Z-JC*Dp0y;63&q%6zmxvRLy~X zYmI*&Yx^4v%f|WV4xO@NSjCs(Z4)|!k0ncpbNd{Oaf6RH6@B8EF-KRBu3iAV2TaE@ zJp!r3-*?lwFx-V9Lr%Gk`UoqBobk>Z%jic7;RH71-=j^%b(59k zzqlKo3Q0Y2Tu76?L%pst~4q z6bW$&YO8S!P6JcTMs#cr2wfl#VYZaX^7XOB{|;v6G#snE%<{NqB^`4IR8tKG6IkaH zl-PM2O1ww2Knh(Ijew&eSF_#v zGMr!}kZWE<-<`JEt7IHC8m0Q3kyy9$$gc47td2NDwgLQf1L(!BF|R{y9qi|&qLhD` zEcc^{rtI7(ryvj2>!lYUKflPobWAR^!b+Wo+>jLYsSr=eglzUKz+x9|Kx9A^Q(Hgr z$lC2>I%QJZ!$s6n&dLczTCDNIS9w$m{VqZJil5`F5RRHA!h1qQ%CS)M&RJCqjJz#?F+6E>vDD#&(Tq6;>w8P?iZ)k) zV4H|U#AS)bs=uQft4mJZtLCLKLVQ~OC@72kjk(qgSpBtSPtiLCD;pr!a>H~%x=rIB zy+8d==7OjPa@BPc=OuV7;C71i*oDbm+lox}DxbV=^YlwH-1TBeTJ;`+_O>2PuY6yc zTeZnS0sANqR`4zv<)Xyri?NO>ojUR(zHAzt%xBsdEu5QbdX&yCzgd^t(4yBFapIKP zn`pUf)3lqRa70=Sb+r zdHqxF-)f}rhQ|eJIX#PV5*AsFcxL>4u2FsrwZG2Mf&MdJJqzNWnZi5w<93(y;iW_E zw$4D##odmlfYWCX5VULf+q86fZonn1x_mf(EM_k?{3;+jaUvaA&_%H{4VdP7F&taO z2`0Fs>Myu+S14QhY7o+DXL}pF>(iXdqCNi~(tiI#5cXdG_E%GapHVnh(1Q!x@<8gD z=?!AR5%XWF>bOJTb?SFa-U@0uGb-!!K_xFc=N!r6cuIqs+lJ6($s}NDW6ca6sKTM? zu}Mp)t<6{gYJLxsD;U#tA;F#ET|w6*&RXI}QD24vvDVemSJ9+Kf$xJ#4h>c&g(5Zn z7Hg4?4v#0<--=DN@Tbrn}DkHjo1b;`QDSZisfkY;lWbA^LJLr z2lq>USns}(h^|5>{V0JutH_ytT0G(*J+^^bVH+H?t8JognN98&{J9rTr;{A;!8UC?7@tyIGVcL+Fo; z1X|FSND6$@m8CE=_>q`BY&F6X=YuI37$MjrvO|WnR!FUu*bub9*91%bM2-T|?4brj zstqeg=RDlq`w2%MO*x$g!-D!P?_L3N*S{o-Cgz(ioIG5yIR;*C%Bhi-^Qf^NqWB)> z@eh)3Jd{{tHeqv*>g&BpdW`C0O#A}r@a5ltr6K!ZqV`=j#?~W5Lzx4%pyvIqD$_54 zPXTN%Um3#^lpU_8Aza3lsrTM#bo3a zRK0B8V)WQK=KB0SFSfNmF^3)f@g8G+qdsC9h;o|mB@N^^7b<6P`7GkIls~&!zN5?w zX}m8fmgFb&dY_u!Vj;IlIvbxr3g-5PGabEDkr}zGx6Zn zqscc&bJ6T-2ah;=%-PhTlGc6?8RF8z$Xr7>p&j%POrSdY<}XEHeN$PVFym^rv*$uRQ@%)t_a$aj*Z5>d0W1Ux!p*DR_C?lwObd z@txn6PI;JZ{};3GEu2mP^cV`vffe&L2Qb1^&* zPNh&k}6%<4!~?1*Mw9S#p<^uUg1$P7=hWcv$=l z%bgo1`$MPtNHT<|QSVhazmexC+zd#B8^yB7rS7nqbe{yCXJ4jRNU+QoZ`OxCiA;5$ zFnuz0^@q&-+MVB9N%l5H0**S?WN;~Mh>Kn^u}v){#-xYFh(A_#iQ?4qYY5Usb%D2f zaOW=L`O9Hu=78Y6){3`O>laLcGw$1~;s@hB^X10wR+GtHlLxoE<~n}qFjT%piShqL z#(@zrSb`sK5;5`i-`F{B^ghB`Rd=CV4en!*v6H_J7}2|bwrQoPGwY7owY;dNnT%xf zRm?MdV@M$G>Ea+;$4_(^gp?6LPV4ANP`u{6!vj&lmpY)5AdH?CB-<-c?f2?`wd@-c7+#6ijJ{!eEDErT6y)LNZ7tza=$kaOqE;OA}t_C?*o@X6>#t%yvciHkN z@Lqf@waU}dTXxNNyQgiGUQr!^`f__quBhy(t_|ilr``CVGcO#6>_XOkOLaMFzF6BL zGb^co%4&ToN8#NVNDG0kr^KMJN!{Mh4? zSA3s)>kTMX*6NdU$!gk{jCmKq+i_o$IFfSPvP4Qcx|#tqw3>gW*F3}1COW;$f6A_p zYerpri99Ge57ZCEB=j>@-1!9z`;~v3kQ|8#swE@9D{K=9M_KuXaPqR5RX)&-94tQa zI;PVab4sZ%ht@0@>1s2^jvaHW^yO5_vs;{nMh*QSM6+sDQYds?7Rynaad!Mv>P+zR zD70}`DpUmv4zydMTY~7N3!UaEG9HH@yfnzEh>91!%+-b+uhtC4U4cy?oB%YFk0Lax zLs3aL6)Nt#{K<&LBGmbkh|Yamd{KHC%prvqtWZJV##9T(9~{ZlXJUk3gHZu2nn$a! z22X`2F_vMJWFEQ4kQ2%CYTm^|#pRaPdNwFE1o`A}j%~d7d}x)-0MU#mfKMgk<5H(u z96IDR|5RRvm1kixSb}I8_a2@~R~0obIrV%eKz)5Wg(wY}7Bb%i7*%~?3Gy;eM*ZaJ z^O@Z%dcvM`cn{B+&xaR!)h;-_94b@?{^8Glngaag*OHY!!A^_=2U;ge*xL&#IO*Kr@1^7z=o*sKAJVQRt?2ZC z4H11kgZ+}5x6mmw!KsKn$L#emfw2?YOU^R|fzt8#n0rwoZ zh6X{vqnUpYQ-N*Jc`f`2hCSX`LfZ>8vBX-wz6xQ;zsVJVy>p7>u8r1gDT{@Rj3H^! z79~^(i*2w0TI&!V?cZpo>|zG|$&5bQsruWGInOpPRpMnH#iEV({l5Y`zni91{ZCJ2 zcNoSp%qNYT^_+8xftLw?XS`6R;F!F`bH=VD7TC4#e-CPZ>}D@|x5&R2f9;=obGF>r zpVw5Y9(atm{HQZ+^bJa#J!;=?tbZZ-9v0_wpz~pK=f-*8*|4-Bq;rjZ)fPSJF=R(z z``VS;Rp!9AQM?JKL$i4(G%Zrj)6GY?UiF{U4u5RK7xivNfqn3Qlfmki2gxjps00fh z6my`6XMT$(m-$Z^5dXX6r9~I#VcY4PXM8)q2a;Eu2>b7v1^?JF3^3Z98zv&RfL1W- zy*IXs5z5|;IK5+wX~13F3&*rqaO3*|mEQz^DWT6j$LesX%^Y>Zbw-f-8vpt97WQ=g zco{0-&m9xysZyj==b}R%mUqQ3H?U!Kr>8MVJ{m{%HQpO~Nl(>iAoOK?t#_&G&36bdaBS-HVAw{5fvwYL8OhBON zP*zsdQ(SZTB;HK~CeFO@YDLTK-zHCZ+-`|{C<|8!e_J{C-Qt&3FNLE^(4BMKzS4P0 zeDG@to0PrnUKQyIYK-k#nL(tmiSph#?eHCv!jh?TY{xAMVgA=yqRDGSL0_uSQ_*>X zl1$G>>nKD@d7=lqE2Av~c-QYWVUFg+kIKnT8iOH9qUx{xqK-Y@U>=m?^!wk_YupmZ z=`86p;tK~XbZ9mmn9^s6?&^F)7;m4O170wUR%?^DUs}539>Mk#>5D7WICy8!TNnJ< z^5-3QiKdQh>{zI zNUF0S;yAA^0@0OKRQ*D-rJkh2bZnDSGY+G=th3Azk@s~t;W;)D&E#V}go-uws$L48 zV7TfMgVkP6tQMG^EMhm<1ii1F=zevL3NBN5?4 zIx4S=M%9BKq?7E8V_(L38Qd}rCxS9gBF8AM(Q!R(<1Wni>d!_AFu*?XbaHi^1`66{ zSz5Aanqt|}E-cB1Ym*~ICzM>I^6Lq{`QEW$+^Ob&s1=Wng2Gb}?RuQldnq}|MaSDz zPe#|6T|3Ia)FF~-xQ>n`)S2uKDg|K>RE$o6T4bjgEU)O}$4_1+-1F!WIp(T2g?#`V zxt!yfz1G%trcEhEmduNx35bBIWUYb9Ej~`Nt+CV1-XB=a9wnN6hqe%!Hdw}*b1@lc z`|vwqkDtM%GDP+W{?|I^XX3e0$)*?DoaIYOz~ibl0l`D7gf^rO9+qD;Bhu;}l7#a3 zbiiy1PJHgjM-sjWvT~U|{nIK9-@le4;VFbZv2;H4_G$zTPzS<&=@MJ)5l&1)uDRh{ zRaG30f;%S(szSF7Rkpe8d9%JYR2$rO$@O15tz{1IC zb{;lrIPDtG6|W2-bAIF@cWrn#qRKXPk7l0^&6QS*@SAt}uC7dVl%JF2SL(qn30`P# zlm~)C9O))|Szm%YxLX*{MA@NlD@D)qRgQ*1O~75j(_FOC6~o zZ^0ZFm{w#_P`$Xnl8z%ehe&cYx+;4qYjxY>POT#iKX^Qrotd$}1cPy#A3L&mGY12D ze;&7kx#?A^xU;q(^KcSLcEV=dF3Gdco-h<9ODx6yIT(h-nZ{Hun93S`(M?Y* zPYEw5w_}BfFR1?OUonW|A_R>VC(7esLE5dX$-7>m7Z5rxkU$$6+devxE1m>o86lG) z6^Y{516@+iqr)?B*Z?u3DcH?MpKt=i zseTMl@x5t~c~3l~sh>bx`~7)m@HP2CPDjPMIg~LxXSflmBUj;~J+E^^)!CmHelbb0 zO(cO?J4Em~hP}d-dwj-J89PolVZ(6C%wm)Xz?aIN_o3QRip2*gpOQbZm)X}0ieoj+ zo_U%MH4LPqtrfQ^v5IFb+4PTEY9afL?m-_Tfbv;gmCcc)X9f$$XuGvrjiXy=d*l`~ zP%@1n9XKRKmAI>ALn{WPJaJf#>zHd#>O2BZ62z*t1t)YfwK@*kv=}Fj-@T9(4yFWe>PKaTGcR}3JPcM%v43C($IW}g4!Ez`#NfpFKBo%l zaa!QqSNfiL3xwTuPRja5RN3{^T*sWhl!mmbkmmo!po2{y@i}ypm|7s?AFF?(*DChBzNRhUd&mLdoTU5)#t9>L(Uy^Ym}L zEo#(hSGj(jJ|gRO*3zp+pZUmnO?p&%f7m~mT$khII?=5+dq!6)o8Y-^o^W!U@n{dm> zg1wz2&lnT^nof8#Fh)6D_JTLcsXO%&XY^c?MElrteD$6G)h+PR9dTWH-JVC32RL^9 zDrv2lNd2O>N8ZkR9CPaYr5E#B(vOfEYv6F@=k$v*9uf)Z^XA5T;e3aKkE!Fr?SzE4 z_y^?KA1#j`@-+!E4@Ix4aRV>+i~KCfE@azXpVh)%x!I`(`1x~mu= z2gA9goN2Y9FxnT_3b-qdnDDw6;b@>g66GlsDQEq2H=2U-?QvvUhZR z#Lk2QQATVuoL zGwKek_qqio(B(1a%G_OjJh?DDSD2Quw22{!NVirj?F!&%-;QwqAQ)Pxqql?3c#jD) zm19(<=Q=&Lwky07^`qd+w83e;cUj*YUg1nBtt(^4Lx{H&u`v1wC5#&2|E}2=S*3_> zvSYJ!V`(e!N}8{OXl{XTUWkPLP8pkl0hMMC>4BRv?)sJZl+J8hssn4B#P_!15taWf zD;tW|d4Y;U%D&x|KAsigG5qtX4mJ${GXt!npzlpe=QzrqMRdmmOH(@r8bntlf#p% z(#1$jnfC=dbUrkiUgM&9OhMty<97Y z65fFM@#aQez}7$w@OpFex%-+uWBy(uIx#FcO8vvECTsfj5ry{agYr**e~cOx+P|99 zSoU&OzVM;&cRcZw_8Tl~aaVAPWl6>4$_K|n{%!W@`F$Y4@-{1a%5~;1rReLCbQ$G0 zQJ2e-aDY#jNUA>yZIxdk_Yx9c)}8dMdpB7^$XDOo5+G4~rY4-vrSEJ)Yc~Bm%UczA-9`m|`($84I5%(Ng0@a&0z^uPYqc1Dr&GJYA<34UObyvv>^8uE>UsnCueop|C40oZ|W84`n3C@3)!3>kAB*t*37+u9TRg8!h z*g%wmMK1O42)oC0c)Kw~T(%yh%SQf?FylA>aj6k3Z{{JOutJ|d@66bTFK`U@!JA2# z@a%%~?spis{oX~F{s-F2rSvjmI8JMPtCOy$)=cb3C^$c%)NtD(J+Fz!1ZMeU?#dPNhJnvwAC}D0xGeEfjea}3f2^}V6&Y07?`j1##Z&CDkOV}d zKX25HDcmB}5X7AdQ=@xPy49JWOfVhWEmgnY1kMb8Ho}8)5&&rk!!UfwZ1R06sGnnQ zNW0ORxfn4GD#Fwnu7oCQz&MIrcy!YmW!JOxCIl?QXfC>K>NE&GljLDbJT2Z(z$Q^n z3awJVoXE%!o6;6QM$nnGG-O0qnoe(^|GT$LM_tJGXj&Rbfs@O*W|R0E?Lik>HMdKg zS2P6sR$i*duwDy#Xx=Z>GULKR!C^hL+{kEfnXiRqiqhI!P`Fhy$WAoX{#i!B8lKrUJsZZBnj;0$>azFei!$r2O{fwd^^W@TJ%b|n9!zIV~de$8xz z{DIl;MAA6%!}GEA+m2QVa;cefF!>~vDue;usj#Kl$<78z-*lmBKat;yOSz1dYz|#Z zAZ=)MzlPFX{dDC&t|+CTC{lzdU0{&mzA`TfHXRk!usP z9ouqGwIVJK9n$?C>3mhyMBP%6lrez%_=Fu7fy&a{d2vPWUMmk&C~x9#E?_vBu21#1 z>E5>H3*NJsEKGKJv`bWu6jCZ4etV6T&IrY^VX^qE!VLeU!kC)#2z2#JPZsNSh^4_++r@1EV`Mv{oYat`Lh zU3Yi?fmzRNXt(%KB^M z+uvx_Wx{l6wXGCO*A`fVt%+&z9}OKhEy8(KhnCnH-|yRyU#@*jRFaOn1d4AsnT%^eSo1tagTqDNTt^-d-{p<0mNC8MY;cdtue@SG6Z|#E zj_-A6cv|Gq1n?c5F3WqZ{a_HTucf_uGeXlYH!wO;Wf*_Tk{2Brot62_x9!<^n1U)5bx?l&^^x)|rcc)N@MMcWKc;Mt28h&X*Ct6QsAOCDMyQ$#zRNu? z(`yKo)MJz`nVSlQV>0Pmd<%d>`JTq{+g!Eg-<^Ayt-K9)pOq%WyzFb?^Xbw!|HMCP z$>0%RZ)I|gSTsg7RU+W<`3wIj>;m=uZI$zFWz*u%)El~$p^5=!Va@x}Z7twA{cCK| z*J=Aq(RrZv(|P*xXPiLH+;b;)6;qKwMBK%!MX*C?c2lc5$rZFggE{K-U+GKi7texZpBy`Wo2{ z-~i$hQCp`9OgaE5sTdGgO-F_!?nk%nCz8}>0#_nZ-nynouH`!f`2>rld=tcwG$nej z4lj2>&-MF0PqrY8dvP$u_OoS-bOHnx%T7t!o(b&M@%YUGA;M4Tix7C)e6_My=NCwo z-Sgrj2VUirU-H$1%GX#zr)uLndKCFEAoB`G21C!U8{e-I!CIN++B@zpBG9?VqB}Lr zoY5bvFCv@B-Ie}3ufmzsdA?4#zIYBdD7wtOT7n6xt&C_P#f{LwvI}Oh>B_l9Pk|0y z`ar<9@f;=C;nyTGZp4E<_Ok9qbbSu9W2;bj8`DB-B9uA(EN-c zp`|rRB)}-|LVLtPXn~{%UY%oK)ftfE} znGwAyS~XJ$^$~!wIoIwFQC1f$x%{ZGd>Hfk07Anwdg#$Ib$dFLa)_Ee?in+5o|Fh( zKdU0B8IZ!KWQggwuLUp0RlAL=ANMebcE83*KZKcH(e+F+U)Y^CX5yQ#dadK0B zuLj%vsz)2}JSmv4?As+b<-f|l{T+Xm3EyBy>&E`HZ|q+dv&Dz+e%0e8>$5K5^Kq`- z;#&O4FKe6b`OSCf>ihZqDsjuliYV9hsP0s?&3`&74O760uI+4?IL(n2EEa^#oc#eE zevDF=f#)z=0atRJ1AmI4!=s47{~*6e%wovzZA#9o&xFQR6r8m&)Dg2>-?{V_A6jlt z8%m^C&!zYb;z;09dm{P{5BEGROeqCow(lNKut&ReJ+R>aw9o>| zAlap3A=STwx1*nr>Y%!;1cXF$mn{6^#Yass^;zc(kY2KM)m! zYN66ZrPt&PneZyxQ?w5N7{qOZHri3CnFwOm-eIaBsX;s_PDtBVGL1CMee9ooTY@Kx zyUYAmFI3yk3Y3TYDPGR?B-yH67m%LiLOUyBgM|qN|JH6Pfm}6T$?B2{YG*17>Sw>_ zprXDyq;ADoY)d@9l~Ov73JWmly`-ee@Uda>+QN7vs-U`LxxhIbcxHh2pY;p3C+Fk! z*WD{YB*(Ua`qB>1+U$Ji+&6A1|X?vswAbgfOVC06Lxi3GV)SyownaQ(B z`ufB;S}r}8W)mE5yo%#KRJ#cco&KPf8Wt0Isk^&%-X!m&DV&MC7AIJo4r zbvJdDtV1|laP~8tMGQCX;19?6_!a(L+hwP5gMrLkKh(&)2v8>N=E#|rD_PlV7s`M2 zIV?o8?haU}z0Cff;Sm3i-9-)Uc{J`K>%TYp}#Bsh*u*oGqa^X7Z=?{>UD z5K=hK-za{2`4?0Roz^a(P7tLQLmxR4LWrsbH_o42A2O#(ZV;3iDndh)*M-V|~PSbJPd$q!rVn#~{$P z(SV#oaq*_xV@@30MmE@)vtXo? z0FwKvImGyk06GvK3PEX1E(l=1kV zMIA%MJ!o0nnW!$oN%_$lG~nGWTKWWfwE#Jim%%zs}d5 z64WL^uoji=X)=5A_)GX0_Nj3r``O}|ja#+&P50@}`iidKC#8KE`6gkdCOOkL0B#8D zo^Ag;)(`r!?>IrAGbU8$f336szt>%WGoljrt`KdCvQf1x^KXttasG12p!P7ilpQ9t$Jy)vx-9n z9?=h%WmYoIPV!PzA|-~qm5&ko{vOuj|MrZZc7y}zB~Tfe2?yw?L37i#tG(}Gx;*IV zc*Ni%ehAS)DjcG^Z-m(0Q}h7&9bGl$$dxxalaxpe4T~4IuK~e~P4`(D8$^P*8PQY* ze{}FC}Hw#t&)UeF`W`i0T!4=x8`ztrQ^XAC@3?$BLILUXFM*%zu&VKkix7H7HDj<8TL<{B>>?xx zh3kSw0lT*u6KqA_AZV_WJu;et0{!+K`IA6@yaV;TN=tte0nzRwq&ZV}DomaLOHWk` zJ?L&wRVA3YhKITIP?0N$zPxXURAik z`o}ttNBJGPj#?{Qk6+CNlb#Ee@+xcR+E`ckxpE^O;(qej_n<~l)51KJSZ32y*eEo+ z;J2wLr8RM7K9dbPpI+lJBGG3$(+E70xMk?J7RxAfEYds^%`!JfWk8^L!K^Q z{#@QhK31(tdc#KU>2J=Fk#@ zif!7num>0`*u|FY{uM*}sj$gR6d767Zh=@=XHCmgi`n&QIW^J@i;Vz_RTYPl^l&~+ zc;wf8c4=!Er|_8hBwnb|TlItwp7PrfqCSaaZh6+dVki|1fR_=qP;6!;Z6ER&Pqe_J z$<6g~#Pv2g=t^B8)rU|WCQ3j&tybnlj_Bq5KXyY?FuTlb8Ci`?D^bxGTUeYm#Laj43W~5ilqxW#AI;&uK~{Kv0)Yi%;{%l%>28; zwae)N6a=zh#RPA8UNH-HCLG_q-XefDZ>Rm&jw&++2~CuzAFn)p6w2Yt-5E=Bpra9b-udn+zTUU_Sh z4L4#7HT(}A!I6)CsqcZH>Om#s#T4Z!!}2WsH>rk-`LOf&+?REXuSCHT#Z zRZhieg7iF@zQu~+g5PuIUTXMet|1bK3Mp7fDVpEtfA(j~C>Ba4kimWM+ znD7wAmmJy0bxgD<7#f%QfSXIwOLyjj_1E*#tBOlyr80{OX;ZI1g^}^M>h^chnOp9? z5I}JvM~RdoG%LIQ+m54{b%~bb^32-yPrbE6w{emt1&a!J&`V*?#dq}#-_Q#a$r?FO zwUPGHpPOi>58qzlxDb*|vaq5xTKj|wuEInNz{jh;fjnc|}2D z!Fp|?g!vbZB%#F!N?7TXatbm#rnyQ1^*WWhU3(3JXz1e;e4sD;b7_Qyx|_08`JRG- z7bArJ3r#9jt{Gf&00-60=(8s;DZH+67SAY6v5%^h=2AKA+y{RY3Z|lpuIpaY!NgQ4 z_1IJgY7kUN<1%;Ce9_o8&W*IuO_z`(^L`YBGD#-OSE5ZeVEn{QN1s7%a8>;{{f)e79V` z?bYk(!Il4v9G>`qSy6T9~>%oURG$qFNCrRN2;6^SE(C!u#hj$;=^#)gE2RDh0% zn_v)ozJF%1sh)RU+r>E!2Mks)?J!~+t8+b;fi~Iekb1yP3 zi|7s&Q{jE6yB~87brL2Hi^b;+IwH;8B;VAWkWl@bcB`YAy1bPwtg-2(I5cIrUlr?s zxQEBx}$5q`(oRryh4M|~Gr*I~Ob zB@MTP)23X`s1cT~_Cu?F!P+&{9{EkCs1m+4%o6sP?)Cbspta>XII-w1^hOgyBgQGT zZhmZ@&KZV=L$F%!_^ziyqGRv)u-2VwA0tcy{bj7!wDu@n&O=R1IgWUnMbX3yT0>|B zvU-|5YVC?xVuSL4GQA;Vee7mNHUPAzN(B+vbQuzjLtvpHTg4i@V_`g;(Hej_0^n|< zxSx{Tzsma*Y}O|_wNgu2n}d#Fw-_wGDq2A7qPTMq7q3cb<%>QqR~Et@%>YuqYGaY* z+e--tD+B3YQqKfWk1R{{#Z}9pzg4T^-)hEfVu*)oA7*kC8IzehKUEH!OV;q-sSt>< zt5j{s9zFC>r24`|0^Jee#CyvXsm-f?&GppRGtm4hQUZ)ht7k;CSUf|D=O3xT(F7t$ z8?v^CV3{WEXTs}b#n^zpM4STAz5%?&o+iXjb@o@LdYuvBVsG>DZ{^6nEm*BuhEmS@H#>Luh}RPp%J0@_Jw9q9^M=A{ zV*64di>6&#WZbv7x#KnbXye3rx#IBhm$+deuypXnV<4d8;?%Zs;?I~&;Udp{6uSh^ zJaEDceZw7jb`@8g$s@|{u%PQ-@#8**dYlO8%%?KDhTkH~5hGaS-q)TQMRp>Bgd$XT zDLd>>R^B`%t9ZCf?a( zbA0lVAh5hpCT6|zJJIIfOMeJ~BSLZ~=C#MoZdZ$IHvv(0S`n+~I;EPkthH(L+? zgYko^(u1E4^_@F~N!iO_1Gd=nx*ck*v3vN(G>Z1?(qq=9gE(?G(D0`r)ju?Z{iw`v z)0>&jKi0$fL_y*IhUWS|O7$nAQWC17&TCHo_2jhS>2v^wAY)<7;@mD*!YI9c*@@&Y+C^1!`9y|J#Le~ww+bASeJiVY2HWC zu;A?WXmw~33$rLe#NLRv5z7O`O-xfY#tAi+d^`PMoJZBvXDCAerb$^9v#4>P=z^zp zA*bBX%PG<}bVaZ{JQ)wv9EDk5qc7v$_fp^)f<8e-Yo*iyG5Dhodp}=G8M_GKBCmF% z3v;5~Cke!nHPMV)b1}>JX*}6z*t+OcN*GON1>AC3V~XTLL7vlOxtl{rnP?pp2T7;i z%CUV|v84i>fP(?~Is{g!Wi3(WZ;nfFnGQMVw42!mRtmlMrd=Rj<t-F~OWU9%c|q z^O16?QF1!1Qqq~Ez91lDUJ!^G;-3Ri(S@zxEtmRtJzHV$clV2GeMQ8}e2)=HgIB&5 z%%4?i&LWyH^mrcK`cI|ie%xH>mo00$cir%A;bR;ZQq>vl4+YrV4DEQ*D8{KZJ%YBg zu!3MsRwkWb@^RF#W>86RE*tW5D(=Py;4@creGF-Ukwh}UI~ z?pPycV)r0Hgep2y&aj@xauR$%r#W8P+!|tx{%TuvKz9!Bpp zvu%g^wnfub_vbMNs`F-kl8qF*pt`o5dHH1BIo|eu@;Y?N15UP^9b`>59hdmr39KSFjg3xkxDh@Qn@i+jAi_kb$25dh z?KOyCRs4D46f_<@(3Et%m@bmPB4~19LO`_nIiZ9bx0=}tx zq#B=)n22cq_93K^?c^AiI+T`|AGe~kv{HR1s5W!*LKxvdaTGG_OC@(?UO6@$c`+Pw z!{;;g#!LssK6puzi#E&_6)J(eXJXeobM&>O_)kZJ_9SF*P`t%o5W@0VhrXms)w}L0Toxy1 zNs+iyo9+UZrl%vW^XQ(3L;@WE5pR#%ckfX=O!q~4caEMaPL?|Yf&!=NyG-82JUrA) zFT3))D!|q5fTt9*+KT>py4k_O@o^wgUc6Hu<$g#qKR-ggW+f!e_I=|_qq7Q(C9Q|C z4EDS5qlFGN?R081^P{y3ymUE&S#X7X!(|EvD~tovTzv*TfnLSAQB5J41ro?+0Vf$o zibW`;(o5eCP0iYavJr3lCb#PP{7Xgd10h7-E5Ik%h~-3R2_%mc5J_#Krv0mZjX7%i z*K6u{G}YZM+Gio>G95z2o)p$#wz_`EVX1=xmiQCn*<3g`E-}) zJSWy3k>Z4X1+01a?ZwgiRhtZbF0M}@TW1oosoT=k4aAm$IrU1=0_MVqe^fYY>1!Mq zcXQ!l&}5g1;gVK0hl`x8Add|et+z=|E`bDom%%gV6cgX=t7@3_T(gg$>tD5PKF%K= z>@-4KDo|_uHGC#~RIM?(-LQHRU8y}Wg;#9?|Bm;;@!Inu9O389F$3dRletA(v#}46 z^MTh1?IqrIQGQ6Y!ouM1q4rl(yegy{?TqpO!F4M|Iu@5P8{e$H*uJJ0X{I)v+7LxK(daap#K~$eOX#ZCSdRlHnXpszR7>p^KlG1s*b)4G0i^-0L%&{mWsI4 zTIYiVrGXMWTGFs9b@X3vj0*>4*C{=~E;cQ&ILWQEcO@CQg#s}CCxHN%XcniDJ&9#< zYVM|#9LCqOELnJ=-ky|0{{7M~5%&bz*x$9k<1;gAj3Lu0!=~ZY(pRW3@q(lF7-&(8 z!ESeVGvSFxe5>zD#Z0oVS6dXz<|}8fnI5!SWwPXzb+VH{Z!45@HspX)l*O3 z{%v7H++4m=$$t@ls~{KHMmMkgG8k6VZpyQLQ1Q%i%-}#HkFO&Qw@)hkjfLqw*YkDhMF4o zbMW$ovacHMd_4_RDT{lpYo*7-k37v?O?)#ysE1x)@*b~;TcnnfQxF$gSHqVVTH1>b zsLJ|`U(*7>nD*S3Nu+JLztzz?pu@}zzXV%=Yg>lU*-v7AzqybT9<<1D|M?`Gt*m*m zuqP|^y^`FlYXp28Ivj!f5U_o_fny!DtL3O-`Wjy|AzV>!QTb{ET<>k1G_{m&wjbIJ zDulPVy%*X!Ae{wFyy%3%hEBoVi`R)!ICTZ`Ga0wm0oJWadzMbn>(z)znOfUrG^&?? z>MxSD4=uIe2Tdx=KI5x$;GAIp#P1qc4N6;;CegCUMs4mVyHd@Mn3qz4=nIWcF8Fp}N9e*rwNQGbTH;1#^mIv+MzJNh1=yIVEU+`pJPfY z#v&~|`i%8F{9kZ-|M-bWf)T`I{U!lHc1fXg#$A;Upk8cF-WfLcTPOi$s3g!^6NXs4=^k-Rnw+k`3=;_RSoJJq3j0x5z6H~fe6!)p zSXuxEAb`iVs`(4fNQlU=m{EN}(*W5Y@KSbdM@&|D;Ju^jzZGgpQ5Lc`_P2mwnidfv z#IxqRoS|u@gRj0-nzk@IGY3_qw6j(WvrN+CN;pr%j<`Vuwo1_A1a^(~Durn)+4hYr z)i9|Vb19wPXn5+*+Ac>znWFQk0gjjwrjc_(MYx>5B92X;0k*c6WaUVr%iBf|i15$+ zDk|5#G`Gu;RbB;$>wb}RE4Q-NX)J0Afw=aVB2*Zlt6|9q%mR2QzKO<)ja_n8l>Jmj z&aIu|zC`-dBePVD=|(nQa4#8>cAKaxw;LDZ&wh;aPnpy~%vKrZFbJjr444gvGtcdF zZ(hG)Io=?XLMaPE5nK<;gO{@4aW*Oq8J{2hu7aOuBhBSqCB>mA5%Gqa{0at~9A=$!n@IY5twxTtr|ko$@q#@b3J-#5!Z`6b;AyjnXOwKX{6KgPXyhAnLm zZ>-W3T7g|otfe$00TyYK>3ZPX(0|d5g5;v`?<5CT5B?z0J&K#H-uOA8lyOql*Mhhu2SUqrmm`R=Dr_3-I;O zoH~$X(S4JIhhqR#+epG@aNQlceYcN?u~n4*cm95ab)C{dCYL1&pR)pUc3sdD-h7Nd zd3x@gr`AlrWfa>wLsG=9IL!MXzFWOaw{-}-8)0ja)|@r}FcR*&OIrA6(=_H(JpRI( z1TZEG7LPRT!C2T z<1&@JE4n?HdREvw<>5|ER!~m{b{MJdA>~>sNf^f`buyF?!-hF6o|~+RWT;2;G7!(F zq$z^hI~WIumD*`XE8sYok;$?%yC&iF!)|?<^D%_><U*g2k@VV9Vt{ccv}7s#q-M zWp-$__T&UZg0!2LQ7$U$H5oyYuny*p&ZbJL#Q|-OQrmV_E1UA=8X4;KSKm-w45qDA zwzr{7#D|dN?&cKzjJGikx|-TxPRTgAj&9I06xX-#171;<6eHdyc^Wd0@Q=9Cji?s> zlK?l_qYmv!sh}$$0bCkq+iGy>9T4C^7NoQXy7llmF4ZK4e^m^bnePX&3I|Zk3%tv& z!ceIGToA~UGtRqJ5mLf?$zj+M$(4&Mz9sh_)^;^93=`EoCw8G56d5n@r88G}Pr(#7 zN~M0SU@U!{Ek%t#QiLmeb&Q9lCYSXK98pBD6;N0u7<&yJ(mGSgKOm$Acaw$3(mdsF zG55ivInpg_7!?Ho%OvekP3z1c2r#t`l2UWsTz@Jm6QJ^(vXq2iZ}Cin>~XnWp=eo5 zIoJ~0#3*4$nc!hC3?9v$rGOt(yhzFOq-Z`>>?6TG(Egr>uiEELIYu;cr>-+4_#jJv zOz*wDklJjPGPrRJCbYDv!=#B!2+5`iLZXK|$4qgB9O6-$LPlG){5S5EyVZieyQsE1 zzlHND5wd)(8Sbd1^)T@vlS6YFoX9@`@dla->!IEBUif;lXwP&q&8Hp47w}lw}5e z{tXx!z3)NuNl6~Y*lpgb2IsmW^Rm24TRu( zS3DEZ$eqg-dLm;$5I=px_b-;eJQ6vb2;r^7lo(ZAs@( z(e;mE_oFo2)E5o%Yen24+RMrJx0We}jfC@&f~PS9BA}#g!vFWJ0*-_ICA`%Pc+^Ds z`)K&L`0p-eE%r-28h+>hzsRxkJQ|3gzLk&1LCPPp?UkeDhUr6GdA#RO-iAG`s1?CC zy(B9tFy1_w!FT4V@kd!M;jG1xh>Z)zoShPG1bW0<-VB=HNg2p-MiJQ8m33LdZJI_` zSw-CA=u%^)YcZ%RgN+6>VWaC__Z!ejpr7dF^ z!UwtgY_99HO2_}j*f|DA)<17Qwryi$bHa_iv2AR!v2EMj*tWB=v9WDy;yl@3)${uP zSI?WNnW;KeQ>Rb&^|`*?-^5-^6`Hm6%8IpIOd%YqZ%Z~unj}bF_^_*4p{D~QBiNot zbw*sOF-Tf0d_L<4o}xQ%ezz>sgO4jq#T!;}J-9Se=QzL!h+y3%rmP2725?NLKJS4G zQiFny6GNscWRMRgv+FS^?3l1y&A3f+4Q40ARa8TxI+PBpqy3nN6^NFZWI);bdwTE9 zT1FbGgB_aSHgUR>sb~B_s}n)S^YfM=(BEFkp5UfbhP)Vv4lnBHgTdQ9=bViLnE;Im z=(h0DL%(^DH7wA<>8MrHe8t={=q<@|7voDbtQwsM#()vs@7~(o@>d|mK7Q?A?B`;k zT1>*I5e+R+@7$jb0gN3T`wgH2gy>@KLf>)^D(GtXfl%I<)B`ASXTSmIr+FO0BtVV1 zFRws)=F-*JN0i4kpr!N{B6q1I-(5BOD^E3J3#$* zaAcu+3gM}ICw^|^kR+;+uAs}t5aV^GO_-8|RNa36MZSnlO;p;ts@=Y9Oe9rW*UmGi z+Fd;`D6DjF9HE`?CoDjI+5CoO_S6FoVZISNzsNl%3Lhi^X2~&$f!c&sfVs>jh+%CT z%-`!?Q?+*h7GML^dP<^d6@iKX*J#?n>nD?h%R~qS1gZj!^MDBrI!Vy0(;e85GEZwqb3 zpY&X8o8~NsZ|$GtxKHCfZ{wl9uPwfRd;0B=Kd--D)QTtx(^W5?_y}%${fb@tM!*&$sE&!^f7dpCkKz0)0QPb3dPRkv~7KK0ipew(@WO zy%l^L)PEc7A0Hp@|M#6O*&B&#cQyk$JJ##i&!<>qU!bcm@S6DZh8X$trRLM)Z*y`g z!aeYalA7Va21I{GBG}|YTTQSj5UJfQ$Jy$spP!G;^>QHHIsV=GR(liW1G9DU10Jgg zTm8+|vG4J-!If&JonF=ZiftX3hT%nqly{B70#h2_#}WY-(f;eVICE(vPC;59>Ci#t zfW`c`(=oV^q5#xiy_A8yO5pjRkOg^)7-9qg2&~A+xw60<($6j5rOWEenx301Ph#xy zsrT;c)w@mAjic_RPi<9>D>(J&lY9yM@WnvNkMA-smIe=i>tNtVLz7fNqdM}T*hW{ zQbb!St*iCB(2C5ME4b0U-8vCJt5Y#G3_*85QA8zbh-W2%-NjN(PIVY`@_%Ynwas5RH2;SKkQUR%i4hS2( z?kR++VsHMyH}I!htrqt|T0zfMRa9*WILS3kX_nQpq0LSdp_2R9t)f*+M_F(_a(YtJ zaH$usAL#9i%4N=_4zQM$EId}1gmeJggxH{G6f+oySs3zt(KE<-CZ167krnb=oW7IB z1&aORpQ3+zZ=2BIP7KOBPtwSeyduVSu2H0NY31GYtvQSvN255z{Cz30V1EZC?>kcy%P2J?{Igxy6FYCHr zJQN@gqZmu%n%ahkt5Ql|jms`1&TLe@+6RiP#Sl~J_BI5{g^m0E_O2GE-c+%rI;<`0 zRSv1GnxpHb&a71Sm|NClWbqI+NqOiUv1$!v7Eo7pn-QFv*@A+o22>s{v7dIuwzp6&vp1i$*Tb>{+R>)OWU zA%|nE=elvz_A82O=IgPQmyd1Y*6U1Ti;6a+)_=xS71;Afvh`ysE;K4?wDtSquk<0l zu4Yyy775IK3sIt2@k&haMyd<|)tm@*M2n@DHww9H(Hw*CgH3&geLM!BI2c@e?F zpUC&JdG1&m>~|e#(s0rDA-CV%$>a1KBsKGycR$KnwZ{vi%O=WMjnUu%}NfYhm8Cz%k ztyRd_PiB3ddLj=AlRSZVQ}^|8XEyiUCWGX-rlviuAZ24E1NM zQQ06xSxla}n0e;kyukrKPV>--RWn&1Zjh#^0FeH)$NV`iQSbTh^e+e;F}u)-8h-dh zBNi|G#eobr%UaI*p-T}apJWIfISc&ay zuE%JaMM~y_BHE2a3Aw0~4z$-!25KbC=6~cPB&o6lM_UpY1KgdSB+C)T*qAYJg!B)7 z*?8Eqv$l?0VjmJ%Tdz{}rHD#2A6bz5I}+HOT6Z)##(-9Hspj+nn4?UIE=Mn@7_h{Vj^zfZK;6Q56d~<)6yy!8#hj4ZFeSSX;!M8oO zzAxtL8fEv(IL~X7DLBmh&|97V2qb>nzVt`-G5|)I^A)_7<-U~3Ex07Sj>Nu=AfX)c zU%5|Ts!?TnU3E zr}|o<{yjrMP0ofZg)*>YC^eeeo&mj|>5$qjUTghVgwm@Q9bmUW&nRkx>F+ls`ARHx z{koNJ=i5gW7Kb6ZUOi!gZhy-Z9x9_;7aH4md;>j8#%i(mx>kEb&k5lP6)uD#C>IgT{AH zi@mal!J|A8MZ15;O{ogBTB}2IKcU35WkIPnPWE*&yLML7^%`& zQ2d6jopU>(cs`&D;q;)3`g$&GCLv?EjxdtMAHzbOzNbt`7y}-a*z*uUh*ltlWj*|I z4jUDET9;a1I#9uKuS{5FTMSFUqwchK zRn=kpHik(LLw`8cv9N7lM?6B=7Df=fmLYSf&)!r*HHuDuDTsh#uiKf>AzXFVG-qV8 zSqnsD9M7TJjFMTRV%fT5LJ$(EBedke=9zumCBNK`9msM0SRwrAQm}|f8d2c9!gYQa zh><`1Qs0Oj7=|~H(kokpr8t0w^uwX9t#=z;jCTiW2Ewy$M}kj*BvMn*r*j0yV8RWg zZXzCksGl4LJc4d6E-6E@k4a=uCNdLjMN1{e$a(WJswOtlq)fPRZm=@&G{{9{H#9oyxC=L)APBB4=Aq5nB57w5GyezxMs0ul z&b1}*J#tzn51h$Mdg$tVWb_#0s$aXo8YkiW5gr(SEYc%uJ`R3Id?61$BzD6$GH+D( zvyDAAtowfVZDZ-LKa@uuKCsGPuk(ws$`c-K8U`QKrdxSeTMjWYqsd?$v>74>EHAZPd;ck+}C7en5 zTpu8p02F3$x8p2p!=c+ne*{`v2KXMDnJGo&o6?90EafohvFVo*pKAqqE4iy#j>t2M zp{I4F+Av9P4~%6KAslFs?Y|M5^hT1FbVgW@i)XlD$IW(@V&x4h&$tcJNK^%4-t$xO zoZ~W>NYpc|g7yk|9S@Vp%sv+NKB0xlzT{gT$GYa2G~gqKXRb<6kZp_H&J$pVsK4OB z`@3D^;&E;e!ad_kOc+BN6!nG)FcQw}73HnOp0D8(6&#ij;8qumjc)Rcb#w9FN7K^` zPtG3ijt|BAMPmoe@Iz&mf+dzzs8VfjOKM7;m?-#3R7yklzat-@giWncV&yoxycb5W zh+Py+oQw_o+r-y|(o*#5ouW7wn#8xzheo|CF*%@Jh~`apkvsAimN*l#Rogvt`*2yP z9Q30eW!Ze#dXM1JJvCYmVVGFJ6*Tt3X-!B=hru=nC#CC{`ret1qu&(%G%n#JeRt@G zA+F@b^t5r}v09fxgLn(0Gv+?g5CG8XsFYE^8migkrz5Ljg*7q5=%;$&>|u*C2zoxR ziFyg81qqW+owH4Kmk?;9EZl;|Y&}s%FQB<>;qLRNs>#E1DtpTvpDf?Zch0%mN0Pr& z_6>582x_e>;`YB$rh6fuZbVa(~&Z1 zSX*j&#mNIO$%$&|FrpSnv4nJV?qq%$5ivbU+ZOq>wP?x!G>oRT&d z#ZxxFexE=5HR85;!zxpUmEs5w-QU#E1a}99yT=FQ4{HCJvo@CNnxQVH=qk&LeJ7{8 zN7!#?RRzX|X%H%*m0BGW@&9K51hAY?OR@=v%xtEvntLyrJAXB~S6lCgb{}TI0cwG| zJ#HJ9(}^DBs&cW4qw-T7_szNwo{i|Qn)rZ_E4B*k{}xw}nA_O~-PrrtK96VfVCtYQ z`95cY=gS)7Q}?E570)3Ye1*g-&C-4WQDtc?EE23KL~rY*yn})~Q_b5~DAavH9h+aDw_h5B1O;Zl>ui zx3X`9$0z@W2{Sb}BL?o4_N%Nh^{hH5dH+Bi0MnodfMKl`Tsbb*nDfG{8)MhV4?fRB zwbpT3Kxd`|v;3HEt(n=$fjl^h$`A&1S&DvH?Ia)h_JKBbgHV;aQB=uVVG78Lg;Fu*A` zsNV5|)nOYKLfO1}%M(j#`n>L>O@=y7GNU*B*5CZ_MM!^s79dgXo9~Re%_mi=fFwYZ zVNp0@n+#es!ABtyT?cupXs??@ZBu|KFzHAUE8xBAG7^untg8Y?&p6~q)y6VkA0Sb( zT#vb+#W%V0(E%DtTQ71EXK6r9W#Xr!g07H-I9BZ!@){~?Q?PMDNy$`O4ofu`ojG$A zEzEK{E!hi!F2*R`g;1|rVV6XvW$${tYat;bHYt(bQHgTDv&#`z>`Bbbk(cH@7pw*i z3c%kzT`HtkT8s!L1lW?%Xa)_#frEaM6X7*NesSdD?!x`$6IG}e5+z%Y=(GT>d)kL2 zc{ZLHNM4JF+27WNQW#$wSm!3r7d*O@OxVUowd@OK#2RCUZID~_N=vL?rM3g3#QD}wzI+jFX>o<1-P?+UG$VKmd-RU@^U%F{V(x;%*te%vo|z( zyiA@gLS=lf==HRL(xQz)?X~WgAGRZ6OPhE;D3_g?a8jx^u z?K;!#`1ds2_@@%NUiol+uA91dJg!=I#6G9Rp4hr}tZ5$EeLmWGXaC&>E>zihTQ`LH z>o!^v-wP9)HpvObC%A@r&8P`aXMYR+uxL^eXbMnYQ; zCs3b%&VdN}TtoZ*a^3k89Ao_F`A0?MDr=7M{B*-l<>{@b=&fU-hf)dW`Jkr3y2H%o zyV4_G{kBWjHev^cMSxU{cy@Y@b-0b z+HVR(HX_fp+-no=I$WK!^SO(8sDlk-ySO9Pw)0$D!{u}E16zWR+Xh^*HzC--6a}3?%^hrkk+bM7$CUc5D?b>{TCB%2vf+lt3#kjd;sAHg710wh2XR1?hwTiwEUTe_?7;HVVCV}4TUM8Z zP3eli7v#C?U%ePjlv~`VNPBVqX2Mq`f*6Qns=gI=_+aMb;GOYkD;!?vaMWsEhAlAu z-4OGl!O5QVyAoB0 zF?f+qSp#9w*%p?3HO5voNx}B(%ScFSb4pB^vgiqb<}LhhtMBsZf$f*HM%e>81n2f#x`}Ou3 zFlM($gj%Z`+-Z*R2A8(mxT-Cr<-gVMmVkA`=IZYcL>U9EV4s&;?;V%Q0td?N#IJS4 zXFf-+KEtv(;h%fHZ^+;zzPr>u`JR`KxodRqXTI+>9ngH+pd0-}kF_}|gnrzgJA!Ya zmx+SUiHI=!Ks-Moo6kPtH{por>hqMR1O1PK4QQWjXcrJCkYAu_9%ITmbMIerQ$Qb2 z6PRE2u;9lH)q92SLk+@|`v5u7toM+)S4dx^Uq|f?weKzUhU?eGES6u|o!RyEVg)UA zKQ?XLs;XT zdHTxdUc%SOA87|&@CN-|cDvOvhp@tB`E7mref{#R`|^x8M)E6Zem=%`{anP&YyW)Q z`pEp$18zeLE`#*Fw2AVE2OiBu>fPtZ=Vm(mqRh!vr|tP_NTzy3+-$!t>pr*rOVAV4 zJAL^8_V@zrJ}-JM^d9R|owr`9wpP98sJ)ed3|qGh8+7{5W0z+=A7_Y4AHdI#E!W&@ z*xZ>4+D$#_!e=98{jcetp-MEdDel=5#*?O-zm=vHv=p`TIO*MJ-&c`~k#-F$ zH((R^K1~Mz3sVIV>kg;OA**wkm6p&({L(Po-60UMJiaME(t5}?xrq53%cIcGpH4ig zlI?;yyxwR-{gdqZ_k;vb4hnfkQv`@l^i!-6xYSR2+`3ve^C7!jz0%W@(}GRP*j}39 zh_g-yzL!F)1dtFZ@BY9b5OXDBMU7wUFi2{wn+(dr{u^vQSB-%64w6ZW`KNu+;TA`g zw)3oG$L*IfXpXy~!X z;F{+-{Z4J&E7!^6F^4amZeq`h!kfrYgOB9EBjX|qD$?Tr*02>?cv=$6IM7!&Q@4%l z*zK)Zi#4C+b~aZ#7*otx9a&s&3IEsjGhhsRGdslMxg!obol|pxVz{24x7$RYdfiky zAl1!+Xe8W@2-0byP&(%ZwxZTRyGILyztbMa9_;|!aJ`%Q@hKjYHnHI%9 z{M0Y3L-Gk*=EM=4gzWXrZO&7T7UR!;g3jA^z|#qLu1SJ5m`xEevd8m10WuUDXK02A zswbONKNP5W#cO`L`mR)b<7AqKuKro@gJl;kAoX@K;9?^ROcwc8yL~igm4M=;=ss;M ztS4*Iez-BJX0fCgFOi<`axEkJ0&+|=56>aCZRMNU@Z#8ozGc)irpTE0gQ&PIExvK# zcZadzRRYA91huM~tVGI$wM5LZZ$%tfSf78o#0|+GQy!K_4iCR)&a<0)e_6RD;!+aU z1gm6A+cc9qi^V%^)j(Y+j7y|l$Ycx-39sBFu2zSy_Iw|wKUQGUMyFEFYk4-D<2OdT zUpsm_Ugs6wRfv}mac(YMdpw~f;r#Zwy!yGEYTO3t#D%^8kwc)|*1g>322$<>vLm7WkM7H$?)8~%h^EWTAz8JC4P^0k6QWpYt`k3tEp}h=NdbY zNXT+!*&k)KTvyc2_jS!x@F`I6IGgqPT})T+E@R25rR(Bn$5+`TAjhCn2K-m4xe{N4 z5*y?m*RfG|FtPTWH)~$GJt+%5D0?$FV$U%>1u$J_DMYg&Py0MJNbKvLYAzX>*aY@f zKdkpUF*y(c`s%^@k`{wjCqB36iMFO$)Q_aU|4eue+_B*Y? zA-3-gwr4k*6T(y0Gx+fY-+Sukt-cpz6s*P_5wJDXRpP^+_{smWqUWWeE6|May7{bV zvFOt>_tDa4aqhEn`i1`LTKkF$v8zeV|G$Gy5wr_&{uA){YTX5~&wp_3Q``B9y)}8& z3e5;;8Dv?xexNZL$^Y}2I0f8Z+$D6R3?%PyR>*kYCy^yn{I?9GKXEsCB`l)l{D7bD z{+5v_-CiU^VI%+vC5vK+GUQ{U=MRgOcr%KoSFGSu|M%4>A1?s;8f7u9;BzPe;8sjj zKyTGbR16&@GCvq~R%vzO39ipS&KOtXXQ^fsIm8On=zhr0GVzt`hT%vH%q75)AtC5W z*4Ly`XF~FTJ**}~t#?~MEHl%nrk@p6%AZSimw7lmU7e)FTn1!@n7$Bji>X@fVVLze z52S{PH!;MKz*XW1yH3oh+9KCxdjt-ivPGpsZcAV?^>W38AfI$}fLM{U|5z9%#75vP zWdzui2M-#c*ExP+kfdAb+bgq7q8OqH&9fM}U&-!l8rw1SehJ-E|3IRm(6t2&3OJBa zB2J&Xjil`uoVRnCu*__IBSO6u$FFXJ)Y#9DpeY)0JS>)}^F^X}NV(TPW%CLt2Dx44 zyBd+IJ*=h1VNe(gLA%qQ-kvtNb`mkNW@Usf_-#a1VJMQ+cPHfyNKQT~t`p+K+{*gJ zy0Cy)%BAl+p(EiJ*OK%r+^B@VsGg)`BTPLiRS%dDvd_p2_Zn$=3UVMq*rsO9lZ^ei z3rPX5w}=K!0JQ_5o^nFxD>ZLQaY9wk-t5qJq6^R}4BaMvzOI?!vHOb)-T4#W-~Cdj zz29TydAj5yAMSs6Tji1Rj6dx(L2nEexYELz(SwA=fRk>?{=qpNezvgnR^fdf4We%y zGJ2Jkv(UR+$0y5z$!b@RaT+f1E?9yu5EeqIEqVGuPc*MsAig_DGK4XSsJloPTyOGw zT8AP4(=;4h0k#+udu;KtF}pb0FbBEMB3ymk}AB4;b0T%d3OGZwk#L9 z7{p(1CP*1E+$xmXM4_<&adPx)$C**@{7xjF;s_Z_ahfL4?dWiZ`-rqS8P3rfB4LTn zY(OHbJHxzQ^$aesj-;T@bjX7go%0r8G_B}82xWX=@XGzonbE0+oheNkImfun;;;Q6 zt-N?rGPupdP116upD{ERInx-+WE5dfy?pm?D$WUfo!HhgF0v^kGBveU<)n$RdN~^t z9b;dafQ;j6qUzfC%Fe}*+cMVSii34x_-IEB6f8q}Vl>CbvP&vfa<~TSoFmW5WpeyTFKEN~Ac2Q_Q z>W+L;@U-iH<=Z*3{<#tKF;wr=-<(Hw;=QP;#sfyHFN;XeI{)*i!sX`kld`u@?E&m{I9BvgqF&&TpfDg*Wa-eaRW#bc4hZcgy*y>^@rWy##<&>YVVw)dX} zCDS{|eTt`7T;OQMMbo@eWKpBJ=54Izy!(8-n?AHb-DTqa%XQ`)c-Orz(_Q$wp#QE~ zGg@}tb?M9$_&+%9((|C*v(PYIKefo8DsV3%I8U-q&3_`*)uYR6-WGe^!ZrXRkvE zv?ZQY79LC`t!`&g39A@X-DTZD;VmyHhcqdS60snFrYIngqWTgaG0riUNjWf_ck~!w z9i5ZRLPqQ-vEqlqV4cuvtp$^xu?8R3T`qMw6GCC4tu$;-GC>~S3Z4H%D#IyR7W|7_ zwNZ~*DJ*S*o_#c<^iLQdVyTo=~@Msp;%jWX4ZNeuDYBYT6Ep&_YKYN z-Zhd|l16_Ui|=whlwS5@1848|^VS+~T)%-hPVB(zKYhO%fqim(@>Jo1Z}!?JC&vB65r+b8b4X&(lXn@(Y%bfX zD9ZWEw-`O`Ab8G;JTTxrxJ6UO)={9>InqOd-|_@FN^3r|NOd0KHQ_hQ1iz-L=@xh> zQ@Hpdd!cUL4%1+NayVVaA>7_3%mo~skaL~0f4=Hu3^k2D(E}A%w>YO77AfCt9X2=w zV{nh$2eKNh4+)s>gpobsK;x!878?*KYW6_m#-QVP3_f-2-sBAt>)5DrtJHh1v;OZ@5r+#u|5uMt7^|VL&=Qa&Bjdmc1B1z&q733SwO0pp?U19 zN@|3eYaK{D?(}M+Jxqmu2y9?F@wz;;_Cg0M3AoaJ`Mi?qPNMF5L%>g;o5kCOOpYvRgwfUiZnpzjqRojKM`wq$2Gl(idzO2c8}d00-{{yhUKv z#EUFU5|mnKLaQtl;WB~`q{&-->hIW2EA-!P+-1R*o&>E~$OoNL!q#8BG#k-d^mUqr#-?SfyZ%xqHI2 zR~|j1@R9V9!>Nb$nZW&Ag4*p~lk%3bUl&xVx%Ffo9!@8D2-|*g1Q+6*+_CFs528+x zK7M8HL+$%E?CS-rPwko*rn%#LN>X^nFdt=%i9+vGD?#!*IP$qX63?T}2?pV_OGAPu{hOyDK8O)&Ioy6_Zj5`a%uNA_R+Hr2|G1u?@G6>uNm z-YzLzSlTzfuqr#cok(?@`d6|^evKj={i{HyM zo$C8B{rMa)_OPUH=SK*9|C{@9pW{n(X0zdVg4NP0c4fCTrM>mC_>nXEYLfU``uMNP zxOuC5uQ|QSAO>`UWtD*DnQ)D_gWmUizF%FLV*<+L@u&OD1z%S-Ie3KAM`{BPa^FUC zHQpXudc12~h|VC5{qjF=nLg(}OAQt-hr0F_EioFr2dh<${V9cc3T}p8S;p`30w15n~Zs351*~s2-Uk0LQ0M zVv@tlWbqIY*X1epR=BFzqwRKagTRNpp99FTLR%^7dn~7zzK6GwboZJF-(_6Kgr3sT z#0YR9vUqb7y^2btzm|K&i0&U-m!(b1C&{|7Vds&6s17&gQZ(@r9HY8}or=xo@Sm}Wlz&}WLOtFj zxfALzW^G|410AJ;_gmFL3rpmQJ1?`zMk#6jgqI7Dx&#CQoKD$zX4ltzb|IEDU zC`kkZP^M-c2}sk!tH^4tC0eYddMn>2ol2+`4GqArR5S=cT5FW}h zAK<(A*snLYz{OlH1EO4DFt=IqPf!^`{dgV{ut&kwkNQPj@xq#{ zC);Tfzm>|Li4bF1bQWnGvk8Xm@Kjh3ixBK}FusWk4WmNHMWuBaTKohO_gHn!>S6+I zugo#EO9xGZREH)#G^b6#yI&oTy(W}>65t_a^F?^6(ZmqWE*^fsOqH6ECqw^uebz4h2g$sVv?PKnx6HSp^ z$M=)mBUM%Z$hTiVdZF#q2`-#j94*$^t zSJ(Ex*;!j(PjCsJeTjB_yH0!3&-G{IIJxGI^#ex!A9oeqrxl%f zy!R!13Ue7OulkUEez{I^EIp0fK{)gSVx5~W+f=}b*m5#=+y9r3I?>$0^7dU}d+l8& z->Sbb#3nV=y2*$Hk+Jwb{N;*oU;zyVmqqSn}fD?LI2@3 z)?!^D^qp8Pq$Vv$fk4S=(zyV@S&%Vs!BQ>!p>mrS0+=W@7S2L1?V>N=n5$*aO z_=$-%C|#hFdW=(ssg~CFcQnM>ug5}OqA4nau`W1E-~_YFW`e~r^I5};ohu;=7X1wk zaWPBR4bog}$x&?@-%(R7Ej7Tkf8zSiYCZ{y0(LTW28=ajSf~FwL$ufm3Q5iQ481Z> zX#h+gh2HbG4>axfT3Fj&7~x3zNN~6Gru(Pg*|KM5RzdPy=cR#ef_~^#8qs-O~%e`1wP4oNrQRtm67mPozocpl7}D&lXP6_CuK#Cf9Cc z5M+0jC=4)l(T&C7zNwO z7-_s?Q{lI>E!Hz9X^wuG0+u>HOf=Khlo7s*DSK)OuO-`1rn?$${Iju9f8oDvg*y>M zzU{UHx-^$`LFh`|f4s{pFuCa!7O$f8>$w&JxwdbY)lek~dKC^I0^T}3uQpEg>3ICv zfLkks1e=u|PKq}PEhY-`jM6fMewF2+mK%dHWv7gzISw1p2(QF(&;R`1pNx!_DV88A+$X0qQ+eL;cZV`HXt%p5Kuy zuw{PGTBic8dKf0iD!;}n{Gh*%60C>0SfE}o7pEf2VQX!YVUZOCHyi&*Efrpp*M2$X zk=5EjDU~eJA}i|Aa$AQElpU93Hg-HM+(L=txGcXC(_*uq9vU6VI z;H^6qsa0>0GCrSj_~M8vH=6EPr5M*hvXg8HDAhRh0z>c4JeAgD_%bb3ARF|^Z)2`QpGtSPcQPpeCM*qCk`uU6c za^3OQ)C_k&Pq_c#uoP}giqh|Afy~YCfgWdF(CQ#U#J#e;asONy@8=NTpg_=TDgCfP z68@La2ET-)TSZPjJN?(yr5FpIks}xH&wX3J^U}vJZODg)x4r(3z$b-JE{3_oSRTKl zOwN@Dz~rl}f5dMlp@i22k=14?)1}^Zs=9Gw|K@F^yrH}QCG1=#;PZBDBAcf}FTVae z3*?mfFx-X6HW zMfN;JLYeujmUwFczX-$ZW^}q2$o||igX3izFeeyqr5ijqUI? z2YWW}+l^6MOG(Zf^>LM?N~*hW7l@_cVqpjyi@?j_Ye zpGMT&5kv3$mIi5kDy)Io`FS!XKVUHzv*;@`kRZn0z>j{|&$R^lhwErI48o9syn(#I z`bf;7CCEzo5t7G74+P ziU`t(AC2ldj)QCt^$Z9mFeuRX*Iy`Sjz_>D#uLoQT2SU9kH#kV+B<5CVblNAq4cKP zsLSc5v}4aqIkV~9Br(K zP@XOIjl~Dcj(1cei7E6VOJtE^4UG=3_~CaRJ=I6rF!o2+D&My~y#^c&2SbJjqWNz9vdu&8nc6Mnw{zDtmV4F#q(fH`TEKd%*KN%W-YhiMm zoC0&BT%<6@2^dg`Deb5&eXnu4OreS$GGkJoS5$n}+g7jYKiuT#?=V&^$!o?7;ky`( zYx3nE$KN?M{1xdCvlMHVh!xe5Bi0~OE1F#P&HU7byaOFBa0bn+)?R83&OXdGGv+-F zAVGwDZmE48T!#Uhbsf{*mwV*ZD-7t{6d;qY8&^Jr9p|9OMn~QM8aa5)C#HM&dH3%D z49~Aau3p2gl@O#;pe}Q##ej_L)Si3Kw(2j2MQric@j)*4AJ}VH(^s~`4TJ4VI!T_I zY12AwvyS-6Aewu+N1#GCce$TlSIi?_BQXJ9m%l;*PRQ;fBJKafiN0^KpY{ju^-@!~ zN6lw8=xgI9ZYg|ULJbG=9VoJ!5O8@|pt)lw1i$@%Jg_>P&-{zEeOMLx{I7GP`3!X1 zf1<*vjBG$U;X74Y>sWus?!FG*98E2l0L2x&jgLJS_;O8jcid%Pt#=)A)ZE1HII>iF zbl)MvT098Cw631AraJx~>{*>xYJR|ab5AaSMW97KViFFv(z|WLHij96Cnj&xSXkW- z$SXO11JY60OhQaB*bg+s#;H=dkWp=@K}nwhvB_fw7NZ@GPUje^(@31ua3QGH!wjv0 zm+Bd*9-8_xy)nmVX+(>%2Tr5r?@aWQCzWH6dbhB7!}$*b-RMZ=SEgBo(}PN7<95;s zp3;tl$4y=v3YHWN$iC&8cZc^?#;J@HXOaaHwQP#iR9M5F$};3mr;P zJ*r@qhoY<-lF;9ZbP?pMZ`&vkoh<=_@o41N%k64T?gF!m#RN>Yi7#Ljr@K-)8;S+T zO5cSbi>Q!Bg#Fc2p^4;{mQ~rPf~$mMO@p!$L-`Bb1M%GPrf5-_sPM%_XbrjbtBdiC z3Ju|NsFxf6{Fu_ifDs}CnZRoHutf+J zNV@65SN{sT4es=ad(<_mQ)nm1q@lIr)&B;K-JUHMt^BXw}S;l$|1ex>l3zFi>*J zQtxQjuO<7Fhc4RX5pI8WpMb@yrDJ2Vm)TFH@qb4a%<2P)4Om=Ebs*DLDDYw|itYKX zoR@T$zA*Xw3Y8ULT*uP411dwJ&oSvu2Ye!_V`2elbjq;iowQd6x;banwF(Vbn`P9Q z5qPv-T~M0lu%tJ=@(|1#=Bs@rCI*@DE6BYsq{i)hx(*fWd~J<= z%sTb+>mlE)KKhIPm7M4%?9!#BLl@|t3;dGhb8a!Na>9{1Oyz}_)%SSU4h6JSD^xo( z>lr)thdn-u^k0fDUwb}ZJEotarmqzrkv(Pt-`>m_>>2>f&TU^#RDjD?A*jiei}E6+ zvBlDVQ*t$bUAo$h*YCu4fC{qwtwbmb#!ZnB1L2UUt)GDPzL}YEzFO#}T@_s!)fzw| zhc{phu=#??UWap=U>gyAZ&E3D>#^0ekUujHF;5vz;qR;myz{iC0s6j6AAX6^F<49iG>OlJ z9|6P=R=@K{7=vx`8t~1SzUzZW7FAb+hLhnTcEak;E)CWrD0fo_A+RW7FZ)-;6F$2# zs6hRU<7UMLd<)?@3t3_gK?H(HB|jkUb%g=aMf4rPO25_+@Wwm-)|fgbm4as2#SRoi zt6qwI#Sw~)Re5ZpGfp@jz=QYMUIXZxg5hZkOU{ zQHe7SD}YTyRL@`ZG4pjoV7uFa`8QX=Je=OLRP#t^!OUcqmrbiAYV0{^;oVd;_qTdV zsL--!4jj~!rz|pgXvM?KY_fN9u#TF5(z}>ArDBS62TOg6Fu$ofn>-Q2(l*zn`Q=?Q z{5^HAtoja0fI@_OdD}MkHTYltp3EfeaSoXL122` z(#;G^v0AmBb62jN6s9Y`y4F);4xK*Z_Lde@kd2}U#pM*AcM)u`L&4f;h^OOCI@1!W zvsP}BevS3_-Wlt6Il!IaedV+3cN3GFn?Mv{)UfFQY7$I1Y79uCa@i=2a#B&YLYe@4 zURen9_6ibO0x^3-CqxAn8tQctg07QLbS`4Z1ssxM8-v+MA?+@(U6g(zG9_2t{bR(f zfiY_B^``;c+%Pd#J-!jOKWatR|a$gH*c7O|iXLM7}rH*Ku``HBWI}`r5w_xvRVrbseT#dGZiMBYyt2dxi>3!zLoU zeX1XXLXQ2N!EdVW6P=iZZC zoSJ4Ieh^pZHj3UyyxXh%cWKjX0efq!2=}4_`=V{?UAIY_S07tf2)~Nl*sB|CE(?N# zILS8>T~^t_(PZFktWve`wr6Q z&X()h|DF(Ugw?KwJ>E3h1uMRifkfY3YykbyQMdGV`hG3I;%YelG!%N<0FM`Y(+}Mr z@7bS}G9YlPxqRElm9(Tc?)88U{{~)7aq{uwYVi!))AQsyd2>|7e@^~K$v_af4K3Q$ zktiNcBQ#v#k~Y)6NTBpw{nkDBx^RsxiJ;;&|1;6C3sRP_sU@gX=MvK=Y4lI81?U_h zhPdU90HM(pt5y@W88mpy)Cg77sO6&)u;Q0M8{^<{fH?v+n)kpr;S+n=*3wrRIf8Mr z!Xe1((hGBRNnNaBik-lI+<925n|MR*hUqDngZb$!Z^LGCTFvs_Lfv-3;AwhR1zOlu;Q~T3nnm>Dr`sCm=}#8 zsM^~DAf)~jUFBD0fY4E;3Kx!iTL|>t$E4neJb5{G8^q(5(G5WDjq74MIm-9;pI={w z-o}y#5tG(^*h{rPBKC?qVCPBJ_CBRaQ!#jdjAnERfu0!vPxNpEIPPjVl8D8$xt%)I z@q!J|6v=F^x64RgDbw_j=pM_DQ!14s+fQ81owVzC)doXF8LAlMAm5C(|KPl6@yM$L zPswrVpQHw%>QHtHk*&{_)wG5wG|unwWGSX4x1v~$!}2RFurY$&@>;-U5WR8yIG>?j`?14%C??e4Pnlyl$od z&Qt3{DYyS@v-9rAt#eb(v#vv{uHtv2#OnW)MSQlOd~#wMKRWuNh_L6ZZ~&N^6*}Dv-0oZOkevT)gt;6 zTAlr)K6T0*v&B?6WZ5_o$=z)_d#fy&EWbN0%Q|*k`CP5v;Dc4Z0E_Sj^Nl`swNB^% ze(}crqW5*?cku~C$aF0W*0fz$zWtjbFH3;nnRdSyrY{q_ZkPWZ2JsVesvT@G;LKsVx)rc1AIDTY$p7U&4&q-h<4n((F)}m)y}oYUdr~ zfFz~kLQsn-YDX(LiY(hJtqqzS^rA_VAdu`O2V*^GmOFD+B6zlpHUzvq7hClTs8K)N z#eGIp9`)SmlP3uK`M@gI6ME~*7*vB!Tfv%Y$B&w7M?5p~I=Nl`)482w*(|Xe`F^g z6zDn_y^|O>ER6MseAAuna&1Md9}i(v*#Sj!a_~f-pklusRE)zVKgeia;VQzrmDPUJo^aC}+#7~)=O1=vZN#=wUF$-G$}Kf;D_-4( z@1zQ@@#Q+zNAuP80e^fS2_QkWfE?wCFC>%P!+M{I*P35o>fcAao!6~O;j>JWsC zrOt5dEqf3VJi$@;sneL4DOW>BzwhkcnzRC3!MZD!396Kf=32I2b9 zRHus>d^X@$Ut83bgMt~ApD>jT%D=rY+ot;CirK% z5IMe`A$=j!`jc#B%A`8$2Ce-N>^~HX(Gw6SQTCRL^qPAaW#?VsRx6Y6Zfnfh?zOQ; zNZI**z@)I0R{hV$X_EwMrknp%7i@EwhQ0|(S#7hq@Ip} z{p(*C@baO?uk#A>6#NS4vIh&B1C=MIY3*p6rPX`)8}6e4o$1XzpznW40qoUemgX@1 zC;R8~k8A}Un@WIvrh`->t={jWHQaIGqk3jL-(7acX#yE zqwu+};9BFgdB)Q-4zjR1`;`2r!{jM-m~UvB`jbjzbE<$5$$JOD z#P=_jZ{9fBhLzrb7tv{kz2@K))L8qtu(dob7yR(rBai6=t^#JhV?}L|4eTM@0g&#r z!`2QBk+&)YeIfDWDq;%7({v+qM;1+Fr=V)4L9(Lt`NNHA_sN)|r{->X7iDGB#aJ)dY}ks{N?>Pilo)wf*WdP zq+M>Rc^6Ljkq;H45eZJu)5GhfitG4oq;BzEe+3H!wTI!Sz{Qd$HqK#m7pFZsOA^1@ zBwawk=~0gAt5|I>LXT}(>YM^P&G}Enl*>@HchNFCeA(ZX^jw6-a_l;V=(()dhHNhq zEytMh={)eF!bSSTnomKyE-*pKCZg)FLgP-mWXjT7insoB6r;8oEsj0X=R)l&w}#8Z z31pz@s*bsynwZ1q;bm3=%0e30kXOYqtQ<@*L;<>BTwx;uNP_UcUhIa$d3ErZa z?z0LM$H=ur0rS1lh?SIS`X$9`{C}vm(MPpF<_GO3MPbk8|IWl&6Wzi z65VI!ga}7Wgpck2>QuTz_@Tu26pu zmx$48SsGv3*3_B$!1mqRB+3*F+$utsM@4bIr6Ls&y01E5)MaWs3sZHEg5G7t>*Ok0 zpZp6f$VdEaQ}#jaICYV(8g0X$sB3zDcjw+wV{_S+9Uf4^HSPV;Hb+SI`dZ zmTg}U-seIWx%(Y_*Y8OLp}GQkNG|?#7JeVgeiu61ASx8Kn6XsEB{Va~7j}MLPa~27 z^>4*?uaw}R-Pds4wMNi9pW;~ct$4;fn@!n7cL1Wjy~TM%Kdi#Kz^zUJ1mxWRVF3Wg z7xFh)?3-e9p!nQA1%8M4ochk~na!R5I3Vo9rIyy}*N2upQx|xlxlVaT?^c&poxr`l ztmC$6ewlrnSTYfoCLyojdz--PI(BfS`Y-3#_D|lHIdIc4lR?lm9cq4>t^T{A>cTDK z3mnGU+qOS1wmG=ah`DoqL>-||*8~6FOI^Bm-5nyRTHoxCbF=BodQU=^Udd0N90G36 zR%o?@S@-|OwW6c#8Rs>UH8pn6V-OU!UN8V@4K?$>ONuLDNl)xf6}8ldR3n(6sR#yl=--H+t7oH%WUhCK#pgNNb3tWL zgmmikV{u0P90KPVRi=MwpiX6U@&Vs+B1KDTHQXB;D@ZK8I0Y^mn$*Ck-ExgLpwFo& zN3X2#lzG{O^~Zg(UM}Iq2eE$>1W3DqC>-3$`Tr83?h!_SU)U#+cxOzro#}*I=0ScY z&vsyWoD_AC{;h%kQ|Kd}bB0~BKARy%6^SaaiaAUWQ&dm5f;*Z9K|U<7+9_x3-n%$j z%5b*UF)U;>K;qEX`+M;%osI;I^pEAqANM!6_k~)p#&6B)5EYq$sLjxEd6d@|a-?|R ztQa|070$y=EI3G0v^k_HcM178e(5lu8c2dlV*q{^iRDo}Uwm?4j=8F>(=x}etyU2p zzoHGtsfKO-#HI%Ia#{Rvkd@TCPOU+ZB}W+D@TvqW-gIbdp7?qcS{ujl23Of^p$~+v z-j>@;SSCYhF3xxe+q97*LIOvU{v+3|u677Z+;dd`>WeZhmOZmVc&Lt=zj(#wRoBq3 z(m^GfWo8jD@WGy5q#68!J-r$leqvPN>OfmUYT61)alO)&881L0c*peZgj+Gr`b`a{?^Ns&Ee zz@j&ee+bC~kJ%@wrT91h*4@v1sPpX6pWQb@cvwR784C_+6Xhc#ozyPkSG- zw*SjUXR)jvg?Z9!?Lj@&<=-MCJ`RfHJ8D9RV@l0}4J$!<; z`n{Ry0ad39B3xr>RtDFW^LdhUNszI6aJN|F`#`H6wftXXvTKbXeNRpVt#cQ;KEH^r z5}qEqa=v0lzRb3MgSq97YSj$#q z=Ru-!k6K_^KqM_nFi(TW>9!0a7k21el3GH2-^!m8VlZ!po6H|u$rSJ~CKDrF2vc#o zUY|zm)t5s@^VKRcjFDqAWi0=S;L$9N^3m|rNK8{Ij-=(JR0Kj#pQ+SRg(SQqYNm=Sh)^Z-j3T;i;qGZGZ08 z`RK)8HdBuXi06~0fO1cP5CO?O$%%*a*Cd6a`i?A6oXHrW%@Qr6BNQ$|*j6dtxE~Q1 zib0T~PW=4|*}875W<)}7dl!`qpGPyJ?~Nn!MyRnL%A z#xfTT)Qd2Xfh`*`wSqD+wFn|CWH=1DxTN0a_(HN5+R?og`)3T)hBQ2drBfj}h>r4S zf={##mc0t7Cx0!m80$`km*#NU)rC$4el3Ro#E0lCsE6(xL2!#Nv{E;9_y+lkYTV`c z<4v4(EmRqv{P!iRK`G?a-`C7}uN%(`(@VIdtlUaqnMgVM5@RQNp3Hzg1S&aS^8iB= z^j9T`{Ggf`N*e{pNxfvoLPgda`&e#ch(q$+HU!QZ3Qu2pypAG1z+$@Sc73hYdh&sc z2WBUTDWWH~a{w`d$lv0~GMcCZal991$mr8tq(@Ekzi7A*hGi%uue(a>D&auql-vh} z4()f;py@V6HjZs!ET}q|JY;)xo+16&*swQ5o+3EwnWynanbw_%6X4l*(iRoZZ!~?h zM&5`9ZyCK0Y>z8+87R;-X+Bk@k22W92@7anh38ml&=vliM#Wx*JzB7CG0PqF0Zh>y z|0TVYe6j)isvG*1vuz-FWpq9{o zYsEV6>0q*(qv3moUF*tX-{_l-PKOL3l^WhszrKmQZ?Afp*W6vYnk8OS3`!?_{1E$v zHR42~3r#h&X*D#2$@zt+2OWq8(ltV^g6sXB6Zd-3;~yKwckvkPvSE%LG0Sf|5wD;l z8%-uYwGClkiQUR~f2?%XrR|nIcHH>eyv;Qgs#6Lkt5^?j!xX&pdwc&;7`8ru!|>RF zeP_aCg-w=8N5+;UFNV1E3DxrWfv>M==80Rv`=#I4o0qz-|CZj9iymkD9)&Af>dS3P zcgGtr5`Oy}qdV(1O0&1#%m}jT5q*mUd3!~a=G5N&zhYtv zdSnBP+#fo4nOSQwa4b4xpppO`?Hsy!p52pYhWqd3tlI>V=&M?)e}*u*TZ`K8SIJSCm7A;qh*0IbKP2>`oGM3u8;O`s!?tDIhhe1G6C8 z#Yx$FDq4z2CUHPkyTs#?pwWF$+>`dC{yyC%pTgnnZxLo;!(S!fgzy!^Hja8m2JA-a z6#Ckg4`5=$(LL%7+6pof4Cb7qgQd!3kre+Vac2*He|y^GC)+jT3g?90S2LE(s2GhE ze;4oT6n2AeMw@NPLB@wM##f{BxcTb7sQAO4jZ}=(89CfSc_z)|asZh#el1}XVL)ee z^W`@jVm;6)f)Jb`6+&I1;7%E*{&$vLs68?cXGy3PdVtkjm5Xdkmy|Fp*}! zX`-E5r%L5k-k+`>1Z1ALwYGwmlc>Y!VhdY;(tR8HMgzh>n#~gAm~RR2kl1laW6s8m z!UsuqAhsJu(wt*#Xgtw1M(i%Q#ng9n6u--9920k}LE`KCY~)YcBRZk%JZOhpIMhe< z`Vr}*PY>8?0ug)o*$)BWBD|D!-Q&ANWF(Cs005UF(Il^L#l6oTftM!0psb+c`pC0K z6AjH!Tn+kHa$%W#{RE5a5*Wr3>n?qz9pzUnDz65(BTBz+QYeXus#RaZ9p`kIATL`= zCj##Bg{TGdhfMOQ>z9jNU|ogT$+orOj@N@Ol(5~HFAwL_>uBrs^HQnWBKXX zhQvsB`=Sha_em81Ji1nX=rQ1QTUC|=^2LBJ}5U! zo1N%%&~T}4>^6&c6VWN&s{PX*Di89bY@ifxUVi%KK&ExB${i=O0_lus%Xs;-hm+Q1a28{8Otqk zIoHw3k9QYXr{t7DL8^80f48QTPB8y34p5M6bz-0i*z9nZvhLE}H@OPY(Fo^nVQIDg zYE38j@U+FT&k1p{cXtZUE*u_?4LkYlsi%8a~aaWH_Z`ccbY;F z_R_fYUrZ482XsAj8{Sdvmo8Vp-2*92jS0&xN)w}U=4s5ur(JS2y@T{41*)qGz6xXV zx)%ev?4DM72T$%>8=<3ZKdq%I8G^k* z24_;QF{8d4Dp4|!5h7>jE;tVdgWO=C?aW&?YChiKK5dRjW6zxSib=#TGYeK$1#19; zYd;=!h9~3@5APEjra*}vmlo+rkQENG3PIR#slw8qQ=xNHxqn5$Ba_Pdd~aKk!P>b6 zv6TqKc>zS@-`b)esg_1zktN|epytFRK7~s%ov$YUsKdtCBEtm9d<|3Upou#cPN6UP zHO}n5IKYD_r2#?X#Zs!$2bBujikm9h;&0ub?Zf?k?RD%=;|~$J%E0>|CXNw4yX~0k zuh0~AbV9?cZ3xw1eO4BB?K+Me%){SF%~lp&z7Q){^O$6Oj!YA8lXq&ta{5Oy!LXi< za$YU~)m@Oj{qvyZdsPd%6yxP%R+#+AOEGclcl%fx%j$I@7baL4b&+pDWykkE&!S{x z4d-S`=0W~M3kwOlVNn{x2)v{`VK60QAs(`LMrAKb<%}(OVN8e2hSTtlYDeeA(>P7p zg+Goy4GBEsCV4&#Gq9kgvXN3+HTaM2%K2R~ksPoJv<(<#`b-uPDy^0(INOwI-D?zLG#hT3J z&?O}>EU<228TLS*S0x7iLzn`Luoh7S_ z{!n%0Tq2;qFLPd>*u-mnl}0$KP8d{CbimrBxC?sRf|{mN?KqrIQQ5RbqO!lmosGn3 z4BI~uim-SC32_WlyPIDq2t#cmgWS~D5XN_D8E0ZWt|UXdcfSsNuSa2fenesw*v$^{ zJ$J=X6pG(cndQFZy^U!~df`E0og+PFdR6k;3p~ds&cUrq5H`(N-478Ja0()M4w!Iv7}CE@J{_(H0@6qEx+?KuJBMy!XpWn)#D5tNjN{!5LM#r{i`V;-Q)`6)B~p@YAT% zq4PDB*aips;OeWP%q(a-YLy_+CEApkV~j?}H99^%;NrxW!+E1t~ULv0=r zWin|g&MEv0H@cwk`ncTnJ)>-DVI*8D9f#M5!gec$PUjZ388!yfb;r9c%W=$Z)mHZ1pGOH zCl{<2FEwWp0$uG%dQQe2f(~2V|0K`|XnPn_fpVhGf83Sfq=pJ&KgpwGQ`d?AgxfFw zv0>W(UCDDkIy(Z#i*E(g0^YWsx(Fmw=DFlE*&qKs#G47(_l0zAtha9(t6FXUyH=>~ z11ZEo-(j@hd0DRBUfU}R5iZQ0>UBcU=zX=(os;QvB!_ckZLO(0+(~;~$A7eGq@IXY zN3+vLSglaQfn_u!bn0(cwq0e!G*3}JshcwWatt0y7I0HE4eF$b|EQ5NM&iLN)A&qi z%}eNXjN+~>0oq@4?qGetacCF1D&hS5Y9W|TC*2Bof{~tRw&)i5FQe|EwXTQ}F=kEp zjX>|cqfmrhviL81DZFfzJ575J)%fSZ-zIq^UB7FEpfy%;p zUH75m9MYS(kElk6rv1%51?V@MKhF>`{_qXvZtJrWjl0m?>z+$^ zHnS&GO*vc-s(pEkbPAYc5*qDi7{Lyu7FYInXs;>BjzF|%iQyD)b4dy2DEUZl)eRXi zQAcs8>wO1qT5p9W=)y3HLzFjxt&i`%K|K)e78E^c1C>Z>q#^LK)NwdTzn)$Yfj39e|2(v60Z*B* z9nXVIm!CkRV`xX#b-H8o!ghJ{Uw&ij{gBfQs25eV|0n7N#0IZ`IA3wAxGsu=JwE}B zjI2H13oE^|hsW3D?k=xkV78tE3#9iSJPWA6X_Zm_?>N0{U0u*Egy|i)-&pM(7E>u5 z3#1M>cP?pNDcLFM${sQF?d^tF2glrrSKW{G_#OD?H2zS#wP4U0wYl?foMJ3f7T2X%V>e#W>K@8zV9a1OD zGkrI6WeA4wI9w3wz5JFCWHSj|R8|Ef2s$tXA~LAhADbX!`Hbh8^~wez+|(<_?}kG? zhk=Qqqe#O@bBxV{Wb1yg~jG9(6(|mOzoB zg2Z2OML)ufm5NFk<>^o%u7S&nJZ+>ovX1p6h!$;$y}zZ z{FA-zII0w~Dv~VxY9f#_e^nGyS@UNKBtqMg@+d4Ev+Rh0;pC`2)u_QCK@6!bDA0+* zz`@x}EV4t*ev#K-0ZrDh(DArPm%jSE zqFX|@vi<8>DyUyW5@SBn_bOk|Q*;R|wU$h4ZbQ;&Z-J`!P#k*!yd3p|)Ci2J zKZ&gk8ZieE<#%~@99$a&7t8yneJ_0Ka_S(=ERigwtxcIOKrk{JFyHS!sz1aMH}qUO znjk*X-Ig?po6j7szKiW)TMh5zjjha3cfwWVz*X$Z5_!lqaA%(`-A`bxsWN(a$nmcq z(ZOJTuX%7Gk2U?>L7%R<Nax*;~QkiP5s zoNPXd7wkvaf#C!Y6`p>~rMandIy~)OC5cXfIvgfoR1NBe)bL99mxz0;18YEUqc4pk zfU*tSXysOVw~B!qG{zs0Nh0Doy3fEpN`e(c<V5;dHMGJe-nhOE{2`xpxeNuQtWh)b<&Q= zav$c^r*MxE^i5&%IXkKF>=t-So^M;J-byG?(~a6?u_@6r?dL+c0ShabDilt8Fl+sp z?aQByO)J`Mq%LSZ)qOC<1upt)u{MLpfVNKb%x6lHw4DOrui^Z%qHcn^qbii1tU<$J zXC>h9kLB~+(I}REs8Z~c2V9_!C(Pw=DD`ZL{!45+L2-aBK*`{oB~tw zhpNlX>>&lQI3+CGq24WFKG9i#_v>!}`<4N>q%p>C4!(PaKQ#m>asI2}U zU#h!Mjh^J}CEl={X*t@h%CER6oC^ykeF}Mb4ad&A40EHsKLx#x>I+(<6T<{37 ze;f4t=D%Lge1d)lgW_Y}36msjanqf8Rb&1h9{(w0s^)TWslUh+=b(wAU8uUQ)_707 zdNyyjm12$jJbh^5p{5wN^|0yDh~$l_^Ag*zj7lV+aK$6N6wV{HN=KAdQPC$GY>`2` zL(}N&EPlIt=c(9%9tJiM5^{Cg5Pux#zD~DN0Cp|+%vr;h(3r&e2aU4DRAP{pfwDq& zgNu#=bL6JyNpeBdM(3Hmm+NAHK~Te*hsoxQ%(Udl5h?dh_c=n5*X}|?VVCW>>Q;Y% zCE8<3cTB4PTY&cxsF?TE^WFMk;JMP-u<1I7cp~+ZL&eKP==17v^8zBbbUWYloe)Rt z+-@?f?lS+~&=y(;vQy%1tr;3fcUtjZ^2;$&!FX>y@FM z9fR!{jgI%%NN;dMNo+eJuMSeCqtk3j)n4qYyL7K{!e&PZ{wDa`;nrQ1>~up1`kq>c z40g`!X8MttVWJ&C5gr|UQ0Tw=c$de?HIEEwe7%8BBch;Xi`l%nzTPow4oNr4qy1@H zO3n4SDaFJ$oIR%PYP$^a5}9IFrFhpGiDo0F!|hZJ+bpmy-bKfb!(7r?3Aw|~GmDnu zL{yRB!6o4OraEnuyL#|PLOC*P5+V&oF2BHbf{JB&&0m&%_*q=9ft2zWTmBWLK(Tl8 zU3O%adOg{&+P1#eqTUU+)1Sk+F$9Wuq-A7Axs(^czGM}QJBkRZT`hLO8mHI!AP(Hu zlF+DooDA)R1Ua$NTF^q;%FG@&kuaH)0fi&%GkGp$oPzVZZipF1N2k;k;JI)C>Tvzo zAvAx7d)oBWVrKxUVh4pO1~<7sEz{_05_aR$DAG)?Exd>@m5ry zMqnZZ=XTW!7Nb)GwLzfpQA{Z(eGJYhN+;DkE@cLz3|C}6;`F(+x1nUJ23?`~rs49> z5*%Y}uS)e;Kx+?OXC@L^=i1<4@Q`9(r+NLs?h`8uG&oHcET&$ta2;t5O-dRZf~SMmv^36r*}=X@Dvt zlWL|VBf6D2%&1(nHAg=YHSZVGYFA{@cd~Quy#%@I|2Y$EeFodslqR zz7_uDqvrEilGQw9+Q1S~{-IBR=XczCGfe7467M`mbTEXmQM$i31?BP|i%%i$D5ala z_xa7w1{E02Tsj+eq|afeO6ql%ecmNm`nK6^p5fC`;(#zKmN^lltxQy$Z!zM?N*4m; zUJOvLzmcK=?@$Utp>Z!(D@JDiMrjqvN@*dc;}#Ep5R{gZ0S>u>Hx^;WrR0xg;9?=Q zABW_D-^pD5V&e~Z+xTllamEk54su2F3t_n;BGnI%WVC4IIKz`#Q}J0FiZ(lp1AB=a zRs`Xx2rpIKlpzgf_XJai6$)#%2Uf5HIVMhmDAiMfm?mSM(cC0!wzzcu+fZo%9BGBf zZvm2ak+q{r*(h1}fayav%J#%<`>m;+6$9cJ!ek@Cp!d-A$!vbu=HN&Oz9aC#3CLtg zP=+J>9Y5l6KmD81M|Svqe&Sif)fmj~(KUWixYO~_mFVw@2xtL#+hEW)MxjrUw7KSe-c~)la&zi&V9vBQuH)nQQ(=It)4y>yIjXE z6r9igMW`(b($#YqBY06XdZ zYs%w0KChyrES!*y;5C|Dejo>zDEG3#z9-~Q<2+ibrbw(V^Iv=SBWY{y0`z72U#78n z*9$|5W>?44JmoF>Gen}}eWz;Z!^E-uWp~Spff+O6mkTU3ZxFKC{l;SykRsFXf$&#H zn9lV?I(n3oSt?VRu_TlsquIzmMUSXnv*MSXSuD8#ArJ`03ML#y$96q*0Vl7-wV%ZT zPNyx;G#vJzVf%_!<~Nvn$#jvqF@SyGhm5G zsg`04yPiyI(nU*BQn(@WZk9$taPR`f$g+k32bj$uLoL~?cf*w+MEPLWUv3AJ_ z-^zA5{Zvhjj0_prWL$oQKo{G#1}R*WvgP7_9Cj*O2IZK6dto=~sOcPgDzP$#nYVnB z*1W~QA&el39|%e)I45fcu|~ZIwb<%e&B=)4LZl(>I**^DH$z{9()4j)>c1s`Cu9LpAM`FsEdvt)93ICO8 z-T?Ir`fgNfH8X!o8FZwo`EX7=`Be^An)m!Wd^2c^1AL#$aZjAfcTO-Iq6=uFN};o7 z@`WvHGzUWb-@QAepx}R_75h(e|NL&paC_kO|5Tn`{kS?LJ{x$2@HG3CZgQ`FG}_qq z-@fPm^G3XG*Y8mPbs0&A$Ks{AD~;8MRsCozd)9PBOg{(GVm0{`{e+y+6R5|ksQ&ac zlh57pQ8E9NDR7p4X}at5B@pB}$zDVr{fNz>m_WLVy6k@3z zPeDrS8q=tw61lySx}UN^>J5?0#q``jfghFKPRV%V-AqLi7Q1o93}GIE5NGPI4ZW6) zgquq!E56uYlZ`7-v9gz12cHO8qbQ|6K)YxzW+|ML#&}lmb~=CYI}}bb!GZyGADcPu zgOh&ldS$%hIF`T~6PmdPByPKZ_Ezd>uZ*ZJd1d9@k6F8^@4r2Q%N>(om+g~QMgy4F zMCmYGcNw*kswr-spYa2<*pZ}arE-5u?CQshzKT(iQZ`31;n!DN6{g@Y$%iK7s*+ei zRF<>dw9<68B3nluxo?pqoE6HLz1f1Ke~=n+wa!1?PMdPS(Co&X(OyIE9vt#cTOFKl z-0I3{PyO+jY@8xo|N8N*wVt|yeeVZHftaA+7r#|cPD<;Ua_UiaOWu5S>sj)$lPwTC zqlgy~Fy7qForN&Ohwa|b_$nA4@Ghx8^fe-p`SIsNdsfJ#ad#SXb=z>E^#5>_Q$zU@ z0k=fA+c_Ot>@-pRI$ov{m44N=GQ1@QlfO5dum`u)&)F zRYV;nd{kWP(Q6R}NB2rKqLueLdxTM}Te@cHOd>a*JZr*oVu2TsiUm7VU;*txQ|zqS z_t|@v=v#YSnZGL^Mi}Q68rY+<=E*}-Hg#%3PZ$y7Bc00}?J?A+DcGGD;V^jD?{9GS zR!OK}%F+IhaFbS9I;ZKjT6Ljo~vF;9tslzKsXPb3M|vJnJHOWpzlSB6LeI0}{4TyPsc*L< zYa{9}Lbx4toZU7U)~h2*_3B%O()HQVJqHtK!g>ZjC$EHpi;6?OJvf+&9@n77^hrl~ z$WcifNJMgWvL!CWo-id0VZlCE=nXWZso5@74DVaqRhaWfJCi0eEQt<0K@D}U8XdgT z!&w`%b-Q98NZ^CpvzS>M$qtht@~giB#*YDpD)*Fg8q%EKCOBMFj0+iK5NV=cdOY-p zJKApipPlW7$kn1(>Hhr6!IsXnvL;t3y2#SXv#TBV+2MC9;Fn>o`bovV{AnzqKI_Ig zS3zh2qRBw>%Pw9fgUI=D6Zjn@SNcnw^^{4?QT#RfWBF>`(~-o$IUA zZ_c^fg!-2-12%`l?5C#4iKS`3l8LAJ1RUFXk8gy#^@s#Fb|QE^-0x> z9<%r#d>ouin?sC^9pnmns+igtqC7Bm;X5x)x6E1-JoJHk6L@@%p#YER4UpIqTL<_H z(dS4&Cv}zzRhEmq_TlhRWkYYnS6ehfkuO`C*d|VM>lMqFMa&xhc#pSTP8kOym*aza zIa)r(mXcy<1RP=7*EhTuHhCcProgtR4Rj-2=Rx?AQPuVpt>5&U>+8(bkL2?00*;ua zkCQVqUU_G>s6!+_ZuK+rVX&vtw}gv`-HPKGL7JTJIX(r7$)hZ%ZXn`PQw6hbllk7- zxnXIy`{=S2C6gm7a=}qt{-Y&3S!8Er3aNKEcTXkMrN&5#eWl?Ns{@h~K3B2tf8)SL zdh9uFNpR5$xb8F|Gu=Bny1l)=5~_m*-vPHu^{VUwoq`qT$~l51Gict176|NTcGEH2 zHhcV~E?=L8fO$2<{c^jCaat>i8%2_eYMFC}<&E8_G$2T7r!-8!{fDf&mxnP|XIcDw zaIcMx)Ly_3^LxJ1=qbOc1VxC?lh4e`ovEcBC@NX!?sz6S(R(9R-Xt zyA?4g!}CyoD6^w^R3ZGXI%l<+FXXM~i7$i{HVd=G`!XVxB_nvilwkr9?_5cP9d>K3 z5>JZxDTDAN*gJo~;<;6WPUi-%d@E~bu721*-NRQ3gc&p>;Iu`k-#t8F8>Knoz|jt5 zp;jajM2zA7vhUAx8kDPC z$VUPdX~0?r1iTI(%~fiFqg4^aQrvbX>fV4kz;M|AxjLN-CfFhgmfhhXIHoZ&=MU^w z+wlodbwgmm4}yG@z)YX4>y;U@`gB(@a#{{^9vPnWL5PeX$3S@k>^1pUG7QFT!gqm< zO5Qf<_oP;ABy4%q-)IpB_h*Q0dl;3{qNU+52|0rrRsez+`dZCfg!_pGvx0V`Qrwky zaH0gbEh6)Lucd^G;TUWRNu@CCenos$Y{ibgg8dbd?|fjfL;_F>h$jt@aSHv2FLUwq z_CsxW9eZ-Cs{7=!+n=sf+@RB#mc%ma^7cBYO4~2j-+mZ=Nk~;$?1iBtI(S?OXWd>6 zolpvnUyuYy{lG3hg%^U*-Bn)|{1d9D^){IJqj6o0qJu@r1dCWi zn5)c_}!#Okiq|> z?5!W7YP_glLO>)1q`SL229TDLP^6_nnxPx%F6kJ$ySuxF?gnQ_iJ|lI-uvF)zt8`0 z&e{8{z1C;7>F3N-&Dvqb4!s5X)QIs<*Yk-^RLbS3PtnEc!n{$WWp_lmb5hccyw*t! zh97!Xb}4i*5BZc>IsT^H8`crc$a3sKgooS#Q;w2`(4_ahkoYDqKDy%YhxmzE#5B-p zhTT67NaEiSCY!upvA(}9N!`8eye3XWWq-|zOvB`jXa=LC4`td*_oLccoziD+!e$@r z*Yh2Ub2wgd;`9`tZ2^kzuQn`Mzhw1Jn8dpS)J=Bx^}#|)08^E$l9w{ZI=;vA#UG!P zi9^FCM_sgk?9tjdZHKZT6@Cc;=RQU$@yG7lUjM*Fn{E$WOgk(QFdrMvd0*P$bLA!f z?4%n0o)!N+EvQ(|hleaJmo|q5?o+gEq0qNlX0g8{C%jsgQq)q^6g?qpp!m8+hPW8cNNkqFf~z)8y2z@A4d?L?L?mLxd{ zEdBFZrR@zGh?ZS#dHU^nBe}E%aiYKgdUBv!^>%~3Jd#$7M3Qr$ZOEg3XBhUd>FN6( z{0)D#yA#{JqNbEr!qLWKM4#8to#BG>#IN@Zhb7lCLh3KP+9x5pEitc*cUIxwa{f0( z=KpFpcarE|MS5^o_AG`)!BD8cbt8J8@aDh}@ZwliM9U`g%GwwNM})N^0HiY*a!^o) ztr2FSGiH6+GIBz8po~RG-f255^vM<&1IVAIqkz5{nz;(&xwe!7zuwl43S3)&OJ(ly z%G*`yYH4lpH{`7f^i{r6Z>G04!47a`fxMg*hsFq1T%NCqz-U63<@UPK_ z>LuP-@ZpqYp7yNS@y7onM?i_&9!64!M?8MmY?(UeBb9jT;@3J(j4eQ7zM9aF>QS)h|Dp`CIaXXJ4rfbX+; zE2eTR#r;>+5wUYg`%ULsn%ukJf?l#0^0x~1P2O2BpBWPNS7eLxKXdjvw`bnhx~-ko zImA7o1XV6>jTAav`}teP<$!OP*)MfbXP&r4n`T6R4wA1P@|rEmRAvh!xIKNm)NBhl zoo&?(?lJ)FFE_g7*t0*dtE{~jEM^S(V$Wjz=0&)Y{EbDsE=HXfB$$PK1UFjG!>^!n z@V~}xAR3UZt5fGf8lptxPejwars-KyjxhuJ)1&XMBES|%UJKN@(e_oLd`&xOU$(^} zyidYHl2TM^A-jUQ(u~S6WE5TZSXJ*dglTgr213(}j~WZY&aFRF+v@bIYAXp`T5_s$ z-PWYS6hY5KU{pce1m~Z-e6bKfo8wu~+{RywA(5-ju4pxV$rMt1h#-rlII)T6* z_nIq;B4|KxWS1vz-MaQ4NMelX)>}NF5s2ix5-E~Ff}~fzf+T-(&_GM3tPrf#GwQ;G zPi`KJh{SCAkJ>6hYY-m&);+Ekz4$cMp;YHc#HgWlOdA#Tyz`g?ZR=2r6SmQ;`JX*) z6MOHlNN5^d7^vD=Z-i_dc0!=k%ig|ZSu8^b?mxRL0#RQ)zGHeu{_LnZYg9XlEWKjc zdKo_A6OK9#eEvj*n>?LozH|KBcTPh@a)F4-Tm*|g3i3}Qq85A)HMn^gfy**OP|-W` z9}znaC;{ZTpGSXaTV&w!2@oAhuV2#UAJw+(QPrfqGMN~EA#iH zyFbodQqEmSUiw2Z@;}l8ll8H-A9D;xujurxaFQO2(DvN0`;q~*PD`OP*=}G@Qd{Q_ zijiPiqVW@rgVeD;V&FHCe4Aui{ ztN21ygRj?PVq!n!@7k+2x!3Pz6M)|%uBXrCvn0?<&FBEAq$2;z9?$Js;D^)U`Q(+X zNrr&*XG~?6{5q5gDTRDQLG60MQnbj^8P7*v|DvhLFop9XNgq#rTkAymi;zh|GjG}K zc)d(EC9;P=E5-8sVec5@Xpi6GtBbDE#A0hrxs@d10r4-w&Fq6cE141A{Tzj3Ivp)Y z;raoc91-lTjdSN!X*{uB=?rlq5b|LoFL0(Ym~nIhHe?lTS@~8K0o`9aQs@G%qdn-H zelw&=i{!?_?tF)GsVn0sMw{!!@oM55fTIcB^y;7)MY=Qpml5~2 zuZ??T{-}JJZwGNH$S@P9J|lXyelV={>Y`8l%=ACs2ma4A630Tc9+eaAhiLD*^PfbL4ZShVlm%Y6?ZU}Z1e4E+v(#=QIYV4J5GU_F$gAgRPt|F zcc^fi!{^*8O$=rh7z8%scS{a?3Zv#K$|+FGBo&;$j~RNYX(nZC^O;L&qqyR;zopxQ z?O`#OU9s+D$f{-GxHuNp{-cY1bUPBym~BGGFc+NWjAB z&Yv_xP%#ZLRlQf9ZqAGC!K!8Wp9p~rnD!I2O^)ZGW`9;wMm)qImI;sFnh{Phbg?p` zxDc?!4vL)PP70a+gp{nTVk_v@%_~9gzQQ{Ge-;2GmgH7sV)DOpEcZ2q1JNRfdff;t zAQBITao(g$hNw{vzWP!(xnk)CO&za+90cyepJ1Ai5j`}AY zUwcrx;1*~x!d<+NKd`&zqw~IJwdQqc5j9xfQHsImvZJNoZne%do8)#y=rOT3qBVwL zPX89p&LZ(Q&AQi9tyrJ@6Ue8F!OiJ0$?0`P?_0-z+pR{?&m~}+q3MQ+yQKGbT!*I~ zg>+DpibtR;nQEJvKk1e`xeL1%Dfc1Co+*)DTQuLh?e_(vy78*M^RMx_5(XY-}y7- zgLb8TNlF-Log$c(>gEqa?8`77p{?4Z=iC zqf!+=5(4^j^qcCr|E7Tqgr}uL*@xY_jd%#DN`LTMEsXXlE#;5#JM_J(eajr7`5?!D zJ?8soy)o}?$f)>De(DzZWS$@ablxd3=td3C{_3R*K|hYzq^FcTSp@*S4d%W$GO%%a z(yRRWrS|I^QAcUS^#xOzY8IkIVj?PGV=N-0*S=(l5@%ofAH2UZ{#gr~RChmfLAx?! zzp&Yjcu5$(d?bfHOdA#sOA`kxb1GD=0Y*J!`qKN zEO2d7$-?d7r=;I%5|B=0i?hhqOaB(6UPe88@}`ZxM7CM~VT!H}uR-Q4yA%5Zrm7~k zoTE4SQO)TsdGJT1&==(E}8$+ zXK{-Nv3)p16xao86 z189iLrlAj_E=XF%B7=1IcniLN<#ph$a_}F^orM0F^b;;T?20hk{}X2=(#o;XK-v}A zd%+oS>bvhnYyB0kLWxgF4nAg)ti5DobXzXF&I*a^r1bh;On9lCb|Bq+45Kn&IPs%? z<=?=Yz+0P)P*~PP$rq_uPxcl>SBv8xYf_-sD4~oAkL(p*ubKoDX|?f%qM?=*M}&wA z^KjY$263{NB5J{ie+CT0?vZp|IK*%bGyFjO#l+2nyH&vHq}yaT37bE~)!{MTrK`-t zMbe=^mbMXrmKg)*~k>% zCAhlB0(HTOn=$w270tS3cjuC5w;ww9cT~&DVHGR8jBCSN1tzvSW^~$|0)AwAvZ|*B zcQ4Ox5HJ6O$>az0$3TFK-IVF5*4&nN)=2yiiRkq`5U@Da&IuxaWi)&u>OR(hZgqEd zeEi`DyOGPKtyR)dl(XM8J$<=)@q75w>Zxfx>+j+DCt))0B?HIvq2G;xk&xqk^}6#v zN=h5t{9(-IWhdn{$tLqngDB?auyLfC+IpY6-toXL6LMYq<(2H{0^Swl{oE14<&0fz z_4C+4n3HinK7H+SQyfDG?@Ci=E)P(0hSY`=b9i>T-vD_WLqt?+bbbA}m&lAdfV{)T z%=MD0CFY`~#0glu@l<;I$94*;v7WlY?ND@nn$`V=FLsjkij0#8x1A4Q09rz&&(+D= z9%W^MFBJAX=XEWbCwplVMD6-I68M!mlARecrYk7ZfQijWQ!Xl?4)|gB9*E!`t>-_v ztDk1Xw2{hsXwEg3l_Ux!-CPWZqL~;g0)z!7*`dl0kmq-iWPXQD*|9lV85|_HNweN^ zFYw(NIfLd7d}5;v9)fE20~v~*`74;NR(an6@k^<(gL9n!(9piy@hZD?o!V6v#h*B- zG=FuN*bZ81=UF{+QCNca{mSr?b#8DQ%nQ8?{ETn&zZr-Auf>QJofUjo@@)oDC7ZQO zkN)LA@>j<>nr@k$vjN5LwrnX^wT@kj&3k93%J?v7dEYefv-tN@rU}(vn#melSE`6R zWCpAk?rCrx<5?{N-C|YBfn>T8Y>%X?%HFEYV8H};Qi$RM3{U(qi0bP+%Ch(bTO_JW z0Bf3tsl4#LlHdoUqWir5pSGd{t^qR@Jyk1BLg3X_3h-F}rndbeTkD6|>H2@r$(`>m zib!0+Khua!Tov&Pk?iGlMc}Nj_4oxV1AkT@VtM~%s1Pw7FXZZSATEzTt{s=7tN^Dk zre;(B;;f#l`NrP=m0wEA?lJwhQGlJ(H+a1XNN{hVkunCZ`eM@%uV{P-?Ml;fir_U!2gC4?w(#U)yv{onl zLCIg$isPsv5lB|mUsCVzI77N`crUK4nLL;~=;A{NZfPJ2;?#3$dKip1*0MO%$)_EZ z$zuaMM({zWE+=at$43R~0hBNjP_b5(r#7`rw6xn3Z83wXgWT_KhRa_~^T(ZE8yIaT zQd{L_^1gf;MEc~9we@mdmT4OFYF`!cjg>x{04ZtLzkN$8gX2d5e5EQ!T_U+5K6;11 z2MW5cJ_X`tDipF=ZDC$>gGYQ{y)Sb-$Ogy&zLM1LV`O>}Qgr4esq3KzSM>ogc-qV; zMy2XXG93xyDrQ;k-jAn;s>1c5BM%D9f|O>RLF#^+scAz~%3EfBekq_Q4=IM*D~9NA z5-b+GGwP9IeM_c0R?>(FjISAZ_;qmz1CB~aMhTYZMUBS$Iuh<0`qlWPK zF?yNT&`fbAY6FCO{X>;kuG9KyI-$9Q%V--O`AD`$1TMd4&r7pSTemFTk*ONmgYvfA0&kRu ze57|>q@<@8^Kk|@&oe6oFR?$j-5Y6U={90V3OOVHN4wAeD=uv>nf;vis1Q=8N#NLC zJ!%4{)^7&!#6qAta@ciu^qf=K2KHRd7dQDA^E^*^Rdih3$lsx`wft;_9>o*z&groo ziS!Ri2~&)_3tEyMBP~|I$Zc7)Oi4A;dpAl<$8bdcPAwlAiT%^r1%@Y=I(Q$jA9H? z{+`?~yy8_Y1_iT{%+)m_iaEof9R@uk4YXf+3)1S|sQf1D`6`+`vzwkvYXTHZ)XH8E zri|j|v${b^jEzK0UZ+K{Ob#aY4c3%gaOsz2zCUHi--rc;@5&S5q;9~>6Pg@4Xx!|- zlqF)=RCHvx)28FfmJ)1=qnTYus74y3La`}ICk)(I+gE6HvO@>|8icfrs=`zriLU9l zR(5JYBOaLlVwFM%<8KV!8U;3l>Q(*y`mSjYtK~#ddBeknF1W1TGE?au>mg1V3&T)u z4}-P4`WJ>GJ~Q`D5vcpd!?5ntuY0|;+SiLelTNx_yWfuf(~`}IY>o`kK^N2eZi^hN za^^YF!DSxTEi|R=x94r{EC~=l==^lt_r_0N9uQ6&H#(i#W*aO29uK zw1<8nYz}6uQ^Lz@Y5XwKB5=}R)z~ZZp179Vz}*RyEFJiVM1n6oJZjx%;woQab}#{_ z?dhXgd0;`t%|D<+zZz`skID5Vf7+|(zF?(I6gI=uwqy*81PP%`{wW}Wh<=UdK>qFg zc~Kg|-bmy2A)=mme(J3%_PNkq%g`K!()TOmtc=I`{ATqVh81!n8x4^VSSUDd570c6 zD;+@@m#Mid{pPAkzU4J1w2kwom*_HGdfz0cRl4U(@D9dMdOFCI_S6h7ntmU}``s%; zU&wpFBAAqLops1_(sdcVU3>3kVo&AXu~+V=hl^cPMcvfJ%Y@F~jz!p}=Q8=>P2KV_ z4X87iwpAZ9sr>7wMYome7en5gLHe$QI*gO=BL{+iD>smL|MhMQzAm9GQN`2?Up|g0 z;ez~lV^$FtV2UDK`W3!c=Q{XHSK`9mig)+bJ9HVdpZ;h2@7omb!LsO)fh*&gNrTpO z5G5LP1hbpo?>jzbey8y+rv6>hYDr`t9qlbjfbKRlT!iAfvl7FWGU0|+2goM{H}qpx z=ZnToIz2%g-Opmty0(q3D|&fL9*gHbM($m7;BY}w(kh$!UqwTu+nfRY-3jY-BT`x7 zUTl*K#EI*E8Ix}BTM5Wn?+>4DHg&M^`NaDCKZ+OEfAfIf@({~qYuI!$JTA*?uoG;H zk?hw~eZ($v6W!+gi@<3@QSsrrCwhJ@RRc?+`ChdyRWtAih#460<->gLAp1=QS)ntr zSfmfb^~-wGd!jvi-*zg{K~bj^{zlVcheASnvzt#{dUkzgNKH^O7 zw(fv4nb1QT>2i|zJ^QSjI+m!n;r^`@XzDu)BLX`8&C2tXDi${*PaBUqo9eDJTm2(_ zm(kVxucs#r@9ZN3C45j^(CJzOAH8%S4ot5wp#YPi>{sU{-Uwe@^ zxhEO={mLDf5!CJzt)UjAWUEZk9Vb6!=<%B>^4DyRK7B!gR)W1)NKG+40#hrSeQMX} z0g%SQjMLg^7vbi#Q)t&-*qM9^sx3WVhTTKjmaIEJ+~v#s)O6KYE2hfp&Xwlyi*XlM zNKbE%+@Bor_jk=+>N6i^45CCE$XZ2xlUZMe~50v&%Yra z0z#16S(gyIbqc$TRk{wc-}Zgh1}1!+UF+o=D;}@J2m~E5nSRj)%#r`$qq$uj4xfE` zxqfj+R1K0pnkMHkq#G*4TV8Xt_I)ySAX#c85!ou4u{0x|TD(73O5Wn1;QnlVOb;dE zgx877m(D0;$*cqQ0@uN7Pwg#kO^Ks3g_*cqpzkP}p03+0WP)e~r@&)r0z`*5{)cRa zF{7mHbfU&qszJD2BPSzK21#tSnA;wX(WFsR*DT8WFjr%amYRyu&vTIYz{5;1)V3-R z_N9}4iXy!^42BsQr24oVAb(gmU*+`udVcS3icebNJ0v=2JoY}-GVewDPv`*k8Qm{f z)SOypLjAX&1j2R|d=9MI*xw_wMUD6&#E$i(xrN3BsjB12_o^Ikq(4?v3-pf75*kj* z<9l0}wjJ8Jt=HqIAnlPe+3P8ZOuFqEO|8$7u7R>mC>qLctbqM5xMU|9u{iFtpq^}S zcsC~t=)Ds%{Eq3TQp_wlWcO1$3XW~lv2UZ!- zboM*bCTu)0l78z4=P%0Za7Td06vN1t!JkNDQKmz=s!vAGHyO+<+Mkhlkq#tHh< zR&CJ)Cy=Wo%3bB`i}93yY}uQ{-q5__f$#+A8?{Q3EnSkyez=S}{G;KPo=Dt8G`>{; z?pFPr0oCLZ40)a)Gp@7HF0yKDODG%v_@J-J4~pYA#Py(1n;f zt7co98||F5p00VoctvShjK9c{AqrM8D!i2${dQkXH<^-mS|?+7&NDZQ1onEX#j~ka zBGT;&N74oN*iWf^3^e)!uGBYWn6!!gcemoVO;jkk~-`UuPCPFxtQ!QloqG@o3-^>s8^5jL`q)>p%8hQiM=Oldn0S`rGaUHr8J)*9S&m zTvHX%31uej$FtHAz?ddj`qxEaOwIn$5E$nefjW+iGVbbC1sRDLoj%2%Rla9|>=YDC z?-eYzZa&%`Iqv->okg^)mFwbZqHU)Ljr-wRqrS|+c9||}KO}lbaLWed&kQwM_5w}o ziHJq!3nE`*IO6Iev#b%p_geNtp&DOlj(i*7s%#!BH}~3@NrTMt?nJ&?AirWS;d>uB zawOqDg=ZC_iBt?X#C|tqD?z+k$DBNfbieXQ^V_GJ7gP(8vPZ`1z99MB+LfHKU-m3PH?|lI>GAbP`qIHL%iO?jc{!Dzi?K;LW zfEQqFnh~=yRY}09e+nQ@6IAH!wmvD;&1=AG&!3CQjNEr z2|v4WX1}8)B6%dWd5(c*HbJ4s)vJKpPHmvd@+7ube^+5;8}Dl*h{rJCv9abGt?$3< z%I`E_$98&=46OH;xRBdcmG!u#K_6Z!s4$tz-d91Ptxcpu;}XP@28uGP7%6uPta-7^ zEXwYjd&Aw#s_FGx_bD;3*3%dL|KKdbL+oZme6*OK*BeNbaL%Ow$=U5q+PGJB>{>>J z2^1U((YR}4)i|C8E_5^L={n@V>c^=lRM}xf0tr;7MxNP+<162|`lU^1S4w=tFM1SD z;|i{?d5E&_$-084dj(DBg=8lL__k#`WxlL(Pq14Xs$4LperEoYzi9ztI0IzDEE*hQ zG|VyMl(s&+UFaYd1P2p6NKvMvlL8EzmVPMu_SZf@FJ49>zL*xKZTC^?VuF zt_%s3OBJ3VaG12(rpi&6RVdEyw4`~6bZK5In~?D$``cn?2AnsKB6lC>(te0YwM`NM zmAP8m+np%V?o6Z^C3!kcym+VM2WeldoZ&ex4%eLG*KbZeN&+*gagWYYVb)m8kICg? z3KL}Jk^(Wdb8>Y!*9&kc1QY8g>%&v^$2LdS?9*PBGFD4S|HPV$mPq7U?Y0NJ>@Sl5R4_$`{Oe1MXj-!0ph_{zi#kX(Q$A*{a# z0zhg?3YsyjPTyG1L^_G5ojC}e?C;=zsGKgFPxRm3j%$XW{5*Z|vH_o8&o7nz*!p+$ ztJ}SMKkBxw%uJ7wdDHLTc^;P!ad>p9tkh0*uh*f{}`Sv>&>rW{CCk)Mht!XIgM>s}r2-C;$h0zUKAJ1p z?y3Paa`MQ04xvY8XbdKU{)gJzZkmjd(t#@PlQ>XRx)Mp1v01Pb+5vT1eA$2bGLd;x z)*iPCvRC-N7}R8W4k^fgi#fR(_*gQcZv}b5BAp}w#IE+5G!29ajUvcdo14?tVOKf4Bxy= zz{T5&&cKbY=ECR`F8aNn-xS$l$2RT!eJq}L$1@Nmj#v-U^j=})z`_}Vn0(J;sq;H> z0bBijs#lM2>2C&_uhIOOx*V41LJrm{QWRd6a6gqWr4qal2S=D82Od*MT14Vt-}3F7 zddLYxe{A4*`(wv&QsxNH(&8X3t^I<%?aA@y=TxbT5mAamgR4-4_MRj*u5^sx2;S~E zH4A{JGOFP}<;$PSmq<2;DTfv%cH;3w{F8N~bE-Kp;{h%)_jRgQa>5aE`BbAJDn6x` z!9G!)?EF}Y&MWICnYe$*fROsXaJ>x{Y}kuT5E7*DyGtgI0zB(g^>>s;84rmkdKvcnqIiKJp0zn0q|ELr+6L||!yJ)07G#mc$4eV&n`-LH@Kn&tk{pODRtm2xgm zo>xvq1aFS3-ikUZ2E!K47d-mr^f?KS??!!UVwZ7oZ;x=DFmw5S;PY$BH*+oHu_KZfu|Uvum{v^YG~rVC{L;O zOSnQCv&F@&$y?1}*MJpH>vTao*(Vj(LSekpiF`*`7h=Tog34Qo7|lhE)fZJM#^gV zMI?8*o43SOOT`R@YDKhZwNC5Uga(nlU1xDb_vsp|_v;DPbra!v+`J}{Y@;gx(|8NC zFWksRqTUB|=51|tHVVG%tb^>>#7$&tR5JX_Lv@Bnd_OS<~!Y+L@Lx8J4pvzmQU-MmL3K~^KrO(tJP9t zjOMeX9U^H71))~abw}0_0Dg&=Grql zgy$Q1|MVksCBb(n^D*0k*)IJm%2PCSg!a_9N=W$Tj@Sw`gy6<@bL2MZ8*tX&FAzppsek0!SXdo*nySBDPEi^bmY31-fM2+yB zMt_)2h;w0BoTEe$uT6auTQn>|49#B5okxi{_Pmx=tTSFey~r#5XD?{NNuuy?9O>QeI5w876GB25XY=+7u1w16>CjXkzq!u9<8)V6( z!On=S`zpmkE+qPJ8t3{iw4x--vG1EMLh+`i^TdCgbGI^hhACY=rx3#!BOhaQjf~-wwuGhQF`dpqJLg`QCO zo^?QinQau(&%y#uts}$Qb*^9N0vA0U%>nE&jP>fWzMElO;3S{bmVBa@ zsCoSNTExrpe8|sfys~OA>{vj5xJi^Q=egx11!%@KfOHkanwg-Bd+ufPQb0;qlcj` z749SQuJjt|s!!d1vp!;_U5m<%a*oFQXTjQ3Ee)#JD7>yS$v?GU^h+-uH6N$fi+@B{ zH>o0OXnRrtjH-DxRE_Q~k}Ry$OFawa z0Be)Wz)=_jC=Jb$t$^N6IEjHV+qJcv<^H6c;krDtnJ7$%)F zz)vSVSTh_L%EIBaX$!dYnza@XL$Oncc%E>PG;HGVw6K_Wq02M<8CN88fj={Sbeeo{ z^+Az)5G3H6w+GxcVHY&X?f80GriL@8w`H)fluqN?nttcWO@ZS-R%Bcuw5;WEqyd2| zvq1M>h)z6_iC2hLPO!G6IdMwSkyxg;c6zH94i3cJMz%Yy7L;C(8JJjV-@>5kG$SY( zFfEsc$VpV(be_@xZiiYXHw79JJ+?xoEBL*3*i}!XxA|`7Pz6qANLF1{H@6)UM{R5E z10qU?t{rSBYIpHHZ5&xQAcTrz7c`Mx`Ks%KF>_3ZOPo1g<|jy1@gz%st*QOQB4(GS zu=GGL2#~95)=$R&X+u~afxCvkua5*NTOrd9gcsuNR#PNu=Chsg<|b*_I&4=|PS z6i&&Ua0ceP+Ia1u>)4FVIxx^R(E$!fj_~ldv>tM#x7yg$Z(P;%gE!gQ0B3FMlWUnq zU`jqlR6MJ01E#snaT}xXJ}{_0mFq;PL|iKR)90~B%wlVuMym>i`HjD%5|NAd$;!sm zA`?se6C#~!9%OEfd3k#dL+$eeb>Z5P(jx(o#1HVGZ4wct8b2Fk`*hOaBoC~?P>%t? z|A{>gVOI!1B{>lG8HOl|J*%U{U`Cj1aUkR;1(g*PU!lCeAGf%KN&*NRk^I>Nb>0HD z^;cNzNBcAb-iw{j=I&@dN&wUwrHGuY3R-k=jByI1#dk z@colnS;IFW`F~6-Ww;KEa(@Co@F2Zxk9q%;4`zj>3`JQjn|CXqlly2MS|xVdGz2Ic@b}I2+V(hhw?`kYVbkQUVXG!K8|$gR9p_S> zeUWUtp;glEnXqjN@X6~3Z7t0I=1t!t67-ZM34@-o09b2yAR&!H6G!f;;!7RJiE z#P3*HBtn-2+{^gky!i_)^8&W*!!oNbY9yZ76{V|?Ioo{L7n7xV+vMorW zYQ+Snz<8-WloYcZ>l(ovt0~3%{fk|(*Y2i?SN3~G3dy!P4ypY-=$&Y-46wO>NZjs6 zIumDF|Bx}!eq(bO2d2fk?^6FBu+=cCl`-5|u|a47X}8+Toh86;gLUELzlh_;+it@W zUWDmj=_MZ6PJkzVTtgR{_g8%%9E@#SjB%L7V)LGKLjxEliAkXO$Z%rS!Bi>?C-$+> zOM{~yx0nh5rL+Afqtu-U!*H`7F0NF#mjn-L*MHGTKtNGaiP2SJ=r0dM4OMX>-kYQfgbcUk)6jM=hN(mwKECLwKX7Q^tJ8gu#?9L z$!;NX@~3bSdQ0VFjS)waW$~oVAv|Y#KQ(O3S$xBOD#=oO2J8%p&KFeR>soLUpwq6U z!I6qkx;b4n_I}f|oX z&DwZ`@>fLRKf>tEqeI;(qd)YhO~i$8iqm;_REMaH|l@1CuPl z^SAf@G18R&U-DDuQ5FI95_FK%mtjsirXE5d#1vzV^D~+>Z9Ep=S-!Sh;0Q8 zKG|-1&FIYKUrGxLA{G5KJ-2}KFvY#)V|v=a;oef^hFs$9Og#<9F|j2_`mFXz4%mSv z*tITAQT}&*So=6icWDp(TwRHgIctdQVJ7G8{wLCxCJ#4~4jnP_H`s1Xbtydk-eMv0 zV7BdVE^7SFQG@)r0#?>Xd9t&}!C{p<=J=OO*=RBX=y$}DY^C7RW|_+ckIn5d8_&~7 z%?e<{2s`)t@M=?43WFYX#0<=C=Wi4$9WT-IcGN<*NKGo~8b64{M@(PvG%xD@J>Df)E$6yjF}rfaYkzH3d&HzGK0F95RPJ^W}HtgAeu&O+mk71W+k4Xp*Y zs;u%!sL^X2X8dJ*Nj-)G)RC-Oi?MqmKrt+>{jjT{0=i@D@R)k$<36u;p<)9dnajP) zDL>KS2I&W?v%ni8-A*3l4&&XK*NfSyf8+4_FH=v72LDMy7Y~7F7IS|g2cKQ-|J%N2 zq$XE{>2a*tAP@PdKFd{8JQ0dtJ~~g zG&Td^@-7EWM4=^*MPztrMSyZWat@JMiOFkVTk!rq;|PPeT8sll*F;Io!`bJlCQfo zM)OyK=Us+KN4Ufrm2;LUEVpBXWE``H;mUTw_L>bcEbIMxH!qWqSx+MrjSuIyCCq@> zTI4ksPj%ipS??=#_9gcvfs_HK_ng<`OyaJ|}Y3*{{6&a6Tb$Nb#)?HT$QxZ*hUfBL zh3>Fbc--b{OO5QfZ+7UASU8L#>7#0TvR|{oy6#=zfqPAGVDvxLVGpEfge7O1z}6ow zfm~QP`;_xGuJchHes%191Fs>1G8)rAuktz4 z->cmg(E*&E8f;X~i$;ZwD;`foaD=*iV{Jp1mTn=Ui`Gxa`Ty}B1P^hvCmL+4 ztfi0Pc^lxFA@(m!%$bTt_d}Ye?(zG!-6oZNKf6ab-=Obe-^~MaP{I1DeA?2V7SxK( zLnHW(M5j(L$-qH^la!NFdC1GRR7L8}#Oc|@aW)#w_Ni*0lfOHXH(iC5d|-E>*_2dg zn=z^%T#F%Y>+#;eeseqG!yGh6X*{KJYN|rDif{LR4V9fqCUOxG<_+38koaQ+%({2= z1Jv;hXoNObgb6GVgjYm_c0*bD?i1J}kXy|m&0l}VO4=rTZoS!zv5iuI5eLW@n7Z{bm5Z7cQ}syf+O;J7)!Rd{!^L4NVpP3B8J zGA&&|%dqW>Ra3ACS?!<${23nbMkT*VptyYTdkIajDIe|_3|+Pxu`M>~Ru31Ko(-<4 z3ynAXDoi6-|7O8fXeQ$^B50?84?x}cZ!1_$C{^mp(f(%@a-Bc*SVJy0aNFcl346}z zcPlC~nS#zcZkri;1DyoJhA@)kF)67}=9s{!-M`gF%N;}e__|m5W!ixK0tyb4D1L|c zzp}KW@Mf980es$ZVEbE=C*BO2)E|XG>sd?08gWjN2r)AWfkZzM<-7i%?bSDK20u~5 ztLb1G1`%>j93o4os;}$q+!EuwGzT5GX4S3nuhfy>i2NwF_9*P?W`n6GghrCzzZ3K9 zJPj%Kl{8Hi0fVkV{Z?2^uh+tk`!bX=2N zp6JgNZ-7M}+dAwM#5r0cH2>3(^rJ%m8tr&WRCjexFH4?e;=8|VacOve!k0ZR_be}} z^-6d+j4D?;JtHlPxB0>2m*ZEI__G9(_xUI)HNZ^Og!GG;RMGcB2o25SbW;VXZQ+{< zX(5R-${YC>t8YdJ(jw&pOM~U}}mCZk88A{2YD*Y5piGTL@{##u?}gAP1G z+=s$G6rZ1!@}0F5jn;Sasq3>!u5oi4jqT> zp;6AKcpLO_wcTGj=bCwS($!R@H-9a+i3nMpwEtDu`3Q07CwjRua=4~m66iMP=H-{j z{ah)1yGD1B;D2vKju?%Ec$8=$HF`g32#00U5-wn0X25bA^|ZxXeAd_8xwwNAF!d7D ziEuZWf+N%9O|5T8NPzD}?cKwWtnzEr<3<5q_iNg~p7p@zn=k4Qk56~!75fYMOhU?% zD&FA$(~B?PDF0xivPPdSkkHl~MRPx7U?_%I`h4eJRDD^DL44hBXyv1tljSx>KOPr* zin*1Jb6 zchS4nlNULA zf=m}c@;K2dD_D1)Rpi)y@p9rI@5vex@5R{sGv@!H?46<`3)d~s4m!4NCmnQb+Z}am zb!^*CI<`8tZJQk%6;y2JR-b#%9_R7ym#Q)9q3W--)`vOg2c}R))BlP|`&Z0M3vs={ zo|`%`iQE;JQ$akYU|2&pom-{YrXvEjlVK^4xxHcol}hH_7TXT~1c3DvcvMiQ{T1D` zBB)QjUwTejH2Qh$@w|opYK>~CvL65TXKZY>6)ufCH%%9Fgs(c|{R_lt!;bfiQqrHc z48TJxEV}G&23A(wmHF&}FS&{l@;E(d%!0jnhkUL_W7{Otk#Xw52Qw1Kj$O8mv8+^n zQGnrG7MrRofoBJt`NOIGs`PD&Q=k%jV}??$kpKdXPIJ`@VQv<_!V((g+iE(^;O=?s zJ`YcG>`YRPrXhVa)wGNAW|j<0ArguYD@jj^{nk-d(BcU`IH)yvN2eSR74(xdKPKJG7^UiTkh1`uWdMI5@4;&MrhA>U%pU#`)dO4t4 z^y~O5OT)3YXIYN)OE%=@O_p#bSGRk0UnOUXiD70+);7BX9%gZ-8B|pr7gbB$tUr#y zFs%-bsKk1oz&aVy?G)!G>t8lj3RHZKTMjxXQv7!3NT>0!5C#eK&|sei*CA{2-S2X& zZ)8zPIy`aKtNpo_PCRu#uxB$IdPv=lw%T_1RJ}eIDHU>5rZwwzMq)gtdD<*Oec})a z$`9J43hou)yf3iL5*=?>8Ye~jHCwRgd1DbII$1&xw?c%2$31kJljt4*9INV4Hj)p^ z)~rXqs2<(LjCj*BH{oX^-wAYy$Gxa5LZ8asEtUNYHg3xR?Ya{X?>i3_KhBpApue!* zuHLUPn5~~;|5sJ#`qU85cemaT^;cG-cawa?BGU@bv+F$kZCS*l7r#^`Fa-DcJZHJ( zHsH}6XPJ%5WCN5C%;VLiOpK#vr#un0qu9(hyQvJ8Lf7du^^1pPm(ift{}TO{TgR_b0)1A&#}V1E8#uRcmtQtCkhcP@Lej#Cscf zSZf7n+w@v#i4ajU-R&=lic22bNyR-;fsjx>jr@Q(m6u#RgoU%+{J)6G0(u?5-^&0Ob%x?od*nlAV|#hh0I7f zpsH^x4`-u>w?rQ%J$$Kb$h`bwH6^LoA^hMFXhL&Tw4sAic8f9e%+}!@pkKrLiwi^8 z$f(UJTC=m|wHX)?O&S#~kHfx2lfKI;hz-o(a!*o+^VHM7-^v*bhxqkPE%>=uWC91i z=30DG^5n{)u84V7nN3=l%A+wU>1)^Megegx==B^x05SJ$t3ai#al~k};FG_iS8;cw z%??gwi*K+}VJ+(xINpAcao~{$2lwx(m*WxkyhegXd5Q9rfh|LFQVA`yPCh$?*Dt_T z`mx5ovq(dc!YmgKJtVTlgW{)*u5%;Olj-gOmt*vYk}P9of=GFnGN}uq$m+wbIxXsj z@UFVYtu97)%|Cs{PgEat+vJ}@(o_lNBKIHI=1aSt=8^0(sP87M6#|?34$Idi5O339 z-I2%~%G*-dT+ik1*dj^g|CQ_(84$KmW&;9PHQ+%68GpI(KloF#0}Wj8T9t z{)>&o_RrSQqiOdr09v&$(mBT*XV9w8h1+QdyH+o!x_oo0YfGFf08WUx7+axAMThmp zUaJ3$n#dk98^TX|R$C|ov4p#O*^oS(kBML*W79*uBgm^lc%6LeglfeEllB5Fo52=H zbw_Z)F|&S&T=~DV0E{bY`dRIQrFyX#L9ICsSdQ9np}HyzQNQnXoel2S<%{7GC>@(r@{{|Ic%s&Ydh)F+YN+yMtI#idCiPwEvaQOEhY%-AG!EE z@AW(E_aDn*L48FG%8oS()cz$Y%V18jiBnArB=cXhjv@d_m(#|EEp&R(C(8w9Y-M1Z z7w}2k-`>LNj)E)}er$igwN~NSXDd08=mRcY0qT=EM_v4r>@eqG(xry zJpgT1AWY&j&u&ox&y(-k2~1bb*8M*};sy=+TL8DouBiYl?!%Ps6uru|v<^EhWB07P zZ_7#i_$bmk1AMV}yotW|6g5>_m(e*gE&t_h&BWPRwfeAiY~4QI+h2)(|2yMvC(UYX zXQLSP*=(jE!F`g3eGlFxV0N_nOGy10O9UpMX=E-FsJ_iatY4b_(QXVG6doEy4?*!66vY6RvIGr{ub<>PWO zl{ksAEN^}cGeqO#gA8AS?;rlA{)`2mwL2Bp4(3k&Ye(-cR*vn(^`|rL3DoL$_2E#t zm`$&Wu~mH)9Glf13|^~ea4qG`>(fMi6aYGCTUNjH(u+7|kmBodH57rQzrv_tmTBPzZ^D;_96(NalAR2PIELk@jU+y^Rd!?xss-tT3@Ee#`ti*IdI#fjly zx@*EWC3dD=)T(*g&Xazsw%@zwXf8;($7B@*&3?2gq>{O9J{O-;IRpF8D(=Sl^PX4rjVq0p5BI9J-;!@$PoVObxD{1hnAgbEo{Ba<2vM~@|rzBk;5)02$ z+ak*-)+F~{?#5j!=>AqqMB_gLi1Zt`FwBi+Dp;OFx&3!&Bn8|)D)XVUP;4Vz(!vod zlXJ>-c8PB7=n_ywcy%GLg&tW4pmXxJQ9p!OhMa$eFaW&q#qwcY3wJjhlMKW5?(&N? zk4_zeEfSn8AAfTHmJ_*svto9T#adozHGYDsTrv#vm)y;ITxaNST0c_b}Vrf8EHY+(< zj0I{>+ZvZk!{nJ({2F5T`-|cC>jG!Aa@j+_Uw-^*sa@9~h15@^4RJAsnJ$b-I`a0KX+ ztis8wi4DCi%=~kB?7&bLf+6uGWNE;2E`6!6p7U0Q{nX6BfQeqPJl!Kp)|HskO~0ZwE_-v@@uLDT0l zBiZlKrV@SxkNJ;=F-owM)$$57`;w*OZgPNQ+VX;25nD(riqky|t5IDs4+z9Vr`H!2rzJ9|dej+&@Rd-4YA0`0nnbz3; ze(cWnvjW?USLT`G=pf$Rr=k(!kk=wVpg8e>GV}P!NKTVw<0)Cr6#HX6iJ)w&w`nFG7l<#D^$h&F>Y$5q zHOE!4&8O~1wDtQ*i+AA-z4*3Klef`g{*-U_*WC5Au0XLSgb#x0~a8LMNk6QRstZM*?z0D)D!C!FGuti1NKkLl=o zDtr31Q*6)zPy+a~zec>V%0@%sp{$Pa1w7X+A%o!`@FegXuV;_Ou6wzZ6y?f=|Fd{OQHgU+=bGb(I)>{j? zi}UbTDG?ej7JYFbrI^VL-E0N2C?LK^CL)$A!_O;lFRQ1mM$coRXc6xh5hKVp`>6aP zD;D+6C0y1F;-F|?dp*ypARcze>Jg1yy>OX}=nEd8oW?`=%a#f?&Bp=td*)&4Y>k$K zF!p4!4ZX$fvctKiU9unQO=*2-rc*Gu*=g;w23jC0_rqf=gb#JYs;7UahOmC$s%gPp zH_F9(=l3Ul+(ys{W0}1FP&uLpqTLoXSt`e4Cat|kOVCce*x1ewDKA!leWuqtVtV52 zcYnbMeqmpa$KxeuEQ(7}^B16_`j_u7<$7+<{zE5Q0&8E~DyND*T?VquKA6aF{w_6K z(7*igW=pQ=WsLqW`X=*mp12^^sdxESZ(Ce0q3&1}+srpZx64rt(X3sX9LAGPV7WdIxpii5XSu_QL9PM~ z+LI5Wyk=8WN@Nji_ zP$1a7Lm9Yh$JcPtCk&&e)T1cw^T+OeRiVe|?c7zj>B&?~P6FJTlb$OTlSkkH%Dx%) zSS-I6MrG|%CZ{NvueMF1Xue0n09~-G1kO1Ko~$m42?#ks1Zf(r^n=kKU(ke_Mb1)P&;)Gao6Huf_^4B;6uc4A=J?j42?tmgyb0FBh6J2o z9T>GA)f9}O4AI+an1AMzN_bXYFI{8pAMZ`eH#BX;&MPkZRrmcp#IWn_`MQIZi7zrX zC}k64cPmu^a@;~04l^BV2B?yi3*#2U_y@dGLu303F7!`}+0Yuc03Q(fIUn6_JbhPhm+97L>cfsHlfP z)OxOcuKbqb`*hOp!kLl->`5$4;=&=P#?bsuhUMMkRgQ;e?+0TS0%aJn`0yI)B3}i( z!i1S`{EoJtJ&ep|Fy#?T8JRJ{d;4s>Tm7cqwp_pBsJ6>8k0s4BBaT>okm_IUoAU z#tHdG+ciz=044qU~jp{b{Iv z6WEu$Fd)nN`*c@rpF-jn9KEqFem9)*cJ7`Z*N%HVbe2nP_OM;`OEfNjffp%~;XSR3 zuF_214qACrTU&0}6ZBVP{}Ct{eiO-==fp;NZWOln{!x89>U=5<*E!+}LIWU+5T#8Y zl@Ei^VEW)(_E0O}7wNKl5LNnZwhvxj54_?ubUV>#JKLxe#8YpX;xj}yZ|Y2Op-Ja- z+i1rZeOeODDuhokSB)(<+)FftZrbs;7gs{ohV8SlsEASW7?)|7s^hhsN!X3nCVj|t zTIAc^7t1tU&m#+AGpEWfihC@Tc+Ah;HGXiVqhUSWE++A}zs~8e{1qt`_Z3rz58jOL zBLn9&M=8unlR4VSfSQm1zxQRo_lMF?vV!n$>w=%Rf*pBhf*+t9NcCtN7UJ{r^WE>E z8)CM(fXAx`8jt-2p6;O^9iC>z3&N^aJc7(1;;R>F#!79lSa_t-U?3E{>rh~qo3fEz zorWsLP%MAw<5o{M`|VU^I)6uw(?o|I)O2<_d&Lyz;hCHH=4y-Og+rVd+xF8iXGV$O z`w4IO@`TH6_hXlx)2uKwd+z(0d1eXUA?<{kK;HTH)HXS%)Q*j!wo|p5wX?brqN$Fp z`)a@tldnU3e-F9P=eeEV`rCbtAL3o7eb4J=P1{`&(`M&Y2$S`+!0QoB2C>!(* zowA-6))=NAvI1oT#~*d~Tp=L4e2+<2aNkf&E0K|!CG@{!+lhiua6eAkmKSR@RtiODXcg0L+%K(U zp?*9j_~o=~!KSt#&Z(0S5=mZUGYa#7RTZl@JT0+4#J%Q-dpu#8J*_Pj-7OpWsCP?h7;U$%tfgsAy;n_s()=XqZn9?W(vtLYKruuV;O~e z$s@Kp_VR+~QqILrQs_&c;s~*y_wAIOZ-d88VlIJ>z{83$JI+}+c`Qt$I6T*JZ*0wBS>pCj!8*Y@NW)@@dG8K$;VZgpmnu# z5j{I++n9WYl`c>VPv@fmyUQZ1BfEJTn7z+!WuCcQ(Pf9Qnpy9+H_XYG=t_)$psD@- zK>M!kbD3gZS6z5$*p|Tl_a5bwkn_<4cIM~5tCOkgw%OF@1eeo*#I@rOwIXnrk9_{t zGNt2%?;)_%tp@oY!~6oNzK7CYiLSbgCL1J~YO3aNTu?40DvjyJF2kDv6(c(LTLs|& zS7|bqmDqrIRnBI=Lm?soN=f zY1b?B^ZB)O)uM6oNYws*I$UpYl__NL}7nY@5>jtHLNE94br#Duv*=t{?bkGybTq zf!4PEn(F~hP%!wFkzJY?LTl2=K)78tqnvsSD}xa0RH;=hWwms!*3#&ospux@u-QZ= zCb!c>w)TQ~=`pFP{`lZtBjWk*y$$;hMV{Rss6r%AwtHTeUfcLtn@%(Q_bB&CDhjZT zrWhCAN4%WSMD7N+4=p`i+}DHXsrmJ%$3p%s@UCoj?l<&$*KmjyZ-dkVb#y*M6&JBQ zr!@Q)qC!*vE?cER`BZN;LU8n)yFb+Iph$F?vD^t@pYnY@U*5Q{cC-0-I}!xO&^lxE z`62r~4J7-{OH*53Q6k--EJoiw&-m#DvCMdF-To5VN%^LoA*-{8hKKS}^Z8QasY2)S zjauD@#eqMR&=|OMeAg}VMSUJ}8c9FBTU-q6^?#F+%?9xaiVK{P?Umf-|e%&@B zoBOg@lELJ?3;%NY^(^dZpwC?3Hhn6&#`_RJr_mPKoNP9r<3*{Ptd3d=qx%0EPOpSW zp0j%U!N*B@>k6(RT?{Q~u8r6hUH#$4<%*f2pRhQBkgt;wW7qflW0l#s2G95ss74Ic zuh~{VVXkGYjv?ge|G>Y*3o#^nhcolaqB6g2cJG&@aKQ`rg>mvCwMiqUF#TGncw;Lr zn#iSrF8kd)8bHJ{EjLhS;(O!9oav(@-H0gnJ-a|)5-hEL3Zs!R-b}Yv$SX5n^R&}> zDrEg9M1U;3lJSs(DD9gIpbA}K+OmIo=OH^QsQSBN)lkNouo}kbwMxUP;_s>-%i3(& z`AZwhUOwYb4a1B=zVB@WF=ZB2d*)9*+B9@h z`E+!W;7yNyp59h>%d;DOiEpL3zHq02E=XH?^o{vSHL=#ez%yzeMIc=871a@;s zF;kseZbDmzmQkOsva~6&o&Nsq#x$GN>74ag1CEj4M%3@;yzy7cMM-F0{wuUc`TSoJ zxz!aS@0pkK7p=x{8x7uf$23Xa0ZJSz`~&v!^Ay_{Y0en(Oq0rWm=yu>Y*RZOuU>}w z5j3c>BsfB)-?b{ll-&A_u_1KPIFDQpP_&)jb$^@{XR=aaOAQqF=u(5m4_~G_WfG-5 ze-m-dX@5R`ju+11M#OMp7Jqvc|M4pBqALcpHd3bRu0aX$d4%{%bwvIvG&yF$5gb^= z{0NnZ<5J-spQz>2UE2~NY%2&`r_`r|W0mgInP(;-9UUj6c5ioto_3uMj7BmMm2fl{ zu&Lzv8*MvU{9w^G-dcy!df`%2v5o6~$chfmYHx9sKI0wwr|1BtzI`@?@lT(+tn$xf zRY)F`UaJiU-mzaB)$TdBS(5q-9#d9&D*Ez|Dj`w2Kr$Vg7j1z$BQ!kBzcWba)DeilCMG-Ix8fIJX; z>*>`1^0Ee63#2*P(yz@MESU}FAZ^iQ(SEDNYeTJ=XK`(IeMWFA_L|i7C|eujM@kE! zURI>f1c9pnWDEaZ^qi|;0O%~uP>G+Qh@A-)OfULgSB+YF%Y&qty^I=Vn#%FQw|@Ly zv5h>Thl;PQuZ!&9edJs7213bpLCEMIJ74`u!@iur>swA{2kXhqWHlPUejS_u)r zvP}1reoSxp(7Jv(x|%N!yX3n~(K)q5fH0kYWNDq%_z_(6Y$G#1SvZ+B#zD=X~F_Jn7n8V`Wdodr$_)Q5JSqo zeyptwm}QFO8qfhB?yqCJ9MP)md}!m`I$7>h8!GY^x{@EhM}ny&RCtsGfyD7OGsR*r z;rO>qQGrC@5+W^a0sqZPUHzTdpF*@+Y!`dz_5!mqS<^&hu5i~@tgLyV<&U41%hlH` zdV-t11dd0~M#%f+pYR#6Qq2k6*26#3#bD$M1ckntcB*IG4-&a2Zt==9c0*&y-K4&O z33foC`OH#&*%OTAWxuKxS|ml^BmPs(_?qhv;oxYi#*LgM@Gk8#M6kireJscvst{KL z?*=w?YXR$%gem5&)6i(&8InhrMT{aX3RR?eE)~=QK}0d%BFwpV1Bvlfd`IND}VEXpCI%MNIV7iAl4ufF=8Ino9TeaIu?_?P(cq%HW1NbZRBQh09 z?l86B<?VGbOo;b zXAmkYX;qb5@3K2X!?ol z-q8$0%c>zsyKT-m&o39F?8GNRJe-&=#Q&pdpe`ZcEW0 z+9(#p%|Tg?3Ll1O+gMs+Lt!T>{UQ`C%r$mr%~1|5Idyw`YAY<+vM)!?mfe#K_R~xg zQpBU~$4%879p+4~BlOQobfJVq9#Je-<4#tbj$8{jkU)r1{_>^$DIA~bgx)i-z5HrLxRO)a&mm{@ zGh6~@@UFkL4+AU-rVKJrdx&;4AavIK4zqq&&@wTy16RcnGO!=pMb`Nkv9P~?tKa4h z{q9fCtS}=p&|IaVLWLT#NQnLSgki90Qe;GmcBfw0vbbh_!&WlyNux_;Wg?xW)O}U% z8r&<7^1Ijr5l(7JnTg3yUas234M+NuG=)O75?)6B`4TIFl)S1|JYn1>B8G+ds8!Lk zT73wDT7DBJA#oc8)ZRy7+P1Ft#d?#BrXKQGCU1cG*sQ7xkT~Er`_g;rUz*lM7}dhH zqgL!5LTgL#20}u$RN4N>FyMUyB;d0zXh<9=t>Rlw*+3mna%$VOUU>{T?Plw_nR1N2*HN6U zV9+&F(-5mzeXJv?K7BE<8twDRY|JPvq8}jM#8kyRR$G|SwJwSshkWvzH?uLeRx1YVD;5~zoC-S)I;TPRKH;U(r);|ego*F|9>|i=O*efWH(lOhx%Oa^ z{kCp%Qa37p%uC_{RzBZmK94IFkhu>~e2Sj&x2~W#T5j?kEMOUgewq-HT42`r_3UBR zaE%4g?we!QNb01teS|*1MumKf8~WPAwo@gz;#Jq2P^(v`VW7_gtZc|&o#rYuoULja zxcPON+sI3q`@N=QufGe#4vh-Pt)|i>9^p`LtbzX52uEtq+hL~H#y-)MtlrJxJY{H43my6+DSXP)`=O-n()iaDmf(n{|M>w0Av1ft^b89}y zn{85`b`V1hEM*f+Y13DH_MP!5n~~)vlV|-plYIh0mzFD^b&`IcuiJJI%c85wIWwN^ zN}2xwlS-&*(O;00(&JQmjVFfU7!2JqY&Nv9O`{nioufCIr<6lusHpWBiGPlwz`$cs zoh}6ZN`O_Cg3lnPRbb*Z#4R(AubTKmh@%?+okmXN6rnG#i{+)y>RF}_Y*CWadUGOW zuyO1dz|0$@4iev1F$|Z~$Eq$Y#C?0gnCnp6NHsl1HPshKDCwZxs^=_)n2CPCktQ4nG$zK|>6dQ)NB=!$yiGp>m>rNiea- z{rMM?FqObr7rj63yMU*0NlnF&T&gR<`4(ZjBKUCu6}XthOilWC9B}KBze*}RPepk! z%_q8AYtGR$ zSY7MwKD@3`)6@aYv9>ag-pc40I*{eG*}0}A(R{l4z$_RDD4pvpszq}b9yQkd=I*(S z*@W@-eAM0mfK%@4#;oMoIt-v=sj2#J=ixUySm%u$|2(l-6bn}n77S_rOS9v0#N^%w zf7c6Mqx8Oq-Lqo(px)B1b~_s;plbIv2+Xpx55i}Q^Svv)7kWXBa}S34$`2x3mIcU2 zQ2In*kURmbxn*D(ltUm8n+KIo5|0GE0^==uwL@EyH4j3gHLzfkl$xD*ANrs7`f5lu z1`-AnGL!_p+wT`{cJ@Hpw?Q!EmoOIby~i6eccW>(Bkq}m%Zc+TkmE8(O!HYRB>KB? z70S8zMRrT>xze1!;`z*6Q2XrkZ?!A?J$hf#6}oSqB9!g!-?kaQk6Zi=ya)o}P)S0U zr0$$oD$cfuQ}1&t{q-HELi|ms6Ru;?S&Cttz77~UpIvzUmHN*JMQ@Rj_P61rVo=Aq@L{MzBT(gn2+A@cjp= z+dzSwZ~QImI%w}cdgA-i_KFV~vOZLZ^-|sAqWw)Mmj8SJncYfpDV(EM%IdSWL`XJ7k6WP5N0`FL?x8*%3 zOvj8JNYDSzrA#`M-oC)X`}CmC#BkN5)@?C4M98vz-Y|U@fL*n=;d_09FhG@i??d*D zNBPwqeVHt_I|$cZaqdKs^YuE6$31os=+p5-SJH*hWh%z>d|9Pu`$W-4j||OH0P}yG zj9+bVu;9l4F|~p;@ckLI@{P_8#327~LT`-PJ4P< zy@zCOJUE_XqkP(<5_NW#8|b}sqk=lAI?7P7gX%k3O~e7y6`>3~&%W-X1a;BwLm$#& z1T?3u)?6XF7#I=xQZ{f?$g#L0uXBzAQ-R;eYVssv$o5E~=I-mz8gW!wbe&WcOuw8} zmx37J*GOu97b6XGkm5-Eh6j?ewo`owQ~l0*ZLa=(NIY0`7-v4CcBI9{>F8P6aSihn zAu_~->b!IkG#-fj^*JD%dHFq4GM;&X80ys0SolBI{$9BpYdZsEAsl2}X!gG|6-`l?S5GEMPEcX+Z>l!41S?ddt7T z(m}(e$3u*cj`HEIH_0U{e=l#fL}$!BS9m$}2h@F-lm~iCTvmi$9~=J&YtO0&PSQp& zyNvxA_U~DTLfo`H9!MO5DS+vKX#Q)abC@3JqHd~BR!_f6as=M}#lm4Wmf3NnKk^Vs zmfM>fIreM1IVkf?CNqQ3%HKgm_zV43i{+#SQP9*zmIp)9dX>5TW+ns?;3x%CD%y*H zW>*4%2xbXmq(hPIz8B#Mq;S6CXjqqx5v_-4EfjkkIsc^FS%UZ8-4PIbT@kiCLf{k)wYv)?pJ{+z zV>1*ZO8mMqg1504u1)07>I@ zxmY5g27y+$-KW^;i`Cp>z52UU7gCYn210Q~i1{E9MD+oNIlJqi#L4{8IIF>rMg%{u z5pBH=5aXS{oJ$h>I0xaAqBg<^I%pHwy7t?I_u_I+lFVVbUpl6Cu)(y8qo4#L*@A>7 z4q_0Eok6xpJou11NpZ=8iy|t>@a*N2r(KbU<)lh@8_fz$@RvL z8_W@qy1ld0=d}A@2%VO`9i(CDO3n^w|MbQ+;f`d z*6OAO!RH*-YLFNrkqP1i$^`EZ3E`ZCW-f%l>rEzaD8#0?S(MCy&m8zBrwB zCm{%__qi?OZ$C+NVdA{94Igb@`nnA_z5M-~wjAYc2MAyE=vsN?z1jfLjdS<0U3gyK za#XGmg3aCdI7yG8{YC=?Rr{T~d~A!R%C_mFE^={3s*j`~qsR=1XA=JD41H@dE`)zw z7Bet%YC$WhPH%DlC0a2TOizy;@=jM9={c!a1VMv-z@KNsNz1_7Rh(^l#sA|4RZwXL z=?>`N%vWMf6w#|tjx{q??>imt@{NVV*yq$3ha>LpS#DMC+BJ|{PT0!Kr*1ml=XCRT zj`?1qgeZrB*7L345gaJ%k#;Rn{3+uif64)|d1yD*^hO)TXj_p+$F4QJ5@1aU(%Gkg zzt{0*(cx?Pg?hoeIJ#IJCX1B@yH~M3qb1F(3@jm{x&DkvyBOe879ETN&Y)c%p|L(8n!W}0*!NRSt6ggaTu`%?&{0OyF~N? zQ6K!}l+U$d5tt(EbX$4OQbn2aj@PiMBygPn#mNp_Z4j@o`c)b#cY?%{p_uvX#qZ|y zN>?l%9hza5ocLISzPnnCmi#L5qZHY!K2Ys2L3ZBt&0hd^G+4Le8;KHHB30Uocq6&J z3W8XcY6Z;~CUAPS3OY&HzRYrTOga%w0r#o4HPz%Bh}N%uEZb}di|rd{k5 z2mD=gNMKeT{Z`cu4b({a4!{C=nAt&6roeXlR{%&3ApPrgU!kuH@zr5~Oi$PbxgsAv zYz0P0n0eRl^U=@Bp3c@|(2$c^n1sd_?H!~Xm`#Ozx5a@#M(S49i^!AP3I8GuDdr3M zioZLGkdI)3PjIh~J)iFbX^aqxXESjiOvFZmZXC2D45U$Xw<17@O^6!Pyh(^# zDK^4wncC%0*tm&UcR^tYAYq@J3FA8;{RPdrma-(FY$!1pLw|)EfZQ7rknS{WINe^v zJMmL;Hl$aJ;sRca_AQOq*U6qXjaXg_GL;)>cPh{q%K(AB_2VCg?)F&7-1_76;tzo| zD>UWZwZM3jyd}8osi)XyIxPT$P;wy~eERdzl=07pyPR0gzJ^-`za z@FSH&)oq4UtKe+<%RACZj6ls%r5oQRX*{ZMOsgdtXWu?9Jg3s$lHFNboX4bb#=kO# zDa(@VV!tO;Ns*6pzUwyIgm-k;u(RC`Xn|XRDUg2Lg-~1!Fo`W?x9HM%?92c7Tq(fR z#+@!$GBdI$e{03Iysc#7|Dq90IGQ+0D> zL4Fc;PZLKjbm^`VFNxv$OvlE=CR;5l6WbX!xp|_1G93*u@;lGFF@wSu5rUaxz?Pbj zemj~om~f`swP!mx;~V*A9>BH=?TSJ!+73Jyf8W_e_GWgfw&ZG9ucDL!!(wrJ6ZL5~ zFTuaswmEMOYgB>WLL~zw4;xiyAB{~ZGcm@|fn(fji!b*G(db8uf>P=Wm``>578lO> z92U)-7DN7KQ^LYwWHvRdXE(-u{UDYp3}#%c?&E23;@;2J?PZm4ydY)$cmxIus;I^D za;1Y6K+$jR^rj}N%G5es0Hq}Ehb@P4=o+sLwTvm>UufmiKzni67eh2(^AJb^rSXiA zy|uo=svJRc=lZ>5I+WaCyW6GnDRqCy3~wcM!9T_%q>u^wBx=%hXOZ3A(#r+6eXAsK z@JF}}RlHDhlwVJ<%TEQLT0LOYqUI&- znMqiuwMVU!k^f{P1zYaP$kiaN#s49C32**^#se*q3Gb~Z3EA39UO%1Oj2ONU<4R9s z>a%%Qk0p6Nua=TNth-cKu(*mejdgae@LkQ5I}ESNuX*E}MwaNln0T3K3G|V)2;Ztj}xgkYHaHf{=Km>@xrGLr#z?p*bP! zhikMOU##+{8;jrqye`^Ght_p$zRDvJ5&4E9^!ktcW(<$u#|0~YTP zq;_`a&(kVWFBV^sYvCk=+kyDiS}jq&zjqk%jkBSxSNa z5^RPcLaCuzd9=}XTA)Ot&~ha9)q#D(FF>7{wJrX!yvjePuxH^V>okyPlvPo?A%mUm z%!ul&ye&;_^;By5EL+u)3`f36M9`7YV9FGoh;2`l>{iNfI+jhP3NlcEu>^3h<5il-f^rks0KozIMZ(oe@Q0J- z;#_2tHKmLG_PbcWuec(J6*XBZCT#tx zi0x`!Z%I6$QWXpZjtO9FiiA4Y@dM@+Qy?0%7)zr1M&*gt67Z8 zIm^7uA-z%0iUA}3!NP5K4#8ymQ%q!*z?SPw7Us980Wy-AeQoqQCy4M5&cwSex2pVX z>AtU`2qWmryY!gxx^tDq{}Z;3*aND?voxTx(+)-nT(##4ysLKWs=&kv^XJ?N%$uA5 z@gw6JFMZ2HcwEtvpZ19dD6w}A%6$3I0mV#y&l93bR2IF&oONWo#cEUp zA4akH@03g)W2L>~<9ngw%iRx6h6p&b_hX8_^};9=Xb{-X{6eeT+<{oFSoXci(564k z1#(&`F<=7<-iXNTXv6d-4I#_=iEL$s^Ddo0nl8X=`!#1;7E)v9fgaLkugSm0YZJ)x zPP^JG%!2lw&Wq%`_-FHw^F5%V#a|y!BZBkqP&Ih($C840OZFDbA^*(ZNH6o^B*w+qA-w}x zVKcSTPuFw{B}V88US|g!(biHcs&Vbs6L&kaw`>~7rG45N`*UTUKkyq)~09@p%ob9^aRI4s4i+iis?wX%IJxbrM}V_75Z@HvVQ}AYk5Q7ippbRmx@nn^pg+DxdKvpM?x;#+~V5Q zyaO@X86V}rAJ-a>^Ti`ySO-%kvoG_X#=+J6A7xBJmOaHoUJ(< z76%XPD^)xa9)cF|$azxXAX%F)N$@IS!(y8bgh>+Q6b3(>KSU}T1~sfZv}O3ssT8V4 zv;RnZNKZ8#IJbfi_b19Jt8pdbQ zeao-pwnOp4_W8m(S}K`Q7>|?_9}L6VipY8vpf_OVCr)){gKm5wAwOtlm@D0by9kXF zfAID@lIzRnmFRY0EcodY4XR*4PxZl5ldw69JAuBVaq+MvozOgtjgTq^J*$*nc)!J1 zVttU}LB7ZbCvBCbD8~Z1frMO?&FVD7FQ+D}YDx!~yo6cxZ8Y7QUpUJ% zPe<$n;8oGfJ1-`t?~{1DG$t)4Vl!tE?bhw42*u^m3-26wMsw36fietRi%cEa9lnyL zqLjSlJ54ub4vRlzs(Bq7s~e^@N0!7X8?|bNBedi~DX!RSqs5$yy{xKcbaU0izKQ0( z7Yqii)O%W=%Y8$ys&nKnS2-M6)1>V(KG*2J59oENb|Q2cgfb(8`F|)o%cwfLWlQ7k z1lK@thv4pR!5xAJXX9?c-Q5Z9?(XieaVJ=C2-=&k?>&8P-!WQ#GV+VC-c?nz=6n{$ z=v-orgdmzwn5Z$-<4)tEqSr2FAQjx$z-KmnXT3I42=EBE!6xLfLS{&KbdvxfRl1+=7J)kqd^Rj7b z49u1JLQrA2CTj|1e9fT^rMx?&vaTAjEjRTCBoJ>Pd-d^&%?#2R{2hxgBa7;-MViwz zAqdx}%z(g}W)={2}aMsL)_{bYHa2=~t82TGQb z8{lWSw^@|pJE{=QHQWmc7P zRPXijU%G@rbfHL?xB8=>mbiYImqoD0(KxWaPrdFmbmwe#I4+oE!jb(y*^VZnjgrau zgDSt#9w(3zB%NSbmWI7ru=^|BGBu9lmbjVG^YH2^nr2O6R36Kd)_H!##BbgMTL@|RES-ye}KoAfa*SR??MvdMfn2!EK;z61FpwLbiatbQ2zZ#QIbUp zMTG#=xDA_dq_ql>DthQEbcMm=FqjB()h8kr^#Ft{#oNdQv381l<0=(+*=jEg{+&a` zThU|~X4TG-%wJ2akP*$iglJYoF19f50mRorETz1q`?A)zP}y4H|djE!Bm)LR6pmw%9!3U*(uf~ z&VVTalnnyBCkzo)*Ew#aLE3WqbQ))e8PysdlKm9VzM}u;OyImEctNXFfjFU4b+8NJz9(Oiy{RK;&)e zjn5XMz7$y2NmlcQz5-GaZq*3(k+E$`lxYgc_)pG_K^%Q$90z*%{v4X?cr1Zp4x-uh2b^mRCO znHFz2PL6AsVT@^+dHb5^ARTr$t9{Lki0!aHKUV0A<^a&Ie0z~>;d?4`qWCC9*K0Jh zLx!T)4CInv+v1Fl=xTR?Brk^XGF@#k)han(=qEHimqGJ;x{3m~I3x@DWyIQ7L6AB4 zH*ytKmeV)DictubT@b^nh#=Zo*p;CHHeN`4)aQ?lQ?qf`xsBa?Pqh{3cfzOle%uK; zrPFRdd|JO+i?atm1T1fXq6S(m+b$D)M)IJH+bXwvNC^{bwGC|XHmfU%u9HFCTb=a- z=*iTvAg0Wma_*01(ifjo_UfA_yZ)JqgN|TKz|ylglZW!%yGHku+Oed5jZKTg(l3yN zs_vrT9@$BBwRPi6RGH)a)x0~K*XKnb{pJs0yU#B^9L?4{?d%Bi%^aGRiB&-(yULuD zDo`tQ(tUH;4*QZvlWp@$fU5ex-vG`5Lc=VNp(-13M1GW3Vq^HBVEBUMYBU*(?Bcc% zOaX#C(`83%=7oMiw2dm&lac%(U#;{T#*Tm0dicTV)!hV3X#q8}xN}f@$3_!QZ%3!3 zalS7Vhj*Ut(KP%f497+!3~rF#T_$51Lz;q8SsPxUl0w;w#3h&#F~+Ye`kS5FQ^7D^ zX6h_t7VRJsQ7bzoyp%Q{MLHaCJmx-9&i&|thha+?aqVL+_aFvD>2|ry@!mM zFwn)!kzWG@MhP#;J1dBXN?8XFMq~wJ>j`ymXrXmGHudj1qtXcWO{We!6rNi6Qcy0+ z-8N}0Ml)Ru_^gcurZ!16su-OulsZ@|NFfLj4_iyU&aUsHd2)=0Y*Y6CC^d7K+!D2r zQlU&N4;B1yPC{$hhGxRG4H!5NULi++9E8G$Xs1UOHXiqC1NffZ0f-LWS>1Vw<#&)t%EAcC)ib9cdE33IDC{vgOT$UFe8m@2>9Ue?5Q zP2$0pds@54Ip6+d^2+Nif3-KpwnZPD)c){x2NKvCJk6zG>w)AzUJS-Fx8*iNPs>;N z4XWgyvRiMmzOIE{aqc$H+|VgiSHwVAoYjZXZ5pUy-(u9lms)zfYOjYoH6TN&j) zCkc6-_1guaWSN!ErGkTJS-~ zSb8A<~=_6fNbR#U3T*rz`!|j^{Kn zHZerGnS0K>cozCg=8>(2Q-`WlKhRMVg{G zGwwnw;c0Pe%5=&$Ov5LgbuG|LTlcFW{de!5xAiwN;KqBY;3l;V?0P9yFRRFci?fJN zE+bUuGaC+=qS9e_I}ex?ayl{~L^xqS#Q`84)#@rjBp71=9ht|F=e1tq2Qljk0RB@!`+ z5>tb@a@v{_0t@~N60XP|7NbLvfo-YCBfK%co0~tCr|CSYWzO=HMYO7`1AnI&r3{+L zQ|;NVsOOL9EdiTdD09sRDmb*6Cy53>{TwlA%;STZqvr2|+9+j^tv$Hnp*xBW1A{;( zxvvRf{}|WVg>D}AVo<9ihZxe}M)*KN*H^A^{xe>Cvgs8l{5UH4V;)W~ zh!JR8^?iROfXdmpigsPtX6OKV$n~VN2ZQmgcZHc4U=1zvlTjm8{}{BYTsGdVRJgC% zcnZr^+oaS60?kG1Hj5zv_U2G<*l2W5%WF7T(jDD`1MQOb*`5IaOloP9Z+uU37e zLu#EZj+SJNs7?!L)OPY6AScf2P16JI0fz1HS`vryBAVbB^?06-&p-t>!12_3YDPw!PE54d$GmIbpI7yr9etNAD=px|~{B^Mm z7>?PJymJp5Y4>8xE=^u6tvtBF@WJu#(R;}_-y?ZldA}P{ zzj-m&lc=@3OHY7q@X^#mQDnf3+kO?!0eAd}yF}(!7ebDJb!Yw3rg%-L5Rb{`z8J zNMNcf%4fxRtEZNy!DFo;^n}FfBcZkYNq(M0F$VdI8)xa~yD&MPUvHV44%l8_0H4h# z&^&FmbV+~~T8b;8lKqNnCk-~h=!Y-_y|?C(wYo-GWW95}o3)cr(`7_Xk+`ur#@$&E z?%!~%KINFDGyjX@JHj#Fu~fVEZgXALL>Jg+`R@dP^?M?|we!=;DE!T(Q37;POe`ga z(>}x69)$%I?QyT^vL)`vGT9BecALyPdkGV8#TAqWdcm)?54&;Z_AN&+{O!{f9_$f+ zQIquL>I)+!j&hTG{y2jpG9;iaxBHqw_>9 z@fkOhn}QRgo4TdnkO(v1hd_TUN+ zrFOeH6JglqK`OY|Fy}&WN}y0cwatZmI2Qc9@%ETaHy8m#JNI&5HeoP%lCTaVw^;2* z*N-b1F;nzKyW(Cm+7y*+8J5pwE^@Hj8`GDULXxPbH&WWXgl8TmZC%)GhS>U*`p%c& zxHQAOvu*$khj;l~8P58slbLV#QGC_Uo|_v_rHbA%1RvfyCm+RK)U?>Hzms;1cTH|DRbQ1IMb@*CksoC{FhrCAESsFtf_*xfDVyr zdD1^|-T!H}N)GhPMkp@(YVw8O(}jhIh5_rOJS-EcADJ@B({e4BH{JHetIy7xk7b8~wEykkPac!k*{N^2fgzK!Q#R9jnQ@VAT%{~{VFud`>uKc2sa{WU zqbAp7&E-vbF*Jb@CWpOS6M|XY>Zs6PBriAow2|{@2NkF>E*Do+NaQwB@zoZ#`-DRx zX)oJK_(XNv$u3oOWf(2Gt*MR23P0Bq?Ik)sr5__2UlfN$Qw=Tn=4TcRKDA)nu??>` zkw6ukNHQkg?0EjZzVs zpoQy)B_M*Ru8ct$BL98gX(1sy2^S-MGd_%IlEol1%%nA56PEEMaaHeqX85~cdyvPm z>|Fooim~Njx&;CEFn+U1TLvp;kmM7y1SK#)-nz1_6Nok7IDUfr%8(b-BS07DqFv5` zK1zElsHcKAZ-_;JduY9`FGJSAp4gAG9>o1ZV;Rt3>yrK~uQ3+!YYuWKp9d#}>GO=Z z&N}dE#_*YQlbmi*gSfiZQ5_0f6bxLKi>vok2t7AUhfKJ?mjOjbcn=m;eq3fI#;LJf zk72z>e1l83WiF{|;79z;Jtmq%`DgvsXwl{z(8eF$zyR9217!8tAoO|M0djWmJW&b$ zl}775?azMbIQm`r6K;YJWTO@(K%DXSOAtlj4k}cS7RYp(lb(#wzs)}cc_S6ey_NfL zx*x^w-a&p%#T!3ZKA~Y09tW$v555H_oaT;^cS@z{_G(dvQ%5`jJgj2JD7rJ0fWY5T zMcZvbJNiMlDpQXm-mTRhgY`_0qMk^wstR#hfZp>6EkU zneP5NfY$P=%VgQmpsU#%{&^d;hnzSB`9#0pOoP1Q-WB!0B}aXx>rSnsyNVr!Adc$} z1s3+qix-?Hm`8NUyYEjgRa zrfO_zEzKsrdR*LSdFwj@nBO0sb@`4aj|U4u-}kmFvlQq*c+lMS``FE@HMv^NzX{@v z!a_cR6I-u5ux|M)f2JM_+>do6uFZdU)B%)CdoSFI16^>wW0z?eJ-XiDzsF0r(!Lt& ze+SjN;k{i5nHRiD`w5PHhaWWa#cH#DEV1q?FPi8(cy;EhA!C=wId47UFoak<2F%RS zbO_0ppOIO}A7e(7r3n&L#=o2ya-`pz5rTVY%M(S*J>b!Oc{87OiD2xl3eZQ96Jy&| z(Or)~yoaph6ebZg`RXjEMroMmCe>cwkDVd9LirS~3$*vqdwF!B<55N7j6q@Uqi`PI zv1!EuTn&qZ9{&OwUks7kPG|RSp7?`0o%)WwNo2w(eO73hgUD|Nynj(+!V9h< zddi^zpu-Rip+(NY_`6R|JU$?N3TgcXF9NvAQOWVmiNO ze(X;%HdU>gYLf)j$;Ki)U4v_JU=l4ot1dN#_k@%8goUpAsIS|z*ASz%yc{r9b298E za|@(`0t}nTC@v13B$jj_Tggfn=-)U&;>co#aWuCC^fE~zz?BOl$w+l~|Ir9QCJJ0*ELox1hh!E;_gYxLAYj6UM@UO$=>oI)S zQpnqU+kTJ>1|3x>PxjQ2hAg)`pnydu7V-fkDqjt#SB!XrH~<9&b#6e>U`nVh=wHwX za3$jQNGR)9Pwuy;pjdEV*RFT-hReL6;4NbBPj6#xtm#rlUr>;LVY&BD^OnyfKWM*p z2%=O}Jq7*^$(=CgKh;XVQL|OKi#ZrB-}r!Mz`Ar`WN@;?yWOvvbAmjG4KPh)7LO$b z(R1#B%i}xtIK4%V6>&`{2YG#n9J7?KLEDkQrU(43Ba`w2D;wVZtQoP4D}-K!p6V2%$J z4G(^wm-&;kbgVsTb=ohJSo=p2RK#C;9ySYz@2EG-1wam@vR`^{Ho!WNMCx7 z>*YsG9|Oed)}B6X{V3|w_!nXpvM9Bxy9?1E`VxEWzT)O+?9e=J+d;d*%6 zR1lP4tHjrfRrrqdbm0}Cv;!C17A@iTwWp4)vVi9KF7s&Vsbk^w&jYs`Xj;dz)E~d= z0qx7Tt{(fRD|P0VJCL2-PHt9XyMX%t%3_80M2CVYWV)ZM-;*%#LCEPmAAH;FFgurC zC8$}*m*>xI*3IWEKTPI1UFy*#+T_}ULE8)3Cqv?B=Nt!7d9SKC;=8>E8+*Z|+Yp5B?Z$5fP0i7?wv+7?#Y^_1@%3d|cSjv} z{sd>K1ZtU%Y?B|#oU7MfCHzOtcLBcYL>ZMMtmBsNYw751sb3%x;x^16?PmRS2y~Fb z(v_4s*2aCftKg|-rwOcAAjETfd|RfHqRtc1iQ_ZnIgs`#%&5tH&@?s{i0`;(<@}Q( zDx^y%$UFjQjmJNcL*iZu7fc`-h#?PtVXo)z3X?FJ{uWTzpzN=Gbq9`hf_}hyhp)}^ zC1?D0LAFe$ff(y11Bz}1;@FZ_MTHozjnHb^&!8sAjva)#s-iB9`P1pK)w{{=6;@g} zmq)$xyQ+cZY}eVPt>!eo?pD<$dP`ttl~#VtLNW%%$vkTaBM?fTD2C7GqSkV$jfQhtZ_)uUNiL;Em4&YfEnwdrAFyCaD(olW0skOCSpJSt2d1T=Xn7cZ#vH2~t zY5_+ogmRj|>7DD#)d79};nfRw!2!pIlj@%o_*n90e3a2;Fg8M|ZT6F;;`KOCN{DGP zMDWE3d1|22@9~ymohuYfspC6}cfXYyy2S%1gJ0UqAPUzqj_D=TLkqECkNDY^z5^6n zqK-jdQ+oqNBLD!PWik6b)^RJ!%Jy3b0e2oC4IY-WWfe25*AQ-CfbI@$AY={W@5z`z zyUNwsyxI>@d(r?qbPG>VenMv$!iy`k&nBO10k%sDPHe!fQcNTkEr2pjf&1VScEU?V z{nXqx43xrdFb&j>?P{I4J99S3!&9B{F;0ge(SjQFBc~}tdV5h?+qjeT;mbV`?!Y?` ztT@K|%$TRTWO-zaN1L=ZLdR zhmoVR1?Toi=b$OpnJbWW+vV6(!|3FrxSt|IG%_S6dRj zP75k;-z;sa7dx5+DpcLax)u%~A&zq{gQ$*4zLL%$`p(3@vxqW2gF@L7?;{YNly7hl z{#TDvy6W1e?)(p)ADEp9zbKw+9AVhzk=?YXoVVXOx7>)nF9FWs=Cm)fQz|)6s@@zU z-OD(&@T;ZINBQ@p2FtUoN}2cTKvM^PAHn@Dh5z)%0KVp;tsJ~xqy?G__>`*|l>fnc zTZ6GPX#t^l%AeO(1g5oojh!{R{;jQFqJrQG8!*4-*1v+QFQgFUWx7hVfMK#>ym8u? z)pTMi394%9QYY2eo_L+6{*vG3d!8M5c(xEm5J z`jr(rBQ@1laIWrqTaQTNczX_RgLK?J`5RNR8PJ_4&6N2Emye*S?Rm^yj^MQ?6+)-M zPR5T+Qo5Y0xB~^%p7O#&SmI=4UUh)?QmCJ;bI6O(o&!-g#$R9}1DFcjhc266y z7ZJ&+g-52OQ9MbvWS#YBuK>p%13Hd&6t1_E#D-2^O0KIJimjb&b!m>T&f27+o{bx* z+aJ7>31DhO6CTT3QDC zVMR^#E7^G@r&K`c*Qo1n_;&Q@1SfdNvD3U> zkDkmHJ=f)q!dD&uUyGa1G4fo-brEciuK)5lGtT({xxZCL&()3F_*2bhz^|5huP7dO ziQqc|SDPl?f8C6-Z9@n(*d?Gk#`cC>FICze+N7*Ea!#tF3$5v0ypJ7L7`*km)FyLM zL%=2XoTtLQe77e%$=#C>S|4bh`yGJOVc5USOg@6tMQVu3X|`L_oM_Ls9bxdY`$5-` zxdAy$^dZ+|ygpRDf7n@*c;=aToCf)Ja4!SrK{HW-KL~%_Q4qR)pnmX~Lv=XNW5bqz zkw2new-l8iQjKh$nQ_i%usi4=LR_emfp?GVT{t46?4V~pfPAjyy_5d9D(l&yE{Xm& zG*N??;FU;F1Lp-r1Kde#{n;@(e4t=NK4%t$;JO=(p#N6uwD*O5JHFGrdKIj(zfKM_ z3=$H=)Jzo1VAL=7K4BaI_a_jZXrBA+66XfGH?s$udkN|g#5$KGS1Adr^RZjp_`&s1>4%re(z; zr|r$qYD$0w2WNzZYq3i0k%a?1V{t{WQV^8X0wqOR44g;^+nKcJHG`*HXl_74$=n~s zb)Lvvmy7QGaex=j_B|EU!Jg-y5vpe@%+8Tl#F7R;U&mnB$4(nB@w6j)%g9;3xZW7= zl;{TI8CT%LqA2kEvJERZbA-lccQD=20IvvoI(3COa#b+Jw7ROGE&6PofOdMdx|lDg z*T-A`1T>5g@`3C+j&`f)-5SiUo6nmMCjg$eP;_5SZpuk-0fK_|>;Ist{KEY4HTbl=KM{NV83*}nHgjrAfIv7JO1;aRdo!mP=pBnJj2^C$x0=E%rn@YXOasV z{R-YiWH8G*gy)Ql11BiqI^Xo!EKIb=zfd}Zb5zg59V3fI!^F?K;diCmES6~v=Yi!` zA`o!TbnbytF~n+08$lBLuxVj1*ri%;3#RFkvo0KntvYCC&SXQgkk16p^tmX{d^^lb zb(in_H$W#SpYfpRiSD5M8Abf3@lno9?0l0&86avHN$(5$n^;uSt_$?F3Ye1454MYOatD z{mINfAZIc{)=&-Bl}Qw6dkI`REROgj-}tvvma2|T+=sv#LF=3iLBIFV3}=CmU+v`B z;>N?D2J;B%MkqzVaJUZ+N@oUq18i+A*Z23PD1(-QZh)_YqEn_t4}PwCWuHUJ7pl58 zR5;$RJybZUmL9$E+v4(vLN4dMnDdO{g6;uEG)g&75MT?;eoj0boEPlaev|%R49XS~ zevs&~ZCt503>O^C#<-vgTdIU49_sC+a&ec(FibqN>qJ&Sjj5mdC0{>?2uq=}goo8O zo)7exl)4$R1{lWE5?Ayz5rMn910d3^B2fjW!e2)x!@nK}`z|3i9f;kNHx&4Vv=5Xn z^s3sef5IU8^}W5oKTX(Qlu|WnA~AnVmifo-H7;}n{*<+lUbre@pb6mG5hX>JOa;HJ zph@O{G1_v5tzOAd#iFv6;e?yy9G^i)?-~qut+n&TU!{51ge5nyD&cCJ?1#fkZ8XNS zG_4y(XIgBfHUa#GhLorRFFSLB)UubPI2gEvm-q6FjX-nTV&!d}g$F z1tMc4K0gBup;N+6I*PzQw2$Mh@Hx*z=r1iB=)F>INz}GW|0GjCA`8+_5q?^rz@}+V zSJKIH-H`t&ZVW}NQ{kH@LbR++y~wZ~$4I!?znbb(PCkI#6YX+vPP10$o#`NRg* z5<YB<)NG_YOLjJ0T>*`hk%dtXH%qFkwe8?nGQ&AW+Oa|E)`N zd)9?3_cZH?70bsuAB0`PD`0$QCHU)|p|hrZ=zQ^z$kY8?!*RL6_eqLh`~mF`Xlju% z(D2lg)Ekj2_=9w65%-#Y<9-IP0^JrlzMzhAx#?vIgpUBB)SRn5v);0ISz_GfZa#FA z8si9`7-aksr2l{leyEfc1W*b-N4|f1Zl#E7oArdT5`VWFOX(R(C{~P_^&oyv*r1x8}exX!0@7uVOZ; z(u(7xauY_NDb5;qdzpKiImL>f9dpxPffx6R(<-RfUGn?I7rV_<3}e3T0m6hqr{7C$NOpitb?wdIb#zXzEmG~^G5=nT zV*D1VFpF+e%YTSl?b6OxaT|{cH}TcGe_e$^0v%$TOOoCWQSmXwX@SmPFU|O%NBLCn z(XeyhVt+oqgoE+K?Td3iibw0Dp{$QF&u;`L+)P6y2k?zCP2xOQ`a$roEF*-6-@K># zZOo?pi|M#+jWzLF-??dq6D*aygm3Cnb54p=(5V2G>VZw+yXV3&q2|F#&R-rdm5rx} zUjU;`p7C~Q#Cv|%f7_;z(4-Q%O?O-z73vp%{{gEnER^$9zz{UGreL#m%OULI`L)8< z3wFO9H1C%YwrW7Lt#+t4nzsFRI`A_k9Fs+kYgn<4r%%Q%d(62$`rrm%J-Ksja)x!* zAB_G0Vpn)C6{2YPa_S(@e4=!Cbx6#K!B&BOt-#j%wm2g&+hw0Nlw_f&BhVLP^(5;H z*9g+&*)!=40_(od3h~}4Jt~T>utwQQ9Nguz|MQDf?brvdYeEPNcGwuA{Sv{V;}?22 zoEr$M0>n#9YxjeFsO?Q`r9Ux#9XE9VzzWc1*&C*A1$`Yl)a4sKX1p>)`f$EXB^4TN z%Herl?qMB*ECGd^tgawkRNii~V{PN&7iZe8#HS8g)Mn}`Q|%=#xn7vptTDw%fxA*g z_J6=Dyjy>#JRosxbD)DYb^iD~w2v;06-RH?*;{h63Z+Jj`vKK&Ktn~Py;kKb8|;r0 zH@So9^GYZ0vo0t>d&q-M5ar1XBmmhqfqE2Ys8~UeelibsQ!AV{^HVUI3-nXD<4o;0 zOVCFDpS1v!Ii>ZjdncUC%Y}~Eu__o-PH20I2Ks2BFf`Sr%&URUIrg@?kg8yx5a6yBzujAvKOe!J- zSdlb5_Gj0wh!t{nDxlpjwXCnO|5l;GdWXSF#aob zni5&bUuPZPnrbDEX)#f%XeqL=ju3|zNxjCwltZfv5a4JIKwR&^5(#zc4cjM3N_TF8!rey_){Xse)X7m23se#h5T#@o6(v%ZSP z6;DU7Bgo0sj~-!s8`sXCwi18H60F17-{2s^a3f!aXBxyv=g-<>3tr`MiHKF`(~)Q@ zEw~+XqsV}>5$`fgW^25e>TxMDM1g0F02ORF{7qA$TjlR3$gKTVJNK+HZSKR!7j~hD zY|P#C5uGvT`C+32Q>;!^-?Zvuj(YBB@stXO@(7B&nEMTuT`G+{QI3qsKEG0CZJXT* zp!zj8*K`IABr|kTtw-flE$fYkcF_l=!xjp}g9PJm5ZZ=DVX=4fU(V0|(BnUdcecI2 zZ(_N-T0y3zViRiXhfhINe0i-Oyaz(B%U&K=CP3Qwarq&7s@D8hDE<4o6m~cEYfv+M zbJ*0}S-B|?Zmv)G{T|v(q5fMd9RvZ6f9*4dzN8ljfGcii_y&UB=5fAtfx6)zO2h<- zVPJuhe7oqA{;(@=)?tYD;&uuHcEhMRK%iSY9wV)x8?EAN;D2HQKqaCFB?4^f`7SHd z&3He^FZ}{VkstQX0R{hYh9Lsm6NrEAIxd!-hv6g_C5<~rbMCa#&UIXRxu=_1OH%_@ z9iIw?2Afb{SPMRmt8xy@+pFNrYZTXTQ2JWK0)fptBz6f=&!|`tc>um~-$&*8A;C>9>nCf({mU@7dC_(kKX8VIOC%3HVeZAC#sn5iwXYZ%BK1kwUkO7@ zw6CXPVeJrIoGiB~16W7{rP@h#-C*0_hU65obM+8nAxSrbtgEa#qT#tx>be@X5b z-X+=LLW(k^)6#TEe;j0}u*(b}DX4|VNI*dOl?`93?~u7LzWBY$uo8Q2Q9<0W5xoTz zCS2aea*}d;#j^#vT}6O4IbPSJ+WI!WE>50U(~Ee*geR{bsGxr~z=#Hq0mN;3*YPQY zL@NzE`WIa49|?O-5X?$9P$SLYHXp~vWy|{kraEvqN{ju2bh?LzThH_g(ur)Mxerqh zZ|4=4HDdP6fFLV#%pQ^(BNYC2`yqp!yKJCNfG;RWDj#oPH*x0)=!}v&0TJkEh#S?> zQ$fd33v?W_*`CxWB@HQ-`;P?Q-8=8zL7bskAvr$REQcYy$yM{5EW+I*0fxQ5^vhbO z|JJ5hGehal$oLi~4rdlUEno9|7H!scQ`r1*Xz6Kk;Yn8*RS=3XFZ0_fr+Bmq$rUlN zDAivbs?{dp>if&|w@-?yeJrB(_!8}QUQ}h-gHt_%hf00FSId=BxxR_^T4i|{hRV=m z9y{gFpdjH96yj>HvQzhqx1CP7I@9wE+j6(QZOchHcsW*V=x!pQy!t7+$LdsDD79w# zPBo#`4RD`~Y|A`QRFM>a^C=^D~3Nllco&w|(b_v2IP=Zcl@HU_!M zftW>~2M%X50l-l>T)fprTMQimw1xTzwb_%`9qfx2ijdLY-JjXlSYW1Hi4fL;v7NqK z)AHzHtE;zUmr^mxB&UwZcfa?%Mrk`D5=7{C8;^yCov$?U!v&fxz`l)SD3tY}Avk=G zP^`rO%0ipoP_FD?n$ z$-zda2;Ixoy@xKN-lx{FI&-47>@Hl01fs>k9(2gnl0Tw?lOM*$Ly&Tce@A=#k-?dy zV03^--WH3MmXF%p=E9i{-}(->o#ZUV6h|ogbxmObz{5)KF3v^f6oz z%mSO>AjY*(XGHbjz&6^P%YA~qbe2H-g{=RwUw9JP-gkY|sF(JEJ@G-MJ-TeKq5so# z+fA_1A?+jC=8l7NRiiZ}aPYvB5jVcdll^(7YWOc#-y${fKywS*-1*qi)5Ig}))z4) zw`AI*jxu~_(AzeS`z16W8RO)ho-EA(3Z`fm8&BjSv0t&_Hx>6jWdU!BnQuV5wHaew zS^u+K-T1iq+KEPuCA1A5KF@v;#k)5yv$SO^<5Aoxn}S_hkH&V=m1?#KCPlv+ynoX< zu4I=B{Lv@}GK`saFmX<<`gCo?O5>I4m*a@E`pYQqI-fSHT_8%(PQ%16LMJ>4>@R79p&dKIXBVZOs3Z)lTxbplPM_M~LroV;JDq#LoT$O~tGE~KD~B%6LVDj!K&ds~?$=ov)?|HAPXS@S_bk!jEPuK87(#`Jl? zit`XZ^>-Ybfqw1^Z8w>4{YtHz{#sXLj~tBsTmP$-p&3uNl??-WPcO9X*nm%f5c+!R zXe09w(@Q+Wi;Bt6@rJTH_8>s=-1V;gUrTfVTFF)hK&hPdpS#}h4!z|0?!;K1LH&Ob zw*Q$@2_dMuZ^Yo+#Bz(E^vATS5GMxQpB{TAC2u`~KhJ$O~M-9{q(%CEZxAg+AgwQsoGCsA>yYSzLma z8f!NsE)_w_-YSC&dmuCG{Rr(mZl7*mxfK`<-&LEnZf=>-Ww}8}nZ`ZJG`@W}mm5JO zcYP%Nk*%NYkkC=}6%ohzZl3r{lu#NwZ=^tS4po6Tn*J=Aai<^q5vinpSNJ z+bK?)Rq+V9_it(h^&c!|3YfyW>kie#f0;MDmbkR2_H69>y%u+3kNrT;O$#CT{dNEe zSxMu<5K~KQHC2L!5)gpkr)*!szW1P3b6Z3z@14z^vM0b28IchAQtI45$r2U7{_RrK zYK~oTq*hHLl#6AWKUO&9AjQLS9fP4&RN8p{tZa4!k43$*QHmicaUS$C$_hj2aqg<& zC`vL}ny7~L8Ra3VE1(VAMHTE4K$-!vGqIx55X~wW`!53F2YN-`A5p`pkisANI6H{N ztedfN%Z;Yd6kebwZ$BL=w^@*NYMA#{+rIg{&$JDIUP2r~S*l}ZgrJR6RPUalLf(Q~ zzjp5Ta3jUbGsZ{szUfrjNsKJ3Z62$SpknA`{!rKjYB2ifTbTij3CQ#+e)|9S9v* z5s9e;S#)}Wem4_=ly&2Z;<*Md`Wa>lPO=vC1soF=x7frAe`7WNC3a`8q^)WQIo`K2 zY}SZqH?N5^ETpv%eCddBSUjATDC~Zn!h9(sBk;|4vw4!$PqdnC+BDcJ$O_%FIc28n z(9D{Q$y~UPyRDC9#G8DBR_1C}c`(40Uh|Cl`BlihvL?}8$4ut%Eb7${e_8N-{&c_x z|H>bGM50x-x-?A0LIfWRr{F#dsyHg4NpMwUvS~7rKek1lZ5UTKl{~!gR(XvxPca`8 z%OLhppt!LFeVp8B(5{}uL{3m2?&C6a4Srt!(zs?zT!s&jvftvO_v~#h*MN>{)3DQYy%CeFA17KeMWph z2fi?SFdVn}XbR>N{AbG3Az+60%SzMHcXXiBQ(hk89FAudKG1C`{EfP{g32}J`vp`o z@NnPD;pYC#i(|eBWn1zVl>$lGpr#Zt7-OgdGVQ5U4F`n`;2$yz0rw(3)GkZYdwL@c zWUeanMe1%YdSy7lvYE03I~;23!I|1GiZZ*grA9RoH#qj4N?f$$y;O1Ug$)C0r-W|*tK31?=ev# zECjGgBxJSm5PY*K*T&2_eu&j`?jEqVG^}%`&RVgv?Nch~b=A)?(|;FBx+ME@EPc@F z-@~H2owChrexOMMH57^O{#exhtxL7@|LdrH6cjSJOOxutf|;QezrrxA!~6*Gp@7F5 zGwoSTqG@s#30Z}&D2+`WCTyyb?-9R*=sA=;1_3x3=-!4jNMTflgw|^^yx6~jho_-+ zCIe+(?}@HYbj?LfwK|Oo5xPs*amN4-N-VoiB`jm4L%QNj2v`@2Gg^dgw(G_6j^12ag#>WO*#)M|7h1cn0%Ku( z+X+u{>pgo7u7&fwq^Q!k50qR5xKOXb+QGg+6V|uK&C(IfA6YD)3z`KL!WGrfOH3G+ z)BN?%9BtdNus9C~FZ=?~w8z(Frv4f$fxy6ZuHthTKl@_=!@@8*y#9pFKT4lRRb-zL zNCBs|C&I^M{7u>U9>4@gbI4rjX;kOIQzpY|yv@zN#u!}cpAXDMq4>0(nubx4uWYJa zHzA%xicL^aNT<^Ptn_CUWM(ay5$V>*Y&fMvo(s)H{y(!{uG z+orGxziVq7g=rBJc-}2K3B3?CUrcRHyv?Bd4%~Pi)DC_!Z(I{c^}rpBzSzd!XR-7g z{!T*P9_L0Mxfg5oKy3WgF~Sm2W2{XWY_9}F3rBybaf+JEVkeTIZTjyo!Yx}B$|KhS12Bm=q`8j`}M z@3T+&`;VM1mKfG;NPJZi9kXOH5)TZP8;`bKo(|azul6=_G7gTw9ZmeVFGy%w>D`?vSD(8WpC4Kn zDa`Vt%NIf${A>wgOOhry@}ZS0nww%rIdB{1I4WV6AV3pcZOS`Y<2KOJxR2CWc8;Wn zkd-wc4a+|-OGM!^o#_?Js36z4Q2iq1S79Z;wl}_*)!_-M>?-TCp9io`Xjrr1W2&jM zH~A;|hq2xR$+_s`wROX{mt^=6-(d841I(G3C!z@`ywd~ zlp25dAzKnZ{yfu#JD*Xs>s9wjYK5Mm6E(ZTkILivm766S%dCy*Q6;~vVFK{b*f_?* z-i`f6&cDcdd2p1*f(H~hsH^CAv?U4;26ooQ;nCMrf3kcYNp=)S>aL*p2JrnZD_N?T zdm7PRLaQP60`O4gB6rMWb<6{LV5b{b<+_@a8?_oUo|HHo^TGLjC6^D7?0ys*#U(ls zwNiSXh{~d?5f};-(BX9@I0Pr2y1sO64iUFzA=9B-;(ahF?X3Pc0NVfc=xBOEp+(e5 z_l4f>O$9nM;Rx=Mp@heUUy*bDy*VHIdMWDc_7XUDrvxWH{T|)pes44vljh{v4O7%{dR+U)yNJlv$OWca@2!ElGeJ z22R*kwOgL?(^{9!cak0jXbMy>-a`$1zr$2+%925cu<(k=DP=Zc*_Q?5jk*i@vn(zO z{K|l1;5QkE4en_XzMfclOITUIK%#mv2Jmrv9?v9Q_->+;iWy-LY_$ zo3E>X96il80+tj2%YDe>V-}U5kTO$seQaqK!Iv#u7AGv*b#kdZoEV~e262IwS-xY-|v}*`iA9Uv$w4R0gtVa+#9m$i_Cb1gir$GNH38zTGj@H~e#wSox zLcJ@3zL~)j(4U6&9agP;;8VC0H#0!owwS#7;YV-)3w&pE2O*eL86p^| zDPBQC2o>zNvv6$irqVC=1;>e{w;TL>21-C^SH9^4%g z+$|8?-9vD92@*WGySux)ySpW4uwi{nc+Z;smp2;xbUSKY=;1O0^>&vbYijqhBDA&)GvjnY|RpHM8=%KO20L1HUQA~b`B}zx!a~sK{XZ!*kM0p7I!^J0rI7ap zy9?v7$nSAe-p|u94Mvd*D|R3S1@33hK2}UGSDhCjaB0hO@|VrBAHG&@h|MwuriKoad-loU52bFdXhY&oJuZEF%uD^` z&WDPr-LP#R&&(QM0AkNpv?bGAo# z{*vXgs9+ZiOU;Y7YI^KPe8Oa zlK}vSWoy1*et|3?vDh&Ad*a`IYF3h`Q*!pqu`7zfu8ACA`z% zbq__x0PO9b_eSyb+sRGVU$2{%jW-*_wvvMXH@5j7)3g8Y#`@1^rZWy@aDvQp)}@AV zYg1(#_7_%CN)JuKmVdr~Ce`)ctqNhQ=yR#gxaFQPK16yz9!xpr#4MsY${B6v@@IRG zMJ7qceO)4Y8Ky&+;*BPx+@mkjpL2FL#|&IpsLMp9MHmSKgD0_ZItwR*#D(NrlE7z>wnKfGDOP??Azd-|H=?iP z<@|O~sIGaou7TUxDoC#eC9eFF0(k{dWZv{o3sGC&&+FIa@|z8sm>+t)HVLjpZq-Uu zmN*`>%rPg+Bx+&VeySJdtzFdyqH$rC+vj)n%1Kfz7od-}K(c!D+Z4v6|4QmgViQow zXR;Bsc)&!1Edn|HmUrfEL#h7YwZVVLSZDPex?&=%LGR(L0d_?6Y29t369n~fWH5|; zC4y+QVi9IwW3L3YCM@2eJUlYR)BC!7Br|seyhNA)X2r$5%bwTo&$5$kqbepLd6sjO zNK(=jQ_D9l9i1`(PJ5r|t>F2%{q~S677s_F7QH60yYN1I#bw7W@#9~D2!x!TSwcJ5 z_!e(Z)u=}e^>}6JVK0zVX$Ss4YbX$(^g2nq1}9l9S_Z}XTfw~P=3Valf>C?dgJ9^b ze+9&C$*fF%%sA0G`1a1V-+$+0-|SKe^4#7n8b@2dJ52ZgaW|S`0{D3ti%a}KVIa9u z!TFDg1ISvL0dW!Sq}1PqWX!nWkoUR($Jzo2WNi#pe=)E|X#{|!8>bzA|KP>E%NJXO zH@WVU9LISi1qGj{qSFcm&Md|N>R~%4l3L0C#cjxd>;oQ*Uk#rCqzQe{=WY8kTN7H4P?&&hbb!3WeM#`~8&!YVj`Y1WgA@hy3M8^jg`^9T@FL}jV_0CT1)uca zthNikl`_id30H9V>G14XWF=H^s4k>%nVK?PR6FIRzAxZ+w(7H4nDAjg#c2YJmM~9_ zm+iiYVPHWjE1@2Rk&MZrCV2jJr%cU|R&Y=l*KT*XfZTWh#ixFyRCE}Bk^VuDJhIh~ z?yNbu=Yy|(-d4lno+rGCs9l9zh@Ml0t2;zxyDAc}izxWL@&NuXJ;FSXV23>&0<`-n{bn=Rwgd!<*Xk~TzwR!ID8M&N&7ixwBJE=MoTd` zUez>^XWm!l#ZX0Gtc1oDAaOl(7a8?>mm@ZwP{N8-8U{#}>T7lDnNoTRJ6NcL`+8JV z^6GZ(I@O(OeC&3*)ciT0!W7vdUzGo#Ay{8cJ^ip=YQqS_CxP7UI_(SU+u&sDz7KY` zL~T^atwo2GeW=m>pL$>`yRYkGi`fuqx=1`T5_uW;W_?} zS*t`;6FB6~{+Rqld8F!(u1^JI_$>zD~3+reHoqf_9=iz#(3SSQJbGu(- zZ7pZSAeXLV3Dhq*Lx^L^<8uOC zLL#(JqwQ=9LrXtTDwY*Y+fbxpwK9Kkinq(nPRHaU>K29I#e&}14>p`1g-=b#TVu@V zTZGx4⪻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%0DD zxs!*Byg@2`$jT!Xm&Z|PStAFk3%%O=dpHlD45K~PYw7R^_1`n0n@QHKxv_`Q@7+f+ z^HDuTHq?~{36U_yzJ%rhN^DyerxhVIHk2=R=A@o`&a!|5m)X__{Ggx0Pg2eihY9PD?GpQH#X%m?i$%y$T{8$4iKB^OM)m* z_;X7ocs?=S{;&RoQl9xcXFZc;xY-oACb#a#(`Fqce`zr3GNM)|HylUV=_>Jb+2F9> z=nwpy@iomRehXg{d?6<~%}UCQ=GBY|Yd-eWfV^q#!(RF2W0lB2W4vHT%NfH}?)h?-v5IK7OCQE2cqTYi)+ZEw;_+AmpAPH_Te(Ck4JC%Mi0=v- ztT4@8Ol2(jA`z4O3JpK|7;NP3!(xZqKMdMzKfV&(HSX#FXSF-_s44hcTQPqT93zK4 zf|IO&8+)E=zF(SEwL`RYPApR6Cr#IfN~vt$q_L#nx` z1prj`t-W6~$hGD1#0Nb9-lusc04`J%+>fQWN0uB}n=X(V1GEfcJ*$AoNdh_oz=x)^ zoHvi8d%r*J_oB;J2?`~RK?sy`9FpMxGmjoKfE7>3Gie#_9yOO7V?*BtxR4a<*Nyojh> z*%uU)u^v5Xz;R@%&4F*n<=taz;v9C9_NqwS?heU}NO=LjbA7@X&XzaCRnvD=$7vO4aNsGb$2nJqem1s3%I4fzWKL+t_<7Z)ZeQpz^Efc$n`H z@)AyW92#*Nw~&kO&%~Dw(*YRE1~1M7Fc4{0l_pEJxAa(V?Fy$O-9u%a!P!RgV4{Z~ zkCuI6!1bz7_-2_p!eGBLa6>7|r&V$(QGr%EGk;Yz^(d0XriCxXZGa zy&BmCCj$r;Mr0TG&dEXFX+F_&Dp&7}3B&RcX_m=A8QGB{LCMR1wN<*!GZ%SOYgY5Bk${f-^1UouKd0T?8mKY_opVpkLt1>V0<$naX1V3NbH07TQg zym1>&QZOO32r%t6alPHnj1`xZOAdK_h>n*4dmnM@0)K0kKAc1!@-h3p1eIxmNFJoRe>6Wf!?kH5(-o?kr^{369vrN3ACAyU z?W|cno>Dvpz1LAostixdv# zx2hfY+~h(0(vdMtDGjVkxNow-=v-@qei=3xQ7Lz-ES5Y%i3;$=Od(&z5_oV~He}iY z(~9GLPO=7fKV?7k$30@p1b=FSRGN;ZC&Em#C)V~Alz0u*GuES|l4qta=Sn%fsIV6Y zsmUVG&gF9mG?lj=CcF;DET49I^En1TlTUN{V^spwdq+QqE# zZiVIWd=qqJp8NE3kCNFqYbH&)RxSP~j9Q=4qHf5i?;IziSIN2Gxq`%1t@1mHDP#_> zJk`w=yHm3X^60C^q;2esq$ZGII|kslICT7Ksb}MHzh1ARiV^6(10c3kMOm)CQy?t% zgOi%r1W2on0>qp;0EAnr5Her+Tk`H%7yoA2=Vtj4^=1!T7=1NXd)h zPt{V16jplDhJFWh=qvzImErBozqcLWhOD;&Kvj+p2j-~Lilvz6k8!Lfv@A;QA>Glv zR_nIA`S^fPcfAO<`Rpg*?kcQ*(uwL=;a2hlE=mmqb0C(0=@?o|_0yGr4N@nZN?o%H zYik8dz5N+5cTe_)&5e4nH}40}z-v1Sk3w(qS$Djqp~#U1ehkV|++CQL4a;|Y&T^(1 ziiUh+9*GIs!sc*L%>`(QViEBxY^8kLRVn)O@~tdskl_6|T);lVjgXtW@Mznyl!n?)tK&0D$f+PwT z#;S<7>Z3em?)_3J$Vn7lsqodRMyTJItKm$XK)DpA&O*0)Rjm0f0c#Rzfhj5H$?$LAmFn--&jwvG|24~~Bf zgfWTL&rl_k*bE8J5aRr`5WMKc*R-TT)3+QKaW)QEMj{vU2h{plX22Utoe0%ss!C4@WRrhjMI`aR}v>3JI%!V zHN$mv8yJljITbCcO2tt+Wsory&I3eUM$q4PGL5{Et!i3u_?eTfL3_R1c@v_^Xxl*mqt8!M7 z_%K|dRAAqyp9M~IC`g~Mir72<$KM>~>ngty*YnqebI{Tl;dL{3^~!BCcn4SIt4ku~ zMY}=Ao)tCL+iVk><7i9)08$Yu5N&$exdWg9qF8E?J&F01}%5iK)`;QJ*IE+rJodE3d_ zKhBmB`t>o84~^A0v6pwC3;`a2xxek_1C^&L$es)jJ+)vX?I;1OA{phJb z87JYUD5zpnF0YhW7Ozdf;VQk28G8x+=Ary>z zOB!U|ALb=^`pX?u*fy)(qj-a_m{-OfmI9g%5}GgR(fC0mRni0so-w|2TVzS;mjQuyU4Ecu z5~cc9?RD-3NS#x(->;MQ0cctE2R~n`g7xpj-`9!s&qL7=9}3EpIc1Fqtk;u!o?=Api)muPq3pXHoE)01G zH1>sxA}w{;#*DJnAKFIKwpF*2vfu2sjydBm!1wz5UGM5cruhJ+WnTUt6~zDAL~$Zq z5}D)0BWj1kmncjP=vs>Yw?sXf6)6UmDJaiL8#RWb8F1_dFkxsj2iit0{X%0|A!3=IBR!x*h&&bE1r>|L=}wpZo;mO&T^S? ztM8aC&M3HzKqy$<5qsyVZrMh<&-CS_hq%FebZa8abtBpE``bhCtY}6S`k&U{5raYQ zw}aC*gDB=;@Dt2O`NK98->VJ8JlrEs1OFc8?MjUZ4{K?AbGV+ySF9~Bw>08@)!PQB zy%H6R{iZ3@9txCNbDjV);yW5?EOSNc_3$@;5#|Gcsw5;ix(amr)%5`XGw)wDFgWq! zSN}MQD`!wN=BsaAp@GCNiv!j5c`#SpX5p}~e=dU|6v(|ZKVT~Hin6d?Qj6G{4l%CV z=vgL2mp;((O6u1y0P&K%1%UlhW*RKpu@8Wa((YRW{o5!0D?Im6LNqsdN$&&tTi3q; z5Ku^BQ0VVO55Y{u`9FBRDXT+OMyV{1&<;UIvw?Gy3OX65tn?JWB7ngGr)++umnDdRvtQmTq z&P&pMnJ8qjV%?eCRolBGxUXa?^Wt7LNN!U60sb8P{iGkND+cijDNX)#S^qpvXAICx z@{c9dd8Z4Ym~-`ToBw@~sGBctz`^DG`+9>IdqQ*_9sC`QLY7}RmRxJ84M55!9{`Py z!}Z<*0CQN+?^}Je?Iwq-v;m{iavb0LhU^yY`e7ux{=mrZZ-+5bb^u-frwqwZMQqz# z(j=hDoZpO>ivJ)ol*_qI$BkOGoQXOWye2;Ng`T7J`O`k((I^a%qeeq)&qK^P%L& ziIige2A6%UJAj(d}bcq>?~BpBn*5 zd5ZUjL}>Hvq=&nEb*n5@7HWbpNJ1xeCe<-ESxlxsR*;M88leJDCOHr>%=v@L=t2a+O7fo%Dpt zPJgmx1dDp|R3d657v{?8oy{eU=Rw}{LrwxYPp72jJJ(ZGOTOI2fu1iJJTb56<0BZ( z0DqLafxylIUFSg#c&^Xi#yKTbJo)+i=<`c+l<`B;wrZ?s(Nraa%7c? zWm_;`&(VKbC2^t;d7xXSVRjhhc5^0zeYdX6V3XF}g2}92!Wz=OK`JG0=~e1VTNyonGZimy#6X-JF}xeS+vr6lX1a1;nL4Cs?vUq`C*Y0 zpDBtImW{^{P>{sqOhAW(Eu@tM{hQn|#<8*bVQb4>@FGjWZuL>Ld8+vPT(K2pMf9MT z;T)-5@gE(R00X@9SI^fque)C?>#jJV1eyhl|MWazTO^oajW-k0QyWIu6 z1TnT8W$9^swHuKQW~9OW1r$yBV+1>`<-fa9#7Bnr4GOL%c}XcM4z$G24Djs(6#O<> z>D3v&>w#AfdnEXX*MUas8^-@cikq=_ay21mB&Ej22~L{HsM2AE&43z%A_!=l_Dm(L zWYgo3O{_&SeOq)oXhUpa<+Nh?9nwYEyRXP}W)N_9;8=Zv!u0sQ`(q!~?srT?c9~d7 zt}=(L%TDKV_DswrSot?=X4{;MG#Vm%Q;gLO7uu&N&o2Bgx*IyIY`(^Gx%d=?vqjiu zRm2>4u;eF}A=AltW8t2m)%`_ziCy|egX`R2g~F_&f$cF5xO5&Kzzd;m8{9|nz* zFzXY$9!Y_(Q;g95=>$FZbHBgau(^ovy7rv_!P_tR?_|FlxWBUd`=;UYP}KWzcg*ub z>BGO&?wXaN)P1Gd5hYw!)y3^Rsf(#}+4O}@1>FKQuV;|3zyk{7qI^Cx`hAsUijEoD}ChZbPo(;h8nOJ zKbl;rk}8Fbn2p$ovg?;HS5puow0al}_spkc-fU;uwh>PSV_J~l-k2?^XWQ?w_~i|C zshVmfJ)pU%y>T_U6kR4;_D$XF)O|Uny>oNpDtU0@dQmD*n-dm@$avf!2%WxO}l9J zKz;u)pjx&7rls+y)Vf(roUFw6hJc?Ve0v(Vq(JeDc( zUW-l1Z2&7*xnKTwa*v;%CO&kbdBpGj^t4nB7+{P7eqEcI4;XzI zL-XM4fcI;#(n;x#@X!a&VPE@wPkZ#krw&}G9s{ocf{9rwiGfWVj<9eOV%WLuMAM(7 z9Y_aDmGeAS^tZ@omVI9ZX8AM{_kdyeVlT@Qd#2TX)a}PV5$)~=f-XPUzj#=MAv?bB zl65m|{5-oAp=$a>Ky1ceEg{7;TrG5anW>c5|D5?r_Hz}lVicwnqQyXDKgD+fw51y( zZ(_*lrdh+L_#9aYW=_v2DT$bum4#Rlr&T&S94=e2Ya?Q0B4S*n&fKjj6&|ZZ8}U^l zr@Hz17^z-!_j6evxiw{U_*X175jz0<_NjBIihm7?U2#CQsruMo>A5I0Ld2exD5A)WK%5U)Tw5h zU}pKUeV3OL)jfXxj2pS@4rB^k9h9#rK+t91HJMUQvYd^|ah*_|1qmLi{Iu|@Tj%h` zu~`^#Y3t-l(?>ZA62VgMH;z11y|VE5X%cyRf1-c7GzJ@yKA|)z6>C3VoJE8H_ob2> zzy0gz-eC-x>^p+cR+_F6B|j)z6zL-l&mo@o6E#+i(z@}{jnk>Eu52$xL_|X;XrYhY9BgLMGoq@?W+ZMjg@}m=H7By=mur*a$$oD%)GccPG?Cy7Z;jDJSV8_$GCHM zl%wrP2I8vB+A~bn$YTp$TO8JvD$BzTk@ct)@PRwD9T%4zHUp@~DcWgUJMvh;LQUWd z<9|dN#jTROgClWf@1cbjQUiImnh=~tKNh>g~t&kOkz|l(a8m1}y zu171I8sOb}jb9iSnU)-?(w7BL5#&cbBRe~5_kD(BP)Yv9>KR4f2EUL)LR*5uW(i+ zx2ZlB!rfo3o{P7{*>2jmR1vGJ-+d(%+cM#!BA8q}A3w`LUziO9+aB-(!4meu3^xW~LDX)HFE$QAXSAFVYXbOV3y*fHMK0>oB zqRV%Tw_!Hh?cjFNip{aq>z$Ttrmv&6mySL(f7qSaLd(YxXBQD~I6J&i5W^hL>#mlK zF@D-1%N(D+T;u#ePUkNj_u@)At)0nkU?J$SNK)a@t9eHeX|SqTA%f%@xBBrAZKY?w z4FAQE6|sty?l9sjL(fABGq3i}m&BvbNO>5)%$6`m2YqaHv!g<15j>tz@83{9?()>-62uRlkx&Ha+` zOlXRW=Sw4G1qx7m3h=}1kMmp*zDCc{SS|M~u9m-{y*@E<;KNm)ire3otLsi^B1$J1&WKZ$l9r=Z ziN1myfLtXf87`je)G|txI}xZ-HSyU+(sPuyFG{v^?N>t3e@~qdb`|`V69B4X+gCunqCrd@F4i6a)P((I&Ml|VL;O8S4`t_YvZ`;PeAa-oZOONeC> zD}yDg;hqVVod@HG(N=lFkC*#D0IraDuf4FayNbC= =@QaD?*x6{OD5*}u`i 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%0AVqV}okA>h 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�?_8)!;Wi4_{4K8rtEMC~#qV-qrp z7jNp5d0_UZm2-FomMCj1&8?`cwg_3Hwyemj_r`i;Gd$yoZK%&MevTp^TmgAtWTtY3%M z)McrDA(GJ~Nvde5Ei_buZCJGI-|om$NoGxkuH+fcxjjfNr?~7yr+lwzfpm-1VH@rYW1px+ZI@0OvMh?tghBP%fi9Ktz%ad?b z^!!ShE1RLBA|6f*ZU8p;8g~nCE+vcLx6|;jg$GaX7&>kGp)j$*k-4Ej`GI&UJ&B|_ zJDe-?9mpor=49P@IR)+JVL@NB{J;=U*Q`AmaDui(US7S!Tk3~4m(@adg|>g0_SsSR z&1~L+QVwCfx7!Z-MX0i z^}&PVLU*7To%MYiU$DO!BwIs%sc=@kIRi@ayA@OE236rLDg)+x-;v130qMdrN%DO< z3VR0ZKx8Ll2V^|8hT-I*CD@$o-P^6PHG7gDO#K41Q#oT?{`dr}|P_4pyq zW5>p2VUwa5^7B47;A24YWI2l57;Ni&PH}ELenYRl176^cFK&N@kMWwir17g37d3gQ zARi-^7ry+{wMw@)PS0te1LFt(MEN9nmoITIO@^4wVwE$EDyz zALNJ~!wud4q3kWg;(E6>PatS;2@>2xf`s7iuE9c(;O-ReZUG7l?iv!@-Q6u%VL=KA z?oMXczx(ZTdgkppGoSW_U3{pupY<%ce>ZlT?_gb6j0uy{3R%TW6rb6R(I$4l)kxc2 zIjHW9!z%>0v${-Oc49Ykjpmw?G+wN+B97{YYCpNjbFJudPOpcN+p@*Jygy`gh9@)J zf9F)5lG@|X4r?bH!W+($-;i+&-cN(=0nNw366v^Tt&-I%kFuUlHGwk;f-m7}%iDsz z*pbd(DCL{v4di!8u0_chl9B(~zn;_+v3a5`ZiE9>LF|2}U3STL!2q>XSA2+NtX z3?SL|3oooe0PWy7e$K7r1MO~_MRwZLXDtCg(91W=L0JFY%v;`l_a-&Ed`(u!slDoi zEf_WwS4}Qi^7myBt_ROZe-B0a84uhmb;V)7idi}_2z+acNO>B~#No+P><5gN;BURp zxl0viR>TE>Gue4K90iLvP{9^>4oOfLQyRp|>}}%i!;Ji1lf7Bnljf=MXLF3Fr-9rRS^l`|9SWzD)aBtJv2#^J;Dr|?T_6WTe)N?eO)d_K6TXG z0UH8;@NMkOQ1^JtFmzs(p}s+g3ZTjT*FzI^BW`NtF8o3#o4Tdg$|`s8=Vj*f6ol63 zoCrN4Ee!M-l*nkCN13%!K|RoP-;nCH{5eX$hcVMIB}*}p-|1SZ)v`o#xUM>5oSNi8 zUFPox!GI5KnFwtIGxC<20w>X_b$-3-1a&*dqlyC`aRTbZe-jMQu~P)S?c}`_$>EV| zewoIk-|IHuyO_O*nFbUjsgZ=Y5d^wT6&8@S@*+;}o~E+W)P(rHg*PYAdpr>DY}&kX zg~$L`(U{D`@BOQ+*QX)u14flH8rzbtV)9I?#z!leMy&T{Yoy%fpD?YT>@;+RqpURYa-m=d#xx%o`ET$s{~I_bZ5P z@%8b$C*lWr1pZo;Zs!TgDV;JDo4J(DmHJFOnfKy^SQq9O$$gkV)D1@i$E1GFP<;NP z5&2S=9ia*7;(I}?HLy(sSsMJdRmtvD^;M>9b6^ZMV;F}qOQ5urcM&|{pKOz(MEY>1 zJl!HNzqb_pD*$u@yI>qVWbl}D&(_tc{xkO9Q|t`bJml+oUFRz-hf-XAEM5Nh*2(`K zHb4+L@=3xu;raZ2Un9`Y5vrfL-he4^^qDQgqwcGH+xGMpar8C{=Jtb3PI(PGe0;~3 zMgfP=v5s-;pa%F7&j9a2S5fZi_elb#j>zneve%=vhL!qS`DT0HS^~)_m~(RO)oqdy z>?1;6Vx+r=MPnrvda2i!Bl`@7i5e*U>S*?4&@CPj>r+o?s~jj&r@!lAi@JAkuKP;Qf=(VZI2k-kR!I#CfHv4~qS;@zQgdAzdX z?RPtuA#U7*nKOb{+a3WwbebY%oV}}g00yXVtW~y*}Dk9}rB!7BMx9-$TM`0YRj!X&z ztt?-0@KYSBG+3aFu9nUN-4aR350?siu)jg;D|j@sA=1D+>{`;Zpq6vs9eL!HOwrc? zHHun{&=F7g)Sl=+G>19Y@E1JSVz?O#$H6PZ(N_xU)U&^-MdJ~_crGi01xwVb!U=4^ zWs_5dWnGHBh%PHcrC)jo8iaNp)oc&5H2iZw#7-htSI5WKUfVdZkRWu;{2e;Xdg9QbP%(m;RAL4o5 z({_nq<=qIq!43JsvKDQ?ixt>L5H~M=<7+>FzvB-AM3kHVgx4MQ>=-SnZeHsvPi?-Pk`a5pw9fqKvw zwdG(S(CPnbeCI=9LwJUwgIgu>B&GKjWHsO3lfK3!xy}2)5<+Mx*7Mmk<(dRS-AY6&vVgM#v)oIeH8EZ$ib9M z8@Tjuu}&m+qoIP7ZlCZXQcFlDu2Mg>@V|SH?-o{TX_}>x-b4n$Ss?Z^Cz{mSuUum1 zrsYV{?jz-@9k3Xq=*0HM3qL=#mo0I89}-JPcSv`uqiR9~s>&yef;-w_{w>jMYXP-G zdruX-fp<7clKZDZRCJFrH~7!IXM;P&Js`AO%JhG}yB0-TUp>oucm2X{jF!BU_^qoQXdq9y zz?lgF5)*LD1`!gr&iePG$`iFN9Bc=zpyfn~D^o#3+c&mIK_hvgHcNGaAnq^t1y#Oi zGq5mZAT+&n;`QFBDN#8(PzRO;2G7;_nx}=;8LPckJBn3$8NcJiI{I#SI<9-uMY$8W z*=cn9B&g#lFTdE7%P*8C9iY3Cdc)X4OV+H^oN(|&+8A>GiQZpPz*XUOgIy1WRd})u z?)$*BqYWeGkERr|E*fN~xuBY5>C@M4Ad9p+)ekdNQ)pS+6koKd z!QS~=R!d+L;R{~AmCiVKwL7A*_Fa&yy{L>QoX*kC zkyw%_3*!`m9%i(cs7{rUfoR-WWGo8~>gI9@MbP6tNyT>%m(Pgz*))G%h7%xYtMCr> zDU%6bk_33NoB#%3pkCl!(A{Hj1i$5Rd zz{mFgb%7xWY!8Ra)`(E=WlhJ;i`f|aAH5ahwgZQQ z-NPTQqtT)TMx?5hotLxRh(}Q9361evd;q;D>$Rb&K9k?N1II8;k8)#Z9}Ze z-rdz>+Fx=bTLmCJj-ImrD6k9JGVWu+fL6DCsadf1W(oa9|33ch=+5WI!ie~D z!`tB%*SbXdUta_n;)qBGwZMBI2`Qafl>}V>sZgqkmAYjrW#Z^h?+5V)_#*ZzRX828 z?rY2!m^)5K7vIh&KFwfWv^J}MFNLI1(Z=@HNg5xkBS3I^^;@sU7t(aReP5B(KYH$W zz>RutUG%se;MXMs_CynH^%A`A+YWege_{2Ce&_yQZ|eVkoBZ#;>dK3TizOMw@0s*b zCjDWR?iiclt7nDg*zgTVh~3>06htb9 z`P7G|aMjdNQ+H}luZKppt5|UYjac9J@>g-cl<+-6s-J(xjr|}XgXpQRuy~9{R(U$T zWOu0A*;2CWwW8Kgft=-JG2%_~VymClJPK{WhC!E_gizf_lR3O<$w=2I+Q(w3Snos%84t1xBA^YpRb`;8aY4PWD!Ev2wZbk1%$F4^S3bOq@90 zfl$q)2C?6cT>PO$`z<%>Lr|!inrN+PzQ?wjkYsK7xZLXm%yKxS((rc3ERE1`-KUy9 zvS9*z6Ej`;K2cZMR7?T1G<6Uicpt~qsBtff5JgzBw4s!}u4!&d^OnYL8QELw_f{Sw zh&a{Cr|#ptx!}!FYG7Z}z(C^Bn1rpdAa%^|eiUV*D?78_<($7I(0sVswpv;`u>!Kl zaa=0YC`HT$duoa-3$Qe;$s38=?~;CY*)Dfbhklg_U1j*bAUu%;mzvrA!&HLYpJkSQ za6z;7WrB!l#E`@+@mB(|Su@DMs6>vBc1h+z)}MLF9>zCwa@=UwUMy#R%HY^I&v@=4VtC_Tet0pq-zqWCK#>{G9nR;Z zhKj^UN2jcd#1*Q9`e&lwm!A~HB>j-DVYpS7ZW@^)PCaxgoi%|tnm$r{dW(QKo9g7)t!vk8F_Pn8mT0aQnrP%Z4r#>Qp(HqT| zGc;qe#ma)`_MMQvedjmw7VQ}R(dRP~yUAyaWc;i=eug{V(`8>C8&~jiVgfBMZPhnZ zpP_eoxaTbHVf4d*h$s)S4em?0jGYi8Xb{SpN$Tu6neW9wz?sg}cE5rAFSCjKIQR-Zm4BR)$;Fk0FXv94E+6n~TG5|RL9xAc=NsMrk| z9j*K*-|U0{lVQH-^#&i0dadtg0$z9LLi5QRG9z*&+r!q0T-9I;s{E#rvp42r#T0at9Kbv<#|37>f z|N51xdelYQk@Oc*ITp`yd2ExLJ6xXM;4@c|gx(_-a#!?cW+=ZlkHmbUGkV7xj&(0( zZCAq`_GejGOkWiv^i>sMT(XzqPoGzo})=)8BMSBJ+c`uO8L^#NTzD@DGJVyjt`n@0;|ue z_#C@dW!uz3-}=16nQ~f>GE$}e4`-dBK5FWPaJK!qk{63{bx7f%iIQ^1-&{~Z zs!4;HQ;aR;UJISZB7l?puS_oxVQ66<bSlQ@#v@I>udUZpvl`n7gm_XjeGOUH#Gg8`ELYXY$4eoCa;>K0TfUAek8=x4|OXdL=JcGEo1SbimMk zT$B%sgXtDR2cNxX(dt`>;mL1|hmyqp)tUZpqox5aFzZ?tn=#~k=ab(0=_QzD%yTW( ztqiOWkFDZWa<_?R;!`{x8Cx4M|NeQvwP?bqsN$LCC;65{Q~@}DsGo7tF@NCVbdCPc zzV3iRVG6LEg4ICLLz$+Ri5eTqgko`0n4H8Mj<It30-pM zjhA|xaKCD2wL%}QXjA|reVrX60=}tOV@9C8*;Q?|ffamnIlofG)7ew?L5GQ&1p+R1{`8$j2>~8v8C)RQfUrplq2M1lA--!bE)^z)@Nk=rLXCS`v-{fNnB#wGvkR69l4E?C0c8SR!bCA z8$0+)%1C%QwGVH4k|glY3lHX?4;u?JD-|V|bvc)_xNmZ)>U)=B4f=AE`cq33qIoon zFKb1{a2KOnkGOMiw!Voo*^vjyk_4Nt2B50HNlBWIpY8RaMYe~YMo&xjC=3j-h5ORe zw!OmlnP&e1-moN+Wq!*dFox&xny)qWilOpz6Ke#M1x{Y{3*L76g#tzLD?H@Pa__7Z z!k+=wNY*bf(Ldbim0zEaTBv7bQ+UUgJk6gYeC+3ms3P2a7nyU5CXn3(e+GELn_jG*_%(L3q@#8Sd8k%^zqOXWoDb-F0qo#G z0gR2q1q=gx%RRRM0F}pKn}R-j5|lc@ML&#nVF@8QURB_~eYOAf&0Iuy#Cj?4HN@?5 zSY0g1OlU5&mgTOhx2+e!amsidxYf&dY9ZsSlST+zU?@kQ7r$axu_B#)fE`2!i1@GiBKe2g5t zk}OX@eqt{-(f4M755k2m-D%(J*TT%JvM{(jccVxgNOcK_f}X;hh{=)Q8j4-TTPn20 zVr9xiD#y#`sqI7z!hLC3INL)Pl~A;#Zx_Gqcan}GG$)CqrwkPo6d>@deWpxBn~g*P z{hr8W3Ppj8N4vx8CE3tvQ;#VLSROIftD2J9p^%vEB9FLO%KiFXG-V_-_bMcQxLZ5a zGw;5Bp6}X5GhGAuyVZ0a(v_Zr+M}~GgOR>}IGL&-{G$x{ zFDf>re~$LMN&k+!b-*7(O{-|V7j>`cfIWk{)NDz zT8Dsy^KKU7)mB;FliC??38#a-r#${ck!!nh-3+$cb$iB}?w2}}8AWD(A+d*_JL}nx z>Y8iAuv{_AgKO+Zx1-tnIMLvZ8q3tns3_kJ)Pbi}ZU76s`hL1VWq$kuG2IHm^W7o3 zqZP6SIgy5?`Q{GRF@u+yVP5#DB+?OJr=on9L62qOSiXyZ{(JKvj-&E4<6m;lq)lkT zOGEtUhn|Aa3k*u5-r@wLDouOGIL*4^T)Fyi`;haV=kYn*v9G!u;~tw)-K->)39;3* zJGl4izF9&02)%!BjSZ3rXABBKSAF)Gxg~?WVj*V-keTG|DPH?W%{jc`NOrGr%)$?I zOMhp6{UPuRZ4qO;vlH>juBy$LIaevexG<-%$p-tMbZ(cD;2+LzyxXR);O1!?LaAJn zX94=qVQ}{SZTm_N*5mwu2%8jhWTgRjS=bwkjQ5}U2gD*(r%nwR&U|`V`SR2Mdqo-O zN^2N<>BwxYLhRH)lo_ADTE~!Zuw=n{SL1S?`e6j#t4(&#c@#2JzE;kwEGpBIEi14?8HKLg1U->8RdmkAYjgnZs;X|+c zik7r4q(YOITUJb|q}}9+WF%W+@&X94kXrCN1aW@b>+q2t#V zI~Imu5M7nRr3?kV!wrk#_hgK#L)=)O#b#gCy`*``Ju~-DtZSqK6Hy2Yd~FlgZQ|J4 z-_gC1*%Q2W5B_$XJaj;H7Fx7GFx#{{04rc+;8Ax8^R?mn3!u+Uj-(w|H7mU|AJVR3 z9DI5kejmXMoEBDqX-Wf_{25S*nR&KMydt#P);GXKZZWqD z=IY}B!=rKky>|F(enH@CCGfsCCZOv8W^Pe%*u;eA=JNnqw}*M2VOpNvp27yl|0I7X zK#s4w_T5)7umKy+*i^>c5Nf` zGzHcl0bW~{9jBpebnM+dqL^)UPs;dsM$P`2q3|)-VWYfIj5>j*)$) z=KuAAl8b7~h`?J>SK`Ur!GV++NOP64b_*{jcvmYq&BG{55e%isQq%h$>}o+$`uJM6 zedT>ZqXSQN+5pCJHoZW!?-aC(g?WVhL-VB72jxJr8V{UqgQsp%9 z2u9}`O-vNv8(0w|@4B-dBFgEPRxW<_iP4oH$@tr9?#x1zDR)?`$C~v^)6WC_5~OU6Et1SiagDZKR-Q`$Dn=) z%Bs5p%sO>J0AgQHt0 z!92U)Li@4n5kCxLx&(;2CM~n?=YU@ZFh6BWfNd=4>$YQ;5`iT*#6L8|XGH#IM5H95 zn45NAPEc|D0J~3N;wWt2JqfoMY(n z*eeyLgGJ?X@|)be1E*}_0o;V_#bjcKc+y+A;iQf&eH(mK`=5noZ0+LYzBS6}zo2;o zQ$5P9m}Kas`fO7)&g4(IU3b5{Nm95Cqq*tE(a7Iu&(*7~&|Bcd5?5bs8W>}oW zV)R=w;VFO29%?A{If}}&_13m6qli&m!H|&Zv}ys-{ZT)UKEbtAb_5}&Y&IZMFtJg~ zCl)P@bLJt|%+AehbB=_&z>o-y+-9&7lzo(TF1Hqi*1VVnp_n-;_d*Eyj?ZM8-=|L- z#1Ws2K6NPRU?pa(6P^abXj7XHTRjr~t|mM^uOV_cnfJLeho^OEJRN3^G!An>^lqiF zU+c9CL*3|(Novx^;VELL9zttW-c&#i>hybB@Nb8SnQeo+aNZ+(HVIvP^4s~84x=4# ztH!s1KtoUC>yJwBD7#aexXwcGm8-18<_)nW*E^6L3C2fod!O z6H9vIZ4gqmAMX1nKpS2H0_h)+2M&_GSo`Aj_hG%W8Q|b8FZCcGumdX3o8`B*gW4Rw z8x+bujTm~r9c+`Hdh0Xz*rU^f+0n#@SA#PZL)B5F79$)jHr$rYalDe^2(cW0{>*O> zU^9N7!Es!FQ0YRpK{{xRpW{DODfgcmIi&EJ2nR$nYSDk z*cL;_HDo(zpR`3|(mr7#diSx2AhlFEp?TM3B-xK2Llc$%V-kbQPAmx$4#&xx59nD` zwEav+y5hLX*h&XBRa*r}#??=!Hp%))^YR+`M#3ZFycZK`*>b|%%hYnV z`ciNkhcnzBQmrm`myIot8q?6;(JB3;c>TT9E*%H&pdvo*Kv&VAEk-Qy>`SNX38L1> zN0LEijOcSAxB9p+Z^{d5m5yg>hjruKMuK1NN8Jf7A@5M_qrsCu$fY(25Z=ZA{blf^ zc>&`xaZjN)j#9(z0MWgh0plT(BTjX*M*p47zUCxNiqvIX2kc8BUCM|~n{G;oU#U^Q zig|*3#R6~cybn;b3|ra9g}~`VF!x+vx--^F}Y|aCvWGc|^E}EKt4*AKuL8(fv*5 zyvT}WxRXroyytG#LK|=!tm|%?LsO&xx`)z(LUq(76N3#3B90~u4yHvIV*(7fv0Yyf z^`DN`pUc}>;=%NTED?-ZE@~H}fUn88%444j=We#QeQ@rE_U6$KnEW~&py`ia zq$${V(hTWcH(&H*|75$jB zo~N>1Ldj~JZ)Rd)u1u1){mWDhd&H5jGEx$cw6;5HODslhsn?6`8w)kkfsmPUq*&cP zyPRwu$zFxJ9a6AnRLy4bHkwKJnNl1#ebdKDW}qKh}i|teR^x+{OqccW}a7PtoXAtOW`JN(sx{r2yV zIsJ?87cPbg+c7Dajdzn@$*)l_ic<$?PQ?2nn`$WHDhsT6cuZtozavhup&Bs!jR^T5 zxqS9MB!n~AjD-$^xf-G$OPj4(gwgXLl@FD_@*X&8emU^A9qT$%;6*SWQA}cR$8uPC zU$nuRnt^n}1OicOBI?WPV#x#kDAc#&aC3kw*sRZG0i_*qXznf<7Tc4>;8s(;wIZc> z6>Z3aXujz*EsL5hk-HL1aY^NElU10bE**#S1(iYy=Z#%3E27>eR93LzlQ8lffIrV{ zzr*K2-sBeZ%%G=;@foI1SscvRYUqZ62|;5S{a;COs(E}aGS=%FwKmxgjG~Un>z}DN za04TooCvxr0JPPob}G5WY7GSFRCtKt>Zi8NR}ImFiKAztv-fVu|n62(39umlS7l0 zz~8X!v6!KZi;79+k-_X^q`KX*AYflEc}j{Gba4zQpcgkBRtiZN_||dCzTOS>xlY_` z$Lcz=uc2Q00P442KKHXZ*HA7G+^R^|PRSqBJQiOTq6MCqS4C1%*`~5upP|v-umpkC z=aQAzOag@ zv@w7Rxy|b`q`8IZm0rhTT_u5~ksX)Eb3U@~H`w8w&{^ca0KH-|g5VwNW?*vD*JOT_ zlY|^g2y+w!1u}Um8PT9DV+tc^t5q^t?a62tV~qEGh^x%QSd7zQ4&qes8WaGhFxkEMK~Kio)!1^(;XAV zHu1>swQOT1bX zjE3D`wUiKjJA-NO z_#(sM52l!#tjF933V8p-j1^Nud0y`N=ij(jsPYKeO;)%(ze0IFVI@u424Jh`&uXPN3L66tHpa-cC<$`pOP&H zNP}FQ-o2v$bQAL>P_FA}dbJopz1m{FvTv~uP||z?kL~nNd{i7XIGFdIWz;JX}>WD`8Ov)e!KF{onH#s&Pemy!SWJjh4%}?i)M6e@GzG4Bn%QBUx;NoAr|xS942ON zw;<8Jxu|XIl5~r3Q{cQCa8lUGgF8mAZYwDw_x)-hZ}qiKUE}SEaV>^e0`f9-tJKs6 z7-ahw>H4>S*bqe<5=zZPa5GLKQ2}_mXj%MOqYZs!Oz{-8SIrrGvFXHPU1URf3NH1!{cll6H!m{Mux@`lPR z)q*_~w2%V3OI8%LrXeTCs1QP5toF4~FrKh&kK}cgP%A}z+PHvp zQ<>gMMYw3rr2q59wRto9cxeaB1=gOm{c=W($HAx1BsfJLb-Ral#!QvLj01$c(!s8KelH#x z`?Wk8^^e&!74(oA<$#aREc#;Pi}SYZWIh_wOEdlHDGyV98S!8lTT30Un$T4>c@>Et z9Y{sLJ!I{Zhey5MmK}Hf7YXQrp}sTY8}*EcsG_ttIXqqQI5)m z%@lM+l@%qAfvU(g$6ol|rW9i=q=qaJP6|ukMo=z(P}O$WR$8aQ^RgJ910wAd8e&R3 z%2XEO9%WJHU*<5T46NMuX`P!vag^{mK11U_evVan)$!GVoI9csd~Gvc5r-B~*38FE z$`!#`m{G3fs0Nz)rFOWA(a4983qL295&?Hc$8SodR>l?|&Yu#uZ#uL=xi;32dC4!= zYq-GA2N~|K&U7G0Sc-$0z(KnLU-ToeUwec&GY@;>9#mRMI3~0?eH`IEAELE;#fkCK zY>EJ(4yIO+Kd*?+xOeQOav(e8pVtc@XY)JzngN>N8x%%(?!#BH1^h_pz^5j3gT;pCUOqNCU#tK-IurJphrUv z1Xq(r;Q@QXA~4xad(E1ayL~LFDOmX4QsKFI(w8-*JiS5-pjwz4ngcP^4a5)(+zcFh zTw9_!ag`4jDu3qxQ={_`6A_uwtGd9bp}dQpbd2{sP4OGSpRv0J{PmU;o6|Q(no}k`#d>WBYvo8xjLi50vku!V z)~Fwh9Y^QydF-{N3>gre9nnTo@$|+=LTuDi6y}s|3Qcc_u!;5d*yaQnwBJT17j?1+ zB?%oB{$bFGb}x&04DE=G9NVvjui^{&Ss0%RegI2szJJd;uf;uB3Tmf>Ox{M z>0h^N(=>)~Pf?~fT9PktWW1}ni2;ACOaP^`m}}~K>`^{|c0NvMU^V~jEkYkCAXSGF zT)Usk+!nf@-HG(HS+t;@ww<*Na8(!yDI*EwCvq}b77x&^B&s<(FMHw}MiYYJWD)}N zF&aWJ0RxYFOB`b*Lu*TvYT^r$?&Q)C(Qa7d43h%vJ;pxB`H$lG07$-HE;dj^nwsy% z9oAsIy)4T5XD3B7RTE467b`v2uJi0{feXauHEdkqLFjnGbD0egBD*@4e-{OzO(l*& z%rha*pH=qF{+4}LuKF()z~Tzy_z!19Q(A3JWW@@3qV4%V861`Bx8N87c4A$W>Ze4I z(FBkz+1u;vBHLV^#z|0?GhSm~J2(qXA&>v3nPDyJsiec$%c(_edYsS5nQrHO95O*B zUsuzYhL21OsPHfQTywu^$;R@TSsM$}k1l{gAQFN2O@@@O#nhUQb3&JtSJ^pje!{;_ z)F(@E8Fl2wv&QTLVk(0tVn^Ox@>V4UmooNf*J(hCVWH@V3JtVtUJv#`XksABUOPUNs}ThHOMX_Vp_c2 zGF_!c2=3gpbfVB z#;ZH5?$uGai$i^bdX#R9M*mELH$HZhE&$UYt{TnVHsAA?pPIxq27t-`4OH2^CGkk% zccdZPVvr2`7H${V_s}Hc6R-wy9e>!^w!>nV%MiM7Kj@Sq7LyeDsMXk_dC`R;JjGpf zm~{E`EewQTmG22MP{gK`0t?R!?#=&dh&}sx6}r_Cc{KqMQnx9XXB-Z1&*m{(13C{W z`tO(){%i@ZCVOTri}3InSfiAgKG{Kd=kCjV{!?nRLmk>cAbMkX!e2M&Tg*z^M^ntv z0oSa6D){HEE!nUbX-UZ;E|kl)$S#vRAW&O9Y3ldvxuoY%S`A~Y$t2}<_*J&EcK(FN zF#^1|ryxs(04{~~jcx$Gf#0M{j8EOKL9)kp8SW7RMu%vlWsPC2hC5T}#uN>${7^Zv zU48sg&I!^K-p*IM_0$7 zK~{=8PF!d7L?vcFR|xSR^VkjPt%fGtBsMV>-W6c;A(QHl}F29=k^zWztei3*C1_E{O#?Y4rTEzFwVL8oB&yYa$|n^smyiX zVE3iudQxd3rFkp4_PN2140>Po_@5$c74?)8>=|31dt^*-DE7chWTq=T%B#G7vq|=g zVk3iWM_4Y6e&tF&Rf5rlny);^c-1v|TF)>nM-Xq|VpihotWJaL*`;qXfpr z!|mV5vTF!@#YSZ+_acR$>qWy&91{t}HR>GOJe3-|d_}^vV5F<%x#16?d-rnaDi8bi z6PYHdm@QoRuIqE}M(^s1tQPqVG31o_ScXr~%;ghGE-(++ER`xfnz7J0|uzdC=vIJRoY+b!AlAUMz!Fz_W5KHx>z zK!WL>2~W!sDU*U(sFzjl`dS$8eGEi(OXus7xQB^vvt9Wk?~lH>W1vul4ySD4h)*+e zek9+StgJ`X8kjRmErcK4up8KjO0ANjF(u0}i+rj;UwUZAcPv_e7O;GBJk>oR6DOTo6Art*qaduUmHjBRW^8FA#HfemCy^3&QuLfoZUW*(yv(^`g;Ec$*sA zNZmD-N}dkUU=0{J9d2(FD{MptjKd(1`U2=pQm3Ai-d{j~Uwm_*kWmk2cpFJVw_0xL z6*gFYa4Xbkck*#;(uE%^aNGnc$dM79Kzzi9wH#(HI2=XP30LKsI@3iNn3=*@a~c*qHpPPaEKj{p_+ z1hSv8Vigo;j+6nB9N?=qVrBgN1H`M@7nP%&j7&EA;E%1(4Q6EWKAJlJLEo{Mfx3vV z4bmFU6$^78N?iJGvB6FbOm&A5;EfOh!^ zo;{7+h;dfqZ zS3pC1t#nIro?sE=cM3I?oH0f`ckzfDbE3E{3M`F=C9_LAQ9Wo%;Aj93j`N#dRfg`3u+m!m!B>iN?bn&e^iNCPt5zGA|EkmJN#v)SNOmdfF_Lzg0olCTkf0T zla|9MGxd$2NBGp^IcP|@V9!z%fVm@y+F(obk?lx(0$KPEnLj+cFg`HwxD(fn+u|ad z^_>6cSCORV#l$nwI%yZ1@cs+y>sUt?-uUUeoNAg?ZKascD~D3LwZYyOb$&4TH+ZZA zb_ElB{Eh7Z)7GbXHbPc5ka>Vn6r0!dSKHXG{!{aQLCjG#YQs|)*fJeviOqfbGBBhm z5F6f`&Hrwc6fvG=L$w%|T*uJ?=sxsvR;3X>^PgsRq>4|^nlzdxDrzgx*06&Bwx~RE z^P3+i#QcDv7N>{lomENJyy(KW3YQ|}MsUx-KMpa#isjVCfcSB%Mo_Mzp!g$fLUjRi zplaUB|5_H)MeZ9HoI4A%Z#1p;jPXZx69jw{NfEi%fN7Uiz!t1ej@;-);kg|@4&$LZ zNvi5vmX!GPzgiIm=&K!b$X@~as=J-v28v(q9l-6jcaTOZ_R!;^0QPDC0xLJMLq9Y+ z%3$|4=Jkh}=HaVYr`{HcxO143Y^xUg0PrGmybYbP1-!7i6cWwbQzk^F@^MBIu0c_ZMOLsX#=uUOIZRL(6cNJC?2c z^PRX4tdoPiQ+=xiaa25gVWAxoFY0eYnu#CulwZ@S1s}*ngovz*cNpm-yCk0*`_UdP zr+!Thw|s{%F=FCq&hIvwP<|A{PXCi{p}ZSa@c*LhtpnnIzARA)9tiI4?%rsS;10pP zarfZC-GUPw0)*f$!QDO3Xz<1wYg`|{nfKoA&d$z!_s@^~Rk!Nis#E8lGq9QuH(0Qs z^xd4!U}$C#*|CScZIk;C2W}>cqi&q{JuJnu3^fD(fu_8QP(xL05G{K;uJxN~Y1`(6 zp`XkTbDh{=_AkG6U!z9M2+pI-+Jm08vj+Trb~=yFTHAa~|INj4b9NaJDz*y(`Ryv~ zUUThtpn`L<#ZmgDW@8tna`6v7@hzZ)8Wpn5E!J|F#QqkYA6;pgrl4T56r?BBl*eOP zn#jn^k*Z-}PUYN{&gm?}}7JE~H6#!xN_c z_jxAYM5y1Bz(;aH&Li}s*Yn5|A#lP%JNbZrZ)MT8<+);WfTZwRbrIG0e9E1MF z8iKwNF$yFK=9Qh?Qi26Vya*%;TRI_*j+hL!LynnANP+MaFV`lop8w)e@cj#f7kwdq zEx-_nrlu0a5g?>4z-w{sI_9?+$ZI)%mX4$9qWZNdT$uM!RW3m^R~J|U)>G}ySr$L}PS zm~6ej{Y?8WA??{KWdn zXFvEexn8QLK|?4TO<5tiCo@S08I5|DhMgaZZTT|&9qI=rsK@55JBKn-NR4Qu%Q2E& z>uR}_>i8w*mwP5vuCl1XIcu5A%`aR@%~U;v*Hf^|ZToIfb&X6X6+Dg)H%evm2Gl9P zY)GK;5uZ?s@}r}hQv86WIc3111RqvQmuiaI*Psi!2m^-hpx<@e6*QDdpO7{xc4rfs_}|I|F9$1eoI zImxfR=|Kh<@`pfOir?hIrCc`gYP<&#gSq5d%dt^l<6C{uqaB;6H(aD>$tB`VM>#Xq zk}UBqMjSy=(rw5G?Qe?cB=G)JA2B4PfhgS7f!7tQFq&)i(Lodc+D13_Mr{s5Y|p<$ z!;7|}U`k~En-<5vtVHou;R~p2a9T_x|9*W_>iBZBN#Gb3&_gO1N)c>Qdp)Pf!3PX1 z*!hNVN&S;&NgU+%hEjk?G)i&_c|cKbYG|q}(XMd(a_6y7qq#6k_%dUNolZl|8>{ZQHb-5~nHLZm+FyO|b{UExTa?Fuxq+c_u z!(9W8d;FL2)4txcZ~8Tv01{lr+Vh)+Bj#({agD_qxUxIhHOQG1HFfFY9!d23|KO+p zPx49sW{$uziKb+yD-Z)h%bDMiQg%gF1}qTXPM^F0Si8?~8Swpm-1V3UOM>VV94f_}FGS znv6*AulaLkjUxyN_v%auJ6aj_`~}?~6PC{31eqt~hYNm)%Pkh3{w?&Y-Ie&L=<7tl zd(=o>aif~7Vb_ENbK~HAEEFadNh(x+}B{! z;9-kLlH9eGILBfqL}6R*>QS30aKL1;*vI7ukj*SlsUn$26iqPK*`f37;AP() zu(r@F)N6@8Pys--7l~0Nyy@eIH*16rb^P|M9}=);5U(xN}ZrI%B+!Jk>jd9B(PoAEKX%YDxBc>j|qPR0xSKV>>Ssxd^vK< zngZRXD(yEG4ro-X66ySBJ~w=I^6lDvKz@BA7JDX0Rf{W>{WpXUKU`RHoJ-wrP6g!6 z%UxYGBEbWIF46Hb^v`~RY6*FaKV1*Tsdw@(2E zCdr*D*!nqSQlrW38CY)=lwB}UI|T{WCC0QX)i(|Gqj7AeFNwC4lSt!U4+8c#_3x&L zKKrt>rI9PemWC11sY_ENrC!%ALLUilAgmHJ#xEd`ItBbvLhaxZiKgrZH5{Pqqb|37 zZ>dv2JXYCbEq=<;Bxx^i;o-U7;=IP}PBF!{z!b@u@(K|HMdKLXmJrpqjl#jD9xk`W zsW0hemm``*kfH{fATfnag6T@BjWjP2H0PlI`sn481+h&Kg&@~)bm`bZ+dd*b1}mH zjFtzNPvl~&|7Ao0n#+#xnZ})1ePhXSGrzxy|1vT5(5!BHJcuq>&hS;~gkWb=%9fIU z1%}K?<-Bf1yD>It4NZqFeUDZAIih47=9B^Gbu3s`?UFY`yx75>(PfZ!0~H_OJ0AP6m=`mGJzM**i1g+^)v@(z>Kq2Ap#-q&r!I=S>XLWqn$vyw@Ro_%sC&zWV zf~sWf*m0FuIip%nHM}U8eLn|`PKI}NX~|E;rcPi-LN82!ru6Y+u8YAv2Np6c zw==ur2R=&j_2J$MP~DqMGI9RK0PlYDHzyeXQK4O0VMnC)+}EA3HCA(plBpTj7gv@U zgH4AU8Q8z2e4*6S4{C(RK5KK>6siqGXYCc9k?!hlX8Nfc4!Ta+HC)=EN+8l>Ajyez z7GYfgD-z`A4A*|MGYZkX-I`#S2VGZ0hx;@7UfSa0#e@-032}N6xC7XgYMA!_>-$x{ z3r>79?wNcO0UWV1N^~~~$6(g{Z>XJb?c$+9!sB^B4%L7xMZKNreh=%eU4tWd-J$PZ zux`2P8mPR}7ve)C_Q$EKHZb}#kB<74O#AWl*R0L70q@&8j&`$ZadCq}s|!X`M7t%Y zU&Z~L-+4}Iq#@ltuE(Oq1cl%f7*jGw@u&zMU&N;j3nR2?*Lyk z<>ueje#5Ob=%1H#;bWzIXJSkdFdXLG0^{~IeG)+!&F>nIzwNhVzA>AfL=|J-+AYP^ zg0mT4zmUBdW%^?4r_~ChTc0Pnhqhb$rj+atHQX&0&0iNQtsKA@H}N!0_^7-)f)t{^ z_eHN}earV^+drC`X>)l+!u4Q^D|(laVj$Rt_mtTr_AjTC_DezCuv zep>iS1?#5oSNx`Go?^_Cp!wkjbD`M1(t9f#nlvnNztwdi0Am~(7(Xp3j+|_NK$#Tb zdgghk5MgAjh|u>zR)>F}dvvO^_G%0{8OTM6I1ohGijDXN&M$rVm)rTyUw<9!@SGUf zfB%FDXZ{f_>VJDUl}5YkV>wCGzA>${G+g74;QVWn2etZA3@$!L{h(vG6og7VDb0iGS??GJ&;Z@Q1KhDg@W3f}V(V48n#YxMo&<-=e3pyhll>Jl;zwTH}D zt;mw%|6>2)Hbv#8lMiuXxf46x0-Fgi4DYbk&-gVABE~qh@XsI~0E{e#dbrXskp{`clmkZHn z)~)XnQvp6Zd6@4>M+s=A9#biNPh;(K2?kTdfsdtD(3Dv^5_aj{&IT}4v<^>NReKg&y;bmNsGg?gyKVTsOvEZ zW-USZF5_&+efC1iFu$GWK{{zL5kbyHeka+l5KjknrM5|JTD<(=@0RdJfqri!uMUW! zm&-FQ8S1OC+ ziE74(%%f&zup;RuQ~v8_{>dKzy02fLa6aZ_veu7$ia;eL2lRayjB^$2|S z?yWHTej^Rxg8}E_3hvr2CeVg)W+KwRQS(5v80O8F`Jp}#J)BmXt3j&wH)PVW-n2ho z2%SuLv0^h!ENf@(zLj)0Bk)2aQQVOowa*%fbmm?{F^KXk)1$r);O{-s<{emUZ2G179_19JoFSk58t5oki{(QsgeTaF zq%A50GW27$cp#qeTOX*&f##)H7`o~lBbs`R@!IMbRW=j`>Puthf0EN=-df+99JF?b z-rLWYiB0#^dLIyA5bus9f$OP1(#Lt#()+5JC(_)Inmu$x5SJWho5yuI9pE2|RM2ie z<$u;i9>SO73(3Z_YWA)!8@F7mpDHf+uy<0^8^m_9xH4lsyex&2&n5F)Q6~UD@U|Rh z_{JgJAm}mcEK8TdiY1T6y_xwUPBQ}H{fS3rEEp}v9961c$+O1ETi?tB#K-U%j8*n) z8!6Mqz#d{_r~(L7HJllRVD^&Z%xTlU>niql#NgK{rOt(v}%BkVBCN%`t52cX5I@}0a6;jAxiU6<=K1Y z>eJVa0ni_L5=}!bxpK~#`5rCPV?;7iE&nS-U+ql*k%@9B*W7RA@!=zZ{vD|iC1ze% z>->_#TmHurLe1qbH8nqFMdThh6$gT9wrjH6I=}th}){zYr>U4bp;wG7GrM0YVE@NbySVc=^MKgzAXm#vwf`dl~ z%5FjC^RY&Y(3ZK2u|b-&+3xdL*u;I&jo>#-B&)`k7MVPMXUO2To723a#TQ?r%h2I# zP8mX?)7=C>PsOx2f-V*_)iXs_>dS^Xa3XPG*AvIYKEb}6V{yLo#UDcK(c&lYnd_}_ zaY?kyPyiw*NFZU~c%iADo%nRIa249%n1A?OsT?WuPe;8cHv!f}ajymG%|_e@!7Uo^ zx2W!_F|U_eVKi2v@?ALMk!X%FQl3E0``!?VJDGA7jv(j(zc0{rpD;n3YlR!XWTA*| zS7HduPNUerba78hIQeWc9iqYHzpdGF&BtG^eiGmNH^euS2|aS3ez&zoFp+9Nd(32) z&qlhd2thw;t%kyxys<~d2gxt11~<2}>ll6<2aDBRcC8Pfx>oM8oQ;bbf%)f>WakzJ zrZRJBfE}izy3;3@Th5dhZ(POKo&!_Jh>E3DOGY#zmGsv9G0HEE#Mgk^NO(5u5tZ|V zlYhcG!h>$zVE$cJ7om-&ankAHcI?r4@lK$ZZ_LrdTJ=mHsk(yOFDaJof17ZKL<{Q5`(^*9L z7IRXKXCYpRLJ{y2+Rq;3YIg;`)I`hq2(EUXc>LH9PTdi@bbyz~e|Os^e1CbZK6aLL zm#e8mh?OUFY;Lb2IrHJ#UU`t#5jXILR1LU3!;K*tH9U{<<#VbC&C&B&-Eiz0HBf9F zyf)fQl?Yj`c#{qE{KnD4iuT9{=~{aQ>KhFE-}jr3{tC;a*?UgQlo3s2e1iGGH9&#% zBll6ob5(SwwMv)b8j~LJZ{_C7Cwrx%O|Kszwx9W1Xkw`<&ygmuNvT6#B)+A2*NWUz z5|iVz>=HL?hKLHK)Z6a%F1gxeaP;o)c(Sg5curOkl8(<=Z<_hr>H?W)ipYv5s>+t1 zhU=QDP+uCNOU=l2lmUqXXJ9Y<3`nxFd^!;CA-#;W@5XVpUobc$9&Trw<}=TA$gw4s z+MV8Fdc?n~^FK*dm~aeMFb0_*+Fh9~4M_OXVEpgqi@p0KKo5HJ_ zI;?f=HK*TaVkP6N@3zLt2I1`Prcd|2B|FCK^j<8sqC(${jl5}6>Op#vk)v!Wj*Y|a z-gPuYC`G&hH>Uz^QJy%nWac}!`7G+x+ak-1RA-_3nfA#bA$@wWv{GGeg^7EpIY0~p z4fi|1>&Bu#!-;wZ{W4-DIdFbCB!9fg*!GP6$@Ze8||srk>FGACI<6F<=~8tx7JQk1o3qlMK9we+l$SL z>sZJUw-@5!?}l)b(B6(#RqqlXlyX^Z#1_CFqiw=H<3kTChk|dcWfI+Ea$I^z9hn94 zm+8D4yJ8lwdFm_R`D zT_o=?G)KQ~wzOnkcyZ@Td^awK$=5jM-D&cvt8Xg?@obJoH!JiT%UeX0HZ=%rfG>hU z+hsqfv;KJibw**lpf2a6zLA0MzpDG=9K3qx+e*uqdTx%Ff!CZC?@Abg9a=YRx!8AoJe^_q1|>{jv4bs<{6&v;FTUmw_H4?j$Er zajRvEXa}w@@D!?#(Vfx;>!-Y>Ld=@u=pq=B`o&li!@&3Vq~@P{w~fx4tm<}cI9&hrg9`$U6vJe4m7K1LTrQ8DK=uFQlDOpKJ_PnOHk^>a}XMp(@=)K8REYiUJm}Ofa zM9dhzzK`Z&lypDwzG14RNfZOMG%w>@YV3;d*7wSIB#Qedc&4R6vM#}?DU-Mfl^93a z`1z*lmDdaIK@H&{Zu?I;1lGn{OS-6o32c9P>@u`;^YKw3{#`7$scR>40Rtn*{(edk zjvj@*q{n7q+Y=(c+q-1`=>P^1f)Zg*9$dj3Mdq(l8Qi-hK7kZ?eueiR8P z=SKZRIG?@0(>4A^{RT54b~)mCAxG;?xDpE1f+F}=8vAr#CG7RR6%4IUvx&#Ss5shVyc{^2kw-m|<@uY`%m3IVqpK1BMtm`Q~!UuD1s&Oyf`&(kjJs;=3cj zCsl(&DrTjVwsqU1%o%+Qhaysu5V}=ta!AWcLS`F4%B|lEc~G(n+(^{Gs+)irAMjH> zJOf z3Ih8iXj0oO(CTw>xU!~k(lm<@5X+VLrE9G6g+EbL`v&RE{K4|DZo+fX?fa^UXa0rr z9+_9;V3xN|ZpKsW|8`9OKZR7ys^{d`^>?B{AZJf{K1Y&X-7T2vL-iNZN9jHvAEew~ zLC5*4Bt?^*4d-*&nkElq6*XzZY(fE9-|5EYhdAn6E6){2YkAYJ^w{6Pi@}IT@jKP& z2T9)n5uCTppOXi{W|a23eC^*2=B5%BT+Iix^9kugxNIx%9B*x}rS&cwndt4Mhnu4k z>XW57Dwr?{tq;x(5spYH(JzAIkFUzk>woeldl~x&DR3AvjfW8mG;%-W`s%sd>;o*@lKQ76L36EQ=pnG zDjgkYP%esmAQ^oxhNS2ezn9Z+2dwQ%+NTfb4uQKrAUp~BtBgi=dtATO-VE_&C3zC~G+#je|@gzComv)+8OKZOl1jKm9*d8%;Y63?p!E2B87zlrgaf=w>@gzPDAtE)UuLhq<^qkqU{WF zdB1ygsMv5^ma}BuF<5B)nGLxqD!pSiqv`h8p11Lm8y{<|IGFjeJ}$k8)zr_@ygsUZ znEu*L?o7@3CsrK>mZFCK`-zgkpRaTT_kz#guKk~qUbGT8qR8(0`2wHb z0S1KVH~ip6FEh7KoAS}7in)Gggnav!yi(%&YvlerwBN+Ji+%epbiBzwZHXI5$UxWT z<5rnUaSezNr*$J5_Q3zgaoS8pGcCgq-nknv5^45Mcnk)W=G{04h>o&7Z@qJBo)*2G z#fW;Iw>JaN^;T{$-`4$TyEY@mZYVBDrtCX}njnt2f@=UAs|ZYP^*(zx2&Peqg_>Og$Mye}SmV~^a&2JLY| zshnjQ@HGdKp1s~I3ig9l?buH@cYJk|;8|22sNr$Atx5`lW5s)3S2M@X4(LI`k~5wY zyIYME`}dRQe|XY%Hs@q9|;fWBdViWd8*~nC!W5Bij{|Sc;pVc;$BPGPf`C^M=GaD zTaVx@aBWeKq=o|^HphZ+2>lz6a1?_h`ljISr-C??Fcm+2&pNzl-?jN=4{wr_(Y%^M zVAb4DBnwHyttp7G?Yg@R>~DN5(xt@hpMrSou#_k6l=PKqhe5b@_1zYm?Gh6*fhvyc zn(+^Fi=V8i+-~*vNiS)uh*Iq6gLv^7Vr&M&JAN)*s`lJYMRN) zAcG0|6rxM=)j$ZFlQYRpN0OU^DQo=nb6DRx_M+jJ-(g(NvY=r%w%3`K9O{@R!bfR# z-2W0%{$FZUI?<*R`SfR0Co|tqOIhzv1l5}244R`A8sTWg$HRfO4a1-}wRY_do8rKp zg+Yt;7%J2&^EJG|&*qm?l^`T!%L*6WEpJ|$z50(5qF|&8SPC!Qj47U~$&w*hD z@_tvWGO-OmW!Ylu`9pw*9D_ryR$_@js*3Qf+NV<&2H$O;({fsrYeSciL>9rT*jgmG zhnarQcIUz(I8uxU)9zce-#cVmX$L)LTee1|(jrcX_U7iaA{?uE)@D}RdZMGI%$4M2 zi14~T(U=tm#4Ys*mEl`VxCgUr(~Fb8_+ipXYu=Hj5rMdB1qK@E(IQUQ7w+X3a-6pN zyxa!=Y~l2TG)w6Aj8GfjtZI`&Zh?xrwnie^;_qX3Qj*$KLcEFzT5d9QNdllhIaZ9a z#;mMICkw1kF?AC+ZlYAOUvC6;^n}KGh{Y=$N>~y9m$CgX9(vHxTw2h<9#USm1iW_r zi{!2Y3N6hU+sLhP!CmTz%_TF=j;Tz}UL>7gjsy0&R4p~+0+hGIBdmL8w@nfqM&gv% zU^2JNdyj(UDQr%QXw1-X1NyaIi+XftW_sQJe!b{#73#(4Zv6pC2nDLGNl{Y zlR`wyE1lWxDcHT9|v z-mMm`4aN}My{`qP9r8IO;`kZ{Kg3oz}*xj5iImJBwN-KKFlFrK3jO#wHOeex&$6CO?q(xAaFo+hL9U-%Ti zDrrOAkZS~5>ZMj3tJB@RZUU7XUEEYMwwrWqZvE3aZ%O`oLxgY~U#M&T>Y3);!cua^akq`4w7+kYqns8H}kDb7*4=1{# zG#|NQs%&jzoRo7V!?9VvH`nj?`FQMNw-OkzfG99l)5z(rIWhia;~lHcfH4kS2U%@8 zC7~BpadT9JBKiuWS*q^B8trErbflBz?IPD7`)F`74I{Vo7r!~ zAmk@K?_%L_P`#eAas#K2Ssz@A@n`1|G;`){7G~eE*A+TlRCRp7x6*an+> zC$T66r0YWE?NwTOGZg1r%yLJVO*loJLY2!`T84eA;X2q{34hSAE3C=7Kx-*>mIZnT z1O0aoBCq_s2Bw^bWn$=VYB?7nNt zcXllIehI6ZZp9TH^w)Qv^wPnVac4Q<&x*Z=Jz=NYZCNgO2l46fKv~`QA3}$3zmet# z+fp>2*ma@m3uGRrbKNHO>5Q7lr#~LgjyfI%Tn4)z?rg_pualQPU&$Xw>y?7lx@3s1 zjIyh%eCDcIU~B`WpI^LbV&d5qG7Jp-*@~-YU3?z54Zo0Q2e08HwlY(IW*G>+foEc# z>ml*9M!AZ)_1Ct}#=OYeNgtVS@Z>~r7XlXO-MIt4`||A+t{G6>dpyJylatS9MhNA6Yu5uR;t~jFc5l$6{S5mI-CQ(R*9tkx;gN7xtr*?h3A;o822r+(DUiN5wF)IjN^?f=WuA@uZ@-y^nx zh-F!U{-4){EN;%z+dmsRWG$8uL^A+EcjAEnUR^Nqv%y$Qs$_U}Qs7_rBeniq96A~d zj)SQ$zaU*!kgW`~I>FN&8Qr+Sdk*FZHFnu&+S(eK zauerolsrwet)MUdE+0enjc4vclxGG7u*MKc<3Zk4_nw!tkoh8-mR38+2)upxq?fmy zLlpOrjj|*gF0@DPh(tRI*_zt$7U#sFgQ!bz`@6t+a63=__+9Rg1438Sv?bjxD?fX7 z`d?}-L&VMUnS3X>mQwb=qlCMnI!)Kr#VzeG@u86DPT4ZdBS4HKmvBw2#g+s55}uV4 zY|*4EXm4P3FbIuG)k1eIcQET4)moIxF^a7B2hK|gc7sd#3mMR}N{%xHnG-p?HqEiS zg>x6z?E*e&!6tLu(mrJq;M4Sw@uk3}b1YWIi^e%8g5faBdpr)E8YUbaTa*hoE;|T4 z5Kb4R*0J;U;G{h}aAKOK>uz}PaJ$!XJ7f8%ZQakS8a?sT`fxzJ5VW7K*S@zI048;Z za`Qhgv^IA)wDAlOLMi%={x9}Ne|UN(J0xjAXZ`3~x}%%=YU~ss)T`palo`D%d?i=+ z+5Y{z6Tg!BosiVWbWM@0gv2H!w|7VCQ#ritJg-;twRKWr-_dA~^{*vKc*a(uYHJir zH7(@;*w>n5tHn-?oxo|kAC47U%rd2?B`k9%J8OP!zY3@J+gFRdatH7W?yd&%Wg@vn zNLl%mWTD2b3h%P1Zq{fXdM**7yQUED_@_5HWZ7@4jP!t2yooKA({i@`C!rr?%DEIu z*-4yAJ61s5i}{I5Ii^E8xg6`xR--VKZ%vaW5oVTU^*@Fmn5rdis*>F`SkJN29AzAQr+^MTdqike@Aimp5z6U;~w(>X%+Ad z7&4{um*OaB9UmJ!bIx{UO*vor#u_TF@&(+TMiQhj-gbNFv~N6xjPsm4Gh{mrfccH!Z@r)@~iQk0$j<@qtIGFahx>zVf0N z%g4fn8N#^lnq1z0PGn7^QW}5K0xFecUa}(F%u=II(V00I%W2QY=^pFbE)+6y-^t0E zi!=w0HXjN!v49oVZ+xn%u5&KK$i1$g>9!Ust%M`|J>o5ir4kxt#cz8K7_G%0Lc)rx z58F!#{)ZHs&ZoV55-mt=NUdq>D2* zl%m2xc^5vHh8?}^WX`}esQkrTED&|$pj&u~{r}Sf2rm^e0B6@oiQvt@+k;q&xySnC z`%lOoVZ(p=Z54zN#k$Y8?*S-^sQ&6yYVsLB#`qjAO?!nvvc8CPAc1dH&qdit*oI91 z{^8~cBbzjoOFut#uf3$Ji6uUf`{mP&TGpbf_QX1G9YO#1S~5oEV&UC)nD0FI7txY* zMZjZ8^JnBQZclrG-fr|d@3&Fvk}0Uq#bN`!HR_yQy@z?)#-?{|WpzTZ|1lP0N`Z*q z46S`6_#(Z$oo9+hm8OQVb12t1qR&~VXa3HN`dsvv6{Ds=Q|3T57P$!S$+7;TxnFi2 zlr-smQ{J(W(w{;gI_(dZ5>|3>?taO~yDPbbi&^E9GH?)CKk_qvpxv33pVmzoGVY&u z7AFisKy}q^PJyUWh_-i-5h$%i#m+l=9&2SKJZ%CG*|_-Aucd_J4jJf3mL@xf`m}6e z#uC88Qc$8zrUJ$vQAP?ssL;81@{uQ~dGjNb|1Q_^$_4ui#w?qlqq@SO~M8Gz$2R(2C`@ z=|W{@e_o$-tyzHKrM>FirwPF%(bbckjvLA$!ThM{*{!7nzr-dJKrSgmo_(rQuR@S= z+3m$hwl{xZGX1?m7%CaUCH`Y*yTws->sQzqdz!mJFu>H_Kt zD?UfpaVsL4P5Ed5|2|Gb`K$_~L13hD#Dn|*8x8&zX1RJ$y;E-xb^Xxy&<@p3Hn0d- zcZ|qDv317dRY1}RY>{ZyHHBP3nF73;{GS~nyew>eMLGErIrqm@;t0Q`)a&PF^;=;El%4bvc?eqv~8iswd)iyVMt-GS(Vmc)@P$l>ij*Vx2k4AzB-2*ja8bxxRvz zBZxFHA1aCT80uTMb~qbye%w~7%*R8vIW$G6gXZ+5JUjrz47%gC->-J=fUwH#~{le_d>GKCAMf5D9J~k5b)4e`8dV ztch=B9QCS;))xIjz^x)5uXge~$A2E7CrQ&fiCQRcem40vnYC%mH!B!Y6kja!+)*8h zHnfb6yuV7Xus!Kg5p9P;p(siTRFOS}R5-NHLK4~EMLnjzzr(*YO&cy@AfSo}>YG@M zll{6s7EFg;d#orT8Z=)a;SD)q!OTPv@RA}vescD()X}PZGK2B*=!EN@S`Qd1PTT*& zN1J4qGDmCxvEik}5WRW3u!daniQh_O-;Ws9)6cbC>!WmRH3SBnXl1tXZ_*q=OAo=X zjq@%8m18sPo#lcJog3pf)-0CXrzf#{)mG$K;oX&M-z5pTVnEEABX?ZwKMZ69otd%# z8H_-Y?B$5U&^n$LvESdXk&O*e`Lg*oqI;plZ_W`_t{SsOIA@=S^iWL9|2a^m%@fqe zZGzi!e9C%j!Lmi$UmaSdu$Zo;gpTJ&U@y_i)^5d;CiW)&lWZml&z9(G9AmTZKh&$l znT456Jl``*EDT-Zvo5i?j3XkLrXv|S+R0PA{iI@#tW92ojQ`W99ScMHYsbj3|E=rb zh?-c8+|G#-LVH8Y`&%kSdltB3u!nZ$sO_Xw)O>bgjzRvnMQ*(W0g(%I)hQ)UD8m+= z>WR|l>57&>qa5WYZ*!XdL>^*;NO*n8-qd-D+J0Rn$oQd1@A`OcoC)%|fCVlsWF1{a*HG*3F9^8P&x7mM2sTle!N22`1sk!+~qq z_cj@KkwgIjF+1`6$Uti}VSPbX+9QG0S<^*znp*v2%}5>8$7>$ynhT>Ap>8bI<+{E; z+6y7jAQE8Hh3OgQVl zo)W*Nv%T=gO}y@%8&;J+x%#KCuH7I9ZpkpCZBq)|8JXCl>cfPf1n#%#iCx1d;N7+E zd(A1qCb!RY7yH+XfW&9ss49B~CJy{5q%1weNYJ zwpdSV%eSF$X!cK)2t_-s|AD(B)<%`$(hu~Kl7<#i21e6aDS6?HKc1q>9fEER`V=mn zBLidG8P%eGX-4_go$y7V!u9JM2?Cv69`JAYPqfxw09}Xy?~s98(LXS$ZN)g|%@F{@ z^H>5ATe%6|@y!zDUwVgBUf|G}rEkO^)aC(up2o5CY!kbQ`pS!BXt_==#JB zARP>(5SIkR!A{^Tj>FpTQ$F?=iAOYbS|tW^DE;#+HSjSO_GDZ87_+u18^dYklnoYe zP;{3tYkLZ^=p`g(mhrPQZvCMDU8PSFt~Lsiq)$(w4;u=&9Z*MREAQ`ED`yYmjNCPd z@#G*XYa1j2p9rNb2{GJhKgNjnU=cI>h-VghA<~Rb1$d${pbg=ZKJ$qBJHn&V;?GGZ z*kefMMWA~Z4mW*Mcx5I;4$pGhXvde6KYS0)-r|J6Sz_z6`NISIGf$<$Xe)qBCNaNx zN@OQXOtMH{3`9KcDR9;QT)E#t&*3h|G)+Zn`Xl+;Y~PhMq(xTbnCGXygFIbvC}vjc z(d7_Pt$R2>kHt`x(ofV}@@M?TcCMHBS__2Erq?9e!A8K!x9@95KiU2ZMsAYlPE zmu9b)tG*U%$n_I^y9_aq8r^TT0l8_Du+V;Nom+k_0I+`5(X~CkxD;$Q<>WLaGgr;w z5u(Y>DdKtWY{00*IQ6;1QCg2^^*PKJ3Xsw3)=}t47h?c2$(ZV{lb@vj6&-RwE4ia; zxSZMV*d#|BZ7(~YW0>0TO_UC!`p1Lc6O1-cr1aRQ``g63Ahc<}*xn?NGrSk^mTW0x z@tTdgQ>&>nK@FJe3O+EQ_qMZr`GtT{E=EBEv1CmI`b)mSM zuk!|tnTp%Gs^f!`Goo4uiRMQ)A2|-Z86%Gi1-7_~aTnT$g^!T|hAHCK zWe)DgoB1WH+LxuqC2F488@3@Cq2$Ymvd7q;E~XZXm+B{H3Txyyutll+$~YMi*`F40 zi)!eM)vjHfRPOy;kpE_`UPTx8yG#!EA-!vXa+QbEhip^eH}vv_#J?~QEapLMYiD({ zoZ$`&sH%~KUsYu4h7tcD0Y>9nis;n$3djN`RHuY3dLV<%?m0luFc)dOHFS)21PU&G zRHJss42wmpHnJCQ#Ho_s0w5j-sqU}o8PD=k|GZAmbE~b)$NNp&Y^B&O8!ueDJ}OHu zwWp7Ati7p^t`pp>TywOJQ0|YZM~@_d4%|pO-ieadS1%5>t z+|Yg)=m=`OGB#Z1n&eb z5-@FS^MYbkAALhSeRp;3A)1Y%zVm#QzYM4dkLEIGKg=B! z{7G%(^Qa`LMflIp)Tx9nekolx2_%6MNS#O3C4Y&pO>j(&#Bo*3DAN4O=F^K(um=5P z^W$yd+}zZiU|=F!P?cYmH|2S8lxR5VCTOqX7lzsykINR1eOWmb1FHL@R^mMEb1YR> z>SnFus2yE9$Z+0j2Its??vtCtxEDUK+~}sx0#C=syUOnlU7KIgiu}S2rODl=QOIzAI%kSP$r=&EolhT0Y(KoF#6dH%mpg6HSZpO`^`Loyy44==$;5Qd zF-iAqp3C+Bq3kb%+Wew6ZnSudwm@-6p)Fe6H3bT^IHkoQ#frN_AV_g-p-7P+1xkxs za47DNV1}2l4Ro$75nx-yPIzD=h8l zMO2O(=cA@cTHep0L&?_;UDvUUMzEg!crCLr7X1hZoDFa=8&J;Us%6b$Yh|c^H~eh1 z-_87ir_RM{iW_t_6ga5;uNWr6P{5Bf%Q?g7Z1;@F({6PgfI_7_dzSWQ>i`c%_x~ap zR7~5ZZst8@)KD0~8QBsk9bi&-~h56th|CRR*+=eCQCeW!kVE(5|egRAaoT>a{Z7h2tx- zGRB4fID07dh%i}wf`JuZExrGP>(=}*agom(eC#8biHV69n(&znkEd?D@pn}friz3M z!x!M$my1Vpjc@FpTw^!s=UA!T%(z;FkVU6#ley7bYOlNuFI%2pVz6{>n`0OfGLfTBfn>JqwZ#`3X;HB@mZhou%e?LF8 z1p*}m0+L12kCm704$*Zgl3g}1XEtVfnhbsC5$O2sNUb9u%}`nWt#ONlglw_9a?Z?5 z^WL}jZEK~cU|m`f@q|CB&bdE}b0~EbB6E@sdbT){2~&5Oyc{NuDaIa0w)JlTl;kM-Fr z@=R+MUVoYXWxI1W*V-zk@-7nqgiFl({iTCl0Bd1<&?=o5_%C$b5@T`?>%;zt23Nac zedv^V1u({b$Rk>OBQ-@|yCkXm$VSrA&L4Js15K^hwicwBpQMVWpL;jR=f^|2MJ<$% z_uB2}yH(xRXdF>tw`J^1^J4u=j;x@?8Ka9#Dw6jA`!Au1aXozOh3k3>;T2+uS&k!B zc@!B#)8RwmC`0|CW~2nim343X*xRSzfKa;#2z&mls1}*Ur$uL;CvJ;H*Fa9Hqk7#G zoYE9T&*2o!rQcU*kk{JKv<{U8+y7O94JTq9R=EPpp1vfCmvG10o2+B==KuamHkfg7 zuPe5lpJ0vpdrjv!0Uw(zh0KruN$Jr zs?3Ue>>pPQD(JZ8hAl&w2&Phix?I)cdGIU|_OX4gVcgQ2Vh)A^3OCYvoM-|;Q^=YR zzIeB!aSj!%jGUtkRQb?uuC{w;%NV|8dXYAkM#sU> zDgL$IR!04cYFTH`nA$hUhfWCkThQ3_Z#O1qJi#ZD>GOk+_J??0x!75d6oWsOZ{>i` z5ZtCKUv?+nK9OmvJ>GSNAL)Nh@*$co8}cjts?reQp*RSfhWS??=Qtil zyY9x+J`_V=0^carF(~@~-wU|XBrHm<&;=k;dMeH6T1`KhzYCGwliAKbWVp7NGycWV zds}D5e^9vbdj8v4Tm_(>L3ZiFi$L8f(BY?e{7b!IoG}$-WS>>vZ>8kftqRw(b_AWp zgsR_J@8}2{p|4E~W_`&*m+uTRdFU+aO>5sW`6fN{gU^QeexP4wzO zlqxPsdM~6${sVCIM!2yEm)B=1GIUS%)g{)f=H6=XG^OHWbWjDwZ{!0(7ERs=8T4}=VbywF?rQb%0521A$j`8E4dK#>pg{%Q=QkO>^g)} zla3lRF!Kpm{f30gtIQB~uPk|wkB`qmPE@P5bLSJPMz6Z7(JX;|o>(-+k~ZVx>tcr2 zd*&3PC`GM>Ytc%pRQr$(5)Z)R!_3&Xv|D5)=mV`lvq;WRDo|955V%tTyQ zV$d2YdboCV@&eiKe0X4bHyL@dax6HQSLWpH05kiShap!f7SVf1GBNQ3^xL9}F6+Hi_xTSx-=iw3;sp`v8 z>K`Sk2EWJLL#Mg4q+cyAzS^-Yq+G~YU7YsP$b&C7(%5NPd##@Sw%hHj7@9u-qIE&3 zHcp>2V)R#4uwQwr#5F%Cp0}wtV=}Bxy!$nQ`t%i>t?ReV^m_eK_Ou@s!!96W*^M!! z@)7^JlhP`PQu7F@f#M_bSO$W@@%C8@jp?X{ZpjH!dcaJ^2B zeDg%Z!oczD?3@xU+hcpw+>?-(^+xUg+J_h@_TWoBg=jkZyf#P#tp{YOr=e0#u(aU+ zx+xyx==KCISa#MjU0)3L{({w=hx^NN`mKEkTzF5M*Mjv@Yk>es-yFGMRdZ9eV9gWw z#Ci5el|l9O%|1(Gux=~#=;D2vKtw11BRQ`-lIAwOD=AoZXQO~kMc?t14`EsU2ZoM$ zBf)$Eo7T+I=n>xXEb*7TUC){lKIBojfoel!q6B@6V6Q1l#c#}3`3rfFMdVgco|KNr zX{EP$;TpN8#KhkH%~(&M0<5+!a%aV#Tz`wUxde%~uTX9OzIk8H8Q{0sj!W57Qtod| zqox6QP$TS}Psjf0dd|p|f9uqy+{>}_c;a1RbUDPcpR1bdUD&W&ik4xKU)UU6$1 zyWX>0$v7*p7|TWg_{JffKjn89>WG))8@&RyyqFy8H`*Yf-fQnQV~m<8ZI02;wuY-s z4n1LwB=>WD!@a;gUJQqrnZ3#HzJB;miP!d#uZ_ET*2h7W{p>H5?Ezl^Pt;skP96SZ z?o<}3@}B22IMJlym8<)r*(ASuln+j6XuWteO8T3*MO;GC@Vul_{P#I)Cfsq{WUL3> zj=+-sL|eWQxBS4?zVn#zw5Jl2X*=BW`CPfJX>k9Q8lW&j}*CpYLgP;`W3gJ;kk;LZKge!T}X% zLSn`^BQVSY?>Y>Pa2JwyShp6pQW&sX7*;5AUbOXi(~)0lS1X<_>#~!L6f^O;RTR~O zz65x6JWcqo4a|^&g$biKz^;z<%}xErbr~)hjX=v&jiS49B%uirY4m?eF6|_8vISZ; z)6+{QwtV6;<8UQqikwRQ>u~RA7)OdBTt_FkI7B0s7T>oq*Dp1FC$W^PKDKl)j0(Mx z6)|{Sq(Bbh{s7xyC>b&H0U-?T3KY1KX@vQ$yY9w(I3IX8eo9BC?B9yTI%oPMFmX{@ zv52MvV$y=X!w?OOpPz999R|lJ7z7c;Dxfs)se{S9m0m5Ai8j-$clqgTBF%+QkqUAS z5@l+Cdio;zz^e^^UndnDh?LjZ+Lh8v;~xfvrtOh$k9C`^#%2#Z)8!n+)vxs}Nar}W zTjR<2u8?6DU3Eh2cor}n%bn-fpEl0_Xbiv3SQK#iRh8>fyHgInI8sN|Y)>3l8N5?z zEiW~You&u};HUMO!Jr+&d#%zbaZV6`C&*Jh+3es4bV{y6&mkx|moitXJNOGPtM>3tEo4H<*)nJO2wMAqwb-( zq)5!v#c*8=54vN(4WjaX+C%$K(4YMrDPi^VH$bRISs15n6Pqq{I)iuiN>@d)kSHohrqc#{(AerWyD#%% zq{FMXHVzLo6@7qgK4f@s7;^qdRP5EKgb%GnbSze7zYhs=lh>A9Xa`6I8-JyeJkta# zPfvus5I9@&l8>RDHae7f+MVIU6EV(qoO}Z3tK>P1y8)Qy&I$wF%5;G9A*Wyd5Pc%` z40$_T$d_moV!k-y{CwtMd3};^Z!Lho4rFD!Pc`=a!3Oot1yKT!tg#?yNBhT*lvv&WMzGbcRj?+jVOP5#T%)Bfiw^*7Q?1)lKIihJ$1qa3yT` zao#5T@t%5b;g`Su?E$E+CLy&#Vg#|j^xbhhfax@~hZycVRW*FKparoE>=R5>GF4 zOaUB)<77R%nZrN_I+ku1mPov#HcMcO5=N~p8&28JaT^3*L}^anO4qqPz&}hlxA`RJ~?7MSd@Bg&8^?j zvvlC$6;2x?Gd^y$lVfsI6pA+it zzVuJe*(j(lNc~gzkP%!dZh)U5^dO{nil1rlX0K55NNAStjw3iLtglsRVXti^xp`?TQ!t&$w$A-K-%csX;VU(8e83V`ItR-UmD z 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 z�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 z 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

    tKz79W-}p-Q&X)SuJN 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%0DfR!5YB+5c(LspUaRyh` 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�I`SX49 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

    R8BP@+kYVNqkBTXzJ5j zzpiJ^`;aZRj^bX5Fsxr0e*4kiwYuP@YHD7evym-gf|DsBHgQh(f~$SJcIi{$(Oa(b z-)xus>@zdL17QJ1GrKoLUMqUXyk!4I;e^^e@oMzOpb)pSS)m15#}stEGn>CoNn|;3 zfNd!!b)cstfKio4?3(KJUja36qW5gOe~+LdC?TvBo8KMCTGBOy#wXJgKpgF33~B#4 zJ;8SS*5Jg6MF8o;fz^=RorcCz;m1Jxjt5yeOk8C4de z7_=vys3{1-rSEdwl`ipEVfhr9BiZ!e@G6sW&@bVy;Mp0F{CC{E`=7aJ?wIK?IP6hX z;2C(Cfe-@#nsX*Mh@S4ydvqirCXqdDd>za_mLr5XUI`Mu>Oaf+x^=2m9wV&L_viqH z;T!~GCEUwTT>pzeW()ibGSiPgea4D-yQ$sHnRDeVZ~aNrq5HBc!z;6I-iVqej7j*3 z!D2u<=Frb?-{rVxw``jy@(dyAD6ReI_;lNCIn_Pyrbn3_XXZDNr$4QJ{WG*0cBHm8 z@kr!FQe{KRVt^1A0;dq^Hvz+tLvmlmiyx>#`|`oundI{B2kvxJI5fyc9Ar94{`e zN-mdXr8w%oJYf^Wau&+kj{q%jvO6c{E*9<3Iy#K^95=pn&5z{}CtloA_x4}n9 zXD$EpY639@Wt^pyXadUv@m=uksymxrEbT;tBeXlLQp39fM>?47z6Q?cg7faR;F)Bv zEM@JBR+fZ6Yggn9Pr>B>zW&RM4;dzXP=^r?nqP$kqUI?j?Dc{L=RO>ljpWYjbU)?6 zMB~IUFY~LvYndL>^)_czeW~zvEK(X2-9&B%=GCJsKgmH0<=2Y)l}KLk?}0xqLxJbk zx=#p-f$&^0ZmL~^`hvMApy|^W;`{73y{|oQRf3=1o!77_G%ID1k*hAPc&&-g65qy} z8ps>bfiDN)K-!B#m~R_Iu^6}t`nxji`)4BXt`~c#PKtTz{`*f*HKHi(cfOUZX>C7a zU0~2D@c1@a!D9D=)0t(=o`kl1CE}+wfGq}a5ubx9^-U_dO=GQY_C!nn*UYF1*;1pL zaFE2TbkPJSa5;A*^a0Q*%+|SuV(jMfXb>#UAI7_xCVsy#XZ!x4p-HU|F z2XS6v7Fl(no?4h|DI+p0qsN5&G)T;XdY{$poV2?~OMD4MY8-dwKKx^>E< z7#T0TsjWua2>9~7%osDo_DxIt>MYNv!>@!CE@*M7Gg%RsZr*b`^_XG~uydN%Tdo5+?3Ju9izIhS zz-n1~Z{RIi3HD|VzJL!B0L#?yRq{IlTgfaB5M1CIVeg)HybZX!GbW|pH;<61Ddp`J zGh5ZeUEM*7As>x002Jc=k_>q7?6}0bXHplwV<&LB)`o~5j(RZS9?h;8V#!``t9(-`-z4DT9I=B(&=d4I?OGISb-? z$|Wh9gPqiUeYH#w>SN;>p;$)=Q-ej!HZT`>TDL* zzLJn?wbEA{aoJ})Y~aOk7ix$%P9Mns6=UGx6FjwC1gk)czPfK=5dF9qHn z4)n~vIp3VXsLzdsvKbH&fbu+3p7+3wT%)-;<;3u z5^ACj(Q~dOP6lPDjc;ccaQ89Xl@B{0dwC~sB6M-uigAoqd0_!| zU8;+`L~7nk42dk2|9n)zo^q!HgtoiXmF-5ax%^z_=D^Cijg|?OTncyP49RROaacW; zWu1a78ipK1ORu3KA>2Vz&XX+!Qn78xbBjUb?(m(gS)Q9sc)*^h_(1ovlSoB`^y1vy~IyyKKbmBHr|KfTeCI-vXj*eVu15*!#h-X0jGEU)euT_XvR zRtuJ5D^KH`I%ExI^R3n#=pz=y? zeTETL!F*8tPv>cp^TJB&RbD!B@H3-xBjgI?@&u~p?JUx>NyexZ;Ik7X-hjj}>_Co$D zR@lwy(6l`s)oic7OX%|mG(}DKO!5?=N+9e;mfX>({X487AdTfWNXQSds9Fx~PozAQ z)z&sQ5A7G2@GIbgmHx}?H=+DoT1X;3Gahd`ZfT?H2W*Br`EqM?QNElx2EQ9?FpRU< z+{{wkwO2RzHB>r!3+ekPzUzbn^Mbl5-7%K)M|>4BCqJc|3w5SK;G*C?R+lU3N>@XU z1l1lTbw=RYcB>z8f5EdvP?C~$8BF(}JgxoXGt0I~{#38iucX(*LO$XH%R)Gez|&wR z1o}ryav!~~S)Yb~*xTZ$tTz?ngoCr3vRkqhQ>8;Mxa||gOL!?~^)o*$3VylX(T8*b zvvRhd~=S=<=Nj~X(k@pNT<6w6SBGGhG#G7o*r=R1RhFB~O(;bKRSmn-3P5ZsLEsSo?@1NTqnpq4>fK|KHtO}R+YY`7 z4!Y><<$>T|*37eeLjkWUQKw_%+N5{XHd^;-Bb*lAH=Nml_9>x#+UP=3HMH5%49KLu zvCEz5uyL%1KQ|}{w)>GJtyK}QoVFYpDR>-a=Wwg`E@f;{?n_|0kak;?3)z*US#B$G zG2P-Lf+cg~y#gSC`XM4nq#&)SXlq&fo^He3z^9(3TZimO8eiHOy=osBW!d)%0_1b2 zd=9sV)P2#F9Kv)61q;?CmSIW)KyQ6a-M*|~oZ?fW-Q+cE3K77k5kbAV>*ieMlg8ye zl{+!xN_W16^2DZF!gn{GExcs7Y0gNcCVxlTudi{aQbT9tZY@$*VR! z;BH(FkmpJXx=Yk+mHjN{w>Vy3@jZl<{rh)QRu(o2xzm-}d5zguY)hk9o=(z1Nm?@g zIxFx~#1gxM^ZMG~w2XjUMm|rWCh3YwtYX=K5vBL3(Z9uH1T3{nYXA*)KWE;pBu7s$ z&j&Y4$ccCFL*}y2IY>H#o+9pH^n#mJ0hrlHvG?}gIglwjQTq6qe5P@SvqkjeQ=zVW zK-5FuA!R{3dycAvHI|i9=SX-S9UjqtRz9FPd)kOs!lTCaK=Fhro9--1|3Z4~v~VPW z>8td%Qd*6f1pJr4F>pm2dvGo%=jdk~TUQt=T_A{n!-fe5j4mGQmLH+=Xw)20DI{a!{5_J+~dVvQ{=Vo zo(I8gt;Rdt5o|P5B)_7&XX;-Y?&CwjE~QZMS;jnueyvr-Qt6l!@x3VQJu~Em=$PqH zUGK!H*ej8K-myE-P#`nYO%o4=-;v0oUERvec~bmtH7*}MMILGEQ6}X78#gr){k)VH zeuyi6@A--qU6S1c#}QW0x~s^N2F`RH*MX&Q#`Iu0dMga=v~{9r@=FHo^!y|=2WpWTCb^xU=QOv#Sp#=a6Yk(E4v4bi`YZ0V+QIG12^@FnX&P>VwpcI~7Q^KX z?(||Or%}p_;ev_HdiKWv83~w}2W$KTLj~(eRH-`f49#tt1@TtqjweQHO`49XO4&z8 zcMwu~bVSX$Z6%H~8@ik>w+LU$vtcC1Qm-&7Dn6@eucpuVemtHpSaNSxz!Lvf<*%XM z+2|3=PBcp`c&ag!%8--x5)%YG<;BORv?p8EW^<(tXNh;D7AgA!tAU37@`R}dj{86* zE&DVI$|9CaTub$WxpeBKI*EkMHP18tKtDE+yL`JLO2Ckkorz=e|N5sl1AIO;CK)p7 zITZo;Y3<`ti*b=nQ^{GRtbeHTlz6^OsMz5O15O`;tGzTNs4+o~yJE#9tL4%wRo(4) zo>P-LHks)Lm0H|y$1b>S`|sVL(X;P$`bTj(xqHN~Pyt4PKRTUIKmbb%l{rbT6AoHm z1s-#h{7c%=_R|ufH1o>gKvTICk&t!;eAcMce{q6Cg09q+wtT0DT&lKI*Hxw7iC>

    Kud>CFp!1#Egc)u+$g_TyQVQetmAD6i?FZcN9 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%0AwM|An=!j_Yxnsdb%xFW7Y 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 @Hg1G?G6+9IpEZRb13*oMpp`qNg13V zYIl0nD*h_6BM>gNY?O#`r<4__{d?y@s>CnU(C3Ok%6#?v-+q50Ko7>7jd+535#v&2 zxa5(wAcCd@Dq?ko&Fc$(YZ9kzbh{CJJ{%vlz3m%9k1@fLd4xGp?^a@7HoE86`p+c} z$hf~i0m=Y7WdC7wisP8fa68szg2aJJH%mZX3(GM~4#EO|hYjJ0!d&$5cTnQL(s2P)Jf8i12>y@wdT zNNQ3$dhbN}blQvV1piVvHhYK>g!Y2mtTLq#pO&R=7nQ=-Cz5lHR(H-NY5o30J`9=X z2^YCkOrgnx{P&BX0lg;TudldGUJQEB3Vq>IYI{CZ5fDq(r48chJSmZk26kFjmLmaI zWuiJ%V9qU@v%v&O$gdQcFhS`0R>VU5wLiuO#Jm@Z$VGw}%I#D=T#k0dcKg*b6ZQybK*{q zZ$R-b*8J`EXvqKw!5XW=iexcW(`8l!7dHO`JwgZxX1kaEw>ZnwKqpo-`>H_BZ! z?Dpk_K{3}Ke0=b-hynzy`&}vf&JMt?+?{=QM;2Aecw34{JO`N$t&#}2SFMYpEm+0@ zTot*v>qZ}H*Y3SO0p-j#j&1Kj9=r30O}5M&Wlc>|aaWK1Qc8`&ZI{|Fd+SOq!W|Dw zeDjyX>ywm!PqsIG3-mo^L(YE_pf-L&X*MUsg=ZsZnpf+ka_yxqpG;nQa|QdZ*G@bY zdmi!OeNW0uGcIc>kJH*d-e0=D&B*)*EtVDCOXd^HRU^l@_t$MIzU zAzmrThgIC9Tm5lw21ruh_tA2lP>f$_@$bVeO^)D*1$J3V3@LBT^%15xaWu~7WM*Xw zpV)in8^HOif*+KTC%XrUiTR!P$#&JcqnUADDCoQQ(IPY9t(xW*GGP9~ZyqN-40C~T>Ybo`83rcfZvCE^L<#0bTGvSJzPPcu?`}JR0=WZzPJK5yol`clk7cMG7 z&u@aNJ)9M(%FqO&`3|G0?#{H{;MCH)6DxhUi~FPY1xF#s5g2>FqoXP*0nnnAUI#LQ z>nzgSg|B;O*KC;O^YnRpy{Mw4+WV1FsKKNAfO8I!$B7Y3B4l6R6T_xhB0(SF458T)3V$>`KsZa7I(U|vf9M1G&I&~=_}DP^V@ z)!wVjXj=6mR1ltAzHo-aFG{D*ZGyk#6L9WB)b2H4U_P}uQyJO7nqU1QT{@4=pBLcP0{v-8x<-5m(vvRw=5mGX0f|~>S!A=o5%qUd1 zQ5}z$$=C1n1=V8Ei1Rq8uyOoP9U2*lqv6^1 zqXuTQJ(ItO_<~zuY6Nj9kRH#ZDHQjHy77Iy8^`%+RH;cDQ54J6v{V|XC?*k@HQAK# z&BMY>L*E~Y-9nkY3!HsHaVru83?+X^$maqh*xK z(*jd*UMebGaE!t%fThnmu0gFArUZL` zdVGuwjg3Xz5LIwCH(0q>OF+`L`nVl}*p_yx#3O7~z>%k()dA*+n=@sLIYH=fNp3kB zL#wAC$qBjx(C+fU>nRnUm3vKawL$nf%#Z9-qe`5D+(1o^rIQd+ZflzVj+y@N;o(2T zLjS|{6^s05rLtpwEa2?|=Hdw9*3Z$B5ZM1%u*@rdnAfg?*OezcM~Vk*xX`1bdFvk} zJIX}TihU+gLJu!Koo{&`5xgtwh^CwM%qGS1+p9A_tX@f{^H(z)!>PRuDwRFe=Ry&y z{j)Qtve_8O*3fM4p*15FG3jF4;#ZPli9`Pv&#%Z3@b0j(%-N&5usxO>kmjDGPU>&; zR>kcul|%dsLohl4BC(z=CQ$ZyuX+}h1++{gYbdat&F1 zRFM_qjWy`d1ToKNt(T_iavszB8j)aE`3aqq>bybWem?w*a&y2zOSlkk)7LH&yw2Ny zax4LfxAnoUr;IHdEo~0ru;xAJAd2OTx(Ixp?cy9XW#<#hZv42uRt*>zywe>%I|e#& zfho0*8;1w)A%~;nL+vO%qWK~+gW4nG(_Vjf z?r>OuH+?cE84`O>>59Pj^19giLh4Xh!#2WY=R)V5Hb8*$(Vx8<@CJRB23|)?P=N zOpf>m0|)sJ$mBXC&l{!Aq#I}N;9}8y4Z>n|Fe8{9#yPH3bL!zw61iRS zHjJdds~I>bn*j%&%ADCOI#n59tx?sxo#fRyFHhXkf1H#C6ek5TYV`A`{!C9+(2$Cc zf@FbJgTcJJ*fAXy=|9kbv4uE_>`!Y{saPG5)aRGQ`>xgof|H*s&IxP{jJ=xJ8DQ)F z^OJfi3|@-iWLsSKD|@31zT~KIR7*nS91Sb=84^Au=LR$HoP=iML%o$zu`HNPx@^vK zM*a5Uz~X$yL{gyvU}PsH-X99f_`5+Z*-E8`4ID#cq=kV|yrn@zqpy&}c|mgW!w;z> z0c6LE3JLXI@W{1P6{va>5p2p3Zo{v`BVZ1Yl*Po`)ggYVocZ06uV z^PQs_D@8B&Na8wWR2s{SP&7O+4Kn}GdH0I;0OL2{46+GHI}c>J;OJ(!jPlr$$298* z|89uSkYHc}rFH%;W41r&0 zn62`0WN(bNzoGFzM(ejikU#TdEN#9bQt79WK>hm{_ zF4eF7q+5g^noJ8*?@JXlHTzdTuPy7_i8Cu zW1nS>z!ERnYC4$rdu%>d+-+iy{ys&j*0OPWpzKZq!AEr*C1;AsYW75M;TgFzg~RHGDymr8Js0VjSZ&`$NDnJm#mu4NmG5XVtdjm=GH$lxi%$ zHn^umfg*QSK>NaPq(9wjns}W_v&q+N{KFZIYhwoW$dR>3pB6AW>wk{jHDzi$NZ=kZ ziEFCTAwv)iy({sp)Kv6K?z{W=u7+=|2GNN6tjU>9;&ge1JW zvPr?jcu#B$uO)OV?CgEzDCy%9Qq@{E+DI0ALMhx#nXM`^^MX(=duz+=9uhENqG6^_ zf+aUYE9PLzTxDKI3|x{D^nqD^4R$_LM}NVQsrpHj7PaG}I&e?*@|D&g#5+6HUmdZFesO>bPpEWX75)*92TOF zOEM)4O;D^X&FYU?oQ&wgf@p2`(>61vVC~jpOX_+Tb`YUy*|%S^jXRZe=cXomw6(dc zn)bT3l-j)SG4w$j11tK43ygo71Pi2&u?OY6acq&{kq>KxWa}pt>qQt_sb$w<+R(cDY}imkYuxQ*4_h9jNWk7g4W)A1qGz|27Rh$(|#3^o8p-*KGw3w3}fYO@-h@MC|eT`IG-iLAWW(t2JF*~?4omd9taG;7*^04)O0*1gg zmkGOBruHv?LS$J7uGmRKltv!fDsF-V_QIKztQ&H)Aun8e?6${!*Ed9`lK1AidxO% zs7gq!=;p?lV;8i`uZ;1q3my`2v8V9fppr%kr!y<%Hz)c>bFFGr{E^iA={G%+)GZKO zKeHwO^g=E&c5`)T)_6Daqdhu~>?_Lr${kfbc4HG_jP1|tLR53{!ikgA{?^*zqk69T zWScOSZy26x-xDS~>VxouNu*aqL^Sbg;1Y*^_Dy$ZC#_D5`mNw8!f&#Y9huQ`kzfDT zic_%U*<=X@Uv0NNiM3#l`yY;S`Rp`xy?kpv&v|o(*bcWKFF^kzDL(f-i&G+pOcuUB7 z>5bxj-q&{6{<>ShaGNK1c;R|mdt?4$=ES^vjkoc>8iXq}l5=R%UtJ^RZ+X7roCd{y zuxsw@)L90on}9@6b5v&KrRu6s7i%HAQIMHMt7*ySeQ)=cGe`gzumW zwA6Z9)Qyk?^hrAct48L=hTnkpNIuPTR4_a4&A431M{egIT?ezndb{P{dO|nvm;8py z4T84k3d4X>Q|9&qm?SFm-;e81bW#vKNvvKHcmT_ZYKl8m#x~6g9q$I*zUOfH+vBk7 z6o9{k-KOjB)i-S@>_AB)^#9AFD;6R`Fr!si*QKD9^?11>*IUGJgpFGRA^&0XQpq)W z>QJZ`v)kQuT{@heBYe2zBQrYC)v+d_pX&0!QlX^;BAT$GIbA@ZO+^QMb$^=;OLOD3 zE?E4wCk{+Mtuldj1!LnWoBJf9vaF0py|7Q(6LZ@6(Vq4eLZ4s7$ExN>Q|s4qN@bti z{{cvRKSTSQA5D89BpQ(j+=++Q+1&koZ+Vl?IUrDy*D4H*7B36 zym;#`nk^n9RB(Z}x81^m;QCkr=`Rarf0H6P`YEgoNtK)1V$3xWf(}WtP^&PU^Gj&p zIN6GqF#!vfz~tLP>B@+t_UqJzrCLYJL7{o7f$tN@hy8ac?|>!p-H+`B7Hz*|2*fU~ zuMde@S}6;UmY@$rq~5TNzCgLA_9n6+nA;4sho7Z&3}KLYTR55iOUMy#*F>2x1Z{YA zZh?OMeC|pJ!HmyE5rAVdIlUA?*nHaaT$jcMAAGH~r7F~L`P%)bl*={m-&zQ#-NWJ3 zGd&RGsHH*wMI9hV8EC9X;z}HXoi>m4WP)lWFNy2={KJO!w(qHogpJhGZwm8r^}R>y zO9ZO0%9`yzslSa+Gcd{SByh+N#PFDqHEL18|8nd+=EJcuuxO)Ph#~UOHoY&($KQ)< z5ma9bydghPN|6-?dWF;(_k2|{_WvR zeJ~D}HZj!|47{Zj8g~221(?fyg3#UnJ3Sy!>)l#;Ky1FA(YnPVjJ@Kmwq&|3rv_c_Jjnt^5kwehkCjNmgJYg+im;5BQy7H>d@IbS4a2xlHzLe;@0Nvn zGj=WBdRT{kQ(o~rQrIDUNg@coxMw;%)(ugp7QJcMGfw1r5JCF27(IM9_zVZ&*AhmS z1vT}T6seVcO*^Pa-0XxyF=3awP2Vlq=*4D?Kh=Kh*5W$(ctGfHE> zc2hSO3f$o?xtseFA8a-W*Q0;ub!?SVXKnMj8u>UDr8yW=`y0H57zcODmYfh!0jKKd z;_?B00C5*N!0SBQG07VYb~(%>iCfk=C;@+Od`(4>I@PBgoI!PcMe2&HYF>MnuL_-+3iY{zfy&)})MNjg~Sf0_y7e@bQe^!V-wG`ECh`Wte;lT2_d&^flQ0W{2LF zw)A+BMX-g6khdlXGCw|@#9rn4C2TqxGd$bS{{!ONC^J2zb|*$5+om&8!%rDLK48S< zFStf#C*Tyd`3C&EkrOv651-O~#(+=*jiyN^n6Xlx!Gf8WoLYDsl?O(_eGSzC5KO|o zO!aaNEg8YZle|T`UcZiO25ToQe{#QE^>l4kDE(#rO5DBkT2BM$`QF;{WJ;6Ev{{1@ z01b%g1|ci>TsmVpPI$rrR5;_-*)EM`{c`q zj7kijhP!R>+euB9p9YWVC|Kyp@#gT~VKAW!5h95pp!nG14;-@ZUcEGOYe{J0B~J`P zRy5s^pFdCq1@xOY2XrI}fJ&Zh@nM2%DEtzbeoCfA#R0??OlQxV5N1Sshfnw%D7@1Jy6S$i@ki8 zRC>^k9=tAuB%S{3|A$%pCE=El6mlpP2k|J{!Pc#D72sZ|RoIjF2{F9xaxJUQ&?6M@ zhwTiTWINkV?xnJY5@X55DJELJ4trm~^BW3Y@-0Z;L|}CkX1lMxIf|q+jcb^i&|}cu zEb(&Q({|ebdq>cuv8k){jbOXQo2lA$r-{X0c3pzHH6=XrKJ0L75Hhy2>8sAx;+a1FHLO8vxW%T-yCW~VU*>locNHt$oggyj_euW~dYbizkE~s0?-l zH=gCIt7-BK#X2CdhDF`6Ha3$VOm~*Set$87O1Mdji*4m5c!{NKw4R0FyI(cS{c_PR ziz6V{MKAAO%K;|^}UeB}}+t*W~;Lc@X9SIV)+PCl>RA2iy7eO1d*R7}N)o z%Z;P;sZ5f+28U^M!mEMyCS^2kn?BuA!m6)_2aI~`2(lqhoqqX*q4{>6WnKW+0M1|6DJ)l*- z(x^|Fy;!x1k^5|ypl$lanbix^*v*NEEgTN@byRMXOgc@~skCb`D$bqq;7Z|-;1?xC zlt?Z!VVwVmf$&vA^M4b-I2 zG)tz_a)b41%O@vanD3-WZu;5x41t&w4RcIgrY8zL(KlXb^Ek&~p!#W$U%>mTOtvUO zY=1C697&+%+YmC|U}LZrS4FX61c$d-SmM+z==zQ`(PWE*_lL2Vmu{c2>lw^Vw* z!$~l+M4sLDp^NzQ8QJ3KpD97ULREOaHZj2-Ru?%vr+M?^FbT$by(9O+(awh2uaW_7 zzu^&?^ktJNtbfKDHEo`a;~>3_6`cnahHinmMA>}m=z8|LV_ zr%Q?*{N!|_k?IlEKA*4mJ@hXf=lpa6j1d1N$)!}7>l_J!J@|)DRGSG3@WT5CxZg10 zNI~+Z^*&8jL3aG+9EOO13r`1>M6%h$#L|^e$$3}e#6U@(C;CxnZV-PO7mDIPnF!e` zl?ok(@ z9u7}TouQ!_+_2&OW8v&YQr{TY|0RH!VhQ~3uv?4pjbxuffGwp|O~QX`38$I*>IZFZ=M~9#j;#nVlUOBvc_wGsrjL|GL6>yd|S}#-}P4J#V7W zzjpbk4_JcJ4_MwfHu;}ST%U?LgjWRX9)uK*_7?M%YKWh-r?c8!G^`CULqPxXD-p1k z&Uk$~T6U!}b)OQ|s5Y1JVQg8dJgpqo+0N4nN*)6VpL(P6rr*TM5NI)-$;t6_7+PN3s}Mi z_>sGwqw5a@UvoZ=%Z1?(9i%6=!;am{NCMJcuY)nd7)R--&3Uc~_3HT22=hl0I9g0n z)w*L9!h4l(_JQ&_7Q>bsf`5mY?c~1^Y*zhJ{$3Znl*Q8!#8AK7OUfv}E_-w3U4gaa zhrsSPVo9-UnUKY8=?|pGx+dwL2X3U}pwdsXSRW7Xa&rW1URNSn+vgiAVqq^^lKQx_ zPlPqtM0>v8m+*Ps;kNEi4m`mTEgl@&R{ejJomEg=UDT$7lR%I_8h3)bH!i_~OK^85 z(73xp&A6bQ#E)0Up3$LIk)HRy?j!uv45*&i~TxpO{jjVp_x*w|B+S|U=RCM!w|(UZb>|P zSjyp3p#!;@!OR*#WDxK``#xNUAf&-=mHHVC*d*N^F7rndPxrjL@Te{HW4R{qXZF{@ zj)FyM=Fkbh&|zrYWXN>ePI4MVQ>!^yh^kxI80G)QuG3C*CMkBA`FRjoBS0cVU zCvnGEV(*|n>Jvq&`^}hA@Xx@Xa}vjzr|~~=iiNX;y0^YbbbmJWNEjF-2sdnhxQaiI z2@My}eMwXirmvHJU4tAS(mC9=wO?wI{%UPg41;Qv)R~dajK{D+hSVzn(UPL~_eM_{ z4RlPIrH?{GRoL15+U}@Qq3kWT2vznNa}_9Z_{p`7*n8&0M|ns-8CoqjnDiK=kz&Q! z)|ey>_iz~i?uPr_iQgLFT2?c|wfwqeDn9$hNC>~sfkgj}CgJABJns8X4=SUC$zcWY zoIsIEx&BeDO5gf-KTk!Db`gkjM3x(yhWc=EbYx1<&cBRJt!pEo08l{XIorE`@0Bw* z4SaRVJM91GPxyb)4__JJCl4~Uo5~{g)<-upHhJ^1eR4f_lH%?CT#=bvfSw}NsWh^p z&N;HA44Q!{C(3)-EEmOOe>PggL?4w6&^*l?Ul2VN_vaG5;~ETXHKFsgtTtn+XEY4G zbf_Gf#0IY8d6>@GSW8le;!`=1rf1O5o*51r{hO8fE_Yj;wyZTiDj*xurAeokV$vOB z`;#dm^cW0{GqC2Ua`28emJj0f+pT9l=ZK7|1x`Ia{Yt-_=hk(?0yJrN+fPx3c5=P0RAUKklff2tz#qsKatxFo zo>Yteou>x7SQ-WJZ$%M;4_@}@#Uj5cIc`Vp#KkhN?!Yv<9*i;@kj)O)^%h|-?hBX}Gv^U*chsaB^8>)=Lt3?S*Idc`Z-$@t(|n6Y8z9m68FMuJ-`nA!9VTwHzWhf* z#Z70(yCN%zxSusb$W=I%`usJ4{6^+RqYG|)=zuqj95+SSoC)~%z;C#Cz_-D)c%U}& zO-6&Ukf~pJl9K6$(E+>bSS*aQ_pCn6T{l>hG)jUms4D-TO&6sYIwN>9YIHBm{$3cL z2{A(xul{+JYSUd=3%mRoPZ_|gqcXWcx6b@p> zTrayQ^(*PP9KmkHtHkhSp~X3sqBbwP>W__kZ_+bufz!ib+uMWMFS;GU-=MN88>q~~ z=1Sf~tGdmp70l-wD+lg5mC`dFQz>&>c|_=UN1x}dA-GvunQ^N$s&b1F6Hh}{c#PG2 z89_bO`d$n)1H=jym@gSsTU8QMzzL%Y)qSL$9xHw? zC7|Yr6$l~l?*b>%Wo6sqPlbDGgOW$5=PXm3@AeL`iyLX zB=&_~Pv#7>osD$@mxudH1Gg~+cMVSyk^f{0xFU_wtY`b(#4+Yb58+?Gw+Bp8yW4JL zrnTK$^|Eoy2tM#)j3!Z4abtX2QZ3s_^JC1~yX3N>`g1k!FIjV|QP|QPPjeLl0>VvZ z0`|UX^&bBX^$HplSOy@H9L!-xKUfkxRiD{3_AWz~K{JXFLz3p@E8+o;urLV0AD8jZV41Fr(taoEWuNm9@ zQtsvdh|_xL#q%zrmA%D}4o@MW*6yN7p9nXt6}}DZP^{%tS;FpXNwgMe-h1obhNfAIdU^YVTuOkC&y)RZBA22M z*>VYbVA|5;-*#?M<|d~J%Z!c;d805=Lhv#Sm?gwBNfsu&q0}`X)eqvL;Oht+0!aTP z@-!LYd}`W+c+gzkA5bkxrJ91&4T4m{W+IbX+;&H>f6!@I0Oad_wK8FyUH!=r90Cuk zT0GzHKWYvMw%(jgN`DJNDW#pnjGmTTv{*AKz^^tC3llsThT~Pu;*ZHQLI=-sID0wc z3s&*?Qwsw*redd-?a=eKSbcZ<$Ub8uIbI+4zC4n|G*f82Ji2zS`w4jyq$0MiFqG(-6+3DZ2? zz1}-%B3=U@{5FGRk2u4(E<^xiAxFEr2!Dj}?sW0auTy&_T`=m14& zkntYpZgYBQOBgwOcS=Uu4pk^&MWLU$suU;ksm4c&ttQLvaI#?qupZEfnNyGDJ8kGY zGNZe8kCzAyJ<(p-2u4@0-zU8FFlhu2@xIYTjN`htpC6P-BmPJ6?+p_*U7AbeM9n`_ zgy+Kgd^V({8F3F`6d|!s{*{wP+;OblQyCQK`#auKk27MFJ4;TmeQz&$o2S-lJSmr0 zS_;}dMiZ{;#szw9U@bStn z{hT4~OCepm!PPU+H(V@+j(pQEXde}NYRbe~qqYXmwM3jwbW4t#1^mnSZL)fG$l*e5 zEpe^<;dD+Qmml?1Ev|Okc8avyiUhrh-EAl5g+6S1>@mbcDehr^AuMA4FdQ)}+3({S zN;`CKy?ou{vPEOd4XOF>MaMKf<&s7EywZ!P(WkT>q{IR_Qi64|5#_Wy$nFjA<6`CH z-byWLpcHJ@Ka_+%;t6(unV!(I#jFy??CIju6Pz>X)W_vCphrQAQW=x; zbDJBM<{^B8AM0e={_u*b;dB4o(ECW7wbN0qjRme}@AC1;TWjSAL4Cy|ZdAI-kiITm z`T{EHCcz_$j8QVBmGqC)lWd;aar%q^30h7e3_iKJD@Vc3GpUHnRtyz9SbEGD5teF6 z#}epk2a_-G`Y6OKpd{eU*F-Kgv|-A>{AP4o|IM?95BpUVn_D3@D*of%RPTtlc4X%X zLwLj8Fd)v=#rF$FEcPA2P<1y}@HMvgSg{;^y_(lX@$Uhd+E}EjKmhelaQcSUK2vPl9e``lrEZu~ZhA_u^gK_sv3L71+5Dwm& z9W41-vE*^%t;>?#jUB(V7+X1-8&N*mN3k@k9EqHMi=eH_wTq6Zn)c+*cV{+==49!vW!T@2UWy(#Y%GOw)dQ1GG@=cA#e+<2Mp zQXcM)n+1u%2ZTNjmF$FQ{h+Gp$zFN3BkxTTmQt)l4#` zD)nJLKJQ^xnO(fc@cq}G#z=DB6>K?qO@Jd0Y3FPr*E9b&__%1%d3MwI*m6-FYjj3?zNbYpY+14F`G`E0g{+G| zFD+lb*1i@XJ+T}<*UcpK#`UB5+o2?}))Z#Z^WH|&;6u~JO~3lz^xq%D0tN0?m3aL* zj@5$LVF{D5A2#q5ePuAd`d=k;vs$`nHve?cK{2hTqXD_m$TPCZZ?~?by7C5 z*SmOZ$D|(dVF~5I)q3*tH&d2H3+&JbOPo}wblAi2o`cdWHvhiT2?gGyF^{8uPr3Wy zHsdAbaL?0d4h?S{{@f;koG${h=e1-sUtQ9(tqpROJGuJ_94AD~anD$7Jbu9J#=6oK z+akqvOwSslt{}oXvulF}lc;y%4iLQ(>_j4iR1(r&N-vQEnHij62h~9! z`}L%QUu*Zj9e)oKEXaFA0=*IIQFb>7Z;0GGoHzG$JwLwOc7_+uV0wc(_Z}x@hk2ej z6D|+75+QLU^R)XmSr4wT`OIPxz&lU;D04Jm=qYY4a2!aEC~S+hlM~f{hejl#23FlW zT(GQ{B2%QC$9DSV4m(?N%>P@L35j_wF^~#x8olJGt|n>6#v9@QjqD#LnlQZ1@L9yb zOI$*giJ}*)Ht!$sB|sZVc)S2XR0v6oZXx!~y`g?e`5l8=91u2@1xx$MZzkWjJ`-(! zutXTPv(?9_{xu-S>g{pgScr^lK^%*bu<8^|(s^isQK_+UX^SdF$^AHj&{75$CDP>N;Lv!>XI=GTJu-o# zRWPmu8EC z=hN(p@IRG|^{U~1Ne5gv&HW2jbd`Q84-f52$D!Orxh8eA{IYYSjT#hMrfB}fSCokg z+GQf9eIxS@ePz{(eWet!Ui*&$K(zM)P&d;cy25liziHh7=m#X>?+s3HGqY?4mTV|S zVOZxmuTv8hjm?n;ckzVnJzPDr2VylGsw{VLwjVa`?Z^IP;zdO?pK`t?@@Q|;TSK-1 z@Xf7noilNSik}gdpl?@p#8vSe zOBAd8(0-0f+x@b9@wf#srgfw&-y9-&>Ct~Tl()OOWeI^NaYu{OYnnUc#An#wWpZ$c zFZgcbAX(Jn25UBo0=~!O7*t0lOxxt(p29dgVxwW}Ra%QNjLxllJ#6;U&9du5BVOy; ziaMJmYX5vlh>p6lGgK~Y8WcTI`YJ{0@{%wIID>v%k1T!;(y)H9ut&l zRIaNNig4OTax@u~b*JVdEAC_0rAC zx756YuD!&tK5g-gSUC@bomPKu&#c`a61^!OkHsy%6|mHs0?%MK8vg%h8UDR_xr}A? zi4BQw?@E6EORGDyoIBXZ3R<{FLXjS0vjSls(})H_>0>bV9)j0ZrD0-J@q1 z@*Etw=h}RJLH|wlCgR*NqitmDA7x&~EyJ1S<$TVIVHsJqN7uZ&2clPfn6MVO^*LbS zrn!EMTEo?FIvW>3PMVfi%t$I^dUv$Vf*x8pw8(6GX2)r^& zE<_0Gf0?e`zIks8S@2f{N{`|(lIcQsR%yR~%;SPYTwE+5{971wR``h&)<>T``;SiW zfu8z@;{wSV^U_%MGL1Rp63-4(y!6Kz1>vG!igt;GRQo;gcbfcykZVF2EA~)w@)f# zXgNO87;~b}4;Q!*#7#}r+WzC&!~5k1B|C*vQhJF%hE+H>d4HSnYWPo4FRUoXgi-1& zNv4~U=SCbV)FXH(DR_N6L4`1Rg;sd$GO$WQucM|Gky3tktPs2;yxChu@E~!OjZ(L= zVB52)ilu8OX^>lVlPmttCbF!vt&o+E&vj(GMQN5{)2D?eKLGnw57>e)d`=GAD)=RF04=#o8jkz8 zC4`M?U^cLwUAAjaD^suW_0~$*va&t-TsL=N?S$VSZqPh|aMgwxD3)yG#{yQ872J@XkPJ*%#Qz81|st7Cis;AH$V>5p_Y zA<%Aq8v@6`G7E{%!bh$czqgOMpYM#n57APs*RLx@II_&0MR^l!naLu~Dr4dqv5UI~ zo~QGyPs4|vrJcaXlAu)Jk^n_dEbQv@_+uiW(=-)K{|KT%-)Nq`od_1^e#-n)wU;oM z_rVDY>`+vBF5&I%+we?Ow<<1Szo>VK8L{W`LaJW5ihA9}d@(t4p#{vOiSt<>*1oW) z@y2Ml{XIyvFy8GalQK8WZ@V|ezVbORV`LW|1g*QI*luS@`VgM3{Tx2YP(qxbydz5h zKqVg#8ZU^1XJVWE@-ZEH|&^JMHa_fLa|wF$WezW10N4Jz+bO9!^Y zZ@qIfhZV;d-L2~BOV_UaW3&i&W=Ey{xgK`5hsdI{e5ItzP2W) z&OU}lL53&(xwr{}GuiItAOX7>;Sll4bfJ*rXvn$MMl^j9!yGuw_bIpo%zo3%Ig(Yd z+GytJ;=QnUnDeoU8Xil9$8Xc=f~$R)Tq&Ds@b{NG9}S$db<;>Pg`cXBCK4JE|2y$A zjM30jj>(pXmT+M?g$p!@_WrO6{}vCc#K+HMqmxMzbsGrP8fGA;9yxu?nOWU1U> z9wc;s5&83=g|JUUicf9~j9XsnyHQdAHI^5C(Nb%?ePf^k&feOMN)-RzzA8V=)VDOGm1 zhY3f?SC3PPOrdlJgKo~=i?zEw`eM=v63yxQNt~)x{@gZI+%Aj1y?o78C}k0}PLfk1 zPRDboQ@Hw`T4)>yPBc1^Qn{ArPoWPO8_DA17Ur#K9%lP}+qAAAE)J z`4DKb|7z}M&U@a@k{NsQ7m6sH;6+JYs6{>K2D7~JwxyOndb*}y{A$n&e-gy z%byR3X$@a2CS>;#kLdC`29C*o6W-Hv7$>13h>_6ll~+}jA^gTprwQpqe9nq0PfPZX`bIZ$X&fyA zJE`0{^FJ!~|MoW4_a{1U-#yT4rmFXmc@xxNSvk|!`%CR#X|B>i$AvR_hzV{Cvrh3a z@XW3Ka(|nrIdi0D`N>rC4DKVqTQGE>H$VSy&U3RH1*`L4ho&3vYsOuFcy!nvpi!m- zRIJaF`uf#~bm<9a*}i?KzSV-O5YeF`t?7F}k)*9?wLPN$`tX{w!}RhwBXciP03*^I=|`9PSiQkqLA^dJerarNGB< zEsIgKfA;TWo{lGUO|rUQBCZT( ze*N|ft3(MJc+a8RO6lPCs44gpht%-Zm6TF@pF;C`-eOlq)$X9aM6UMiO1mLl3tTC6{dM=%h_N1Fx4=ipojYnBQzh5M zk~YuGH)~EUcP{%-#2ZT4Fi1HBTW8(+s>mpBIvcr!j9VCx_l>Wo+f8NsTo;c^xBY!( zg@!3|A691>JYs+!(Lc_@%6qj^KUXI=V=v$0ilyNL;OM%H-au}0v4&^dN4@0D`9`mG zZ`WS51A(IVXd^&A{(JXAtqu zn@4FdqOg*cez*#o3UmVud{ym_Waa)HbD@;X`(tU6)uBTGkE;O<36V#vVvf&ddbvud zjYyaFl15g@UuAB7Q=wI_WLx^hlK>(oJ@vrnH8yg{Gz5CsItEyPl3?X;On&5*8IDtMQq9E#ks zH!QR17I>Ml?Yp*;vUIN_E!)Dwu3Y&wxPCzooZH1@Td>X5+)8(kE zt-Axl9amVJfxXULX|l_8d20n-M?w$c`a<6%=LKqBLQ2o$ zUdE_z|B)gXJG->HCOkaxdAD*<9XhkXyiqKxDZh{^2(L_Nu>IvAF9X%K9vcVN4OvVQ z(fG8tW7i$nHJIjSOFSb0+{jcGsL=L~O1XoEkyWe8l9AeJIDZIWiim#kamrxg+Q8Dn98|?ZJI*g@<9kc4l@I>LrE=7K^rtFX@Ah!Awixn7o>T4ea+H0ZfGlIW3(TN zcNOUg%waVg6GGBb!5CPgqkGC6J{04V6l|t8dv{}>J}ue}3s4|?JKSkK3{ygEy+6va zR9{uE2nFchWU=l=#LivPU&J7xOg%>Yia6(EX+G!bB^T2(Q#AS?87ND4i# zLH{c$-tc}c>(KevmL&7_a3r10d|ON}0;Q|;)Ai}u%DGTlip8qB;GNv z{VVUIVa)}Lc~>V(=yu~EX^%+XEG0p|t4?mWZ2}1#kKa2&b4}FUY9Wz-?Ok$25O^8% zNvKDW%t!Z#kO^N-6h40#u%YJrmnH#xDyeGbsts`vhK*wmpko^*}|neCxO@ z#Sj;0@LDPuZdmnQvbrs7H;Gj-Ry0Jtv+2e0U=xT2sn7<8tt7#+hEkC?7**4+K{1 z^*x%-{;@z@L7<-n{w>gcVr0@S3CD!V?_02veY}^`KNfx~kFAOE+}4Gp3EGC3IJW8z zkD|DfP6yIKO&TS6mo)Zf6Ynd)KpKf%AF`|=@gp64aklxk_f5d#b~ac!S_o=q@&~6l-n92#3$Fmv=kFXi^`OluSfAd?^!YET z*`Mi?-A1ssT`XpOuu`PsVYKXty;oZjn6au>h%M4n(B)WN%xc3JjYak1}Y5~w7kXZbd}IOMWTUlrO}`a(ZcMY&V;3e9k%j;&ms9B`6*2VRdkz& zAk)$(&4aF&51%pXt>mv?Pc}?wpGc;|&=&2eZ(T_{*~?i}pZU&Uy9k7i7#1t>0{p@J zph6q-$&%uipZ1~kP)Emgvx{dee1tr^kZb{0J1Gv1!Fl!y;&$Ge?E?dm=Hu1f# zv>M*(fFVio=;|6YHXA3s=no`|Qk%lMx1nUGeJT%hk|JMRA`2eV+eL)SloaM6{NT!o zLd2u1Jb1%rqi8tS=xwJZ!;H61B)5rT9(*Pt6VMq>MvBjNO12TG_f{SwK6#_IwKc1}Zx3yf{U9Dy#z#F@31-~`CgyB{aCGys9(4i- zI!yg$EY8`v9(XqGBfp|F|JxiAJ<9Vq8Se;Moy)Mj)&<&FO*QyT+VYSwt%r&??9q>A z*vLUQ#^iR$GP;~s(3_&Zr_xfqaFA3mAAL8xm>%UC1x1Bg2GL0(6b}m|7gLRbOZ~nI zh%b6VRduuAja%hv?3PM?8wj!-PBBmS zV*u7|s$GVgOEUYBHCqZE^V}p95$HSxpJDGSEKj6dscoIVX==USYbud7AIh>~`g}GbATi6Pv>b7-F7FIx~4wer5&? zt&ceZ3tt`TZfRIxV)Lm7#JIUD+`higg$P~j@_+PM*B}GUHS9+>cgw&o8L!;~zc-w9 zO&b+1v%O<5yV<&gJilr6$9tqr@2EqTDv6^e&W^=E61=P3)n-?75%z4mxrx@55~TT6 zmLBca1tFQEK50(r;}Jf$&b+UHq$3JWwWs`viI42m@k_INqmC>2Mjdj}c3kI=^4@r~+e&S{tlz9Sv#^mBR;rd3RX4e5J`BY8gkp#gFhw z1}ywh;3C-ArL7wKZiPaWvoFYOrth0SyfCy2&sx;z_eZxZ=Tam3K?6FHC&a&3Z<=y5 zW~0QL@zquDFtUuMi{i3P27|ncS3YE}HL~wrQwUfwhkX*@329V5%TqXu7U#^uZLuTN zXx6EZ?q1C)z!(lwAKgiZb87D)QDAuoAMc0o%ji0}LUjE%$*Ue-D*XhOm zmV4weL2owM`Qu6Xg3h%IV>=&wdj>5aS~|OZD~bi5TNwQRg&5t26tDYAt65U*VuqBc zVSOv%(*3h=pI4Sxm8jLyvIeQ%1hI&;l5V^R_8u}k7x)m{K>yS6X-`iP6jXJ+9Ohb5!r|!?f7QQ;qdH^U|@zwJ1E#Jt-nVo;U+)} zn~o*XKRB00U!@FZeSV;x%2~$!W|HN0QuwS<=J=mSiGPOOLuP=yLDI7w%$??Xq&N|L zTSt-?WllPu^h0>UFe&Cbxnw)1>1TPb8D#?Og6HNVpq@G-o%SK!nroBa6=m`Z&E`k# z4~+RsOL$71z;;boHH0)JX{`b%uj3pKQJjO9Qm{cpg^n9aOT~wP1}#3#;H&>o~y&M>~b{CO|j~aAj?m zlVj3)8Tm|%6(!fo6!aT1_OwtuKKRUYu|T3FQb0E2^eeiB7Ch1QWjQ8$FSGb+u$6xR z`fXD5_d8br#Zhp_H+qa_s-a6`5jLT-2E)e!nC=4)_G=v--7@Zd!r$=Ad#hT%9AFsj z1Ef$fTbJ(hUH#3yi=C~5&cqdx>|+Lhh-s~%N^$p_mDZP`1-+3IwbmvOp-z3|<0nNL z?{wI~s-_LLk03>;(vnRGlI~*&?*Y+f@&WE|P@v&ry)11c_i{YABpW!LEym^fWTGj@ z0q`6mzfzKWkv1WY&M@tgB3%K|U-WyS9@Ff-c$DVHXw`lGlm%<_Xm{Ffsd~!SvhyG ze&cO0t#K?X`v(i9T~&AMqhCBoA_mjqgT;ay2@bq76WHl0HUs5W#hQ?bZOgdtxTbhP z=|kQFsw!j819Bl|H5e@U3BU`8cB!ypL5%cqw~1Wc=Y@YGBPswv^AeA!!z+%V)8ixo zG;?1-3&MIkVl0`#$7Sf*J@Nn0at^IO*+cQ3kPuA zSGJ{G<EEu8G3>s<%f7TGKIYeeLE>39+f{@cQWi3c25$zOkN> z<50Y8nN&>!Gu8kVKQ-jUF45pGSvLFO5t3-mG02PbzW_~G|rb_ zm3kp#9^2~-R*Lt~vT^(W<{)Zfvn?M`P0EPUlv-je>Y3$gnU%1u3%1jjVkO|nV>~Wk z$AcC8_{tqP!&*l1GpVViBjCLg{l6}u4St4bF_SlB%(r~GEB|OslBL(^xw^y@zuN=| zq$QWlgQxdg5PMZ~K-194S6het5PBZSE*?}-doIXau@KfU*xQTkkI&dBGOX~EvkjDc zCO52k;O@RPoV-xQ-4P>C%F?t14IW1n?bS64g$izART5-5m1kb0WT02J->cESYwZ6q z8=k;>OgKQ({4w5E!aOPbW(&LS8>!(omJxxV~Pd$r+SiBC$$pKaLEJ;Vc2qg#$K5AiGW!5P}~YpEmVqc|7bkXqATNgl&;~ z;>-1%Cf=LP=(8S#(C_DanM~BhkWwHeVdjxa9Yh1&k$t!UPSHI)A1_kyGYr#saL(g- zK8THcOGohk`R{Sffc8VzWS_2keCZE*TK;B`i$G(w!X-7Q=RyJY(5O&SzVIo)zw8BP zSWa<%S0zQmW+@qegAm>Rh~J&1c-hdFRHBmp&1Us%YlYO;C6tva2H0D}y0H`_!wF`& zc8Xs5gUA~-noRWr(4+00*e05J?#VWP6Eoa?ZDWMKl_V<6jeAYt&bFG?X*7db1S}^h zD-Ys!!QhKzmA6RkxE@pSMBh5$JNNx1Vq{ZRDy~guW<88=rlK6>AlR#fQXprQBf9ar(otd>$0%)si*iJ3xRRb`k6MLZMXkG<0Do7yZV`)y|1=S|e$IpS54j9N zV$80!$_F={(ed$`KI#2((1?Yzk85pHeZc;%kwQWbg^EW666UT%0z%EXLz39{W2zj! zegm>-bU}~s*VlfWVUb-k&SEMZI&(xkart9mqN|(Fm8(4ml!Lk^rEL6NMl^Kirp=?g z4r3qI?xc%aioS6$p|`0Va%P#E<@Z+}U}v@`q-&rCgONMhAJ@qcTqz>?8UmQJ5YoLd zM;pK7&Klu%1j1B2RR@4;v*|n0>{&YVt@SuNU6#jE zgRiR3yqn)qzKDp!YdAJS4)wBaz5k=;aJu4hTXJ)`wN!__PEKTdiEV6gl!Z0 zRzx-ZR~$-Yz>x%~#88$$X@kn}Uh;fNFrPV;*AHa-fxkPBSL~m4E-shLt^H>sPYL#S z=~L4~Y)^ll9)r**HfM4_V^IWCQmlm@GjvArnv~tQB3+UJq8pwEk6xK>HR?^~U3~9J zm{2jP`wtCqjNS$IFC^zkF1($SN*XJ9Nyc2KYIjHZE^44Tv$s5y`B`8hCk}r-qZPWi z44?ABpIbzZOdNycU(1R9>!Xh>g5MJ655wm+VV?93`)*V`{)#RtcMSCRAA#%HHAT1~ z5ssS+;pBoSMcGjnHpCkQS_=!u1_Cli}L3Og7v?25bg-qMZ)nJL>UaKG1heW6#)G?F8kj_Fqbu!}< zj<3lvvz{{cMF3-DV0oYGQZ#-E++0eBq72pc(TORN)3*c9a-KpPlig@i{^MWnGhcp=a2wFw9uPrUS}_k zG|GBy!gr9iEH^G*>+p;^?<#9exI_y z`FkQ65^*!u_`{7_Z-dxx8pHyOYFb;@p1nzaRZ?NxdB>NHPVDvq&(DTCm@!;84E>OL zzgU4?gGbI^=^#X+CU|NKoqwg|-K-jG)yWTVydGGjGNuTCnORrL;A1vNloqxoEhz6_aA*q zjJ`Ijgrw2BR|}$&KWfJ>(z+##%D*a;nBmqd=|fbR1rrQ#m`*A5qeIZcmZaPD`9c|$ z=2ZnvhdH2Gq%G{8vR>QY!L%U{$+ZxJtoiJPzZ47)vQF6F?X-Nq~pou|G{$M^SEpe=mBve6HqAeKn#8lirsvG!AiB2k3C}{C499&8egYmQ z^v^T1)?#^nHc9)akEDvA3xGsuf~`P3P`E!&LeDG7%IaOoa zDb>c*AxGRqZdR?*Hqo;0H=P62cXOnWkxj+Tk#gpt_pZ20 zz0Y?4M&Y?}8vYzSTcWNs|EO6hY5Tr4MSD9nvP(#HRAn=U0}p_Lo@**w7CLK$Nu~lB z{}ot}l|1Fb;lhCSxzEAwk01^)3VE%HN%qJSQa*?&AO0vToEHsk1U|wSNjE6X(9zLx zcAHbxz9X9!ELlpVYL63hD3&MM0e7r~p!QZFNAPF{s)8GMv73rHGNeaU53!Jt5;x09 zK;7Dv;cvYZySOc7o;wI1PTH6k; zKt|>SQwcppkJ&RhA5)&n}D0cBP^5fyNb5K3EWYBwOpDP*B$JoYkB5CMR z!Yz65A$W3()$cI;>#4*zwtq9mpGUBrIT9K5pb}V3otFb9p^1xiM!B6cNu$I0DRSoa zn&HLC*cQ{#97+=tx8btbYcN;a`-yT_S%IQ3Yb(d2YYS7|a%w@}^D$jZG@xtsq8p6T zxz#GR z-qtmCY=&HK`yJIH>_7h-!rztm;##MBeJQoB$&>wa5J)n*nCVEJRcQo^M}^J_!%j!pVG2R@?RKCz zNVP28qoQ;D#H3K7qq>ysmx+4u6hRijQR@nnhwHm~b3o1?R@R>CM3({LLLsyv~ zCVT#iJEl!TdUWT>p{6uwNM>$A2A&mg?ibW!d(QoINHpxDNNQLwlfmJa)PZW z6yXdSiIr41Ow;InoxP^likhf@!s27?+u5^WKJW+@b{5&>6fvRcm1MfzOsJhSF|F>S zMe^bq&b?m^%mEzv?#o&Yj+FZfbE5-Iiq;{AN%P^=;F1M3Tq~A;WIcCMwDgSy_Fw(; zOKfPm8$ociivuEOZGoliVY-6|1V5R1;to=r_GS*Ui^2kFT_U&7CZ9V&IxkQw45qU3 z-abMy`$*{?Ut$A}zii?RbinP%txEeyZp)mj`rVo4LuKET@^24=3-I*z@-egax$An} zeusZnG*wV+Z5i<0Zq%i&ptFIGg3$fux~XrWQz-H)3gIz}^Xv8OJhgRXft&HID7{8rh>8~ZmiMvCNHn?2uFtx0O z9AK!$p37?_kqK^u&iL<+oBeKn5yNtAW!72~ZQ$I1`?Vfg2wLp9eB5U9xDtC13o|Y9 zphu3~kGz8ZN-Fd8NH;+YDo&Hde#W@E8Q;*M*+y;I+K)Tg9~sbk1r^(US1Zk#ckp$Y zBI-Mog%N__F=<4yuzwGM31EK*GYYXxE#*hUqYJW{^pIXdKP%apL#Yt_h7X0Dv)|hX zZ{+U^WrvmsQqOiQ_*r!NBV!C@Z9H{#eX&?EBejwrhci=ndSJ>bgOu-)7 zL^-F>8Z96KA7kFbc02`AfK_QfCi5<)w@WGdnXR!!aC-_8pS^Bdfc2T`R*WvQS03+S zrO+UREOInKt`!yy4ZY*qA3j~M{$D>=v;;W*9}D1acm{}G;o5#rxCuY}H286r48!37 z*s{vz5%^OXiS^5$re%+>0U?Wh_CJ<|H-?fpA+sU3hT3?2-{2VdHesge_+i7qt1p<} zD97QM{~G;Gm&0ozG6bku>+ec$+QY!XSsLfDmMqX1wc18QBYIfUip9izBGVrW zfERSL8&>$~a4-AKtXhzXv4(kc@l^p+f)f*{|Fx=TTMdPg>_rd<&vX604rdS$@F6Q* zLs$L$KN=5T5GUp{8plx{4o5?29c^Ay`f&9Uf^V+Naq+c9MEybKdYRruqu!cQHptWz znjS;)sEUeByO*2}n|qomCc+#j!toM5ld_tGc(%|NSmASAf~{2GT?-!O4c{ZBVJCzQ z%||8|wr4ML?oY>15WjtSQYc6-+y`I*)pqUqj=p4Ke*Eb5_DjT%M*74wtB3A6@G1lJ z1+!YuX3?)Z3v{5P^LPF(I4M+_{!BEcO_5nV%F--nZ%?vXxmuG9X2@!Q^laSIxS=IB-QvkYtz%P9qtBcf0c1`SnYsg zDWdS}isEJyc+F<5S&S5?`{o!^)~`I4)PKo;yH(_Q-=_p@x%#7fA~rA}pNXDSc6k{JI*P!Dn4>V3+W>cV)AEY16dk z*dwn?_$uE(;E8U0babBE6<*;qTpDCIsN5+KuK8hUK(4(Jxwz4a!zqCOn`9_S6;Jb=l`CL{(Qu(<1h7CPXGBySjt-fA`ZcA(jts@GeC6YtaikE;oE} zDD#K+n({|`9a;rj5=6#A7su+3x)(S<5F<9bh5M&jUzDwBD|)`SK!r$W1`9$tGXOym zQInLP_aUi#XQo)-j}P!fRG2~2Of!5#-O!ax*ML!D+fr!(9gp9VnY-&hyhUJG!W}y} zza}i`9q4`Fl<_R1HM0B2KAtj}UnwOM>OF#4cx4T|p1*8inbkaK3`tk0v>)4ui{x|_ z!inr%dGuTNLDsH2U|Y>-qU#PiJO}FDhZC*Czpw6RnY4yUaiu&dQ%hZ}i*+Co)0&HG2ka}9zOdz^09RF)I<>x!In5OrGs2gsAri< zndp<&K;DWeEzQ4$*aLnP0wN7N1fHt_!uD*hIs10vW2!+=+;b@@m?E*nM$Prp_L&-B zS^xQ;{{pL0y>E9v&!OEt*zqY3O3O+RX{xE+in3oN)W%eZd6>q7@%1Eg-)Y* z$?BC8pe(IZ^M5FNr|7!cH|jeL8#lIXW5+fcv(XM4TRTZ(+qP{qw#}V1w(X>E$2-37 z@Ezm%AKfSGaILYfdtP(?W*7d80kDNA9%l_<{eQG8V13D*HtU{S$YQondFAY}^+O49*-n9Oc?ys)+Ij>YwcSvo|aThTKjF6dCBs z4s8WO3EK#D)ZOI?Pjj&$`1~YnI}@n)`NlB+6hYFgL#8ks}a%-glCW zkLdVQNbf_g@T1HT-qssvc)a9a3zC~EtDnUv?{ITb_)UHhE^m{}aCc^9dNnEh8jS_r zvc-o2R3e$nCngfEZmG=F98VJ*VKEImSsnG-=50-N;E1mHOSQdLw zyIs?{!hxxY9$~WeRb3?gb6W1{^d~d9&^tE`HqjSmz(mI+lThNvoHcqFh3Y`VAH#Pu zV3;RzpO#sA=fEg|<+!Ug7L!(?{uBMTk6=X~-MsF?FN9G%8zr7sC&mca-|#$SlTevE z&kr$D4GUzuN*2AjnJLo~l>GW##0+3vG{g$Xq0MvuKIv^AtT zT+5u9?r|}RkaoH}y7c`H4`vo}RplhrsMdBWgZWt+U=0tJe0DUHd%9--4Y1>(WyPA|^L?}xeg zR|}2Gkw+CeD3ZNWv%A>$lRgQbd^4!VUZ%aq{H0A}N8+k5(D=T=@BQ`;hX&lTHdDxh zfA_djh_FoiPCl`}H#+@L$`PGO`>`(A&F*k318?h|}S6HyM z({8O=Fh57fd{j7JMnA9|Ixedp8ba706w`66T8EZM845YEs3IHL(k*OL*mKjJPu`>; zRZft%OFYa4C&wp0f9V{AX`qiL`*FS5t5A#kdPvpf79K4b&1 zYxI=(kdHqm`G19{v5;Mh87#RNC<&35j@`x5YHr`y?PpF=(9FpCIj^r^8^rw^+l8h| zsf#TKn4Qb^At_SV1=hkoBWY~nML-hNfZ2hptRhbt1V@nB_DG)R6b=fk)n)n@%TjDI zWtZJN6z7zA8EXR$Pd^zhHh|YbPD%mlZP7BZ%-I*r#5WCQ!p>y6!1l@0JMjH)A?>ik zaH-eFn5%yVag}g|vFd)S_(TCgN5tVMGRzzyKm?7%+7V*L~U#JA;G9z8SX9_u^a6e7J`5TLGel_KmVyQ?QV7%k3Zc_4r=x?gh!o{Lo$8C*gC}sB#EaDxj7P?TJ4hmZXU(*u#&-S z2uvndpDTIye2}61PrV$EVJ>2h&6gI3F^oD8QrRapHxs!-!cvTqwI#GAN|Eulp)H6x zMcCR~_1D*)P>yzL;%!r;6>=A7h3AT(4dOgNbPh?fG)xBQNZ#uQB{LU6x@<+1fy30efnS|X7>*aMcm0*+H#|6nfa5MxUM*(YhA-7ih=M!65 zHYg(6&})v(M{79_7V%r=Uy8HFQrwsuE9N{FUAu{f@i@E~oK(~RNr3Q|y0$~Qa{ zr^6zQAe6(bfZ>rlot7}sRFGZ3jTYRg=5S~7&5L+%b$6(ys(ZB6NcU^MK-miH4>OXg zs<;EJcm22Rgb{S1k4lt_I4RvisxJjycAYn|Xg2a@W!9o_8Z^jk`Mi#?IkW9;8aoGZ9c$uwPT=XcvIvijDLN(9Iw9JvoPC5bNjdA!MSW-5P*8V1m&M5r35C2~ zqJes2Kn_6vaw^wJ_*~7wOf>QZh}aJtR_B`82bZOSf^f@Z2nZ3Uc_i17N{<3 zSFdL6vG&dEkHG|bZejmTnz21)xmGdWk#t2ckTd0R8QG1C|2y>cO&PzL(}kA>`;8E@ zP$9i5HV^1u_x;|i`v<_23;u5r4iEkS=zEgX&5zsB=VZ@uIyo@oq{$Gg3%lv&;@Lvu zv$dMR$wj2b>*%^bld^>O{KVZr`?Am~yzqUxs-0PA`PTC{v-?s5X!rY}R6o4Ki4@=A zj6zK%=WP><+-{c`eraQq*Q_&44pAetxFNmhHFA9_`UO}Ipy6c&u|Uzx7g?83`HZN; z0-q3klWsB*0BA|IqwU~zGJCOLMeAIib^1nWX#4sgLPqKZftSGK&Lq| zgf*p7Ma>L5G1jj{liN##I;tDolQFp^E}35EOVnFh?{IWNE3jP zGE4|w0yLpQYNQ(7>Nk>NwpEBG(#UWJe|4FjB?2g-x0a84jgx!v3|V1KxYgC|&O*b- zQeoy}`iKuh*e{$nYKxQ-2He?B8hAc4>*9rkhJ`#UGa?xL2lN7d$$K;eI9;PaF(Rp) z#F8vbZn`@oVRrR&$L_t_%;TO+?s@&FBX(a`l`?2}cxtK})$$Nl)4bwjM!qJ#uF*S8 z@=6uKdIs%2+?96^$&sJWU8)**m5cINW)(s4@rkAE z-_+Fg4Z3YiGNy2UtC59IzA}^TznVw>XgCXZ-t_&AfwUoa=C8RaZo1YN+q|*^$J9OeRf1hiFpZNxl%wtFwb_-nRqL|ged51 zx(*TM8Ksp{J%S6o8Z7DF2P<1FR_L=dQ?$;GY!BMoNXuM^!LEAnrOA`~)LH(Fsyj*=N?eI#J4%wy8 z7y`I1S>|XlvC8jqJLz!#3dZsGsxBy;W4e&P2XE`-cf0WX z!(FizH{MO^3^4vZX8UVXg%!%$ghJX9pB&07M8W3_&-_~5S~sOL6-Qa z+Wp!=XFP1Q&1IN?M|!cGPt+VW23`&Rx;ECC^E0_L8wk}cUtx=d6&&s9MGl)jo-7kC ze8Vdc_`Bt(i1}o90E7b%JUC(5yBScX7I2Oa^sNg8|09$7k~hMbYM3+0ZF67h1||CY zt@_y{uRkrpoUyszxacp51hXOwtu#P>Qr+{;>6FC-P*|n!+vkjsG)fxD+Gh3E%2yGw zvRDX74vTa}i$l_BYho7o(iCM0e0ixnBRaM_o})xMFEQJWlZO6$A;pl0ow0RJ_#v_e zu`#+mVd^o)F!Cn)(~uIsH{z9T%u|!nNp%*|kQyr^NiRG3!JiyQFUO3)JFf8WQ3v1L z@y9*C=jr3r@Nt}%afQ7L?m03}SkWK~!*$WbT+C=g9~Jho&3>sAV6&e6;O2esQkLQ6kQ-@3 zs=`RK_n9UowMQpy+M!l3k~kCa9(Kqtsk2&IVP`(H3$uZlX8Q~ zr|NDR!Z!78fI4%X5=HFk=X}*&rSeSLV^6#URr*iypOM*INvdiek9|UY-PvPB>`ur` zWp1~dkM#^9@$@FaD22EKkCmzp7%dRjnxt-xj#8YRBS)q<$oA;GIHZ44YJmk9GA1?N z#6E+wsy@>T-$D0mKOf(29fQ@BS=;aS*;Qsiu8CPwOqKTMYWdOnG_j1GJ3T^s8t1Nq zBkfdh%H;PqpGq-5q-lrA9W%1%IDJbmML_MGJfNco#_o9)FiqN96MdFQG4J466qWsX zasfy*5fX4ap182gGXsbCsQ)y`;yj<8yy~cRKBkko;`in=vG-X7Pc1Xi$2O|WhIC&q ztT_qiX=W1~TykT;`PVkLYz^2g_{rD48M?`EIC0Org{rIs?A1C&GGdkg(Y~M6K0(2t za!0zX`%i}B13bn)3HR8wZix{pAz$Zb(N`&-@{OM$Ual5VKUnUqURRa-zl(i>GFpyg zEhBcSyPBI?M%pQ)i626ep4|-u+bm9vL$>fC9;lVjwYFYdUYhU95VM_%pV<7TyI|bP z!}GT~KmK$eyjE+J#lHTFO@b^GX;->u{t>U0aeQ|9?~0aREo%&keMVmeX-cs8-v{k% z@n5qtLaPMW(a)+;Px3s-zJRML2JRvRE>!fWSyvv^NK_YkEv+aknV)Ko4}^f%bo_-N zJ)7flPpv?)Ru^rfBzymqQtlH8M535GC+V*^2I36SEQoBEgz&3{+tBqQC99MW6)-~z zVn0mj%pnPAu{HBQSMwb-tV{zJE!e2ReY0>T4ib65%EY1{yySl{!$h*C zMvpXqhQ|!s5#1>7E(DFqHn;oxbd&e!yBI-b#@+g)6m_;-GhlSDzi9df1iV2*4(_Q% zH0DJUI*RlVkH_BX^M`{0LPfkv`~b<(0L+VfN$uay5|_`^pa z$z)a%G>tIzwCy2W@aeLwU(|++-np7#SIZx|&T+@E$!NrZekOJD5fjRI`bUIuRNhxR zEhX)a4RVgi@culU$YRsQIX^BlQ{s3(xEaKrZfxyn1IOu*sVWPhc%Z`L$XEWMhlS|a zHY1=`w2yct3w8?Cxz3#(B{{=up?)_rm#+jF^k zasu_Qs)Os{vYpxKiczf%P>0W4;7-lW7NKL-r0}LB`xw1nU<4riy1LJsO)|Npo>5S8 zf6xEf&V=nwAs(0u!U z0g(S60Ha*V-hSHouCe$8MMWXiXu!9C&h3M748PF}pE!mVsu4Nj_IB~ai0e$K>2fWm zHjlRpwE$WnK7m7;DKhF%`J1RAy(!d;8BVC5pDpdTi6sieze88k5^IP(CyyBTUyPlT z4)f~!|J75Z;Tkwu`5ls0v(%MK``)d_QChq`n%k*;9R35_1#GavD9)#^D=4Xve9P&8 zMeV!JiQU)5lf8U`05lWct{ZG^ij{^ao0j$>@C(7Ijb8eB=q?U*_INEl_^o;47+E(q zOkW8eo%?iS+tmFovJ#0W#!~-=L}xqLm!whXsNjq@YpK8=gck?Bh?#=HRVXE1Wg-Pk zbNn6|RHTddGrGgPyIxqA@CkOI@Pm z-^}T^+AP~VKl@o)+~N?FeZnNAa315~`zHC7b@3Ld?1;-uHrLy^s|q4NeLSjdXALub zMHP_)L+2OuuMSmoid#WdzKmaI-qRfScUSANhXXZc^_~exxKiswvp!24(+PW&BumZ) z$%n1%jqRdVcSDy#jZBzimUu_`SRo*+p2F)Jo9RNp(MZD&1K{`twZk-mt+6$0eim!- z$q%hA87%uDZalb;{X~P@L6_lrE`E)bAc21&fVhq?k+p{%%Q#0Dvtr~RHgjuV9Sra& zzbkJbbG&@6?H#Vnm2|EX$JT~?vCjci+bWM`aymY~i8v?=-bWiiV<&^Y&PiP=QXaU% z3`5C{$oEKVpdwmd$`2t0---`BhR=v4XdG9hIybprlF*&pcji}KW2~nXLr;Sii}=L| zDJu2MuEVDiV-cY2fiZGiHnxG04u-W9-em(G28hfk)vJBrET5Pxw+8`5}tFb`X@StIgzeeLx9gDQc>wy(e+JQ~#wlR!`t| zZBU(muL^pUkC$(B70Dr&&TFu>U_jN+>fN1v_z4`*5w zvxv_QhijS1`a7?uz@68jm)1WXYK)WQE79nolwUkyNTQm%ht(GCG$TPc@~7J6J=H z8G-bCs?O>>p|RTNv75&ARprO$w15*rp(=Eq-Fg3rK*0AKHq(8pdceaM3KBc;a;d?Z zQ{8w{Uu!bnS9-!l`91C@F|38+`d_3k=3grsUB*SKCSlHEpyY*A1b9Tf14mHF$lO{4m zn+)I6q;ei_Xt7Q_-D494WDaGc5B2gs?k@Z zeO9v4>yvA+K<5{etRdfLBJo^X@G&2|(3u2}P2uc!Um!(n0Vj8P^i5J#gGx`79%vqW z|IPLzuo-RGMkT51CX@I8K=QhezrM!eZGNGoG@qy@{E)4+Ov5F^ea0yv{V5=df)|34 zSPH+0r+p{N;hSB!Qz}!c&EU#hqX#mcTul$wZIm)u*810Xoo@de@cZeyox3hh8r!5O za*AG%>-U_c3-KB3*8sD>NK%m&tH`R~zUV{^DRg{?_@$$O^lY=xHd#c;n|I?I`jc0~ zJ2h1VkARt&TjD{duPh7NU(}31L_HrZp)Iz?LmS;VsEd0PfcR6yn}Mt_g`$%`n)8#D#wL&nrWR%mgSd$J@9vc&Kzhu_N z9rFh*FTVh#S-+nbA{oapnb<|Tb*gU`sYiS5@qq$+eY|}Rp!=;b7@u7DA`4$(gccY?OX-+gTTo58!Sw!?i z1w_allxFfTbBnTx(k3Q85f3srqRgc1sDfR(!ek986Ke1r!oB=)SZ;9W#j6$Ta^J$Y z$OKDgDxdq&8J~|kV&lK%eNR8{X29)?Tpg>ws09&bC>bX4My@+WwPnKSsHw6;;re2$ zuWp>~EW_CA6!aI|SRhlsKW8<{`XpUg#`gMJh-L|m?=O}2-wxt$(Dbpq=wX(eBdLk5 zqu5}^3f8Su>C1SID#il9?l{~LCIe#fC<|DD?p3`yy;9+y-m%bU%Ei!nvcth)VO5iU z=CzBmQi44-lwjX9O9`VH5xTAmkqMaEC!I5oS?H|vG>a5xT)f`oEWtmMHF*s}9_8G! zWz#&EELI8mC|joaoNUx`Odc>deTd+Bxu%Cy#c@iKWD4e6d85v3{z!WlU~dZN`@*Ee zoUCu>rynnP{oU@MT+@um@kC`chx{Zhb z`VJX9ANt1(u~XcQ$fh9ft9ecu!(~+LerVT139S<}o~N8HrnFxh5&l$pvz7E=_zP<{ z<1)t9R~)B&=g(f+=L+C;&Pj>5Xy?=mP6HYVcu*=Tx$v2ZIwK(HG7UGGS<wh@4Q&{hGo`K za@G|Ob+O;&k)oRVaJeUu&9GiPi1k@N@QN#G7MENPfB28GHnB4^JWO2N4HMj#RwnOw>lUVo5Hd^mr`^;>N`v7e4X;C=YiKY5vQ$Z+O4`X?)Rz1M+ z^s2^J6~Xc7CD56?M;7b3J6Wy*XsH${vUlTq`-(PC*9G@QjR?K_K3#)orC`$<4bwy% z@j-Z43oDBxcE7ICY4#`5XY}hW^Jnkbp^h*nvu0cN_uAuDydpX;Ikd!k6P=GfIm44t z4h@dlY0(>SZUKX9B}338cqO6ktna>;tATED&0kmoED*CH2&dcFmW*p&JgLiwMu*XPl;obK*ns4|XeeA5%3(8F|=3 zvKxNe$d*IUCD*~g*A?8|q!B(>7wiAwv&Z*`!}Q-jowe+k)-RUi#wIBC?L{J^JHeEV zTji+ME1gS24G!^kP8}=Oy^h}?K~JP1Dr|oM6SjML-IgO1XlyQ^-Gw)XM(*=t0g3hU zAK5Ow2}4Z!LW$g{2<&{9B`AZ1lHX!Pq)tNpu)Wm3L_6Whi4V8Q-lT?teu+C>QcD7< z8WNuGYu>rLa!S_~U))4;ykIbDolKMwB;&4{vCA1?EMh#77X*yQb}Cl7_d_ z@nsPl-WN|Av@%9yI{ulyo<1kSkBY(+Zlf4`4pLibY4?NRzJcxIN-u=cYlWOL8~oI9 z;gxfFd?Gy+o-@II^Js}BT4O<%Wxhd{16=0=am!L0+k*^Yp<7w$Pwo_G;9j(Uh5grh z60X+$)9SrAX64`nYziJ_0r4EiY`{F(CU(D$u(1tgPQmYM3^XQ1HsWscZn&1=Eagh4 z5>Qr=4cHL*FP1-oFr)A_ddf4)riCK)RV0AotDM1>5Z`>NCkwMH;Bqp;f;IZjb$v+1 zS62NYR?}3*S1iO_M|D5Y`eJa-1wQOZ^-z8IpA&=X^E_r2&XRVb&A0vifZY z-j_HO0IUmSDzhGUa?+gxg`m@Wz5K7(o0lwAm}elCpi-#Y7{~c24pF%K@csn6+OWI9 z=dvc3RhE=*La-)xR83557`G(Wk?Q5K zL#Y4Y2N!J8p`q~suVRSksqSKGw686yC~YLp?mNT+l}`v3zrUL4h7&i#G-fXE0MFQI zv}tYffUxG_Vby4d+f;J&8U-vH`h@TB&oxrAdLHNzyr2{}miANhiC*T}kq9rj;7N@>brWi|ztUbQP@K&Po4CbDej7n$ zeK_wNTZO@3pJW|4tZ$3LM5bdW#2Y&0VC$<(cF4i=I5zUzDbhDJZ{JZo)zr!<8+#%x zlL_CNBFW0|CjDO#be6uSCDX3SzpY@IrS@&%>38NWcJC2Uayq#^-_()rbeZ0@F7Gy$c4w{x{@hh35h>y(wP|>5@teRl3;TVz@}2~7uz%z4 zO3?mjrnDGX6|G2>J|kKc6Ln<$C{@b|2&QAxzds>ZvjHT8N=wlrESiZ4kPlUzqx0Xb zm#SlUUMreR?slmdmgV;8WrZ?Lx7lAPP05~f${kP0_up3bPj0GKbAfeSbcgkbB+J6$ zTSLt!x1v}jj9PERW8Llo04tD&&74#KcA(bHvAxdrlNo*ib&hKUA<}@QS$j*>S=jxe zp-60+4$wh!a=61p|7=`ph?F)Maqk-Ud5}p`Zy*&<`4y@V`XvVb{>9dBi8s9281Q;f z&o-UUqn@MckSLZgy8BWr6vz&3^ELc?G~doky!wJ@qT;QFfckOx1+t~-0>qkG z>0XMfup>t>IU-*V6hw>6l@B%aw<;>m*%;Jp5D8kV7;J3s9bS!fZdCbI$|s%lwzWw- zCV;HYiJnrWsDTqvEvgU!`sUY)dzFe_*ZBmw7F?Dqbp95m0Uf$@X|CP!!BYwfQ9*m1 zvd%qCQr)HQq?Dh6BO#HF$LX@cwcrhs0H++V*%VvZ>li42>#3XvAj;uPL&nzOe$c@? zcGhm*2sZ9YOCDyZyQ_C&#`kmwOivx|eGNY!1xWS8(l=3#8a=HQaL6E63E*J<7#R^5 zPT<~&a0qJ{%p2;hVOf9Ei(~{_2xX;8Te2=(loIw+vZ7 zxg$t^X`AYZOB0Iu={FlPO%4 z)R1y+WO#FN^Q*6Km0hUn(FGYsa-SS{;2hJ;9`dsSI~<-b5b@><^P52Is+T6eOCV%KQ=&1U=R$i*z&i zlLF&6VQKdybT{tXxqcqOg~I=RjQ{uK_7}-sLelnoQ{(oQFbW-EC(lDjS)0sf`RSQ| zDa0{UYGwP+g-&jOC@PlhWk%LP{Fql!8o>iw@O;Lekl=nV8Zo@ZPDHyJj0W?3t$_PL9L1Den1Jc{X>3C7mphL&~CClDp6mGe-#U1n>NE73{uN1&(vT|%g!=9(M6}zj%zr&)| zUu^2(&RrBy%ueMG3@>7LXTk24LIixjOQ$d*+w!V0XiTSG;G4Nwv8!&|L<9nSy{1|B zz(ws`D|j%q1*%pm@~ubuhb^G;{P9O`WLaoAi|jCG;~c)wN>`Ut8Q*i2_ap})VDyM8~ zN7a!GFtXmCb*xefWr0Ls=?plQPruxOr@Inc)FPVe%u;pmTYGRlHS&AgptXh>vZBwe zoi4IGZhE@m*L!6{wbHzHqe#g>rH@TLKcf#cE`oH_?!I-deLcYi9;^8fyAKz}`r^~c zL@NA23Tt&epD8am&*Iicu`cGav=~Cfzl@LS5=t>@#8={vK|eh1MSDyTpY*p;1Ui?5 zN6ryH#c>S3Ith6gIx$_vv!BH3*ChXLDCt89ROZ;ltvuVWi?G4{jw!)sYm{UR`<+i- z1N$l_n0k(I&2cbh0TcA4o0LfQ7hwRIV&riv1a*Zb-__&MeS04SyQC=Hsl#pF9zz3D z)cmH6$Nh=)oFnpRJys@LOb>#k)o!8J1N<9k#wc?0+?R^w79Pb4TH!Mwg6Rhzlj~eG z_ejwLkr3Yxq!GI~H}T4;-`iZurtC&U4t+M*(f%gxE?zz@-{pR+<{#ugSPvVBM6^9_1#ij#7TAJb>|TR7W$pG|)5M_1cc3=*e| zbgufe5qjPG=vB<=GV0stxaljLsh_dOoUwq)HE9*b#7-Z>0qH0(M3#W2=_La{&EYjn zdx>a9V(ZyoPWpv>Mo@@9QW4Z%hx$(CP@x&9T^B->v8^LGpu|(s zPHbXoW1=TlpJv&?hUqw@`+^RZ7eY|uQ6$o4n*;ByTWn}LD=phZyuf{V+=sItO|8v| z}|qJyb*RMomd53+H0tj+@VrO+=ZOUp_(u&%W%LPzOR9xUq(i1 z2=Z{MJHPtzs}v=Cv=3#U{s}NTU<&+)SRwPFp!Bq&^b~fUKfD&C9oQ%zQYQYHPo^zu z&~S=|Ql8D4o0EYMfiU{2L_=b2oo=mPqnv|*k`#wgqab_38c~v)Uq=Ky`do1KbG}1sRN~+fi?{N3(P&iq zi7vDv%^t;I7oIsB=9o-2aRgiFoOwN)!aT7)9|ceP9*wSi;TM^WNli1j7HSfnoi;Sj z*&a}&{r!zue>GMR43a>SWB6>`q-wW4juP|%ua@B3C7}t2uSJ!!>fY#e={>cFSiVx3 zeHBx?jav8znE*;7Q^TPem@o(PWpB;v)K^A7)>g00K5gsq)>hHQIfEx2ng)bwTdyuE zHMe5cQdjrcN`oE8 zR}~GZFac<1qGGv&!j zTF}+{QWbJ=j!qQihgNoG1?eo-OXo$ZO2ws0DG)nVD4m$iI^r0bHq15D|D?|w+ytSD zbh+)6Ih);}Kf#O96UFKT!FaAEnKaBfyLkK({&azkP9Uf{#+{0u#hWNvC>88WwSG9j z_c6JOBz_%=L#BZ-3fL|og4HtoAgxz1zu`5P%x`+$GyfuOYQ0V@>=A z!qy1yVXq=ho=$D}X)x%agCfAB@HfA53X&*|`oad>S}swnhR6Nzmf(hAc+WtB;sLoC zS8N#bviB={7T)mvAgM{W#|VDgUjqiW0eHZinaETc+=m+*j^p|&pyzrr*|dhy#(tL( zP5@5ygXlX$ZGWPIF|cvDWV(z*H998zS(<6t`d<~q|2w33{6drYH+oY1(4xVNhv8~X zeYX%aqb(&&f2F9k$njVasB9N;@-t@?>>Y4%6l4nB*dF~$^@F!D@|aaQBg@W|toAFp z)=U@I#AP^uW|XznKvJRDyX#6VBTk%n5!Bv{u9mu0u9qi53AiG(2^4UeIn151Q1U6a zWi9`yv;}&vgR&j1+~}nHF7hkH{k$4f+Dy1>T*_Cyz{*nbm7~H8^$}=jn$CfPx_Kxs z=py+_=un8eAGCrGO%u?=X*XqYl`x`Mqj?U!Mp=7ny33Sf0FJ4Ob-2t^R9gRxZ{6IV zKauMikcv0CFCP5)tEnDKhfN+(9#5O?usET2`o-y2WcQq&;_q?~Nhro#RSAV)8A$>(&V-jxQ z?`GH_Xc^-R^HTU+n@45gaqaW{FHqf75L6I2d&T1>5=9uqjP;b4SqZQ zuo;7N+W2B>#QpiLbHXM|S4Q8Vj)bD2EP91A*)dY}e1?Dd?5eZDx8F^IJne0N)vi^c zr3p0J`%YL~h+rMfMlN_Fq$@i&UiR`qSu$#FF}L4N-dDlrUC0Xflg9rA8%tL z93I#yF@NmzgN+G;PmRVayK#uq!JaFWP@me{9ASN&Wx};s7K3QI1y(_oo5( z{60ua1yU#tZg*{B4hv>Tvr0!<2fZ}i!^%feJs*b?N+)Ls^fpj$o*>{9d_yzVIy=jJ zXml_WQ=q51X~)nn5^V#(i(EhMAP&OAl!v@c0dIFNO{~Te2X-^vy}p9Lzju;M4WgOi zEX`V1DQH)ZZ{;%Shp?suq#G@R{mrBRJ4q&PfR=ROFaUcyOet5IsKSt-RMAye3k`r1 zQ%VP$d*1M^He>7b39cq$R)RD#(;jHP7szwJL^yV#uSw`lE(+I_yl*TH?{ZQ-)gpTS7x_dE4nZlXwECi^ZsG4$Raj{hDXEvGdO>yXM z>{yZAhEPi+uQd4vBr)Fa7f>jZN2)$cN#FKit6pTxYB&kW`OAS8s#r#`gw~`>c$yAR zG_vYN3B)IxsmFv+vVXB~&W9N0AF45w>c+Yp`+&1XpPH@1)I&k$6+sO%5$u5@-23E~qQ32DZJU@p$Hi+wVf6jLk9VaSIKRPPXTM zH{N1y|7oE5GT-_qJpc2qAO2p$)N#ZI0)BDRI%B{XXgQK-1sj52ie%eZLm4dpjXD=K z7YjZfzRNd>wA+OZBl-e2+4ak24Tkt+d5o)Z3Ja0`;%mHK_PmAHQbWG0It)lxtFUOt zItN5Ojmf>%Af;mYC*VqOxk>R)qh>!C;y~jv*EbgwVz_Dlj|C@s3HoXH9!0um_pI7y zXFnIvD4;_FE<&*xEu_y!V~$+Dt@fEcuJTqe5&c^&`77jmSdWI@4j-R2-h8O2{YQYL z$t$ze8nAb7b+w>aCen9AGkr87lq38OA%I?FP0Zk!m0eP0be1XlHrZiHLhed$!R8=M zYgIEu<0_%d&>?9yZD)@ z;rzUCSgGvekkEmhNH#haYpsURc^-qaQtG>qUoyicaL#^zR1_#q9w7$ zqX2xFE;@QU;m7lP7W=4OiDX;13=ay^?K|C8|J!l^>5Fsdm{-huj%PQfl+D3C{gbTk z3}kjXBH_!na|nH4PdZRZ5tFF!_p33ho@HjbxOah27bXZ9kCX1+yXyS6~=X|5E1j!U;tit>2 z=pl-mqbby-h?qOyy#|H*mX0yhJWgq0qNGb|6pe<{Rz~dB0h~O#oJohwM)BSy_h>s7 zDWXlgt<3taBkRXB2Sl5{7ALQka!D$WsT#b7GN7jt87RCwdi~%w{gr{BBS1LXpUm_) zJB{iYHPK)ZDM!HQTXC8lCrzxSrygi;!VNnV*`ufviW1dMODUHbz|A|avBGs|QI+xW zviZ;GHeV`8uA`kV>IWOLGuk}pZUlq-= z4*t=gnBj?Mev#njGELr>_K#0L#kQ1HJ(cf$iaM9HjXc#}8unAq?fNV8GN(x3_k$8) z1hXPhaf=_f>8q^1=PR1SP3K5kafiSID=F_B8;WX{3PPWxP0R#(wnbfsBIKBv)9+XA zo+0|sXPtAvQW9o^?gl^BBF}_MwX>;KOJAlK|zG7$=N{Vx6s1i3=>eHeYT+_dRu zqtZD78%g@HN>Yg(PqgQ5tfqP5O&gy97Ht(`Z!_wF0;VW<&czQBZDOWjBi~4!DM5HPQ>Uf z)E__vs=4jxyV?of)({dtkohorUhhwAH|}w>V)mq#QqY2?pON6nn6Ax{MtCzBt}=tt zK?801uzZMc#V$j3EpE9bb71k(T6Z11ob)_;rGeE~UtZM4Tjx&^K69>;`np{S4zr|~ zFbF6f#Luj^8$N-ZwW|42)pi?)%VnWURKXg68JJ!9Ub1A%WFp&Im4N-|v#!`s2MNyp z-=2s_QidDHxJKFly9AsBRz6N{Y&CQyQiv-o6Iezcrpv8)-gQ@+juf*?8hT%@PiWpW z;p(QmG>uCkf$SOVl}>y;{$A;NX9J|SX_NxGys+rC-hCA~B&gM?@mv&7iT(V&p7PXl zws!>g7yYv4_hrXHhINgO&~1DygSz)owjuU)o}DqMJ^&X!?_nx zYVV0Fo)9yJ=+%$vsif3N4$yw-xle3w4h!fkkW{7oNYLU+wRK_zjLUG6j4`xJI;HRX z$KD;Yc#y+s94Fg5S0F!`J4~g%KDX}2)QdXZwJzhRt0w7&XMun@bDfliO^U`CK5lG~ zwXRtEv|Olo*gpvq3!6w5oGN0D5Oi?S`TKz*-^Pn!lL+%kbEo2TfDm#uh9rcw?gv6s zTz6W^Zu4-KiZs&pb*gngzm?G2_QMW}=$$4Oj*Ko)IPLOrWRz;9r}Au7#Ozp}Ybg`M z%ed!^4!1sfW@zI-5Yr*49o0{+23KW^MAl%w$#6LJ)LCIr49z50-3{Q%q7aeS&y~m& zo5Rf2D^Blk7;h9~51(!KHajMn6YD#L70P}iWIw7>+JB8=_Y4(%3|Z2J{5#0b1v4F5 zpT%8%TqrXIhCEvHNLu!Sveu-xV2K9LSx$cCdu;+_kk5lU9&j`I;9Tgilcc-$%pAu4 z`D%-|1O$Ze1LNVVNlS(UyR#mpv@Y?|>&qVM>0pukl11fvQrU*pDi3uf?3QWR3Y3PE z_a^vYNH}N>sI*9&3IU|5%9I%LBeALCHVCS#xW#?r3kT>6b+ysr=~gv!08~%HqU;+y zz0Tnjqp4OmJdW}D6yutIa0{dj8y$<$82jBymKv)2LplTTVFZ9QZkjaaxU}CrQYM$d zZ}O3VB#QHFxXO25-(GGo~Imv%dJ;`$4gc#jGd zf1fDG3u^Le7EM~Z~r2G8JdsgYZ;ihC^1`zHwZ^E z%^`&0;KAg9>8dKon7@eC31pfN*$uG8-VTia zpx5rEC;G^gzKD-$m4wjX+$ham-O-_?Ea{m+)Ux+mxF=6}6_hU~lZP18ZQeev@Xcf) z@koeuXZt2o2|7i+>m}3p9UK+6ROQ5;DS#4%X?Py}2$3_p>Y%rP*@KhwEI5E;KzsvK zUaE9dK~g)&>=bo2h||=^_Y`*GrUU)CK;n0LEBrZe#N@XZykh9~{(1S{NAlixaKPgC za+`G|aP*1o(=-02T7T#3+7Zn4AFYoLeiR~hEU~Z@erZ{ZFGCnk_v?~m{EM_%s)UkG zv7NxKF}Vy}{bigFv?)tsl@c+xB>(X&tWXoX;<%~7lDKaZ z!T=*%-BVSt`9=s25y+C0Jw_nRWIvw?m&2aLj^>1hWV*Fo{fvUqh7XcOLj=8NGS==W zxb$#eb92us5DN1^?xXP%dR%Kt_!yG1^LDW&!x&`nX(4vUb?Zt&Rz%#{^!sc#=+&+gXpnXej4=iIITLN>_-yl z#V7pv-(=fPjEE6p_aJb(*sAe(#s}Z&@|i}mY#;eMq$@)%8Sf-gI)d*_Z_rFR zFPW|CN$z@^%I0lQFxTYk={(sR-&|^+0IQ!#0)(_0XwyawYyhcr*1*hy+zttJiiUFL zc^QfiU!uyw9U@6ykpx*z>C!Zf?#e9odDc7lAYBphDWJ~1Ur8YiB6~A?Usy6Qgu%=x;MG-1 zX^~v=yK7lE&YKgTacx(8alC%emDmo7?i{3#n)lnu_YXbcLAaNWaf*t5a{jfM86u<- zM?h2tC&h_AbYePY?o*fkKQOPJK&w$RN{m0Y?tNjAO%X|lp(Z(G94FtaIM@8^8z8-< z>~|~!s=toR!O=6G*CN(nCHS?9Ina%YFZPO9Fz7GG=|bNx0!*h6{92m{|2Ns&C~n8d zI|e|7&WQ9>*|0eav#7iI?D$=4iw7&Pz_cYF3=YQLvxrSruB6L&)Kh$JAk!jH)mpL} zo~L-eb7X;%ap7&FG0%C)RT%K!CEbC9|C3l7y?QGHqp?hBr-zHeriN?4s|6vH zyOaxMkC27&`!v4H&=3;+{Ew9I?{-bG`LIn`Y7TePPprt>PAD}6FeF^Uq%mZ+ZXWT72tJAHB$gjOn%SsptR`;lb_SgJzA zjkoYIXoIH9>V|*qaP!B$q_+2*{K5s0kqE~5fd-9CP8vD%$M?#;v9At5&JFutWaXRJ z6(>mZ`B#cXqjW8%akwiiK*}onhcx-UWe%sT3!C+oPm7X+7sKK(_&k1U-OXxhx`Roy zaD%cr*I-3wc*};DU<#wBfEEmLLLem?`lDpc<|hg|2D&QUrkCo)2cl~)ez~89CW;4c z9ok>D+yIPj=((YTHG;oCz6aj2C;6hYjS%IbL_UU9G3ZBI?E18Flhk**@6!WEL*wf|eYfYT31cNZpW)Ue1$b&zBe%;%ya7nRS|Cs6 zd&fNF^4a$AdrWthjhWYRYSfKXsB8P5_ZkY(9#dRd4EyvTsJR#s?bL9zJ}(}U(Ox+Y zj*JsK5mLLt4|U{+e>v&&NFwjd<0YH^h>b_H%>hF-zEZWYH_J#sA=Rm>$H9wl<-hIn zXj}RB8-3hjmAAN>j!xCbpiE z`(g<}1aQK5EK;Hzo0mnAS~WGvR^Z&2u2MVN`)fe%D1A-f_;&2O@&J48Ln(X4Ur7<{ z_gCZ@DJ}^uw}Yn45@-oA_%T)@rZ>4R5ByAq9WI93Z4Zm~IS#0h{nk=Xo`E&9T5G0{ zPU}Yrf1-=@g*J_NNz4R17WJMuejD1l*!PXt`1vR5d8U94YO~SE=g_K6i~5t>8#5k9 z(kpS---SRB*_%8$sm+fOG&a+)IxU;lW?WJ zMLCdl&fC?LR$5vu<#|&tm@9)as^pdQfoIrE&})wz%~lRDr~3{&CoiePZ9Dcr{e8lU z$Kqko8dIgr(@anNj8wMwu35rr;-}mzxE!fIy!2xhd~ak&Gdc)zx7&?VJwV3+{ib&) zMo6vrr91bhK)f<<5i=RAW3pRt_1KFV^D!m~m9;S){=CF2%C1a&d>vpR=iLa&>b^7J@$WDpx_UlvE5L6eevLE&yAuvx+1SCricD3FLBt zM97m1;3LMEn)e3&Fu1JDQ*To4XlNJP9#q6n8Qbk-kA7;nxoceA!r2fm89tyF0MJB* z&s1UE)@*dQ!^0FhJ+owbZRTmM@=~>POxM5Qe(w46#ZWyou4uX&{6ttbykOdLN%6Q2 zXygw;C|s^ACzB`yGjvl?Vd=a7wRAE=emf_dsaL#9YI352`#UMiNmgWt{?qjdqq0-V zqDw^BHn)1%Uv0kpIxLSEJ_x4c(WP49`Y za~OKi^_{Vpya`HOS_)T^(Ru=@S{q#OO8NwBCm|FY{+~;+@N%cP}wc~}3& zecvpep*3x4Vku^Rw|J8;#&@TZ6!_Vf=^<6sT$^4p2jCcq)}GsRM=i+n)z4aoVB*ed zLIXKBN_Oun2q}OpVklSAXLgXXiIB5lNwRp8MA!(A^l}R-wv9=c^)y(->iU~FP#V{0 z-_^9Y5hsgcL2=?Dg2N<(@g-%-io^=6NY)TuWlR3_J$RCg4l#GMnNO?GW4%f$x3&?RU#ha>t5kq61#!P5SuMMNF0@=}n^ zD}1gjR0-4u!nXe0hDvUD9v5}CYO44Cvf4@$eN!YHqh5oZLZFg>d0)>7q>Om{pp$2^ zW2#)UK_G5;K^5+^Ltivz{q<=JGNwgL!R63p)=Bm-#gse53 z<&6%CJ{(NiJZk}=K`GMu9&@#m7ZrX_C6g>ozS}o_r~N|cDU%??_8#=vgtj@*uN*Ym z1RRBhNei36?*>IX+b^@u^zB=q$z4-s3xD~5y?o3IhCV0G*K=B-XGmmse_`DiAa>Dp zKZ;8vVNZ|8w!_l0+Rn!u)SRa)sOk1-=kX}s#*@Xm_ly0yny#Yqzgb0y0wn%sX19nV z;|!gt{1wCMr=3h8VTQXS#&*1a50CX{aB?@L1u2ac#p7RGk;YSFWd_n#jyuv(Sffv? zc?{8|^Km~PPW_vd@`UmZW(3g>S*L@?!Zmk^ygn<8&EhwW3q}ze(0RkL8~>Kt8|KG_zRMoyq%oFIy>yHYoX=H}u0Z_-Q{d zcL_F6+M@8VskU1G{eb6Y_mhwtDQG8ca6dq@pJt2MND&M;!lpE}=`+ccQYe8|6Z8~j z?st=NM66P%poUOSIOXBuAmB63)*?V@gPU-bXpTc!N?5dacxnl0zt}sU{s><0QC~F5 z*R48M)RAt27i91mirVv#$(G`gw8OGqo%Z*{1J~n&+7T6AE_-xaiLIDq%KJOaCu~B2 zbT8IZcdx3{QhXWd?Z8UKj0@0DyYNQ6+uzLu$b`N+T`kN)iAS<_i1bu{UOF@A1H-2Z z@bqEnMyzO~FfZ0#LMW(~R6Sg2B)+FPDen`qNK@~O|@{putUTx?PWv+1OZ zymp*c@tpuMgu9G!(On-v%5Dxo&q82Rl)5c`=t2;i{iUaJktvr=95d8gB8!gqk@m_(72#kkaxOQxy+Lr@# zMfjG>iZ*RSN&n4TZ*cgm*khUhd28_+5hcc$oF*E-;T1A505y9G!|IrEwOLj9DU%v1 zX)QKmbQ|((A%K$11?v~Zx|g6Dr4H6e>;wkF7stT6Ki%U1P{&iBOP{RDEqLeLe!Pb* znW&PgK=`?De=50hn~iKnEhC_Fpeekp)_R%(vW|t+d}2$>`lU$J`(Q1rU-;k~c|BbG zV=OCb(%-5qIl?PM);>`!P6q9lt62L}Y_j!!l4v2S?*q*3LZY2DF@d z6n=)IjS8~od0npQ#JAnTyt3&0tyg1rc&RA~JP?-~mn!2IU0~EhIT6OHnSt-vlKer1 z+<&^Kyt>pOJ_6q^Lj6f#YaJBV^ufT(7#?o)sGNM}bDF?sveGX zba1>3d=A~XZWu)YT~x7v{YLWmd{^)t?l#ujA3C04ISwAavIe5}OOu9%cRl#57+yn? zyzXt%?TEQ5L(owZsO$-=k+3B4sHzL(H7sxV62i9t9H*gr8p>v_@*1~E)@t9z^&q;J za9zcIet~!mKtuiRLU($VANrJ;{T>GWfD;h5XBeB2ed|FXG!6_jJBOQGTx7=i&i*%> z>vJ}_n9>>ZYi$A1(}X$V$6ejBxZAR?TuofB_xaA^*c6{II^~dH2j5Rw963^SZW$<- zhJL%0e(Zk`Lw_7LHRJ@iz_4nja{(v0Ax>uOElTzo99?`n`iU=GXD63TytXks=(<*? zml`C2#OqplChe#~wRk3tL=d4?{dVi0-vlTtEPDQ}Hohu|NlWmICu4Ma!m6~&>ZhY* z;>wIsdxGBxBQd7!hYHSd{XtX!rx6cc;5cx}(i$Tgqbup8eD6E)y)_}&R@#bwh%d!N zibJNd6h9ryk~liZb7b1k=0~~Lv_+L2G?dfs(D?`IZfRxFDv1?R*KL9vVTjPi>r(bm z>ek)23I+!^ri=O1P`llf`*;yRDDdbra&+ytQfsZ>rTLF(#)pgc37%I;_^V&xytxLh zoY5L210i^dqAf0+E{&LiNF^i_B2{Rt5hR}Ul>=M2q7L68Hx7dE5$(gb_8D!_YY?@` zV~i&ke}|J|fln%@lPLKcl4gtQ(v$*8R#$o| zc;6GZ$zF!SKu@uTpNe@gT;HCByJ1G%>#(qP0=`nPDeG5peyN_5+1}f? zbhQ>CtR10AF|D3VNhE^YSQ=NQqMj^)CEFnlerIL>lxAgnUjCaPKC6%wJO40}SaaXW z4oW_Gs!&jsis4;#CCd5x5>PA988`Ez)Uc$v?)&u41tz@|a$0@R%q$WZ2!XnIQXrqz z5cG@oZ|8_D4Ky7&4^ko75v3jKm6=SB`%Exc%9b(|pDj|J(6g&aGbV<18bt4U zie-d2n_v=Zx^nV$$JQ{u$yZh=*$`wZWy(l8zzQA|-d0lc;BWjcnHeflTINywW4y$n zl*s-Y-JPxr(M#@pn`zLjEeh*m2@Vm8O0+ch51+qRY_9d#c$}|_v#H| zd5c`h32lpNq6t>bo}V2P=jcl=CpK$2^cQoMk5vi;QUQaSs3B@4od!YK&A2b2N75>S zSy6BTNhstit5y=qvfS+uHLvz;+dv$h^U^cTR43x7%NgF_2RC9~0F7&mp5%0zdX09$ zn?}cn$eO_MZnifO{wEvw2BjU+fYM?re@Zk&3fLx5#+GWjg0c z${OB!9Zo8k#_Oy?G@EAPV|%`_P6O7Lb(FPBeVjP?1ZHy!4}0x>rDi4<(a_fB>Lalu z;*0t*+-N0bpM@!gfekIEI2r7xB`Oxh%Hs<&4mHUS49h0ep_-|F8^y&JB>r5md?G2f zf4fqnL{3jU)-rRcNmloY)>!e~D zZ`dKD?_>aq@i~rh7_+*#4*Se-CD0Y6m=P`dG10P9->==> zp6bmz7}H7%EZiFLB1rU%hSLLV1Ry9Z_Bw3-|Awm7vJiFFs8G;V&h*cT%^=T-u8sL0 z{M2|QYQxbQ$gb#k3o8_K`q2C)-~Fw!bi6-k8{0@upXCXJAa9#}vq8HII@1A4zM>`y zI9wP?L@YLeXMI1te*$%Fx_D4uBB}w83c?Kq3f!cb*n47vCtQsbzZQ_vY`1-^gnf1Z z1*o^h+@8@KGFpN@eQ01^DUgQ3z$Sl1@4My^oK2JQ7dWS4-?$~X@(rshChENv68+W) z88OOaGV_(3Q}DcNyEBrH60I&S?Zk{|Ei?1J%8=1SWDMr?b-<5IB;~WGV+{sM^qO0}!xvd?>d zT+ii1TQ|zXq=2OhcK7XL%s^!^Jj8CgM6!OhI*Y6)AbJcfepu>Tb{VoVUZ#{7>1-$k z4;WW?=B(B@OZz)rg?m`OM6=VW=`+bcEMB4=3oWtok)(+pw(H&$MM**!eW9@MeLhtr z=5pP;pY6Fvzd^!Kj&qM&%pWd*&~|JxX<04g6ZP08FpLY}HcexYQB$*nQOuFV!8>*b zA(?TKSf!p=Le&zwKTmoDezWcGX!qvRdn=*CyOI%|PUsj{R%iQ)@d71dwKI$DWKe>4 z*)~;QD^BwuaeYb%iWN5D1Qd&@?Hf|0cPYjhU_!rhM>+=s9>?{Yt+(nFv%ClkO_9*Q zxC^b}p2Z~f6VM%7-VRmsBVSy|w)T}Ge$;I2HVje=lIq>@s*|Mp&a^B+$#CvkUrca9 z&~T%96uh=_eYWzqOEWJ}j11pw4kpd*Y_czI99!vs9O|rBRwpesIv$_qk2>w(X=nFs zqb^2nJFqmNr-${37UrC%=e1|307GJHh%|QRxph|q@HnU`EAN_rY)}La6i@Egd+rs5 zPpU>;`#mKzvHCqrRq37H9e4jaqha$yz>c2}8F-xXZhg-l?qF#vr$cKzM%Pm~wrlRA zmTdPjeWK5hJ>J^Wlm7el+fFD~4qRc8?CCtT$p5f$#a<6^Qv+U;g%p4{FR?;IZ(T(3 zTXPGuN8op2ybT#3~XD8>rJk=998EpIjHF|W( zd13dGb+CkU=Mb62uYixLh5k((qxQ=pC9f9tpe8z-fgYNAi@VC*Fj4MU(Re63D zXVb1)hgQ3Q9-5jm)F&?t&SzBz8ht8s1?|i|kVE8^lj_v^ekx(k55>U~T^es+36RtvFG32Z3DoB!CI|-uNqgneE(!LIxufZL{cnWX&z_d(#>Z^IT2=| zqeBD)vO#U4>c;6jufnn4l9G_H(`gXL>Ao`6HeYlPXySQ0mzvU!>|*CpbrF|eLTIvn z6LXHeX0yivUAEHOG9fJjr-eNpPZ5oXR5b><>ATEn;>18UTpCxY~-^ zX|x_qqi_`j&}Qj;%4&q1(DJaVr1(RUf0^qjuMTIV6i;JRHNqPSe-jHGFizRnLVsRz zIsl7hLQ+`Qg+?@)#Z}%3Y93hE5>Tu}Z=k%*FU1#R!ok&YcQ&3aRA>}jWlv;El3do? zSTakkGQj_swbZ`amnlRm>f+EXnZ*vt*ksrcfP*VY+(1x_I!nw zu4lf0c=F^9TDlVfGEl#Ym7T4@sboQIh1IZ~>M4*Uvs1VNnS<4vMw=qSVd4?JU!kq7 zfa&H4iB?J~jR&wpxX>pczG)b%)=q6UWd1kS&vx0osB>=+FJSrP7m4sM$9rcsHbr>@ zY!mZQuza5lwqfz0=LPX{y0u*eTs3=~jL#bAUTum8^)h-&Wfm(AyDmf@qE$}z9Vw`5bd&Ot~%gw#y zkIO;cNsvV+rw9=*e;WhBGdU@XE%We>UbnrWZ`8}RF=ovmGI4oXmf^F|x+28NQq0!uhY4^rjlBGwD6wGKc}V>&A!~n*`m| zmET9EBt5rGX0h?MvAG*+cCYQXH$AO6kFqc{BmUQ{LNmJH8Te!d^o4Aoi^#h7ei!(D z7q#ykJbLqK|Et1t6C_D4;PE+T7mY=o1K*}{8cBhX%z-GK&P*p&0)3WFpN3B;zMLt- zQi<8BG~XObD9clLp2ryp5i1+l_lx*Ggq_}2pO(Shbli=x8+WoH&$`ac+yaFRF!8nQ zsAUZeTeB@~L#(i3d%j%GScVT$s|=$hfN8)s@%&N(i)rnw@JXtD4>+%A`YQ92URdxo z6`cqRI1S48ko2Ld6JDZVzHbWr+wkai9b%Dy|Aioisz;-r5YpLpq>*M({7JKlgXQ+xR?tCURo606iAR86_yR7$JqPQCBWlqVSyGJJa z``|Q5lsn-LMp+Ahi_0O^+naeG-y2cqV_fd^dI`8vYOT2R zWc?q?;%5}&0`HGqWW5F%iq{Eo430?kBvF(7fP>=)eyCV^f?s^gSeD%ojJ%;4mVMf>p>8|d20lwicmBzLG$)6-Q)!BZ|Wpyc~N(yW@Y5o6mLIrHz@ zAz32)-|e1;VADk6Wt_<^uqS~~?k9A-+j6h`O%OSk*=_TUN(@7+b8_4#Bxg^gm=G&2 zrJZOPfeZ1cc~`kI^r;AYz5=8OGB@+ega;&Xg~oMauilOF5UeI0z9EGNrWG>EY824W z5Eza3x5?~h<(&!aS>Oj{M4vH?IANup`1Ky^Ptr0J9r_VrN0T%TlbYlj{)NQ3z9nWJ z`o)D-gUgQ->Pw9NynDSpf8bz_`z(2t%sYs5HyOzoKQ+KtKiB`Tmo%g9Vygl6wR_QN zr<_b<$94t8v)bmq^ZXz=s`tD$KC1RKqNbL3y@_H3I(uvI>!=E_Lp31I`nZ}poUjV~?&dC4?9t+@bC=NQlIYhdqxc@t<| z7ts!5k9lN|`%ochazPbS8HN(M08&4-20FU@Z{D3k$ ziT`FNdGLvR1wUvXdroWGQ71xX6u!1F&*t+@+T*%41^inzg@JbKyb`#}fvs?d)A2Mq zQ5hwtUE%Sdkx{J#kd%8L{mmBq&>r#g6!sf%wqV*g4 zUe4RYG+g$dv0n=`hX6QJ+*)U2)7pWb%dx%~G1pE{Lath}uiq@Ekd(A&J>ZtXA)FZG z7gv?I%AaA}MG)!nIM{AsHM^GbsS)rhtKJ%Nmrvo8as6r6RK!ej_A;OQlau;mZjcda zd=NNxThp|@foN{o01v*Bj_g9kIOi>g| z$~-fC3xebp6~1r#dYEkbUvpA5{-bD2QcLa@g_4Mw)@(*> zH}NP3_j*|8xv+p6a2$Ir*4$3%bgPNygq@ur*56q=Brqqw|T z=-X&)X-|=Hj<%Z6%#tx$ z?A;eZt&iu9x#c>QYHB@;Bfs6b!L@3Y$kbuU>8P#7^irBWx>EtiueNs%aSo}bk=sA& z+z79uS*kWzs!XSnnbVMOHaW_qE5sx5%CJiiie(3X}@s*@aB zHU)j9-=>Sr39}al6)aGa()IJ~dPL8eOnxi;i~5l%+6Jj>w;tFO&mqY(mKu>S{y>J8!du`y)oDu(O{tIT71n;J!b@?fR;D|C^Q(6ioW!kgbdGO*VIXm{N@CVTfQxlY#9IMwbcIyI@A&LU+Zc-?`f2m_=W`0hko}DE8xAa zaT1zgfNe4ZW$m&+?N8(4{x@{EUvmgJQfmM9RTJ0dwV(Ij6~EJX#*8f;i0I|uNS`EV z{K({v2#SZ#zB9+|xMcCe<7oYX0q|P=0n%m{|BzPIGp<$$;kU83?Nyw}!~<&>4T9XqC@ z_Z!z2ZR58E5_gIlSBmh#z?-Mz$tTgc2)|=%XhZrC4`6HueMCO3owDoq^mwS%CD?DF?6W+Z%v9Cx3{Mb+CqR>`fKZat zv;S(O?fm;Om5lp?Jz!o_Kpta5#t#;^i#l$s87GTO5fPR7$4k=Xcuu7Nho;{o1@dv& zSXVzWkePd^4rWH;5=JGe2RGnM9+I6{>%nx6xJ)E3D8fYb#?Y_X?;$B|@ib5EW^SXu z63?MCN+Z7ZCqVfYZ$Q)K7f5E#kY#voe##%h9+e>^dJbWRCTwK3*q+qVJTp-F?Fzs6 zOcKK^7=ALtw?@n((SFXn3kRoLTamaGzxd zc^ylX6gU*|Q$0xozQhp7WG@PcRrT9ow^6+F{fdc7M=FC&H>N-}ajEe~Y3;feb98r= z#Movx>}ZVUPMhz$;}7D7j}diLtGO6HR;Ah{=UHx)!xvO+o{|pjoVa(A?M#a`s+dFp zBC_L><2L!dw9z$f^0{%Bv5S!V*j{_pCU!{v>HF#HMDBz4zKQcBKNC2t$0k#$j|?05 zd-1LZq-ps*h3qf%Ui}cPpt^|Rd9&#LwyvCt-C4KD05L@N;Vl~Jt^k`^(P{6U%Gp#! z&Xx*N)Id`OatnFcQj`JV-}e|!PMW~OFZgqbAG)q(0D;xJcx?j*S~^F#JdgVOcQ4GH2<;>d8nMA3P9~!xxrU^1?e+)I<&Lvi4ZfDekQcioEZm24@ z8FuXbVYGKy=iM|7Ao^L4;q&a*dVNV%I%4O`4Lh_WHmLZ3kFXB|{rbm*(F93}F|Bjx zdRx8yQ+(H!Qy3=_3KI1AtF}?IyYX1jl54a#J#->|$gy`MY`4T@S56;)^DRuhC$=@` z?%dYZ#kIus6{$*otw#Fx%T zn*4rr05q2G=5EVk$YU6VfsBVv>R_#4hsI8IZ-sRoy7#q2p^^ge$5N=%oFQXkc-vyR zWsR(4I@ec~zQqg@2qy25p7ss^cFwS|XAl2c~q~O99$+bd<7~kx(jO=G{ z%7+Rv*A(>}pz+HX ze?^?23gN_m5qt#Z~B&FSYBRn`h$)x{&YQDX>lc`?1KS z9VoH&h*#CmS(lXGDsS&YjmFnlOeG*2;rgp{{|n4n#Iq3HB{kznyBK$u=lWNTxWmtt zj4QODk)|Fh0@R4}p%2PV)LcZBvPDL{K#?lmzkbckrk|%JDgR1V@k*`V|LL`v@DQNaIz(A@gw_of}fWruMX->`G-$%|6YY zv8D;7VDZ5@EsXAx{5P#c4zr_LjGd~*`+DOW&e)b@i4T48HFic8SQ@(tE$8cMBZ)-x z2`RtWT7P8@?e!*vQ_gpL-!pjFKd##oI%c9&(XH^JEyNT}ye2x4D;LYK5u3YZbXF51 zP&NOIPsJ^RlcO)l>54D8riA?~%!M}v&9#4^hXpU{zE1;ob5Yob4(y0yhUMKy721~g zShL#Aj_ohFpDRaCVe&619y{xo>r1BH!swkTzNa{=nuYu!MA^z3F(<4sCehkjs2{l_ zMHBQjESZ^gx7ZxJ;2%(Aq`@_1!1v=I_+3g=b-F{M>AAYZEw_w=YR#SAQ>1G6XH)ho z9f9DrLdOg=|M!-LqJ{t&l0-3;J?%sVF8ukDqSmGNNo0fWy$u}j7dYlamK{wrOjrPeqT^P}leF%}ZE zx`6p6L`f0z6v@T4!%l99w3PP6wor+^#ZKl$T3n?uDBgA?T z4@d4j!K8tG8I~;9p_fm4M9uG)Z<;%44|~*|UEiIC>j@go|vOh|8WPZRNQ4q%KOvcmtQpueh_R2wKz} zwljp<%F7#P@PBTvY9nbZ1vQk@$Rn@ZJl?oPb4-ku8tUyb@s^Y!YP0*~+Va13iqg&w zvLnR1?z@{&vs^Zrd@Db#X1HWHK&5c@iwN>7 zDD;i|u;dY*-2O6o9*yO(vs2}}!h0Jp^7n%k0WEoD-m{7ekgI zE}@r6q63-rU6iG;sTX24r_-}^zAoqS7&@#Bg2CGNM9vI{J4CD7L?3*%v2&V*pW%~} zx-L2YD>BJBPX{@Mpo143?Gt;A`G18FI_6-q`=+(NRx9Ja^xRDz_bvS8kA4~M)0X*G zs?sT8mzvNTz=_H!_?vls_Ztf*%$3VHOsQO(%qU_rd~Iqyr$NrvG6C$PJz^ND-xVDr^A1cXUoIh7=Q1*AOfa_?TP<_% z$FTMswLDeltx0=8#AP-wYA34{R9uhtNOQd^~E( zf2N|~m`Ek{)Z4v=y@bm8ar~CeF$&1;k)m1^*8&ed*Iq}@Q?I158cfBLG3;(}dk(88 z?j*nS>+o)yFJhkPabDdjqewn&C6vE`gNPJIHRaFa1U}a1%s{Rk6ZH$-tHUhQ!(p{) zlStRiw_Qbvgms4_&759)SNww4I@8;S&44l^k;`F^Lk7dI%Z+C|=4Er4(;SF~(cP0> z23ym0E`N}DnP|U$6zs|?uv5_RuK6|fXddbhdTdHG zzd<1YWd$C@og9-6-J-78KZ8`tl_K_cL`L3aWtY2l)LgBiT4qlNf=4ok-(&YCl}RYCsW6CH{-%!2j0k8fdSZ+wk@Oh z{R8|5H_T2wN}c5r8t$}d0CTHIz|cs$X+i>Fk%S&+nvi@!%#tU`CA~1ANhBhVMef*R zXLvWLoLT*ooK&Fr<9lgG)8oYa&JacWKW$f*L3@UM7zBFQVnv(XYU+8`JSO=1P zw+Pgr<}ajmHM0fj`zAwqxXMb0tD>!3``RYbKIXi!xFKjU=Ih*)?`)>{9sHBfI71|~ zIXoeJ-;~ddf9EC-O)EK-EdJ16;kTbq>~j3~fQ13OlZ&zf_t}#SL}gs+lv|>D?`+^};!?;mvI< z)pMqhUJQ3oM;|M@gaI=WaoCi96)eY1d*#PjM7W zB3674L0#DbolMEk4-9@T@D*jB*Ms(?EPh9Rj~TZm1U84BlQ|$)c%j4nA+%)Uwi!zH zd`N70Yjo#(#Nx)dFt=dnrPFFD{H&L9)|^Xf<0+eJyN_{N9Qv{%aoW>f!dwI6fA~NO zZiSE){MuqUtUJTEOOOJ&#c2TdM~`sK{hF=5Ik~x2z7n zM|vp>9j9&{v+=b56{5WPT7q1leLo#imoYV}`0s?WgX(QFAE?Da2RSd zpRjMt93`Bjrw;{Mc_XXb%`16nL7Xty;s@W|ALf+?TzSs@9y0cumPU6^brEg2F-0IJ zp@n~+RSu$TaepjT>#Uc1K0gv8qMuHa6s_m@rng{RX=tBuS@al^i|FJ28LBw5DAC&_ z;AhHxW1c_YUL1gF1eNE);EDT690=~t8?{D+Nl($@F~21=EeZI$IYh`|CS2H$QTe;! z=5KR`z?dS-L}H$3n%IH)xeaP^y=&3f`{frfAoNX%o2lf=$R%aHHp|(js+3upB%}cJ zwYK}Wawtyv$r)HuuXcd3GtnpN!Fs@bJfzXu0J-(O`0-ToV$hq9!1h1)LB1-ZS{2go z4_x$hnATNg=uj_mNaOOE=^8#zI7Z>E!6CYjhhP0=h9vp>d42N7>E4EposC=*zCJ8p zyt@C`KjQ3Go=MJhj+)4iqDCuf3QH=!S=ly&%jTk>`0$4wk1uB4`RDiNset1{ zLUDt6BL8jUixYC&zX#N*^hUD@jIxRlvZT0?!Bdl>qm28T#oLx3X(>o}`1!mHP3dCu z(Y}bBZKg`JKVRq)O_+@sU~ekb@Rp{hUjvWA_ys<5yOwUCNgEZnD+FKy{uOcn#bw_G z6ZE*MqL_mz3m37dQgK51m4F{RwA+gCx^ffVC0CnSrEK$}^s1&2ctcCDk@3Q| zX%TfsJ00_%i9grm@&>z8x5bC z-D-Q|5ffwFM$W zt?zAkm&o=gt@3g0N=wkXkCS%Q!jljE!XOT^ZhnKVJk>|bm=ROxiHJ3y-zNAh{z1C) zv1N3_d-;;DU%RRe-rynYqx}A9?rb$Pu$&GwXqsH~FbFnSzp8pZez_~&`Q{*xV`szm z`vXgL^v(Bns-6#_G|#hW#Dq+yFwT=k<$0?6N-uwbI^pmn@4@|@8TEk_3^;V?jl4Pg3Wjlf?xvZ+w z8-5-t3T)ZBTEl zr67F%V{!yhK$q>?F-g*R8&UZ4V%vhYURNXYvCUb>{F4i2FlGCXg7%~YFXjs@A|Irn3Sp$2rVUq?)3o zPhd#~{gDBGKaokmNWcf~c10WN%3YPFzX{2NDkS*W+Z(YuDM|K7J5rf9yA+J`ZBtTf z!&PdX`%b?EJ8uB&j;-YqRKO`)?1`RIya$7y&1bw0|0v6Gav0EIJnfz;x-{GVp}H&d zb7Aq;mTq~QaHgR42-Y6G1l9n?BfkYbxRF@1w!>kowQQ4&bO1U+yVDSoM{3)CVffrV z#27^uRyHikrzMJT!W$wC;&X5=mUt65J~2x9ib9ZrfMJZ6)DyFuct>8nzM?O8=zVLP z^<+&>>94Y?yHl4}=w#=l-|&qW2=#U#asCbA3-OsQju#;4U!oCCckCk82N_&A@al@q zYrj1yMt*msp>umAb?YN{_5h0mz%)WyCJIbtQL*(iECN#s2qnI`QdzG;U75h$#D%#b zv5MnDl_gC;?uI+;Ra2o4Q{w1QxPZok}*pCmaQ9_%(ESUD6g|!#Pqv z{p(NZZX3?O3s%1CL%Ab9wu<@eO+R9g+E^Lain7p_%V-besAq%#3wMVI!mjMW~ddehPH3JtT))qe0^3p zSD4~nvnbzot1{|n9v-+t9J(oywR*s`mp3|nv5hRmr=zQXnMv72e`IOCz3{j0n)rkE z_6uJ|FdEA6V4vpLpuuOatNd}2(MTg?RYh4BVrlmspCV1y^*s%%^8FWLi5&%xIKObV$M0C#kMZa^HzI=2TYZH)Z=a*=h1q2|gS&B%bW&B=;RCD@Gp#3FMUpS!acg{g6*!## z%W2;aZdv)XCklY1J?{&FuICnjJ1M~6(VVLiGQVqOzurBgL%+?oXVogvYc5dtT-CFk zkza}QJ_6iznNhj^aJ4pf3);)Ed!z$7(@&5UJiy8BYUV*p3lB48e%o5W38Bw7SViuS zkIbSEy`uVVFA6s!5Y)+MGLqvyp3RHzbOSErXGz9z$K(gCI?jV^4&gJ9`3o&nB4uZ*k`w26Z`Er z0N1au7DO}d=wEtlL}6JKqO_`2f<$txmNn7gzR{r#5l04(%NDy40u7!uBi?oWAhlT< zxOBqg|48x{{mqAfpuggqNN@;}BY)6x-rfI2TQ zG0e(8UIMMKmkyflx%sk5SWLbG;<++C?Bm%KIyJNT-)0X&ik1?giOOrqBY#?dP^kgn zHc!dFzZ#+^WbaB{YsA+X3T)n#C|}jF|393)S6EX4xGZW13m~8ZQX*aHMF>4gkxm4p zN$(=Pw**v>4xzUIQL6Ob1BjH+k={Wd)X+mHA%w%;=iL2$_vN0w@B3O0d03PA=b!lp z>i6Jp6SxV;Vf}5bZv%=z`nvBPQuKxmaZGgxzu~hpXwO=5-{tmF>mQ-Gr>t8#b6q{Rvlmgr;Ke{F+qnTqK5e>btkDHR7m%ZD*nE% zbXZ8{_;SwpqX5~;32lV$n6cZ)3gi3Ypc4!2ML8=h)SDi`0+f2vDA8Hj&iC&)t2J}3 zfa_y~UbvHZuDnSW(P-kGb%RQkOcAri{4#~wQ!AdNTci7oF|J>e&RPcj8KR;5p)np4 zMiQVLS%-rW=Sd}({*UHUZ^4rVq9MR%gfe0YKaxyl7uo8U=gNXhJAGCC%o32oPBI`y z`bnelfz}x_VX(g8d3D39J$U4b$kBP!Fk`*NZy@`qA#!hMu;1muS$4Us`o+3`!q9<$ zA1yWALSi3#+4LXZt)GI016*51tU_2Xi?(h%K}BNd6~5ex|H0<1Uld=mViNx}&$C>ut#~zJw-7s+~F4B;N*v{ zGU#Q^`y&Qjm{X*|{>{bCNG~fodBEoDsxfs#X1XQM zG_BH3OZ1nyM60}z~Lj-1A` ziiUL621Y6IebA{&s<4Ro<(d)kRPxqCX7}#ey7-+QRIYNKepKT0wSmK_b;Nv35%!# zG)YnM09Vy{T!Q>I((z^EuIEgQe99;0S(oH$m8 z{--nZVf@OWI|oSq>W;Ual>62ERQHIuqFw1e)A`Ul`adtu5Rh!k^_xj5ff+%oV@)~s z%hv%8>+N*Kz0vl0#YvBE3AHTGoTq0M9ey8A?OMYq9DJ?V7##azmLXw;NQYSucyYxs zMKIut>BWAa2uXm(webvpwZ5$f-D-3D9)(jRPJsySqqq?X$+hh{;+&~F?y2diuOm@1 z5PQ{vUkW^MK1LT0pRukA;d;YWS;$#~P zoiYuJMl|4m+Xkv^%badI6F0#om(5ozft6i>LrXn=Z5Z#%vf^?=UpddnHkjB8^2OzV z@Hu*j^EAYa1Z?4gtZf;HwA?6e!xyW*u4f{gN9zq7Fo6+-0>)v`<^l>?%8My&RjdE6R#bhCI zG>O8cfRcF<=x_LiBIM0S$=p8GgT|D%}a{JZ3|abt-z$;E0K)P=0AwXs;f zUb*IilOAuDnjL$qXQBtpMQn^AIh7Rdb|%8Lq}N*v+FM~j6<&4|#~o2%Cf-e|4ryc$ zRc>u&pV>)(vp3^AoO_zWcN zFcILS%sG|G-OC(QFtb1KmLWRE*Q)b9QEnwJ^hprvMZ9RrNw4w2tCSxuA;C{bW-?nl z?9GG0N0)07P_(cK4&%hlX|h`Z7~=GiEhU)YwLD7cV#ec5IN14s{h& z`&%ns;6M0LnBRNrOx`VS$S{$<{h^eo(xC6thpp4FvGN^JZ%R5P?2qX_u*7ZhA_GMwA!kZ(u7qzEz|clN&)oCC=R z1l8K>f}zwVgu08B=-WasA(M54#g5I9*1h7wf@I?*8vkOu)uGy0Y?!jE?S?gqeYNVmlzqYb)vC%ZMsvKu%Z;=g{ z0w(wlj8}5a5u53R=RVob`tGP*Mx8QAPAkggr)!rz!4KqE%tZ$rROXLX9o+b$E;b4! zseNhw6U#Grfyg{(ZfwG{E?ry{Uu_&6E?qfaU9&%8*M1|OI&j%PfbX-6jVWmHY860S zE(Q-N>jMbc!wqgMllWck|1iE~G8=_2#`!LNZk+GR5PsvyiZ7E3H}`#4EMI5N#}^+n=WeG^v@m#uAe z{{gSvC;t(TQ~8a*POTBR_xUfX_?z+H_|Lw@tN|`815054{GCY6F{o?xw5;_kvh8fU zS_V^H7BItqVXdd69Htnip^Boa0r@0a^LsE?UjF@p(&WC-nwqE0_M zi#2*8z#*?kkG0Za=&erK>*wN)D(5Hn5+g_@BXWJ%o{$u~R6OB@1iH)(uKW zvT%*2=P!)4$H~$-^dKfUbP?+kyzMX1Zb?X9u}rV=9aEfM($%8lbvs#tdnR&QyTyU0 zG+J1u-W{$Oak+d7}lFn!3OfZk9&bd+M~ zuC(4dp4}C28p@EWm;)^_6k6qu*;*Pr#K9QF)aUk4`QE;dyW%yRwI2nj+T-i|(vx?M zb$+V09a=BM!{RNd0hkMgjct<9o=&G z()LP$jicfA=f4^Q&=#JrY8uV!bIN6$&o@57$eMg)z7M7e@3A)YM3KH>Ao1?} z#7+P~wNhbbR(@r}eqbPxS?&u*aAC!z1hU;$>BeQBxUhiM|G)Rn@zt( ztC~A6hOR}FHgN7KIV^Y#)cU<0ST~2e&FkHlwqIbOcv*cJjr5OnhcLCF5HlVHgEsW+ zTL$-x^(~+~FXjsKan_=CsI~Ur$7!?E`oS#t%#W|xVvk{i7&YC`z(}{4Zh8jQ?uY@(Ow+pWw@Bo1R=IP zt1hZsuY0uL6t}T55jpj!j%kPyHN8{lAc)+Epswapif4^mo=Jc>aO)uICYU5lF3m0L zlUmXZWz1f)sJ_C#bQt5lH`N?qSp{Vgc2|#5*r0O~b%=u(n7`ofX3yLmV~YHhbkeN} z%vJ`u$2(UtYt7=gwI!AwG)9MC>=xK7G!y&IX8JcPKm+gUFUBu=Fv3`9#V4!7yKnCm z>)Qd&-g#;G!db~s`ww0o{d%mjtY zz<{#6t6kOwVcJ&95Vk}x3{-&Pulh+?CP2h4gez{V?JS|3xNdqCSQdaDzB1L*sKD#5 zr9c)76o|L=G$;(=sh(=LPpA8cal^wvQ-r zAZ^gAv;SBE6%Swg{95sQ`@}t%->oS{TIH@`j#gOy#yI1Db2`2TowLxpU!BkT0gC%dgVAI^;hKFiQN2jik!o#imA9a$x7^}=cy>Xx{Odb$oC9ggiUGc4P?0#3;of! zsl4}&S^Wrx`H))!RP1Z$48)UfFgMC)Ccuwrh4RGhXC@i6)kydAjz zAxMLhrF`YI$RK&6ICc3c=~!r?o|JoB)qn?IDhOEVnnLilrYQ>xUx%17(a=d5w`s`K zGsKj#c@no(SI7pEMB3CDE!K6gg^hGWLFdB6DMVh-lJp>N5|*~7XKgLGVwp|epl@$Z zY%7XSU$Lfj$EZ!F3|KZn*;az>)9QvMxafolKd@!$(e{p!KTLH}YvDTy7r8$C8tyBA zeTI5VnIECg|iSa&q?B;mK;JCo+Df z{^J!Rf9q)*zTW_Izx(n*SZ;W3jQd{bbyMuhX0_OydTcjAP>S9pscNb{^SXk9FT|1S z8>cFWO1Exo9+cU`{_8jOjnG6Pc?wY*t-ZI=#f8QFwR$TWdt{4__k;%*j&HqP)1^(i z`~*1m5_lG-q@)DUz`XiBqHlWZp^%2MuIM}$6UalPGFnE>R?uoyWnh9#@^;U&N~GjJ z4tCI3C_~AN=+jQ+D!7s;!=d=Sa$-JAvC+|Zw&!!se6=C3BDAH5=Uxc<$!=6!^d-|q z^2N*#RK6))Qxq%fe9gFMLfrmb+o!^vf28j5o}3cyAIyWLsi!Gy7>7ut*X430Y3`H< zau!Rt9~g|-+V#v;7aK8`MgMF9fW+VUIN@d z!E)Xk=3RpUR+2l_LXZGDdRBt8pZkSGleU4wG}BToHyS!XvEh(R>8OdKSo9z3!{Li4sCWG`wyO+s^Fu?pK|D@j?fY1W+e8y+M2eWcr z!X04|tQa8AT09JdVnEu6VbuRkJNvJ}?*9mF2gDZ#WTuDZrk7Y#JU_(`wSneu=%UHtE867SCXz^fbXf#XFfF(%`qhX1}0~CQZ;& zCyuu$;*1qRGT;13^8VdPZ2L=iZR-)~-0+Y*R8wovNixq8n_B7K2$K=_er0}cB<^qy zw#p5CY+$nS<(APy!RcGY!$kN*v&WrPtR~v%kUg-5Nq=IBbAKJCv*CvgpolH4lN)_8u zeLvY$1T9$W(7oovDaJj2^tYxza~r=vesPgH^IrbRrqQLJd}Xeg8@BY7l4j-u+|Y7= z?;Blq($v6{=^TS|cK#fyuhf`OAo?PQaXh5= zg6=-fdY5mG5`8c`nMzgOdbf(tDv4FiGp5oy+F+^gBTb`LP{;U3zb;A;B|d7YhAnHp zwKjjSWgI@%T}woNoX&jMe+zn&x9vC}tkDrkx>DH=uylSj&`}2cr%|xqa4(7`RBVN< zBsA8>$;8IY6xI7!=B3LhRbvW&#=GxiqTMP3Doa3vp0E$pq5_X}Ie0E{87ItR!MbU` zosPnWpGw3Japi}r7Y*eCkS%~X`?HGUoAk7IZr=5XBoN!XCGY&oI~uj2+PmM$E^YHh zef=h~?A?BrcT#a$_-Y-z?0f2`l>#s5#z?SBZwTY(%nk5o%*x~2fc;hX+3!#?#97+R z*n7v##e*Qj>`eUAV8CNBo}lPgeFF*PwyRuGxBB5kqwh^33H+xp#yJNUR?3He`{8>K zP+X;3Le<8-Zy$cCQ4YYeLuf=dqpXi-f+ONSi@J>+P9hv+1_~PC>gLby!3Rn@L(U9F}GF3I=JfsZE)9;J=q z!*7sS?^xb%>pL{PP#k1g4eDZjw}>Cvgn4x*@W6w_4Bbn?z`~|BbnOUbCiyXU{a-^FAuevsky%{9 z7mEDao7CE){l|neFD*#(kB&=fn0DGM=ZVw4Gs*;C$qa@E2Y#Rke?Vc;@IY&}7tDDT z_Wndd{PUd(CUR!c^WL-8UQO(sAL!y7jX6)ZDZJ<;rZ+QTg5x2V4ec9_bxu=W(6$70 zt$;F9RJ@4Tp@yJw%Qj0xHUud%#8RK8+d5j_u_$u2CDjtCQqouA>EU;lOSbdMnEllm z{upaa9`x#KnS}0M#xNsb=Hge5q#x+`L{u&#vSv#dT|?Iq=E+bq=uei`4O%NV(XEFE~o5OOmoLnbNPr4`gwks{4*iC?+e415_IXJJ3i#SU~iei!220L~KwDx)~-sA}6 zT0{9mmpcXsLV<~HltzDV58wG>bq~=Un@^W!=Z{@i-+cx<;DDs~#|Fq1(Tn@lt_4|Q zGcl;xPmecC3~*g;=ZAP4#*HK@6B*c{1hC&5GUqB3ay~UA-R^s8wm(a2r7lUvof*wd zyD7WqHsx8hy|v54a&SYSC+h0$+4jVrPd?O z*HmY$=Pw!RX&Z>y%mSTSCw?2}u>Cixm-@=XJaF+|zkMBVosQ|(dFJX=B;j*#<6=XK z7|lxD^h$S6Y^2j&zo;WwlJrrF;UV|26$IB0seO-oj_q%3HuoL^2;AWVKIy&8f2 z^vRKHBfi|s&S@~e-X(FLw+^T4)}xY{P9K<_ZHd-uZd%N8#ZtIeTZ%_|daw>FJYuqL z#X|>h(11Dp|8I`60l4X_L1J9fb1o8@vSW4jfc(ryjY+%pef|Mo zE^Pg6f_Bn*fZEXW%%9@#ecv|@p;=rha*Z>8U}B-GgBO9LSuXJHWg zh8u2WBg-8Ll};VJ2kIs=@!$k)>qH~Bv}LYen45gzs|r+!&igV?5U;^9$8Swu>vmRS zo80=f;760}N?p!JM?D=$v7BV>N_!$F=I_hiLF|dbmHqX5E0y2y+>(Jqw&3A!~NH~hIv8UM`PXmFGSIZ$Iw~SG+D}@ zvlqTkL;q2jcKv)an_iq%)W6YLqG<6&GhD91%y5Wd|7Ke6GJ6hn>wRH~<;Seg6Q^@w zMdH?x)P)H(lc$c|N8M6GZw178)ubQ@#eXAl=S6`;vq_8*dD%d0@0^~@p(!0YanD6icFsDXdTprrv*cG9m2DclWQ+R2n|t@pP{0G(71~A;4e? z?)_T6L?m<)lHFv_i#0zw7Y3UBpxy*!&qI2d1(xlrM7 z=Ll&R5lj=Ei4_asXbKV-us>#emnq+p>LwQ>#pBew{M%x@Gx2QbCA3d zTDQ9HBvIP_ZmetTK%1B@L`6BN0eZ*1a`%Y*%UvBxxM3OP&yX)w1nVy$q=R>U>@QTc z(@EDpiv+x)p+00baoI8OUsaBN`;=eGxq8|$)dMxCK`Llu8~cQQuXvyzI;+o({ra+o zM&-6@p#HO}?sQEHkmu_W&~x{M8?lwo4c4nDVS+H2MVeQDPzuXKQE1*W$n0WG~g9(M1$HpKH(IThp z^kjs*gy}P?-Q+sD{ln--aC+V;xa-cW>S?4pqn3mh@xD^ED|5ZFrXh{^rI)GYobUN| zZfp!ji+XL5o6t}~d0!b~3WY=WI2^jl!%c%4y^Fv&Iox|tYgMhdw) z4ZH#g%%KjbZ(ZBROmQCWW&b^Qz<)9lB!W~4C#^ao!kNW2(cDS`c@3UcGdsVt8&CMx zpAk^IhNk1UB0nETbHD==JB?(^(0=}KNVyt2U7)%-hxjW1*MhX&yFW+G38wOXac~9F zctAc_7OPp%J^H+MO(9YEr*VK=uA<3Nm0#%Xw?wy19Yk|0bkH|vp|iHUC`dr zCNL7nJS)XU(NAy8fdWvB>VA91r1UnqJZriJrwQZcJGb>SWozT5J^LFvkmHO!rAz5; z!@iOtZ8Y`!n&It!_MIci70r0dghW=1jtsgr`7S*)2=UoF zL|HgiD7Q6fBge#raITnM?{Epbmp^%2vCW)O>~n*Y{}z5ngkR8zD=056Kw^cbLO-9h z#2v)XWMS;ZaT%YIIbmIuN3tvuy&g*su}8N@^_-X#e{{`*e>MkfyiaO}5bUh2$0J2P zp8eA?S`94Q(r|x57dv9Nlhilqbf+`xG&F@WZ>`XQ{A+r5OY8kZO=FJtt+rY5@UfvD z3e*pGwp$RoswMr$((tbIZzYpV-7NWP(b2+7-h%a}|LDHwP>1{4GGwVR_B*aTE;t`k zf03$~L1(XU)?L$30+#4J=DSrG<%cBmALb^JGVbPX$*C}UoOxUFa!oF*x!khkcyG7NOG9b4pdX<9_}($HE~@nISh|&a(f;{+rL?^ux8WV0DsEeoYgB?jA{^ z?pQ=nvTvdp%MVM8!PG3`!IyhamcVP7a8;aHuKGWu_B$_*pgA4Dcf)K8B+&IE04ChS z-s$q*xV6|a_(B=G*22JGZx=>j681vQ)uG+!_1<}7LalTB-lP>5fU9`l>pl~0z4*K) zR8^*|;DeG0h{}p_%gYR7x35TBTTN zOKT_a0iUKL`|#8!`I;2vi?Z*Nun=6YjS26_M8guLPm>+taFsF55oFQaO4Yv<=1bC67z}({DS*da{{XtMDhJA<{{hlV8N0@~&tsUCxI%czHqO?0ju& z!K-I}3*~D)<7()TAEW&nL;D}1?zN!yv>%Plai;a);iT_Rv=O%@n&V8h)=)p*%v#zv)v41ol}z z3JKI>7V0eWHU@VcDHp`sa3D%Q!vWCgy?kTTO5L3qM^CHh5#9HrRCGt{aTp{gN257OPf6>9AmxXd(7>qa z@zLufCQ#SgdRw3#!ZB!)s?nn-66dd9D-T|M$afrVI>rWAI`c2S-jX$q!fa(?H^q>u zCck1J2V_h}J5@!FeKT3IYXRWF1Y)6S=DV%!+Ey<$3vh{y;^AmzRKS`3sG%K%7R%aY zn*vq7;X>zN?&2y+v+6BVV0f{2vM}4%^zXK*dFQ*4fuzE3rdASx_b^bOC@-0s5@%Q1 zv4_khqAZndDLzvfjj%`cnTC$75o6UC_A<1;G@@t^eOg?k+|{&Gzlu*{nEDgnKjtzN z%(M?a64R@vS_|M?uh`?6+uSYGqs=qdeuq*EGeG)lC0o-iO#3#MwTGx{*;r_-3yLQ} zGYnQ)5HojU`H(7Sw2~cCV|L*h_#Ed^(Y_R(V|@_ z?@rSUtWI@K0jT42%!z2NrqpGLZUmA?zchJo>IyrV+b&|}`g3fr_M2G*H*suU|Ixz9 zNd1k`qV;eNeldjf$nmEDr@XmJ5n}KTA3t_Sz7`JcBU+P}Kef$14Hm_VRjBgi6moK= zu});x@viz03%mRFg!t<2!Rw_pDxgy>57P_xR}oaHY~&s2!wmuOGv@2Xh`->Kc) z^rH%hulH$*L25a#tF#Nz)b1I&m<+BpGY%L)P1`g1PJ*tu56pawg!_lDl2^{D3~W2n z^18e3>`8BB0+e#Do-ka`$#^K3{O3U!WVG2k-1aDwthE5&xpr_b-aeY=VU`64O(gYu z(A15li&n25*4yxI0&(JkBGOE3g$EcvJ@JB*;pnS!gJCDG!V z;pG$U53X{+T{*e#5e@6g_8xha!|C)(0O@4D)jPLgYyL^$%%af5k+s%(`>cN*0z!f! z`%H`#`)3gaj2I=nRfZ(zU}djfHHkmipDT`p<^}d9Xnog^R?TEd&>4GNFZN#JU8ZHc zw`X6k%OK`q$}Z$^>i&BV?o}Bk`9H8hMpKR_NZ%V@7;2uL*YNY|G{|@b z1Wb)!tXmC$UCa{KVWDRv*j~KWzCvrKxOYZW8@~_-^0zsqBE1oM_wa`^Z^ILJndp|u zcexT;Iv^@A;)EtV>L4tBB=S;hlQOtF@D-h7_d`HX$=T|@Bg$^wnQSC3MPCwx=^xd~ z(vsk(Q|TQ=@xwlNwx|jUaF}%K2f7V^Cv_LouDMsBo)Y{lRNB54W}%9LI|xWCa0+@* z+Q!zpX5XeV-cu*i+*F1Jg#|=LWw!DVZkV~ND`d`I4kqy}O^>C3kgpE5A6a>EcGA;R zX!Qi_t?gd!PGF?KiCX{03iqERYfn1jYQIwSmv2tV(8sl_UhV`}V$QRw|J~11?K|7> zjs4B*`l)N8q4#el;6@})G^!p$Zc(%v_z)gvXH+;H{OT0)!Qta&d#@)a`6Hu^mT-Ad znW=@aV*@{4Zvm3SsCEZgztNmPd`^?BjgF0Cd>P& zF1{ftTQ7@M1^85o;Fz$)vpGS7#8YHU8CB5pDTk2b zlk>)A-pfR)l1`2NZSduSaaQ!a?YPaLm6Yml7DR2`#vP*p&Z3hz7!!2^P`BgXuP*g# z6f(OoMc#sVUf-H=V`Nz;RL9d+*}e4Fke=%B$4iDBTBZck@Pxj6l@$ZC5wdfqum@2s zus*U!zpiex#6WLhrg@~hUXwW-q-DjaE~S$)1teG(h$gAdro*TIIYKO6zN9*z1e{1tl{l?Dhj4A?5Y?i}6AJW_(>DZF{t$^@|^HXMO9J9lL#4*zmCbIYvm=$yV8tE0xe=V?dVCiasn+y?nv^n5v_5F{$ z`2RU=69}xa3`l}|Od{7In*kR6XbtT?Ew54O=gP}3F0R=4)>q!3wHZwYr;FMtCA1K% zO@Pb;i8m6u^{B#@1z!&0Hf}sD*XxzG*NXjRReup5surL{Q83eEEOC4b^o63~22fo3 zK5$tyH1WmPDC*a}t`gUk&xUIdT28<&dcV z77A1N;dNI0dotEei!)mD78phgPC7V!vFn31DF?!bae+P4EBZ)CTw@c#vYwcRB6B9B zH+5bM0!vUAlHk;uH6dNwOXPsh1Y(*yq}%K}+r1-p*{vYZ;S>D7_}UllZN;4Rrl=;4 zd}hse<@%bUPbv?{W-9rKjtmyT3ldGO68XD8doTJArqWxcF^{<$7u`E>Ol^t*E6kHFuYxeWhvFca?v`W?XQk@>eL+5{op?9nx@j6R) zDB-0e%?ok57|qjlVCH3Md@*6QlB!ndf!FEPn0YL&bY`8JSI^;X(xGG&B?#9H*Pk#& zi5E@P_9g-2Y1p)4(pfWo?bF7GsjcFl$-m8;pM#Y7OL}Iwx2Ps$?DH$=5El~>^{$se$#=BcG>PP zQ{{nFG5q_XcDv+C3U>EA&Ljr&q@2n7+p>Gj&v0C@!Ux9KH# zy8U-1TJOU=giwpW@A=Djb|-R{Mu~W9-Ntn=o}PXT@*ZbN=kSffExJ;;uojov*f_w5 z%#jMT;*+tXbZeE&D*HEaw?xsTa;8aNu%PqX%O1X!B(jlir4VsS8N}I~Q<33zq}Y)V zAZZ)cTKWU36b&EC47 zz0-@KrIO>obzf2WziFcAFmMUz>1&Odk4Xq9ZaX^Yg90DDEA}cGADK_6&MKG?i=2RD z29lOxVHB1zcQSpq*qTZzzj9j&NNnmx^!{mk@eZ*y1!&(4#tyV?Zce+U;C>`HUsa?U z#**DA#SRbu>pvYYXR(pNArgK)&h|knnq~;Uz)qQ1+S`jQ{dW>O|FtFjkB2Y5eIcy$ z3HAY0w|cw!0qcBeTS;??7&T&@Z<~?G{uIHqEFF|cJs?>i?JH%tmVVoNpErwSFU zpg)yHYei^W4`$t%O5bCZR*AC}dcolf2Ai&Qp>sn~3GbNXQA64q8ZzR8DZRZ3U^qh| z!)0V_1HZ3eFg|54}kpu>@CKr$GHlLe1vCM@CL2>?9CeovVuxxiKI>{6j(G zMiaYU-xS(A0hBKrFwv4&S(n+tw0Psvt*v*AE6nqak9nR;wvR-Sss^Frya(ymi zer%|`MqIhq@`wpLfRar_x`)7uYvYO~u7vI}5Jov2+uw}R=XS$gA`TB1S4qK;+pFLC z-#EEb4`{o0m@6;FV#4vqzS=)eOoAwjaOpvAX!Cysko6%SjP`1HLvRW+OaxqXORrXh68bz$e$| z-U>0?`3-ALt7-JEKEWHF;UG=j1B>>YKmX4y0P1&l)m-3jOk~GqR`#GpJatb`qi70m z1fEs^Lq4P)m|)H%$+-YIBVAv~VF)I$hs^$zvJU-T}sM*bSFy7P$50e3w|7W}S%#995$ z8HlYiy6tbAX`=KiqkVBb;UQg|>RSPfgyvKQm3nLMSr#Cu6Cob-XxK0qr}|kOEca{STs`unQ84lSng4103Fq4D~9?&l2cWwDSMMYruMol!Bb+ za6#VEEnqa5{NhuYbT5jDC1FypmtB-%Um};m7bO1sNGsz@LR2>7C$Va9@V1I*@@lL` zVIbxXyEtmoIa%=16kQo`l;(Y^(GmgZWnW>D3Ndnpx{pbHqNt4PP^*@5#o{51ygzTS z?Wdj|s}2cyt@W(&hDyfzpf4;F%Q)Vy-liJQKzFWJwk@GdG=rwQ=U5T@9mVZv9!Jt>;7SR#d&xvt@pw6vQhs>_N$JUEsWW%>z zHDm(bK_q(CU^2e@n>MG}!1(ZT=yb1$(BkeN;VcDvv@qyw#5dmcB^V`Dtk|2Wxa6Z= zzexopmA3FMFF)79^#dS}8b;qP_8L$&9*5>U^Mn^12!Z{n4G&eg18s)JZoY_QOgW|JwAdaD6%NFK#mQR;iSYQksc!Hesi(S1h1y z|Xt5jFplbHbnHXu#!aGh1RCUlvYjHSu# ziBONt&ZaLKn#63NTV{x$!(|$R|0`&A*7?q2>E{lUo{^^tbjLTW3122F9>jc?9uiQl z|GIfkiHG@@-p3`3L~OBlJF6VfPGV#6bdvH0hEStp292V)=UpF7h8SM@Xm1&5{84e_ ztj%9-BNB{rcr_qvAU&xE>HpGR!X9xZVUo+C!jt^Lrh>J4ZlU0H*@DSoWKa&PGiPcekLT&0qIXNlPc~fc7eCn?w%3puSAVF~F z2w1P1bdThxUPPefq!C$t)i1YY_q_iamgJ*|+HLNh|6keN{}&VZKhnc>LgGbzJt<2H z(hTbdPTuf3@*U))8Yo4Y3a3i)mPbO&n`PGS&TV8ete`)`fsb7O*n55kU&0GK>)j)_ zCz~f^yb1@!<#_j8e-;PPuEf+e+D!r3fi!9Q@T{|6fDLZ#BCUzSm zDpNx6|AMyCmbfmc3^9l>eVWX0y`F|AbIZ~uI>}ka!WOgBJNkBA`kg(wSF9$GG|_Cn z6iyn$;lqY?;Ks#tO)QhFWV7G7#C#hq9m!O$5W9SoC8Ygem5}lLNyw7S#7iDE`mO#^ zb>2UB;Puo_ezFt=KFQaN^Y(-8O!ej6xj7k3tt*y24|V#zD=d6EA&dp)xUTsnHB4NX z%PMBXpk*s6Jmkp?*$au1#-F7EA8VzQf_y6I#}=cl2}QD5>>Tn<&<9{3q9=v%`N>WN zY0kR=x|go=!6JSb@d^Q@miEmYYReoH&H4o;Jy1>VyVFUtCjCy&SckWRc!B*0R!B{+ zj3PlON(MT*xM7+PyO_baGnO!7rpB&qo=&$Z-h0!TS~W38ewV#=2JO@Kra!C}_bpk8 zECxCULA(7^<7zWfncN=zw9O>%c-Avz&c(X_+}5&cW`F~0$eBHnVy>S~qha_h&~mW; zC4Ra)s$7bC&)xKo)ZQN!x(ko%$XWQ7*>gGmq;p#U1u6x)nOG{fn{M;eF3PM&Y_Y zqK3qEA~fD@kPOkLC!B^CD$a-)sG?jSYQwUS(<@G)=A>8?~H0H0ozh$ ztk@Us7aTm!YeJ_+rvZ~3C85$>M;Tw9dGW4%kd1t*Pm3wCAEqjP1R+AgOWhaAmXR|> zZH{p9hjS=HBHZ%c2UB;+eSwP1kkIf;JkH;^pP#C_Ws3u4_GdtBtqyv;hOqMme0J1X z3qr_GjbogNX< z6oja_UgMO^LO9G*09+`t;ow&|;Hfl0PO7jBbToBt zKO|is*}iZgS}yTURA$T6bhHkU@5#ugf)c%NC%DXHbt2E_{5Fp@K%QxQntEt2et*Lm zOI%mmu+1nV3#ijR=;RE$`jD$>wEk&dB7h;nqgzQMb6*AVCaHD(yM>YavB6}o8U426 zMo58WEjmkrfka~O&&ZatcKCPawLiaw%B3d{N?H!oGLCJCQ#6%Bx!9hTT9Xw|qqXS$ z7}l$2$p-5ohui8Jh4%N$!^qu)uS(ZS$~$jg&`>^0-}3BXxc1Ax=Qn}rKU~}HM1pnipl|EBtj0HlmHt>bnd`MFNi+m@kMcyE} z`&xFZwyGX9ZZZufOJ%*2ZBGq3KX2~~!?|t8Ds>)6w;~_Bqu3gwo9(OAwot=+2B{F9 zjX5Ievxlhz&?aq6keU4pgC||0I2BhRnP;J7mo^*~pBR9)kX}ix(T@wOqpe#7S&{Ic zFY8)nD($7rB|&~Us!KjPZI4N|cJAHjYpC6DpwZ^a0thP>Xo3DUs?gXRf6#-PS~8wr z=U}Ph1OoznmSK4HdstpRvH4bLODrmP|Ay2H8JJqJd)Xe>*DUmf}5>1bo1=J!vEszETf{1`Z%wGw1gla-9vW`DIg^!4T69)(j^VjA~AF`beBlC zGYnlr54G%`-FJKTJkP$m{}=z4_nvd_H$J~EdmO)|;KMhLYi)|c_6ih2v(72h z=X>0#7H3~qEgp$b1o?kkRY{Yo_#Qw$em&|f_JEQl?VSJLt_A)?ghfYDFeg3g8iAYv&K6AL~L~;Cqp^kBU;y zn4QumMLp!48rbldL~T=+dxP(|E6b``8!Y4{TV#h_I_);sc>9z@IBI`~J7|S#6$if* z?&IK+{QZx9)xhB+KLRCRI>16z-9*a_x6dh@QB zD*n(f`KIXN=NtL;@BEG!Q}R9g=IXGZKqaPcGjJ3n%_+5c~g$E>jPwq^J#;c#v` zRR`zD%3dt2@NGqtIi?3yXr$Jn@9*(U5<+o5Ll~Js1KB8oFYxLSF6)WaH6rG{SyLRL z_&&Q|{?U>lvfcR*92iU#0I@ra0JKHQqaTDM{KKL2)vc&`i*`%+m9~33sJj zBoB037Q_W`KF&GV$-)su1C|{Zw4F3oz=u+#MrY@(wVv5Ot6>Wb1dpS)_f)LyW5vl% zg89I={!pr$glR6^{ve+MGC!lsUgj?;qr7*xXQSB@cP)AUVi^5WN;`Ro+cp>s$dbRzX;F|&8u%qzt#3GKo`VSgDC}xi zFnD$ejQFH0<162zVnhx&6KHr+ zK`;V3@*b1Y<4d3FX|Bt)GZmift0l+I`}3UBMYPguPU!kn<32S4x+Q;jbd>SC>oZ}e znTyjTFE=r@ZB{1XXp~C8A3EjEdh6hd$_tP0$(J$w!l~)QP#?(mTOI^GANdWhUiH|2 zUuW{C`DwDrfgS;4Cj1=P&Xm#9 zNJ4gP4n9S95_cRmU4-X)9oZQ6tr>2+i2;ho^t@R!MA(?JzjKYr<5h6Czz zBM;tZcS$VeY1lbBy0(z5b@B79@%qF5K5huH+qpjByM)v$k;vXRR%PZ`jS9?}G)9sd zuS93hMB`~2#x4C8qs~5$ci5uNGs%i04*v;b=604#8lDbS% zu})r)?{*>=HJUZ*f${SzhQ7}^eJ&_ksf&1>ylV}k6=?9`tk(G>_(apvi2k$J$8Ymh z4LAMZ4)GtnSto*zdt7T{>rwgjS8Wrk0(GWq_K#&|G;3qtz&vZA`OLF6sXPhVyZ(Vc4*il;tPqs~ zcOs>;NW}+p9HT&u?5jc=^82I?o@>`S!#to9?9;pjCQkk?&IMc+^NtCE4+PUw&dMlY zi{C2+fD95l<>aKQny(ToO@>cIy+!6kNR1;5n(s0*>mDLJkgKxmu<6_}$W8KxHmKt9 z4(t!^D*zD>5j`?rpA?8pW$wAD4^LB##)8 z^#s@Oz~5qF2zRi6F@y4lT${G+o=(4;NbAt=^Jwg1f9&)Y0FA>U zt;T6FJFph}3CE4hDHGdfH>RAAfC9})f_nBujv?fpXgLLB_~yJ3G@&sjgfy$lowId` zdLIaNw&^v=9W>aZB=R^eHI;|rUT(4f(c=g9I(*RLGR7*f=gG4Cylb{($|!vD>TAk0 zxMgSwk16U{SNijb7Ug=<-ouD**$hiF#cK5EXu8(RM{UwrU%+%@%=nO|F)MiKyJq&n z=~@F)je9@q(!6V)7dA=fFRf(OaaO1{Ndf&TzFAH zaAAfxnw^T_K5u{j5ZiotRoM$2_j1M=K)PhKiY7zpR*P+-b=3Up5)HO>vNR(5ScA^*sa;cEbJqY6o=F^1qkS zlH7%GvVxaGD}^@4&?()NoyU(GAlZ)_6+bRHTWNblBR8oMF8+QiL@z4G%&Rlrcj>fu z=P0!KsN)yPCl`idxwn&@3DzL#ItmcdCxuzCsh!lxwy8!}#XqaVw6=%4%o3&U*}7uP za!%hP?0Cxm7S?&|p1Y-GoO}JZ0%98oW8iV{d=R0MR%hhm_x!~(Bq_pJ4p{#9Nwt=j zjgonuUB>YBAj&ZXQ(huP-jvvup`cZ>g`dzmu;@T(8?aYe1Dqam6n~ex0xto@?^YrG zD-<}5qv|vzU;;Z|R<;rnEUK86^#Yq6L^XgVCrQn z;FhKG!|=P0rlj*#F*x57;TI$wCtS&^Y?3m)UKcKQ^+rTr`S(7c;fWXQs2 z*xO2p{N5ihh^lT?(F*SU;ANiPIA5B&t(33;Jzkjk)mDdV6anG_JHKGg%Q%>h!*ze3 za5Fge+uTleqzO^!zu)-V-;b~Kp}Q|fYU822&cWF$gXniUGBbt{qE&C-&(pqDPAb{~ z>?=FSkXImlBg~-js>)+=KJ&orYU=X`=*EvSfLxzbu!cVNE$mvBx^Ruqn)Ayppz#XqhAl?BM# znzhgm;><%8u=}Sh(VNsyAyCSNhKaQ+Sp1&xcTw!i`yN7W`vt#Yu(C?FK-x)HV*1Nc z7bJZ3joX`8?>@l8r!>&5;NG7jW$}bk9J5#Ir4mMsp}5uG=88CZG9KSAA=S5{tz6)@ zDdKT<-u03lE8!B0)T48DT@-kM)s#C=~^a(S;oKyOBLigI0CwNj57))>)HopIIJ z%m8-CQ%%K|!;s5RhRNp?PXWDa&C=Y%)G3qTOJs9jf{K58n}0UkUV9a@q--WdYVp=f zGyaN})xqS(OhVV9Tc;Yb|1Lv3OF6)u1W2PonLQ*|d6GtZs#d$GjVD}NFdJL^E3@9S ziy6hb?RMTv)nO5zwPK;U7H=kQVVoe=+|z~j{Iywa)1^&`wF7M*(>IAjJvw23x$7Rn zbFE93|2`QI^3VJ^g=za3vpARnIA?~Wq!eR`!{S0!ZUpuK*%`j(h;&51jH$jzJbq@y z=1Or&fvqBaeW7|>{^7iq*4RUBh^gz@UhADU?-3#;0g_al1#Tt3PAp#8St)m1;@v`& zA%_XqBiN9JLg-*`z|lbPaH$|bN%mjtT_T}r<1r;%D00x6d#~_%mGavF}2YDt#*1n}iFxugc#GeQ=5d|R&O9@DJ7lUFNZHYrbAv`&WDrEBW%^SHBk{NWE7 z9MSfpoRTpH6AKmZx#0lc3T}{%t84C<#3$tOrirAYF$YGwNd1-0mO{(_3Ae|${L?!~ zI~IL!q(^D(P~2XORR~P+yW2GfMN4?_n6m~SEbuW{{tFW0=-34G#B{b+P9=v|#+ zq=&u9>Y?iw4WB+RPk`?To)KhCI=WISFUIXG%*29LTa78nE6$oNgFJvGrir}BJi8`6 zYwDG=`KEnLe#TiIfKVW$oTTfggdSVWr%aW8G}u759icvK99ua_JjE2aR%A@vcD8bk z5@9n;^P)RC)A1y}I4{y(WLJAWpZnP>VMKfay~RoUPV#rl#dKL)m2swX+(yi(}fFvxyeY&Ep>Z}5F}DwmGQUj8H9aNEE%#X1@aUp2X+Sx~9U zfO=fqUca2@#o1(R+S3q~u{(Tv+K*M^iYJ1vc6P+Kl%)S>LM7PCKzRmatA;dvQ9AXx zR+D-pyRF5zKyBXZPorhU^@FFnNWF#AZ@kD~dKsb1W|W$X0_JKZl4A8F9P<0H+y9*F z`@coNH9XXzHwqe`jlMo=8tJdO777?rGGYRu>$$@;2bT<_x0 zWF;v)KJiCD%M@N%wOCA*hfCI!0=a#FWi5rOUa@s^f^=TRx^07k8SA%%D(QH$elvdTAE|%G;{H(CP1Hwr2Pgno3 zz0mpNm=te=Sf%~lO~o^ZjAQdJ4PVBV#O=s$!~Xj$OSaY&8!dxPE*u@Rw=yxArE5w$ zYvT(46jn{{EKe&K)67;Py$4f%s(0Q|tl87n6t1DVX=witB_rn|A77s(6no{)cF!L$dT^zbePH*IB*Sip(bE4|c#kVRT6DsEb>aY$^mQBA z?;4*qkR*~?wVtD(F7YIvOm|uUi4-ckWXo%}f_1Ss$c+ zbD5sY|_ z&baZqJ{7#(o8KEOze%gERA19rY@RdUbL~;nceL11*=a@JD5&x{8-BLHFOT{i9-`P&ZEMr>c@~;oM1CTuz8)j2 z-K2S2Z3>rgxi8c-T2!ji$!+9XkC5pQU0jafLa0yqzd`-A6;U-BtbjiYH3MOu)H!C? zy?f@-a(d_Q04FgWdOS9-cYE*ttu8!XPNvix{UmA_A#C<)-oNXu2+01T4WO3kCleQ+ z0n8_?#~ck9udjRr-TNL|+;10dM#(rQG`4xxghV#@ChBTXY)_t16;T<%ajkFo+hX~P z1|XdSxdQtxlU}R0D%HA6d+>}P5)+&#&Xuf$3 zEzhF(tHZX0p2+d4*HrHbqOnkGM*^)KTboraS2K*OjTQn%f@?)=kNQM1cO-m&+2W?~6THv)+UdO-dJaERLE#6o$WOgk@xzg%f$5nf zT197k{&Y;%_VcF+U6Pv_W#TLk%86dJiXcl|&la{`kd*Hp-#2>WcvW+yx3zn(PjT%o z?kt~Fh$H%@U)Ow|kekP`^NoDk+Q9pH&?tq|e-ABhc`NGj=8t%+Y0GGYX01AX5YE9L zWM75j;gNK}!%Q-=agk=t=b@!X-vzVlqQ=>-o8)5G(PzoXYSN_&J450I)%tPtRgj9e z1u24gXaFv1w$)p0O8q1nN1k805B^p}D8qDUMzX>_Bo87`_R|lFBS3L}AX8ep$eu3e ztx{0$dMPJVeXkcINoDWpE`DxKY#>s|x}O)YWs>32qM{qM{#-=hgQxxJ_pPf3y-rZC zs>r`*&QN)$7z^7y@|626IZl%1eSXCV&*O1-dAIO~rBX?%&~0VDXo6?+M;6t4Z-}D`Yb`$6wE0wE)-x=>o9(MAob%XzLKU~EhBl=opKy%fzvUEhr)k5$#f{pI-n?I_F zi8$mFY>_~1=j(n&ZgjZ2mPX>vZc(&D#@4||SJh?|)tme1@{}!b%-y}-KWIB>Sn?g_ zxx~5KxSwDaztv%%keM)RgCC&k7lP4wNQeD(47y{~bHGrk54FX^hBwsZ<6t|?BJ5ZovG z876nh*y);q=n$XzXfWgOcG?}0CC*}V05aqSok70QyFi{TW4KIwI;}Zv4F5Q#EMopX zOFld9_a*G(&I>HyMiO*K$u!wxJ0W$~&udc==Nran)AEx*j+AZ6(_6uCivj!duM)b) z?-uQ;CFsIWatfR9DeYPZ{IL8+^#N9*Y5**q!-Da#1Bc8(M_$4J@$It5Q~P!&YN{y@ zIqQo9$e(*x3is)Q`IGkfwg&hvA=r#|l%(g{5#SsML-eoCDSx;MhG zibRL#7*BWevP>q{EJiR>TO)r&jY{2^p!CYl<3u^97@JQ`Ze=Cv% z?>BID*0^od&x~^U?71>rD+K#vGGICXOMw<{2FEboz8cLPO`r)#X-V0{zzMhX_+mEE z>+Lq%0W@9XT!}n$!fAnbOGzD<&yxDbUXKgqr3Hx<19aziU zN=7=pJ!P!Rz_zB~iYDMSY+|nd^f$f3v}w5G=T=QKQ@#Dy5bmT+g;xC(VbcS&ICdT~ z?6x8tV?QSi{bszlOdy}D;AkJAKQ7bIKzIPrdeHjAGfyPc&8j87ubG>R@;)S-$ET+v z>j2f5^V5EGQfl>^*aUZF(u6Vi3;tJ9RVebcZ=}O@cGO*87e(c~uUMV?93A8d)mF>- zPIN@($0Qgp_me+up3bQ^qi;necbT}DV?qBz(aRqdkPde`xvMLCQj4rpHC>1t<+Jmb5r zK)g2f$sgFhA{E%`uvubzCkBSN%0N+KIcL*B& z*bTrL3o%jbnB(Jdkp6!D_ zJwxekDOX%5W|q(4?17nz+j(@}7fUu_yG}^|iX;f|74n+aoYTlEZuwAnrs+?vt*h;Z zor1kkA%l6`9D{oj9t~2xl zYEtvY%SdhI_%@L|7*$bIx#kg{!OW9vfzz-V<4;W0@l>>5`WlQ5<&!g7Y1AhJ0OR`Y z`3C#?VpOXGhp`FZiy=S22oXR@g>yDSO>smJAYp&T%R|$XxT15v?QxQDq6XF{o0H#X z2@Y?oDh^=;4%_)z8+ian26 zmC0Hjnr{_XfyFPSzzO>L#vb#az~4?D|G?O2A^qIsPLuWecC(n;5T?i)_NLqyAwb@g z(R;e_h0hJ69c$cjejhH`Pg66vUc8@|Q<-Uq0=77rIBC;d4-ugp;8n;FP#^Gu*^f0W z&kHCdm^)vaFBZQ#3YL>Jj=e^FiUCU;_@)k;yKMF!^E?u--4e6f9KhF_{_qcRn_blw zdZW&jR{``kV!^fq&dI=Fs>W;n`JljfTN$NtzV#wvZoLxDiGwlR(S zw_QeOy+5x%^vo`hEwhaU%?rs1I-GZNUv8hs1qxbofloU#9HY|q$fqJr@! zRmTnhkKVNZ)bV$xi(r}Q+m@TxVN7U^&kp<(WAN=Xt9zrysyW%V0o1K4C>~3UhVVv| zg$#;{@oSW)#k#m>IbFj#DDnE-^RkJSOo5n-(cp)KeI`9On%qwM8yPcs!XLYJQq3L& zSaR5k?aFg2DA&0tDSYbmKCrJ;01x7(iyr7l%qlrt(6zCeYGfT6fBU4@`?SU;S@Fib z))RyJ(4O~AE~_DVz`qEP59CeenPT?rNQp4jd!xG1A8bDDoy4uejQF-Se4i~PvJAR_ zGtG2V#LRw*x+#{U(jWKVppo8*Li5%1d)U@>TZ#7*9yG?~yh-Ac@?9CSe~g&|muG(k z+MAo=UE`HdY~OD2_vTC8^`82O>R5GU)t=7aJ)H*p4xbT{#6^f+t=Ic!Qd;SG2b9a< zuA6MPMs+r_$%{JJf+rov>(u~!Sz~jUp)O;AD(Nt0@;o+8yQIr5P{>0Z=yNnOFC#n{ z@JfK7MLO|rTy+H@l3_{?fI6IpxVTW9LloAwb{7g;EOnr_48fjc>0I7I_av%8tvstw zX_+Y8!PQWd&p77?$ko0j`;)bz&qcpZl=mQ1ptXPJtKzQ7Bs)K0yU zEstUOr?9%K66W3Bh4wojlQ+X}%So+~t{HD-lnCECDIkd9a*(n-xfzLJ40)eRI@k%o z{Q^XrzH_G*6_@`^Qj?8*aj9abK+6OYA^7!ME%TZtCGu++cDpCgYHhwrO239$XARmF z@mjI$@>DLLH%f1NJcu9g0eSYi)f4QE&LL(N#g^aWKeGvu;M{ix_Zy37b)~*Gp3SyC zwdbYyq%b9L=4355;PinTsh0va={u03j5TVW&E~GT)xn{L6J)-@^R{o4j!W(!*zUPF z^J^NftwEO#JoLp``zC~)y^0LRA+ zU%C><;|1D{2`wNh`VmXZ^Xdd|yRo+9LJDOUI$p%lP*ZD=z4Rez5|4;MU2zz+gjy~x zt9_Aj?kpQurj`1}M(bq2W#k6`Y7I0Tbm7Kji=K_Ztnvgfb<3>@>KslR_^E6Wl$}mb zvBcE*%H;mI3)aZRmq`)&vei{y`52I(-N}2?`Xm)wa7{TJ%+YAN$T}roLn>zKYk$)P zm+0`Vt-SqQjs2DK86O4e=TRaY6aP5c3A=x}Wa4bb{Yk;_dU~m?`G}!XF!8KGc#sR4 zEf7e!dEAntpLQs>L!oVlrrOP~UH(bF)7hD*S?b+7-D{??>K^2Vcqe{LL4I?=I-UGZ zzZcJ1;!E48Qr8HoW=t0-92j{S2XfV5MAV=h+eiMR`-8#$>OWgf@n}ts$0(lPt_H_u61UU+9j%e^w&;C ztuKsgkY&!^LEY;qUWvcD)XufJ#}2GPhArw_sDC?$nBEsDh9?GteT$P5>qCs+dvnXB zdB{Ghr+PvX1CWnm>U@F9=c7yTmlQo*i!iV4+CQ>S1%t1(W1m1_6t?`Pv4*!7T}JMU zW7^{PUM}-9Ox)B1^$uInjrO|5b6<<*(BEX|fN868~rq-K8zlQ`dvs}=t| zN_Y0+8Z>dUpING*5j#`5MLIk#5LWr?X}Kd`fAm{?vAz)XmD`}&R7{5rB@6NBB$7Z? z5(w!)>w-df=wCr>5O@7$E=yt=DOW#qD88at}cxz301fPq&s4fxv9*$KDp;1 z0vVT#n_h{X5U z8rTSTy>S_!P>&ht5l`8ba+$7FlAOi-FtP4;9D^&Dkvq2ZLq}Pd^QH@ zK73(j#Sp$ePvk9nCCuE~f@yb{zTtEZww$e~43+;$cIfbHJp)PM%-5VDBS;I2cyY7I zq7gNYsj|fPGp`}k>~eq*`-|p%8*dH=*%v27#oLO|f3bgM0QM@wVlQ=LvH87>wofg~^65^1V9}&C=I1b4C zlD&(mwj(OH^)TS`!*udGavry%-5H1ZB+Fg7Ivw57I&8uZQsJO{I7YSY4Kxq_M$`MF z(#-ep?||d-e{s(LVBFVYq@G+|dTaxfc;ams0<2@)U78b6_`9sY6FeC}i&W;7G~aAl z&d-U|hdKDiVi(;#I(hQ{22~#~@8(aCiC&RB>?7QaY+UKNg`V3m!036o!0Jk3wHDch z5VcL!O~=^Ct0MXD@wyyK1()2Bw+Sac@yS+Be?FsfJPf)TUN(F|vCt}k9qiXBK0Qn~ zedmNV=yUxhdPsC7%gdHn9nByg88hs(y{QSfk-e%ea==hIL?$_`~E z&}&g3`G%E)H>eM?FTIbVx!sglT0Z+=@PD03Gq+IH|oJs)pXuHwMg8$#5 zKr7nm$K&zZbKTPD7M{FdO@@$TJm<_Aw;*Z(B2v_6*OiCZ4!&tXzOa|+eu`7Ky_DAJ z{KBTMA@oZ%Y&m)|&6cG?>U4%prYseo2-3`Sw_h|*JcEpK@Dri&CgJb!*K+f1w+L_f zJRg^7YDA~MRRNctD45vYmCW;>gL-kvnSQVM@_RZSw=yzqcK!r80*z z`;wOrNQ-Y|eF?o!H~F`eq+|{TSbiZ!=O_o_M=0oV}a~8(T3*q5AiPl z<=L0~@NXq|bmftOwekZu2>7s#HB6X(Qu_qkz{|exNLOjWi%c${CD}jc^O`h5S4bIe zfVnev+V1HLLR@2IO8W*0skah>Db|qpTh1;$ux2*2G_i_Xq)QI0!`}77>$-`W;GbSTn{+R1x&6xc9eGxVl@Z5+6wQEep>={%()%UJ1-)ZIuLLFW ziUk;7z|JS8psRmz-V3<~eujUsY{7aCRIhNg#W>gSEc1ny{*R{OHYp*rDf4bGwgM zQ>*5fV@%~6|FTj}!__kwsJWvK&X_b3VBvD%S`)JbJuX{Dm7}+~Neu5nPHNVduo5W@ zEIaUy!;M>+ORe>p=VvV*aN5fTnxE&m|8@`TG!FQ8?e$&P zykM^p?)^{Y;u2hapL+W~Wg^NS@2O^NFg*mhSqx~6a&~SJAoh@`(#tM}D?T87lhh26(xQXMT78AZPi)1xq6-tgKssYF~HT4h^m6 z1@lc-JYm|g+j%MxHB>4flu(uUMN^;={Yio1UHfY?%Bkr0I*(c1*mh-Q^?g0PHMckl zoaTk6uSYqU(`8>f`(7x$%NxXuOVz<#oB5S8A-qClao?7)jP|xbV2w(^P)4Z%QO;DDgNj zsqLg>rT)2tCDW1?@5Kb3xFFj?v?h4HQ{PGJ`ie?}ZhAcmYUEO{jkX=yMXALdxCTlH z;vSo4`c&>0c!`q*guz#liNFJp>_rPr+AVpIh@g{ zUI9W<0XdzG@-J7eRga-S??l_$&&tT@Xtn788%lD&Dj=KA=GpM~0aKY~jBb*h`dg=j z9yokfCB^@21RdG8UKE2qc2TRsDDUTSU!|XmWOXAWhx}DY&>T4xesCy*rg+zN=}qVy zwfyit;^$vE6P{GPlny#)mopnY#6}Y77$(V(GVKh#)mSMQKfAri2KagK5pntdyjUbn zn)9*O%uc=z9?nW%O^GZ%&u%)q2zY#4f4U2J8b=jv`H%1R|ML|zv(YzlOMZI+FYK99A zZMJxMpGPT;e|f3m5AN**+Vk9i8if!&OWgiI$xi>V3{dL3MB1j7V4lp&2gUBCT2>!eYdGrV!>^4MALY7;l6gRIFyumJ+neB zS*O*;cBwArh(1q|u~}1gf{f}oXp`Gm@TGuOV@^ho7QRNM49-wK^?G4Iem@)#PNN+z z%`WzownV0;!iSp_pw^5Wd?_G*w$E&Ckn3qY zc<2_ia$gdyf5$~k&1{7K#c>@@mR6}#)sLHEnC00;Ek7;Evm((`+hSBnR@9VgoT{-!Ikqtf5y_aaOOhc~>e}XMP?B2Z1yHKBc|F4c=ov zj+u}NQ*ny7z=t#7Qj4FQ>XkTWud-KoUOwb3xsEELwM}78{1pDnWf~(+O!5)ATr08m z=EYc?^FIwLzfNJrgW2d`uaBf3RiS?4Rs^N1Rs=uZdVUW|HvogjC+$5)@xuGq7xvJK zGX>efdkN$6*cxJAIsL6EW{qW^a)-FSqa|7KDHyFS{0f>T46W;Z-RC=TEC=(;z>xIj z>OcdT9UdDp4-(EiZk!Yst7&tTth@LL+}1xhUI4k!I!8SdcD7*mIxCv$gye(9otE|i zmBCG{=G}V`-yEcA-imzZRG)((mA%+FUAk&b^`C*%Ir00N6QM|>667}vP7b(Fv9&Y& zyW7BZ7tasP`+UoQ#Koqr+n(RMgeYt1qW@O5+9nm-@@M9qe~13Kqj&nHu1eixqxp2U zp>OxFLK={}VHeX!ucJPNhkny6RliAMVrMwyM0Hy0G_C(dL@i1;M__ev&v0ZilGtdp zRP)`Nykbwwd!_4&1o)KmAD_uEJnXud&&W*d%klIf)JoNk*8%+l)!BCbkdEAmoi2#g zUSG}~G=bJ1%1%iT)kz>dPMnarxpMNKOL@x{5=fG)*B?(PJPioWg%dg5FGo+7&qc1+eiFV^zowd%5rqqsdaw<*a%)R=b}oYh1SOi}$%p?3a8_vH-M5#64em(+dx zlhC*vh54?Uj~J*_7b^nDCKSWYCkLWnWkku z#xu}mbWobelTX6G7Gw7==W#QQG|j6Jtt%Y|rV>XcVl83oqqaNK$TRGj4qqPmi*AV4 zA~ohNaGqNHYf~R?Cq6QyQyeZSP&iZknN58}S~6bGpn9a){o@!d-3%1de2#I|b53DC zXY|~**K6plr^)9w!-QiXWqN^|9p~fw=^-+#C`V(j^cVfHf)d@X^K_Ic_a>5aj~f`Z zlYu%4Vs;AIm#)Gk!_GW9QMslN?XeQM0LK`CV^kN(S;=W3L7N7YnsK2J!kbsGF@kE!nia~Y6 z8JgyspnyFOhYs7%JE%QJvvY!fDZ~`sWu|}wcn*slCHQqJ{V7`ghk=lpRIQ`E(hFJznR>G z?Do$QZ(x+Lexa;H_qB$S4=z~{%vN?Q7jMGXg#s>%qXA;*cj$8^>eU>r8_=S=Lw5xU zTHwRfHS~FSRJyRig|;lf7A4T`fG^z8JkfornQ0lU?uRyhel2kfX%h|qYxrs>)W^Jq z>8R7CZ}85^Iz|0;NUW{vQ_ZIaLwYqN_~PWESxpb$n*CQj;-XM5m=o+eifMr;zONa* ztzTpG3*` zrj%N+6#op)tbff6xU-^KG%Op{stu1;uLk6%@lVa}alY1GrWYCcSk8wtOvyH+xyF%3va7iFtRQkI9Wo>~;qjTwkjkZwkZvWm zu1!dQS#F9*R%IQw75DAo_pRd>IK_yg`ozs4GrwuVgr-L~`CnF4B%O4agb9jEWhVYO zR0B%{hmnlxb(YkFqpJ2dTyb193QZlCx|hoqlScjBG^@NpazJ<2)1LWB9*QBpw+ziq zE+FNBj@vVmqeyt53|VE zLkcCFZ>4gR1Rraxqpb+uE{Ct)d=J#_u*jxA?RFe_MSrbh3ueaT!$z%aOO@cbO9}g` zxXDHqqCMNVwS@e87bxOE@HHWo=04?I({y&@Z!{B|MQ{!|uezB=A zSL1dej2+P&sj~ADZ8`f#A1nwGddsJpn;a_J_<}9hcNCBQVfSD`@gkq8#n*laV%#SR zGMzSd4!oDiS3WX7HAWVdsEHP&>TD)11Xg?ZLW#*DK%|Ck+p$KAQ|nC8E%v5+o=7jM zwXoPwJM6MdYW2XeJ?ut@w(QG!0-voU6|>XK&qCLTFBRsRMnBXovPLgTmGp674%c~+ z)xqt-^hyTbd;Z(%)-GU1y4*7{{XJy&`~bzY=AC!tYokYT(!Rf;L*`TjQkW(Ea= zm-Zu5!mqF5Dnrv1RX-LBSQzcT$6uKJ-BU6~{UO54p&|ToQ0(}IPh&L0f19})g5~&= z+!Z0zS$>42Nw_$Qm{@nsl-Z#b5(GjPy}}5oZa3h39hUkX3TzfvscMB5aSwrl_4x1< z`-B4lE^*#Mcte|mI|_YN$DsUr8}daSH9g>)@2YR*d6$g%5F6K#E6sB5^;ashCHzX` zIx~lP5jh%HZoPkR9%kf5ZqANQ@$!ou0zus$F;*_yA>MMJd%ohe=xPWlviK^mF$<_% zdu3|+{t)AZ#Tqi|42NzNA5C&0QFl>p#WN^L04OGE7W1jc9=R`Sb`{F4pt*DNgg z!Gaq=L)jM-4nN;VRZe)Z)oIpEx+y&x=Rhp;9kDo^TpV;G5^I2+NFAjg?R)^*pGh<% z4d`7GHTy_jAyZ-**iriReZYokjPJ{>k-&~7M0sK0$JWTNn7J#3+32(#DI*nNk|gpr)2@1F|I zX?hnX{x+MHsy5=%F$}KG(f1EAr*0 zzul7I%d~N%)cPAbz~J5PjK{0HzWg=cXzKCfB*Z23G&Yw=4P}ZnOq}hE>|mn(I;`xY zho>6YrF)IT()CP47b0h&{8P%c%vK5|3l;Z<)up3D59hc1=R7&&8plETmEMYD8y44P zGkPGo1hTK3?OkO1@2SxU(CdIkDKAF@=Dm4L)hI&3of=YUril;H%D#I70lUW~z(X^Y z`m~jKWT{&LO&6-?z_`IhLQ>RYTx2 zls*=S=3&1}7WsiLyWIXUSp$T$N5*vRyP0S3C3z?MtH&t~Gv7E00i4R@KcW%Gg<1~K z-9Lz~>*4C4MejMKzt}e0O&Xtb-$inJ;^lKe{is-DE!{hl_j;`UPzuPA?q$%z-~>P~Lb>=ERgTK~s)A0XS+Mk@@O ziOJfz85K?PW;^@jU(4azfEUaAc%jqL)C(HLj#J^se`#ezh@mDpGHD(xM~~bn$i>YH z;wQ#1Kpc7|({o`lPzJGYAa`{2pxo8I~+0kB~GCqX`wK-R^GVC4Cr6SE_ z9;U7EP(jTPCcfOa^2TUaBwC&ftgGD92+x?xF_`qqwXv|gJM%Gw6xqQGpq68`I$1_D z0TF6c>Ukbat=-N*8uxp-HSs^uGt=mtf>)XeDCH;6nfiWb>Z-3>!;Q(iMIHDj_%@uf zl@sIF3!CX9PaClWgszL~zBxEDnkQWmQ)Ns>-)>i4@!?NTd0fS?IW#9%3c3tej(Ob1 zEGMhSOdWip$r|XyQy>5hUBOp>Qc(GXKw5&BOeR9rllU6P9xu!SOpTP=KUU82T4v~v z|GPDhY*z;uMV1VvQl|0jo)I(Kk5`J^O;>b}>2U#3uP~6;a@k%_x91D7)cIT0_2R@UwKbIg1KTX1wn{%@Bdfr6MVdQd12Y;A6 z_B7VYE^vr=KfAq$Uiq(fVQ*Dl*0GMo2J@Vo@33RF?(-EL*moHR8x!xGnr zztrTcYk3vk4q8mbgR)@(e3gdI(J2=M>-93N6*SmjM&&vLiP)q{*3(kops#tOYJI#j z@+5Gt1yJD}10c3LMl=SZ$64U=JY8D)Q9WEm2AKAA!Q8ucVW6_%=9K}p5 zFRv5n?z@ZICZ0Jo+)gwTutF~N(+*J2RGv|K+ag+RPc!PbD1skHQQAm?dt#}uXS{Y9 zZBK{mzZ0B(@Qi-0g3i|4|6fx%|2y~_zgCn^jo>qsqp26m(Pz?iFb)giIorV;GfyI7 ztG6^r2g7F)K5H+S(i2&Qzlk-g9+UQeVj)=~8y(^Gv>u-V+sm-SVgdC+eIn(<(KG1J zOw^sDXD*IUGho{w6|1bbM+0Fq3B=x)yG}O8FjkmbeFgSet=^9#7bw~qBQ}spFk-=`awtqU&$p|iY&IGu*9(jCt!ES2G5&E;OT>$APs&Z$*55YT& zh`heKbRNySQ5BH$-)ML_PMTlzu%Tq4M+w;|GApIX(Cbua=pDH6n+*7_=+QQ&!B*WJ zU1DDdq+XSgG2MLsgw#S&Uk z9X=tF>sfPOuYn_XJr7023T(pL2Ozq6ym!9MS7AS8PHyUGur5Zg{$&~1c~rDOWS;Z_ zDz_r2i2{p&l99i+2L)ub=jnwYRE+&uK(H#hYGkwWYytX!piL?fS0gn0Cm-aldk@|H zt>@`l-$2*2VinlCcHZ(lO_9L8OFO%%zv=%pMn^4}nOpAOqWi5lAT`7$s z<*_{kWE^La>$b&&r|PWx_y1JLAbY? zecbqAS%ysZ{`Gn~8C0*e8yg7N-zgs2wWEXCmSXn_7p_?=A8-rRqk1oyaxVomdCN~^ zQJy8Tg7EE=rq{;!#kpQ0HrX+bj+`6EJs$})@9Z4v-l9W-mF|XHCSKRM9S$)%2d?^B zCxWmwu*tWMCP)MbPsT!&g%!rnMUMwIgN;m?XOveo+itMXQuUE3_y+#XmHVHOR0MB@ z0bcoeN)n?ioJzUFo7!ru%KC*I9n*E7h8d>GJnU;e1zN+nC*v3E0ng=s4v7D`!B;FI zJCx6{wz@~IjH`byhX`03R{tm;j}JWvL>Lr|;UjOHM#H~X{ArZU_Ui_$8X2$<(p5^_Ua)jHb zhqP@Rb-A0>l}PdnqQ>>k4`0OYbyb)K^n(x2{9==qAQFCv;1Be+LzQt9hfA*mX_er>>77;qBVv%F1SFC9McL&+OG4=x+xC!&G9k|yc zh+|SsFI}98#WU*M(agBmA&7FI`=Rw?mqZCa7Eu>L#iqifao05Cs%g?OUSCA2xcOhK=z0 z37)ZL6)7%`o+M+BGm2#6hghlLhB%UZZgd6u?cPs-N9f7uToCM<6@EpA`iG5HDj+{! zEyu^W;H0cbji%R6r0UkmuylZ}9?Q4zR8Ffz%l5DrGo>><<$X6!KcB5zh0;stiX&J#w^Pi+^UA=o7fZ zgJIrzZ*MlfX)XVVPk6wgJ1gW~>-&`gb(s5`Gve8{4(-W3ABw=fI((u{a=o(ve>!Wd z*^ie&(wT*%J*rvmrb-xuu}AMDZY`DM$A6ruY-RWr&{afIqhCpCbCRMB^ryG3-MUuj zsZ=PLYli&xUfTIZ#dd%_$O{E))y-E6W)|)ooiaE})bTgTd~`(A=C%OTa6jGe&rGH} z@9nJRV!p_1+$v6sYkd|-zFT$=KU;Az>lo;|U6Q|+S_oy#66j}9A7x-}$Vr$-<&iN$ z3v}ruy<2JBSxw+QUT{{4pRPcru%+6L&pMxtE*G2>8|OGu+hM$B@~!i^Exi>(R=d!K zRY?n@Rg(k|mt*K)%cWr^6#x3j%xG15U-qUUSKaUBN_SU133)zUAqSjkKMl$t3am*3 z$^qGfZF6uPWYTd+J;r|hl7w%_=0*)o&*PUUXBpzk+B@gu$pm=4X~b9Aq}!r$9N8^+ zCe0xia8n{67vuP|eX?!GGSF2C-DT4;;vSfh>~zUbcJOaocs;os<~;pEZcMRx z>c?HKzT1`#_~Ux+5=MLIyp`x5p|s&fppIdsaxVWb!*J0_q{Y)-v(0TQ$2+83eV}d` z&{ZP1X>Z^F);bSWLE%YrA2y9WjqXYQKAJ zF_H0X?wvM@hwJ5@pGSTi%F)3O^lvhLnYP5#>pJ;l-Tb#r;xo=GlB-)ZsweH34LEwg zU?G}(X_6{m+PX2oBkptE@7|f}QP-s*vh_OayJ1*XOg`*ENgE#_KVuoqqXhOA6m~o%(8Z%64;V_jR_H5D)(ID82ug1X(N4Kx(6k<} zdqw41|70A2fOBgqcO+5$P4%M&>_o1nqQeI-i&bo!89(b)HBiAC#aMcGQ(HG; z`n$gGRY3tzN9u>QV^;K4W6{Wuxf~J8RPi!2p!uI#0o~LLnO0_{ZwAM~eVkr}+_v-4 zT!rjV?|(|4!_x)VUb}P0qq$q$!x88;YX;BCr7~(`=zcS_Uup1-S=LB$!Wvz(%j1~e ztYp|asvrhT^(fFe${{xI3L7M}1zh)*ROeC%0v{g=KMeMsPu|1#1t~ zcN}VYIC1*Vee3$YyQI{46NrBUOSiaxgpN8^ZpXbwq)kT}b!|&PtQ!-kLJbJ#jSv+`is#hFQIGQ zu%tc`PC&4TExlKT2VTmX;aL<@!pMV6Fe=+c zR$hyKq@-*g5iF^{`8+U*h`?9gdj281XnYwZyQ;1&NE)@qDatG3^Rr3m3T?x=hD8i) ztsZ>0R2kK19)rKs-;YGtXaGTftw!Tw4S1s6zF^BpD*@caL#DSgGn=WOsS=SWJCE-z zRNBDB|9l0qE5IS;`a1H@_G&oXBIl3~o{vjb=(w?qWl`|QF@VUxb*%0CEr7x14W|;w z2$$DPE(SoOA0p2OJsSO?;-COL+DkuVM5W`y6$NN1fR_@fSM$`H@IoyemQ!kJ<6Bz& z!^&Osjy0pzPw^Ad8gER)k{6xSWuCousqoesLF{87&-;ouPpeWzpNlfS#lFRk24Ms< zQSRU{fjLy*O34NC;1gilTuGYGmoEH^dJi%W;V^~jtK zD^y^L>BBk4d6eFF;AV2CGX6u0qgxDxWS0i^|6}6!f3v}$i0{^luE!S09|kvk;2!VY zybFWBcgi!Zr|%BGO^ti6Y2AvdK&p}A%b;!L@>_2s^0P>@X6CN^-VUi!?Dde6u#Ei% zG?u<_{i5=5d*@?_qOY8UK=yse8C#t$kn;;|*X+g6chHacMnxe$wahm2dW<=h6y9&) zG%2h!`fIE=YJJ369x&tVbiw8`ST-~-$NoF8z+8Lb&TgX4rQrvc_X6Q)%w|57f@u9g zsY=5KWo}K|PM)^pf^IBN+13nGP15syyTybe?_k@G#+4KEnM2)O)yv+n3F$;L_3#PtkA>7&WOpmG743Ii z;zFV#2{SF{_ePY%+h(%VPRgYo2;az!_p z;l-S~4B?ZSvbpL#nWa4cKIk58AN6rJLy0^FDlP^RN!+UzVxV{*#vA?x8Ak+R$Ph{R zz*;84M?*ulZhnLLMbbNF-h>R@(nvWVRc=>|;4h7?r%IWEFGhf=gF?Vc2{eyX=mRJ|?Dz))*I0G^WcD#{L%*v_m=D?ntx^ z<5k0&Om|e28*LvA6~fs)@l>ckaF_=+{ynkGO9x>7J+dqtnb|D-XKht>cRG*P3SB}m zToU-4>_4kvXNFoFGY}JS>#f3%Z3{Ijd0&q&ay(0;ducMF`pC9L%A?ig655gfcBx7wF_ zQAvaAy3#Dfy@k>c=_72>zIHW9f!sj}Rrpl+^zg$_HzJl?F$oq|2zGS9j`+z%v$v@A ztxyO@*>IsB`13bc2RZx{`#zs$uh;kLmTgUSnrTc;4|JoaMi@O_uGGf)aw^sTrx4FG z*{k?SL-u|aB zZPKM3g}nEBRuy-L@$*z>@{qJN29*PADX2gD%K18YEQbWjp`>-M(2w`ln?YZ0xmt(t zGM@FSSCz@#nK~^*0TkzXvXPo_oDM!HxUo@^4w5BB`JpYK@K4FbsDidkTBUEvtOhTX z+%)=u+g_QbZ7CMb3wYA?`y?3xbY0qQiZ25AkD{ji%Mj#$PuF=s)a#{c1V~o47IB@U zOsVQdu~8{WIi6UmEPA8Mpl8%?8tlzwf_-Y-HgSf$^+M{60beU&aT7tVp?9q zc@P-+rj-C=f$wc2&*`sGIQcK#77U&$i2|m{Q(tCsN1kRZCp5FgeedaJ+k9ETCPg~+ zRPK8Ue!7sLn;qLXD9|OWr~#Pu6mrVaQZ(BmPz z>sV8TuIdX-7Q(3#5tx-ElBkY*&?>d6b*Z`t=oDrzHX+$R$jF<{c5cj1t)$1){k`of z>EsqnXd3)#*;nqbIF@Gihm!N)F=xNv|P>9Dag=ECg8Ah)i7KG^$QyqWNEW3`Gz`3~D7 zRgBa~czqbEtt~J`FvKLt=et+^;O|8!Dm#>yK_htEo}&C`WZym8sU;d`5nJzBZDWdm z)`DGJ;HcMmBJ;o2aOgL>*$T79Rud2FRC9qUSUeNAkC4_oFW9d_B-XC)n{ZRu(Mwut z%8afYT=(jIA;0XGNwH)6xX|6-iMn{{d+~yoW=!@eY(+go%b&M}0t90)Ng7p)14V1Q zRxivmy=uzM$~x!XSq)AqSXV4y%bM@a67v1zFkdhQ`eA9vp0cJS#PI{fq0GbtMv@f| zVg4ssTbaavF|h_zzFq1FHd|dH*>t@B@a1py&QNvsG3I0ai7)Sje)KvDKbg~-fq|Ew zUgeKobSg#kz;U@|qo~01cM-lHlW*8xJfT?z1?aDq{9Wf@L&c%a)0B=(%cA@o*O8q8 zC8eSC&n5N0GgGDvRX%OGK%Ka5_`@2nP2$F^uKIYFK5dD_5PiNiAJE0a+1sr}OH zjWAG;6^Zox`mXUwD)K3V!*9a~oN6kFwgbQ!I2K_rlL(*)$$lm4b#ngkuXIKvR|U42 zN_!9S#}8D#yS3WOx&97gr_1{K_-z~^3BuoSjC3QuKHLU&J!MAPdqr~lQGpJ41-ee& zx(&;$-!l8Ns7~{ZAujDr@%=@j4FgA}SiR$U(>tD~QjycR4_vDg#|GLLI%ppLL2csH~7P_=^n zPzusIV5E0{Ds^V#A2%RFRY$}vX`-N0vgDZZmxzyF*af&BrLwNGKJf`4)(Kc%{ba=U zeTs0S#wH}K>DzvmhU-DWnZRJ*SS}!KyOI23t>oB%Ny-Pu$Ly5dw`cC=y}U;CV=plW zfyCXP5M{sp9X6DB-?SR`$JnBNhz)rwtCO)F;9d(!#>tDbQ$|t5qAI|VezEwEDChRn zE%<@e>Pu3f=;R(IH=SJQq1Dble0!Q{xasB@mGjxfAd;ff(_09g#V44*D;qz zrs17r&zc;dM`SK+8{3eqcP4~ODgodeExbdLe|VT*WuTx4Is+#P=#rnBF@=IX_m__- zMaD(L)Rod{_f8zKf>ZFZ`F!s5SFZFZodm-ijyZMezEof2^FG4Jjf&z6?tpjcq{ zv-$g+{pGMx)$yC13D=*G#k&~%R%5N6uSl9@BP12S-utu&{j+Cuf`wcvQ~&T@JWx?a z2wGw?wb(;-%kjB5g-=-Jyj@$brMEoY;&u5QKOb&qUalr8H!2&%rnDXh%h z3pJY-kegb%=y$fI>uZ;`Cu{MW{|Y`J7p-ef#lefcNZ{tae>m%$xso)dQ5Fo)Y-C{t z%b#p~04`ZYuhQj=_At-%L-(`(YIrfloTS`mNV|^i-a7jGQc)heg?I(>u40-++x?Ng zEWxiIassOTioOikR_lls5**Iv8U6Y3WCn6DZ}s|JPYbeNDTkae)-R#;?AXz3^cG6n zVW}7|L3jvmP{6iH;~7_IAyOz2ePZ-iZrjH-zK#JTlkTv5$xXk|@qa&jHj zCR&p^k+x!7-Cta=j=~YgpT}>+=pE~xG-m6ZP9#!jz3Uy9$TD+hc(E<+_xdt6-MeiT zYP&<t!dqa8U!=47?xA}RXm1!tvezGcO_IP%h9J`=PkY6Vy32J5SG#kCZSb%Ze<6Zn zd?1DyMNZfrd`<93TD&p_Q4dl5zFJGh=2g8QOHO2Fq}bI^j8feus5Mt$A6R37&j=FA z81V-^b>WWP&OzsT>cF3r3DOu>;o4Rg9TO=Hi!e#u(7j{`fQ>~EZ3~He>%heMiLHyi zp|pxGbH%B?oSu5>qFwkciISR@dOGb9Dka-M+(c80>y5mk%)|#Xl6whOeA{w5mJ1)H zw@>iBVTH3vplgYiEX=+;G36O??Mc?U&_AzrlTZy2gktG(9aS=gm+Q?h_OwU1N2|Dv zM_O{|2rD{-WJkAGYL$0Cm@MoKT=OE>G2i_bjq zt=?K96`in*Yd`dE)G+le|HS^_VX(_;WNL3Dvvn9V`loxRdvXDg0%O8TK0oG;zPA9# zHY|!s{Lfnf$im=OY`kZB3yRh!Y2}Jb3kB{RD(>l~RQd^y0_ix1Q{E^`_1rbhfZy(7 zG4K7-dPnuZjn`f2>BAN~_Cm*bW?Cun-b)ce?@ z0wQ4|=al>AA(Xb&NH;Gt0*qo7lw}7L*9AUBsw35fq$xj(2?f` z-ak44yH$24cRA~>p4Ga#L zHZT}Wrzd%<+&**pYqjNW5r0UL>$2berT!=5oBEpxIuCk;WI-yQJ?VZOq3U8oev`>?Jtz@Oz-xmv(VG0w z1^L8U30?~8JlI`P=QCT(CpFW>1EU#`w`+6IU>f3u(0A!PGLuxk*dBH@=5Mh#wtNu+ z-y;XZG@*aycoRcMTx*F@NHKvmpgBk>)>UE$xMTxoCH!yqF~l)E$%wdA!2C5is|gfS zeT-z+2TEP9I@JXcSjOH052V8;cHydnSX&07N3gn8{@+^t|F8dlK0zzdQPKP96T@|j1l${n*k^+4 zR5-izbWDW_vc;nC1?;EAvypG4VDe5n#s1q_jG5pB84S~>0-lxdu6F=RCAbtMl(g|`V@tl7@ebmV}32zZWLL0W>8E39xa(wg+mmI>iZEPNWtNiFQ zh=<9edjrwQJDamaHXc&*U>awW99o6r3K4ecLaaYeOl zbEzcC#q;2X6?6tDR@~#$*Jx%HBfr^()fL33yu%WM+Vsxp9S6+p6#w0eET$Lg?n#YU zf6nV%j1qn8uaVGuBJNet!~DqnKGLv*yR4_-STLsCApbrc!>TgMfF$zd zjnhA5_Pr?OEgQdICt-96&D(2YZUMZIf!Uk8(6zv?e;ucyu{_RA5AoUDeELDSJq<_6 zg<+-Fv>?#b#pAtakiwSpNemuL*&NpO)@&8BDm)*iv#~G9)lvAR!;8GsI6f1oNyXMv@2?E}k(>8rfuf)kH0z z>cX=~OmXkggpuREwAM9RUjlx+m}P@3v=Y2Twa3Or{SRm(vhQ-`10%tRWZnU9nYsfm zUG$WDb{)rh3{PTQ@t(0KHhUPv8x4rE%1KXm-@=;Yqp#@Z#oOPo4t(O;r|k(>JIz49 zdY9>NpLV4E_F5h|Cx#Jqc`fVs1|u`$m%e6@P2|YIwo{<6XPU>-*PJ}0L8m)_) zF%d&_3!nX^bCBFd50PsuY|i~b`PPEx_16qsA9PT}jM25J?+X1H=|1sslz)^aNm2K? zwe%pFf+=7u8-hMKSlzsv!|}G4diq9yKr?HwU@C{q@7_qQDdqh&U4{_l5XaJmk5z%Q zt9$H_X;p!l9%b|S3(3<@2M69uXy0kM@b_eLC>0Oe#OoVyjmOFSwwFZRZxGQG*(>nj zn1?jMyo&X#Hba*FQpIJLdkdeeMO-0{;2uZzw3$?8Dl9N!6C+4}8o0JTFXCjRS1radA`QjZn8bf1%aCUZ?1M!PWAjGq~#TVK}?ZSAm$}EMJ=Qobg%MuGpvi zlGA3FN<~m~@p@>Lyv0!nWJ^qkUPOptGBnX99pdfD(nCg*Y8QUNrT6Y2HR|)yaU3fD zy?s+~fARPwi1U!J3Tq`HkY?`DYfEdw1cz}is$&p8i7cHg*8D$?54;#DtbF(jgXud; zG^u+>fz*0quTyD{N9>DbUBH>LrofhHTb>V+_^ql*sB&>>MH=Z7nS_^;+~Flac@13# z6TIoRGCthNqEUJJ%%90E38p#!rmQQtNq@!4l%sX&){A^Jm_d=8wAdS(@0d}n)-hE* z^^7YqWgT5|G-zn!yxg_r{%gl>x~s_D(rY{xH$%ha`gNk=Tvi6;lYq(NEJ&lwH_1O9>#sO=71iH)8hwcQUD)eOQ^9UfpX@;4 zlMiqB$eGTySjs74uisDnTK;3+bI$agUxLmDOW6eD4&m0AS8@)xU1WuseHZ(yvvz+y z%RHShg5%D3vs~{}-H1AAU?!&qS6hr}B86x>Yto#wxBh#aw(sWWQk>?O!_z`R)n9HF z^y_7t6c{GJI1VXZy2(oZ;h!Isv$!=7A5ku=X;XE>H!2Je7_N{ELZb<^ip|(2di9Ih z#swA=o9W%|@vUcO6TN`FK(Us+s%-Ks3hIa}Mk^MhuZ$z*__xkmoG~@%V*8qFqD4-K z3n%(=+}F2a)G80P$g4&hZNbg1zK;~Yf>qoG@oXe&JY~;*aJ#+R-;aH6308KL>9ZAZ zs#p7^rHM*RLN3F&PiVr7y`}jnVOxp zq9cYs<8oQYY2UTG#q{O{k-lVVzRJc}6p6c|$RRshxp{qLL0K=Qz8~ec-zhLt2|j`6 z0UVm_bD64k=fbhlz>^vr(|(R`;zqw^@1&tN^G^~8wxSGuF26C zkn$+>NW6V9$dY6ss?)zT-`T3KAzaJZcxd9BC-hX8_>VD!(0p6d<(B55J{8UN=*@Ay z(|E$35j+L_aJ+*Yba>goKfiK5s@Dt}ZOUYw@V*ak1q=7cp}CEb*B}NFWix%ue7dtM zOFxSNgHWZas_sscfU0!&${+OGGeq~32TRjmK>`PalQaJRaf=s>)c*z%JIHGI*Tf~D z@a327!b+eL{9gDYw!l5rD{rP}zqkPNj6`RbbJD23L+geA~esR zXDkog^HA7E+h;}{kA_{J?niHjDbZ0(FRTS0Eu3d!BDO;m%uP}%V8vp}nL7VEbikjO zlMM~-B3-!wwjE92N|+7QbFbrUM!);pbvC+cxl9#q@y9^<8Z_#|&>`$R=~UPVO=~W0 z$VBUxt=t?jt5V(}RtBg=Ez@@#QB9NWg@QRju+vlGa#q9SgsZW!d29`stcE^K4!+w! z)jVzzUR_8>Hsl&RockLxp@Pqv>8sn#|L*hRIx%{eC&T zHzlWXobp@$p9PTXhvbWy8Kz&w6&-tGi2Gx1=NE7LzE@$P&6%8-6SQg9sCWV9eFC?Z{#D;q=Lc^cA30rv_=^Cq=#D)%PazI?{h8Zns zwMoR`Q=);y8gQ&um_=z;B)ItP$J6yb&w#F&*n>_tzL%dnIWx)k&`J`o74zkT_#2L@ z7QIh(Dz|fYE^d&)x}l99W?h0WPi1b=(Ib zrjO3LtwsEISTdreSPVi~d=c4wV-h}^)j4PI>JKIKpMH}=3b9gaC>wO&V`=|8o^1XO zP4xQ|!W209fG!7`Dwtir?7W~6D^gs@hc~tE0pJx{+x;@LH0A{R8S49nPov28e>Vs5 zFP2Q%a-aWf-=4OKd1X&|V85Ve%I}wsP~CAm1m0J>UDQ|^c!|H8zNK9UN$#3PdY2Vc z4$a288O`W_9cdU@^51^YZ*2qwSrH z|8VuQ?$1}BtAae!?l)qP%`{7l27M4S<|J&RnA(!Fgp|?(*~Ty`gB@Thq>(U$c*dX`+vF;(=vcaQfnp7GfT&z+1hp%re@Uh9$kc9%>eR6IToK+-@3)cD%7`k+az^Dl|7aiH>n;jXJxUUf69ZV1D?B*xa6YhZaiq z*eqT`Ajm3py}~JM59`NHx5enh#2+p$`R<(`MTJrsZ!XT@8wJXJQ$hACo~cBCV-WG0 z9@%>5+?;9Ao7;d#xznA&N@cTLTd*pY3ypFb2;{uohWz`AgoH~{{RCw|I|c@aRKCDqMBMmTmCb$Xp!BpD6;)hROG@KbN1F zePMtSTiuGq_w;EAp|k^ZY4cvdw>5lU!nPUjmm{J@oG>Q$DGA`dyb7QLAj)5A%`3)in2D2xGBxH5QN-U8d#NQX3$@t?P3|^ zqsw9YrB{9g8q@|y5=}a5sTM@RKH2e6QPxx+G(w&*-#jo$JC07 zL0b2qqoMI28j>9(^L8PD4ao(a`&*y%XAUKxkwO}h=~<@#4#loqGsta4sq1Ig)*`^p zwmtI0>g{F>qn|M^*kQh6I=Sdh((`y^sv?ZYDhA)QUPhvpcr_)FA)_HP%gD(&9pqod zPBFcpTyh8^sii@aW3Zs&I}tu~v9@Jkr0J+4ncU4x?pHl$B`sz@};49 zPG0~Sn<<3Jx#YKUmY0X<)b${A5L`UdqhN0fAoyG$>N#1;sx9)K8n^Urv)kf^es`Kl z>G@8+<6*YpzcB&i2x!LyQ8_K}(%6S*YxpH_`%S1mFX0nZ3oe+Y_7g6QANYmQSHigzzOPl=k2 z{(EF6AuVk=Si}~S`*?cvd*cv86Z7!9^|Vx*=!cLEld&CsezXs}x+~?D&ZlLf)&BiH zp}J?Al1wmTiLJ7Cw?Z<)9$zD*bNU7!DmNvS-EsGcvp{W!HQ*-1c~x6X^o%9`6z^3=ckEC5JTpz2m!j0;Ki_aSokU6%Gw_I6XSv9#2>@k*xxh53M^c z&hQ0ZKJNX-m7K2MBQH47=HERQa>!7C00GP{c@x)<+axrHhJ9KwWSYSc8`1rCbnSyv z+YoHrN&$`Uq57T01-UGk1oYC{R8Kn$L}Fj7m{q^0=QE~TmJY*`Y5z$w+n~Q*bu+#_ zn0=p_IQ_9Fpi)^6)gW@%CV;X+GDi|dupo^3Lo=czpIf4WYRCqXbWeWMjLKq&9i@bk zW`|a=eM7{zusyIxrzQ)_b}sX+SSq7t&v!%|R)f4PXIg8r%B-q^3^7eS&eKaG2UzRa zxNhyw4N?xIy9Kf1NXfF~wQuUfWIj7bRyM%<82Sw}NQav-R{&*pX#ZH06Pd2})&KU3 zINDiZRfP@|3VmX(a>O8ZzvWHIT-xZ<+|p;Ciq?QE?9o72=w}+9dI8IaOf9c*$Z6w04Xf1 zM0;P>k0a9WN)b2idW6NxWyxnnb~3`AbaZ!(I%dgq5Vk&)+#y8t)?^4^g$VGjH;EQ7 z*?R()`uc0#NpcT(IoKb4xc(5feMI9A2`O*F=P1+O@6ScZ{5ecIv+MA%|Bp0aLS$GR z^in}qCG+yniYL1MZ;;(kLSYagbj9{+T98RvNyw+R~-Ej(CAs zGKaXZ-Tp3&KF9kEHYJwSyL)GKx+D*ry!ysfp{4Gy2zI)k#&qQ=msUNVHBNY7nlLyC z?EmCq8d163$_Eng_6;;vt|;$CouO-3 zJ?9IG)zzfKAy5PrCS}bZY%lMOZF)v0=I9OH&Y)q3XT~5DIj-_DhAdE=@NnXf`zZ_L-X8MxkZO*k+tNaPnbYu+Vqz1RX$CbVJwWk{K_6-oxy77bA`jS#&x?k!Ue@BaZVah-=xCeta!6%tr zxeO3tRUyrCv$j1)1z(IRHPT=NNO9{<57(L=whZE1B)9Qd2S}KzpNhxs`vz^0A5SL( zn~+;0T2!yb11>?STPN`Yx>uHtF?hn*7q)Qw5Q?&MQDk~k7K@OQk(I|RVc4&da9yL* zkAz``48N`8U$W+@v7Azz+*Em;Zvznr^Eu@YfeyvBRP_GYAJ9gZTxdCoEDJ z`pH0i*t0Z0aWOjC4G?3XWyIW~c;+h5w6$%yTJQ-w-#CK^cKrG}vJn?sOSPLqbx$6*Kub z91OP6IP4iu3Mv*a6Y{AOUtHgz=>IB#LYY5u5Jf>QTZl;R< zKO;P1&f9^|#X+rxDhn|LmiQ^E&PrL$AJ&s;0|R!AdN!=NuW2Gzd*8xE0R7cpSisvm z98c&8_WSqA^YF`V{%7GIgT4_Zb^}r=)z6O`3^nsj*8p%;M|1LhPesL<2a{Fje|s*Y8GcZxPeqqaX*R_1-MJyLqlcujb+G^Bi5R~ls0Y#P6L21r4w)qgjGojp znLLcH=C-BQrsw>V78q@Y?WF~e-T||IlJx)S{r1e>GOh98P%)QY)}n-Y1lgIEQ}MYn z)aMHKg?Vu#mwyvsN4igo@!qpC{WU-(Kz#^Pk6#msy&v9&HclR7XH`qCJwon7^e#{& z2kk>s4R!yHe{Iwx@U946QS_ToQIC{t$3pdPFR?#l);S{9*8u!hTaql7j~1zvYiP)sL2;aQ z**+MLy%0iYGmhz~vf}PceLVtg`!Rvc6>O+6Qksljy+d4usYhPKJ=zW+X8~_@8(nlr zy}?za!=o*N(H_G2_ z98=ZyT0!;O4zKM$)<{ea{QfLmYEEi#gef-Ko%! zFuBqHr8y`btVYhhUl(%%A#L2d{Q5P&BTSzpyw&;ambc#~b?GGt|L1S4Yv6F|y-)^= zNqV8m>fNSLK))827aj({ETs?u#GhDoGjS+y!o12OQ&#=#zx{rkz7!igs9H-S=0{u*A-I7*%q$qYYtKtaeOY(vyp*=nB zg+boV2#UL(LH-*{SQ;axQ=P=SRc?G75BQWJ zMO4;@5kS!x#6p^rV93_%HC+{wWbE3&4^IefyPGJM>|zvsANx(}VBGKu*{!6u`;&KW zbdMC-flI`{DwDu#Eyr#{FwRP9*oVoBz7Mi09JkOU`2i{6pM?@=PdHNUn)VW>Q;G6L zoz9&UeX;a=2GA2Z^Z>c)Y6!Z*??_f+iovfkvEP9}HO)6PLwKLvhvL~MzfsA>5}?vR z*1?rlLpGQsBVE+bJpk&gA_?XMuWK`oBXq_a*0%(v;@I`{?KaBf?rCY6EA=69#2nYW zU}uh)GbBG!eQoBw?)Ml{Xl*+gqKgVyWS)3CQlR& zF3XX{Ea1aqZ>+Zcn;pi%O7`=6JHJtO0}-1TrOXOc85ney%f7wV+mHIgNbxk9sPH1z zaI|iLrP4?4EP>st7_Y>`PqnSX5Nevx;X@&YdF7UT65c%>m7~CMi14>bx2WXjNwdzj z{-*YkFGYlS-}Ew~j>{cM&4~Ypva^VaD^R+1AV`7}+#Q0u6I_D3O9PF&y95aC?(R-Q zaCdiicXw#)aR+a$_eTHyhdnu~C#O#By{o=@9&JNI=C~h}>SWg11g-kWnt9thzuzJw zR8m`bZ(IYTZJ%&SyhMO}DsF@ADVpgeoX3Y9XtgFHxC$(~q$U3(>^D{?jI#(DFS!hB z)HNKA@?^iM;Cenc6M2)_>XC7_ak|0(El1~1f2BzhcNZ?qaLopFztEf_Wl!?xu;J#N^pmxGEB-M!!es=uGMtio z#Ty(qcsn#N@_G8@#7lL%*Oy{>nQN@xoluX*kjJS^E!b&AvP-LLmaj{#pFZD!e7bO+ z39>Bk>n8deIh4G9gj|rhVWm}cspVH5|B8m!8c2F2g}+73L9(82y)$0kuGgBwT&>^M zKd(Kq@%&!JAJkn2hXkuwi;whorUugykaiGRt4!?1?n|n+Y~^pBNHaK6h)bpU(^2=K z(A;6h->sE%xgZq8;SUDqa0`6-!m~sr#!KQ@dHi)z4^-m)@2>kbgqas7-9SEC>Cy|| zqoTWxL`Q1+`7+&-T)d-gS}$9|)ceHM+wmH4rn*a@TOk$(PuT#HHa-Z zSTT)rAs{d!?*>@kbVZ4dpgq;!@w842G1%7Ttp4UyoWvgv`d_a5eBeQi9mXz8H!ly| zxOvNOl4VNztRxr|Af!qpR`iw={=nw2J|ZEaSRIF-$t^)$>;GJm-=`yBwJ)*yKFsX! z@zrNuGOtA9R#WTm!$BT!?vXTs%v8v5PAN963qsl2xg;DDkk`;1YSd-M0!;JQYuDAIS@6 z7YxYtXyoM-mod0|sjFGae~Si4{s2W`)IUbJJ(HJ?J8jL=USIaoRO5Y*(zOu74ZsQA2!LdH+vP(1=h48$Qb(n+{msG@dnD$T^jIVJUorjf++_E z4uEnE^U;FU^Yp}ZxM3FG!^5LZ+zbzZeR}3i-lNVDSneFI}uNnO17FcXQFsQ8g?^4)a zv~18um1_9?4BNkAk7NGCn5#ER&sj}gxX~dmnew5)5scsO5Z%uY#!VJ)_o@}@u;XIq z4U>%ex^eo56%gpuVR5~{_!~T91TmwM*q^9KcJvdLYja%#1N$qCMpP*@Gy|@mJkD;% zh5`l59QxZ&Sm!&-zf|m!v?wJwK7w5t6>}O%-@)!!?gbyC*xff3K0Di3zh!UZzh^#Q~R2^=QwS=$d^- z_r_u}M}MkJnAi$kCBy~eW^;~@6;e^CG*51djDjjL@UsLj$Ga6m|snk zEL#+xd9|35C`Vx9tmi(o^p^X%TeXR~ zB^f4H)u?|uS5cTh+pQHe!dEHAe#<@|(OcaS2I88oaA8;nj*JavCW9t{ME%9%m~ec! z4o(^v?nTfh$JqW!DCCr{KSxQfyAZ*1+lp>vwpkcvBzo89)4+)cq}jd9XR@Sy{@T~c zKYYkoNZv9x*QV*VRY#9cQWk+2Jisd6MTm2uOV-`W%>{f3W{aOf6TN1y4X-~7#ym<@Rx4l zP!xzza+ee|6#G+@+j=1LiV5=heD{(@{Q(4vBWJ4{Co`TLSF5p+`M8UpBOm7jrI3El8PAQ@+VSQ9`2mg?5SR{|`T}0>!&t z3)x{0_-5($m~3sc;&jrW)y>H<##4);y1dAO=f7vg%M+cMh>{^u-u^unmvaajsqMut zmo)N}#BO>1+b_MWK;|y<4Jgu-<3H0!+LoBC%K9jo#iKRu)l`pgu%nz~{5bS1WeW=T z9r-Shd?D@xL)8k?Q&G|q=Zma5%qfwk(^d~-gDcG73{3yp`pFluwH8_Xnn>2*q;xPb zF%hHttY{v~FrMcB8? z#DYmTsy3*6q%0MlVJ~SI?TA*5ohM&4higZMBm|3Bzouh%LfG|_Z*Qn_oH#O)FK(vo z0;IhNtq|CAp&ljqRo#kcap145&Q8A0W>$S9A0U(}YFc6wqMCNBO7$xJl%J1F%f;0d zMUy`mvw!3dcU$nTv)f81#l>A?L<6cYf_>Gt0mFQ``-(>MMQvj&pWtP~}x0_+NFMktd@fwrcAUSv`_r377s_DTw^~8CQm7=_usqS6mbvE3}YdZ}t!I((E zJ0RmR7FlvNT&Sli$E(%mOwl9rxVTB_wXerfFW_grauOJ~O4>T~nr9~kez6%E_lksP zTqD}2v7)vfc|i%~r#48keQ7&=jJU2#4j(;zDL~vyxtA@W_&^NBtUJm6*xP5mMHGc) z{^S?05rh;eTF;RPgeiPQ1q@;#RfzEl(Q4;#h3bQ=q6(I%d7odrjAQMuf^dk8Ogh9z zeq^PKaIMuZ2n4d#Q8om`)0MyxV+T(q?{7FyBO4r7rTCF@f*h1yT=fW(4IS!$a~TzW z^)1LBwKGgtW_7PeIaFs0^ibN>@asjB_bdNqcKbs0pH*4B?Uu4(S@=9on&^>X0vNj6 zKsw;#+0ptcZ@o9JAqdT9@fuQzH?=R1w0CFHs2Hn{xfCt;h5P2(Psgj|JV?k5p zq(B3mw}V~quXf|z=NS3#^)};hc#j_kr$KsNHw(y$W^>+LBcl`MsW<38wk+yS2z@|6LEkZ-A453S)}E% zPqqqe#J8&(jR4Gs{j@^j*GiTZj(ULno0e|q^LU|ugF!a^#Q}S&Z{#G>6TJO|doHo` z(alqP*|EkK^TIT@mr=`c+EkpLzptZ1tWv4Ott=Rtm^fS8rQdNK94n{={U_}Q4L{A( z_(H}|C6E3x&TdV|E^<#+DzER^&SaPbsu1#XX-1K{Pi9HNMXhd*nlx(%!4&(eVGil!D)bZk3h zRVVUzEUb)6u5Mi#MXE2OjLzo0-Kcn>T-jp=2ETo9+f^5HXs;ZwY4KK{N{ILKhk9iJ z93?nY083q#qDzE}OWuLCi!+$`-o3NZ$ear??o@4KAzSE>2MyEQihn^ecvG|03#X8I zUr(@Dh+?-}m=69;zlV8VN7aMJmtZth-bA-APU+svT(KB6Ux;O|x-d6musU-<{VwoD zXB-b8&%u?iR<3$cS7?*Qn#Xm7bL2@ZS!Sgl3a~D=wW)FSB&D5KxIFHs>^b|rMd>$l zfQ6k7JS0W5T|S!Cl_-%H@%F#(u!>aBYrudf*u~oBU0e3>>t8#=%}b_e6zLtHJi4J7 z2&zUNPL2j@sAcI*l2%Gp0dWzl*hE!3m=fOoB`9kkpNvb>M1b8-$2Lr4zA4`23#)x$ z4*iyXNTGbmZ0LSxnYp8Tf*cs+mDp`jwHU>x-6&Ovt{vPkk#AA$?H)_SF+(P#-=VOg z`M$Fms6bdikHLmtvZJLu_2n!QEb$w8GqvRW>n^H*tgSk)``M>I%I@Mc8c=7;WqG?{ z4wr>s7v_FLJfMc9Mu{QwcGV&$L)ZHFSjI(F#0%K%uKwk2Te_s*sE`zyKB^a{nId46 zovVNP4MC?@8(qbC<*6(%XdT`5`!H&!l1B|Z19g({Bn-rIxaM;OYGz1ecXzYt78|$^ zfS?f##Vg@IkBv6l6BMqmjSU8V%?%HFf6XD0e)5Mdv*KqX9!4&JHXidZYQ55};TOHN z+dccIol>{E76uw3#)Ap08jQlG!N)y!d1Q32giMrk?~Wj?d3`eb!(ex^LnxL6px~VE zSD`Kzl-b4%)f|J3cl=q+cH{I~VmiuiShlms&2D0u84~&iq3U?8epVY5v)J)$F(&)u zK;*cUdtNiU%zw&rV0U?UFMyBqAWt?*1P&u$o=oZ7VOu;W5i?zV2X=86*m_bOErLT# z?`t-eDVm6DN*sJIowCpjvtgOLv`Y4IdFnlBw8g>5$culJGP7(#+3n^9;87!cJxqwl zp9AzhT0^r(jgz+?p7(j?ZeK;n^%m=lTQ_D_tkjRZ4tY1--3M5+t~Jd+ZWuot+*f9^ zT$-I4+xF={v54AhI}U^LE=j)gK<1Q>Z>+vk?Wb{qH4 z$2^N2FD8d&0ur`l^Z(0^>OUncLommobMHBBg)G=?Wl}t=W<+MJbY_TF=^>6!365mw zF%`bSqC48*VK_hSxZb5pr)}8Sajyumkh#%nS~9L~YIHY~ZTWfdAN?YE39CuRMvGqo zCam^GTwoizg_y;(h2f$5xMkVo+B;!Cfet07MRsihNHS~Vl{@t?E}A}Z(llf3*q(5M zC&EJnqmcAUs9FRwvx_nFE)j1ttbI6lr?;?Jeh|R&Gmdp-c3_{yAOdslI z*<)fH%WwYt(mwmcVhDcuMQ`gYGQjVQ$q_#G&oX@N73V}Jq4>{~CI1+hNZWWS!M-+x zrbCp2-*EQ*y>PE)T~I7KrZN>bL>AVn$Z*1Cay&4mQZHJ$c*!eJxN>M7bJw8w%JtQV zRVHxcSs%zcR%(AJ<@MmMtii!(==I4wq-J_&!+V6{WiAE~fg)O9PK?kcyn}MW)0y*D zr}4Jz{?yg8NAW&}ft#^W2b;*AuGGztYRmy*B;W^`RFYSzY$H@OlWpj7pQPcJkGSGpt|aa%CyAHPUX zbsfKD(4@OD3E#>YiadG>s#Jw|su=P2F9lkegZ~myvDYBBo5ML13`r#YF|vk!Fd3<# zqM-G86PoQY#jDgvVU^?l%k4xhjChB~?Gb ztyk)oY4Ec{g|(x0JzoNKltV0hBDOIv$368dZ;hL3Rxr}xTNj^3!g$cMvWMP^0d{U-w$78O$qNa;XxQOlZK%QQ(3 z*lL|v7OKp;T8^D(8nsP%as>abdSd&)KIo&p(#4rP_$3;GLH*9=3 z$$WQ|X&isA`xu!-=Wbp=C&r)EFmaKPrI;Vx>)UFC{l44jf?qxVv`t1ta4_a!FfR8_ zQ#Y=;w35|9lek@#`=Qj=rpA`VL;rZQ`3C0d9)^yQXbvAxS`Ne7-R(Eef2UK7Mq-Td zWU{+k_@x7&rNf8;`VS$$?4A9zVIxDxMa+HbCEqTcM3d>n27sRD%j%|&`}(ox#%)$3 z-<2P-4ny-^+~n`wuIl%b>I1VpQ~ul3(S9tzS|dR1aPZfK{U{mH^U%}XXy@x_cx#9^ za|0s=Zznb=okRA&6?;smT%muSJG|)Hn7^8NL!=j_oUsmC#zOhdp-q{-^E7`RNrufH z7QOYMnD>v{A=~6KinEuw(Du&z7sgknr2n$IJ(QZHhl=InRiR}%{iiprg+rEMx_L_aZ}mgWV9{l)s3 zf2!Vkvjx{|U^<&w%tNkb+xa+cj_S(@EWF)^+*QalprRCwW@Ncql#1(~c+|}s@oFCT zx!m;+XuIRXR`^X)J1>e!zKsUV0Fb2iI-l`uTg$U+<#zR}5b~m~g#XfztHR4zVDXQ? zr+bYQ;z1lq-afQZK8`zk&1l(_?dF&in!MB1Bq~MB2F%%nW%T#lQfTteD%*o=Pi6-_ ztnGzXS1j1|1|b4k@hzF?l!~vv-@+{=n=7?rsb#`EcA*FtB8k>2JrgpSyBXHU#rmLW-$l4pC->2*geo5Z*) zM&w&!gl(QLMzVy>$RDfwJHeTKG=S{wdQlLWxf30R?g^H$FK(Ipo;Yr7mRe~(QcnU+ zcRJF%R27Pe5?Gg`QNawkOAhsLl;0-YDPmfkSEiY=n=4W8q=dum&oLpi)UUE%i>4%0 zgm8Z!kTXVyXzg@&^k-uBX1x9oinF#wpyiy(%)7IQtQMyPBB8E@1%$9f6)T3vKwJ1g zH6Mk*DcdEH^(G}p0zYS-#kSGQ(Nb6^SAChdKNv`AeSrXH6R>>*Zv%tmgB27BI!Ibq zdq}K`Q|~xEW-_^g{Q`=~>Qo^baBZ&tV+*-pV2nJQ`k{sJ9)cZ8ec)GQA2Ur9_LUT5 zlt5RB=c`!B2cL};i;C7IfN-{uNThkb7h+~Pgg1FK?%P3cA4%X3Cy{Dd~#Dnd#sa|NKagy5t+l^8}FHpIa%0P&FmNypWv-esE&RUVx9>XZs(S@ncXxQ z_FsrEAoU#ztC>1Xt?ul0o(y#0inxjnX6>1D^H?8ETA@N!aLNLq`sg{$D?6U-1P^%eF4|5{db^NGl5UVrEDkK;c&qou~NZ2fm@ zB;C;px!r_^%W^VQ%FVfG%R0$mUWs!T7MYFqS~5=z3w#uZ%;Jxz6ruX{x@&mg}_y zrm0Yv0h}@2n~ui<@pGHabJlq@hE8#IszcRT{6iOkWkJ4xlSmR~`D7BDd_ae>AolXq z%EE|{4Nwv)(sDqZze>6PyCQ6iNpXyZ1tv$r#EKBha{5uv0*m4U|4 zG`c=%CtSxgDTgh@^N}>4j&z5W6j&Ypo%d)Liw;usH(xoT=Uj4U-f+FViI$I@(P3RS zLGTD8QJkf6L?fYMpx&FUX)rGAIW%3zvmLcG1D}X#us7jK8WGy}d?3nSh2)9^!aM$- zcdWpDgS)z+7l_2GDNslg(!p&e$spW{rqpiM}H|=K$sp;{{|H7jE|2>g3p-=F< zil%_RLBKO_=lB=OcxlKfNLuZiGMwOnMtpZ`Bs8hcab*)U%=n-!Xb#Vnyk=QJ2R?0+Gi|>{Hx|p5#8j(S8smlHoa_vnORtgYx~4gA=~X0 z7rko?zu0I>LLfvr%>?8RD><4QuIS*kFY3>-%3Bc-ZWh|S8=F$yb3CbOe<0+PD3d+Y zqlS)?fUCS65^?)|LdMb=wu8GUZOw~0-SP0%rD^uGEp71iG-i-hUVjC_h2vkv{dhE4gO|{X8*;%5)Vd3H+vp&+Y5#D zo5k?#sNx`Jp`a{O2eMPGr|HEiN;Hh-%eP~ck0`?+OY)*DAaA!#D0)8~mLJsqL9tA< z8*lZgAr5*e*PSY{b&@c7bzJ4ftZ*Zv6X2StBBF)i6bC8c6kHB67f550^+wvn~!@Tb$6Y;W)`9|e5hSZraSEO+fPE91WnFn z**g&AY3r2TIB0%hBvc}VmRtE9w_4=O5a}+A+|K*nhvtv4-97O{;9E`M`^Jbn>M6BH zLaQZGGGLdp7s-yLf9?z8d`KblWO%`rjc*2z=hJA6;u2}#Uyt-m?S|YIZ8l3JHBkn^ zcG$3{?1&?ZACiE|bt7@ka@C_Qp&p0`UOJModHaNh2a2l2br-Q32ux)3bMbtB&gvdn zwa@4B)Jt%G2Od&DkP)CRPEv#K7o8Q6r4Zw}cK9y={6sc(0eBhtrqNheJ~#2%e8nFp z7hIQZw@L7fZFbxrueZs_zE8cQpGL&Q{(stk3?;{M?RAUh<#C&awhQNKX*yk!BFmJc zmBo&S8{N%&-O*o{?voXMoE_JZ;nnf4U9kLDIP~^%7jA>R44c;kn;@OfxF|HgvHje7 zv>fnuvY-9&obAr(&~6E4g=>O=tt#>5Y#x?P!rOcrc-D2y68N-ovw-`~)t>89PjZ&# zd?xAteYj*NOBS=1{VZ_fZ1U3fTP|*G3+J|Jm?VA`=#}nSm(a(0S^%0hLgK0pLRKi8T{5yWBnx<%#t7c!Zw?9HNd|= z6-O34B5*6W0^Cqy-9>6uan638un8dnP)FY}QyemQuzbjRBvTsiUyVDawW>Q&#~@pY zUo_PG)KnrT!ndmL&M0-?7@<~|<5OcYITu_u>EM3PrC|6I4NSLj$X77ZP}c{%{)5lx z+y1g~fA2Ii(-ROG2=U0H+m5psUebV#QJlamBruC{zlpe!{Uvpmc>K(v5{j@^#Qn0TO{n&o1`2-q}4QR9BHKfqdc@w4u=@wsd`!eb#Z4s5X?PN?Z^C`! z^YA=n^~-D&89@14wTpEK-sgg?FmpYMVKPTyW!O%rPz}d<1Rijr@QOVggv|S9X3KvB z@*!(_t|&F{Q)Ao_J5$Y}sdVPz+PcrgEF=+$V;wm#4BpAq$ai=N7F&s@jC#6Ys?NuU z#{E_rs`NL!BaDX$hXnzHF5+4@n}3yVjRnOkQgV6CGvV9H_KG zyLk$Q55$qE=(@<}kNg}HPOH$Rf>^wgk@5c$6MO3R;@7v`s1*gI4f`qjhFaoIx#Ht-))RwduqZ`NVPqlR-%;?!0Ve~EJ zLCDsH(RHrpr`>-3k=?b$#?s0`YF~cR!VCGMEv;l{W+srle{JY_2zf3Gu7wxvc>2-+ zHimBwj|Q>r7{@Q-Q05(lBVQp|mPD667A3tcA+4U6N>1q>g;TrC+IQ(lP{7?@=vWi~ z%*Rlg$IDN5-?aN4*T24&fu_Dlf(+fu#`9c8T2~7?;1-c7GKF%W{FjPnbOoApE}nE3 zw5uFDBgD{-&~yfu1Q2$h4+~wg=!Qq#MHaOkLFimx{f_2RzAG3%nfKWpASE{*A?W1h z%)W7|gOTpAFW@W2=oyNWOQ$R8$-99SKWtr;(d>UrQC_sJ1l++K@jN!M)PIXD5o%b4 zGb|=TyusOSNHTpm_8SUzJ6jr~9Tp2c{Fpojkl9hn^j#&mf`~(7wl~pGvdv z>^>~5SKGD)&G^maw9A-*q2(xVAIoPOYvv_wvCYJN2QAwTCyep+JfHBsWXUb_RL7M4 zU^?2zX-9E2`zE2-sA^G&;llgUlabMD8(!JWrM9y=GXIeOv3WE;>#pDe?4Ma3;X5(8 zOZ4%yWZ|V<;4(~+T+yJ7{*=_%X58FQZxh>b$alyMKZLsK zZm$A&DaZN)HM$17fbZctbPs;i%`z|J$rm=4F~w_<-UX`hK=rm}7jx?a8b=OSsqFMG zDXTKfXe?v1rKe38bma)Arfe4_Dd6c&X-)4e-SWL#9g`RD#NdgEQ$ArQ($lcdzoMMl(X1Y zW*sv6*zl)9-`?J)3i2Xe#$FW`_~-|j*CBY|xSS-wGwr=d+N;{FpY+kbJ5#9Ohr2w) zl;zU zQ%;9aD=T$KPvK_O5EzQw`M50t>wh{ZrDRnD+4PJL--*oOb|-ZAq&w{gS0J=2rzAqq zz)e&?szP`KJV9)$gM`BwnLj+*)&f*yjg2uq24BeSK~X@SNPRpk$(A#-9|6UEbfiu8 zj16@|`mkH{1FA3;%K|c29b!q%4_FpgMEXe*lTsj)q{61imMz zeenmvdv8}BX@Rg4K2}`VC}#Lv5ns7~c?}ayin2B6kNp?~8}$@?FoXW+6sqqI6;GbW>{LrQYzDu=jRgxYN-L@MFDt~&w1lh_S4d*TUj;2AT7 zwYn7={p(ziMSt}0YyJp96Mnh9c?FZeKhnlw*u}$Br{lt8hKrTCae`tSkJwY+|=raHNbu{Be#6G_F`l7e)mHqk9;(6K1@~13+9sxh@ zQGJH$vzZtFxNNIz!@sQKoPQQVfXc^#?fZdN#D0{iy!VN6b%kWS&;Ky%^ZyFTdH+An z1djQ-zZ2SYX99dusVnizMv#`oOlR}pLT*~R$mMAnR|Zn5#}82UXz0g=#nFdyps3v? z9K+JvA_rfMaV_Qy8EQGBj&(e5682DekxL`?0)g4hnxEr!xb7N&N)y%qddZ=g-6*a$ zFdSe!vPCiYvl!YWwz4hKvuobX5$i`MlKnn{#IskFjdc9w&`_jAuv)8uNYsWz4_Ixh zA5O}s{F{F);xLpiZ@KPX?y$3fmhu>g%>%+rK0;*ykHdSSx3ld561xXUnXc=Ychq%} zHE*a{Vaa5xU))7-$|_Mcal+d#x(mWnZeZw+=DKY}wiQjnAjKhMpCie^k<6@bYbqP= z*lNutePq&=J9&Ts^~;(>t|>^jeqEFb^BQi<_Fnn@YVU|}1ex6P>Me=0BU5p%v_9Vd z%L14(1#s>!S7$iO4YYd`$`Y*)Ei$;*PDg2k39Y8HD|6qJiC}xov!3ZXdoqJ}i*xM$ z>0J-&ELYNd_0gm}!*F?p$_zCAgkux%{TFOJWg-KJja_tOp~C!*D`4|vRA&dWqTv(m z$&&<5ajgdd0I10tT%?p00^NJ{=C$K#c!iiqL(GsGR2>&=w)+8B`uUrNCTrZP`V5O* z#BHRsa$|}o__a3htv_+O3Ybu|?k(lB%x?@Gcd>iiIKR_ zcevSi8-1e~81+tZ%T_1yaG!{MA=u7cXI+HYlrnlQY?ZP~OxNv(y1MkOhHOsn0i79sWPKxul!-xs!=!v4tC1$Yxp@Lev)EWjbxdbwgT(N_=f}Z+VXiQk z6p*&xUzdt#?h$>7X-9U&s>XqN`LkTJl#KOZDd1TI{r{3`?H zjopTB^|6sB`2GeRpE$*?hS=HlqF^y~xJ0Oc5s z2$q5~UQ>+oNJ2Hh1A~jE56I>|ULe=6guZ{gvr1&~IG18&R|`Q}^e(WlVo8L*1rA+K zwKqL7ljDV7g*+xbH|kuTwVM8uBb~NGe?m3;$QE8E2Ll7S+Fusr-{$1$KkE{n8aw8$ z#*kCz%et-mbvU36^Q;1Dw`cKv{juXwc6tr)HV@FP?AIu}n*RfMP6VX-Iu+R^5vitw ze3pBvk-d*ZOxyh@^T^;MtR_xfeIH#JeIHDHlU_X6b_q`>6n0+EOa(mMA6qvwLBXF> zLzc`7{~06NZ}?QBH=t;5I^f&B<(phXx#6KCxB3Ct@mhYZM9jU#bR zExm`@Wctnb^UaReKKa+an;h6*KPjJRMC^}DM-oAnGjjiZ7}mst!h~$;Qy1M9Cfi+f zCtIHu&50#x=pGNuyQ%_9 zERnAUTt}s7)nNzW<|!Kg`&!BTpN9~#W?QhW8bs(#>gJ`s&FDv2p%*WnM|Kk#-w#-+Sp48>X6FWkZ9~z!|#Fn?D6s$nIicYb-4H!WpOpn7t zA_mF=+gQF(S17sHgq}ArOhy*vwZ9_rs}v>8Xuk40PM1P&>#YLOYL&8cX(IROvb=Jo zet8`&E|4+RWRV`9$&kDF1MU3u2=6^Fc+!sqoep={`D{_(3BIx!A6DoMhITIrc2XXD z?MadA@j!R-&QhptEBlj1Yp?&!UIMbQ#7C=#)>1GZ7@&X5afiSIwY9CLdg|lKnaY_k z)hz=mceH;6240Hon?*Gs zzd{m+0wewkDY$6Vgw1Y4wRGi8!RA$N&>tHma4L?~!@yOw>q?evZ-b&mBt%5M{QWf` z?MKFK@x##cE)O>5wII4$<)y#yZ^KyZ>ciixAtrtG6;K$d1WcbKRz8~*+p#pw1Br;| z;&8VAi9Cu7rM(Uiy-8)`CA%sMkOQ5p(1}$&3A_N(R$B zemUc+oX7isk*>fy4CTtN`*+AbKBFu|Pa}VjD^;Atu>f#6omamW0M*b=KmQ)ZjI4%z zKmQ`=!S%_wb;|sfdu6h3+-B#;;?Q%FaNV1M#4wt0)94d(AG{>e06G?77x>egqEQsl zAVS_3Cvbk<+~K|5z(U{0#opYNY6fsV9He4l4!rSFr<$KlOe9#;F2!!rMMsQg~N zTQaX3qH{}cf|#7|orJHG8gtUg=Ia3`BWCFO(*UPjtlTAwv*zr^T@fcevd>jO^6jL6 zK|eI)#1;r1MNyZHoS29Z2FM64CM z-&8^W_D99UiD%?^)M&(!dXH@@YFW!Qi%_$H$;34LtsKY@F^ExHNe>&f$1{BH)UCen z6r6iPz&%|cQ;)IHrX>5Jl2XmTocqhzsOEr&A3|81;2+^1-Gs3hTXGz_^)IJXE>Xm$_{-SX~>4mC~3tIxN3ur<|nEg;|3u)28}|gXMkRl%^HD=TxFeUe8*9EkUwf3%%-mW z9@ab`e)3bX9*DU`5caHe$Ngoa8$}YB#+sD+@i-zSD4tz*Uedv^6WdAH#mDai`D4E@ z>__zNh7=e~kkyOOKD9E>KTVxOqhYCpND=^Q%19W(6NbdE-OcXK$^0>E8jh4&tG2XP{$khi83P}^jNkN!E=)?%zN(v=9t|rvRxl7asSGs>aAf^U zj-PYQp`$}>w?z2ME0ob6I>vG$fP*6}wP9&g`r5z%$m?h@JCL^>PS7Z4mVPQzqc1QHX8ELQjQpYOtixzjVT^Eh_~aGyq| zJ#v!D=p>*jsr87kB_rUZqU5sPYtJPBM#bp}z9ATXKp$d6zcTV|SFzVP0ldH+%Ma4L zTfwjI4f+{M%2Or$ax3t0yRTa9G0z>`&jc89IhiZn=V)w}mAO(4OtzlrwgkMaIBEa8 z6R3~&+9S(OHmvxNJT%3-bq;9kd^=aK{g2$#s&1d^RBzkCu-t^k(y7t=xcKP$ji@*O@t04c8hp&uc zU9VY^e2#xHx%Wh(CNrApAMdiqaMEB;+DsgBf&bv`TB=D9Z9}DfI@~?^Y~iHRmfFg= zbwk7b(18vSndxkY8uv&#>eBm7e&odQep1>kc5ewxlQT(f!{oNH9v+x~9ZaDVQGL~cbzys{K^292Drf|b#+@hPx|+Z}*j7dPyYLC6 z>t7~UpkQSbRUDnqB%F?02UF4y)QJ;5-z#3g#ZCgEEezlUxv3#=qt3_vn-@4v-uCUs z9KMQ9}!k8QSIN#9V@?DH(rpk!;1V?g(HrmfT+(i zTVt~MoIhze(@QP~mo*1Cpf3kv&00m_OmOD{W$P*S1di zgiraxqCM6zMn%f$}-pj8Qq$tg4+qOSN0;y(E+3B{ZvMz%(0Y!<`tY ziBn*sB=!f@d|^V6vk$cRCJZlmC+Y*Swx-rT077D35dHxlUN9U?T;mpKo$a9$@Y^*xu0*E^Spr5L#d_+~Rql?qSvJ&+aL zKW6=mgrsutjd|Zwq7J(}Oqn|^*4^Lga;E*Mhz~0nY*jNAv(+&?kQz6|jX%b#fF`V}uv zxtSe~nt()Cr@dBSDD|$|m&BiGuLIUe z_xcUhSXbxkjSH8?(K;D-fwx%!MDed7XmB>4;_u+1yc1k5f9GSavvDlvI&uN9KBq|5 znMpofHg#`I|7@7NQ`hVCo_esVTJ6`LCtUUPKER8N9UW7;Ek66|J`}CNl?Z@8;pIDk z^p}i7KGWt?-OCofEePbJD)j7M=jQU-mxulTi=ib(bjaajis@)*Ui<>IVRW_ktatjG z@?qy0OC)8F532*!@$K}BvC}WIud%_hQ5c%-%1L)dxbZA}@oiks3g1c8v$#jBZoL2>!28HQ#HN-3Ud)u!n#OVzU7akiE;S5dF@wwNqL9(k#!^)5ml%H<$of^M?;C4A%H83sNTRqa1WUN4NjTR8;xJ%85Cf> z!7bpiL{cB>c@{WtG-$T->eGmfQ$cq1j=MG}1@Gvn-Ide78NNW zYLN@vWIv$IagjUkQRt@v<#g)v@BNCzG;_z!34VDQJ^lqJYBvYf6mR4hi_Jxx;fWP7 zph-@;b#r;C%}(iNEW_CHCBiC`o{Tm{sW6yrkf2=G^NSSym-2V-vt!6usIwefQ|RG$ zC@7Y;hY%Y-371)#K{8}L^PFTxoA!lWi_uKo8XF>&d z`x}4Bg1EEgBT4smk8+SK_lPSWM<1g_?@w|=rd|5huS&eQ(gZb4Bm7uN$n~#!Gs&*G zd6f1Ili2nzSh!7pdj-p%T^9>3Tf8$v3}n_ zo*&g2JV9#S{~^KlfeZBs)>j}i0TcZpwD(C~JZ2F}M}4o?r~-$i0^&>|k+KoUSM12* zMv{lQHs=6>otsd}caS+GDC%f)@GwX7c?W{eexb z)$WT0$82bb* zAL)t5r($yX;~;}8wm4ydaR@u+?DbuKT;vrN>#+P#824lPdVk5omF}?fumjjUN%VFk zk?h)jsyjL;@P5t6{f(jRs%QQns<|GhbM#Uy@OIq4_~U)h_jQnmjOU?#94KwG zhb=sD$H#(67UUb zC`_#?#sUVuWGpmIL_n;)$NexyhMh_jFSj??3ojvi!a%A5DZS3PQ=(+-G#<|-0L_~wy)OtK#E*!- zCohM$N%M)|L4BDowAxP-NK#{Jb)S^bvffj9n7V8aZd;&H$&?s3ST)~PI;Q4dlH%uU zco?^|#1Mv8oS&I<8+DNR>JZd%A`-#e9KQK~IQy%xw%V=@6s1Lr7bx!T?k)w27k3R% zC{A#f;_gn6;_eQ`-95Ow2e-|;_S)zFw{tR2o|%JOSH?5OxDB^1EXHb}aB@5lapA|j zemw{;f4#S%uC9&4WV5+aOj}*lNl+7;Ks&Wwt~Q%;|5zXR4DY$BO<|gu(1as> zn0R5%WfSArX9S;4WNN8uk=CUb(_-(_Ao0G_8@k-b%Z^X+dVwochAT&EaV)g7p?gcS z9?W=#UL*J|N3~GF6Ecr`Ol>nxrRF8XARgydZ7cs5CMU?a{EW~}CAC_5V zc06X0j6D%kpk7j2LZo_cP>Lw3pf;lLpl7O76uaponX9Cc@Fvs!zMJ1(C3p%dg?aDO zeAViTnexgPtg9d{P+hCdMA$g|LaItJ-sls3I(j6_qhS4H$d|3JtLfBiifmu0{kd>0 zw1~5X5q5V5V|)oid)?dKa^|50g~fChcvBF#&mn9l@F*iACBy>;gTw&s3`_N?J<+J; zBId=Px~u^w#PY)tJhmqQA*~@En1^w!z4WwNgA;7; zfdGM`jt`QA7V+CoQX0mW>H0rvCt+6LTy1?SrN_1e?RP^MkIX6yK(+H3 z{h7L38g~xspyGm!bc}s`9RP>B%bx{mej{|f(n2xM21`$?6b=bOI%HL5zycRUr$%Z> z_~y0)B^zeph-=pLDn+vhmKb%48__KPA&7*3UL_ItZP*|1$~f4xfcXG@Zq zTW}%JtJGo7o21X5w`C{Ve@`qF3T`pd{mlBWt=#ih`Wsx%_! z6Jas0?dt9~M{u|Tn9T0^xCJrma3{AdjL3bHyxS-6XZ_1AJT#w>uLb`?pnj(!%Y3_h zNt@~8lzQhiGQaOC|AU#+AO(`S*OFC21b;su)7y{qv-Q7erI&5+MDe&LWHf`1j8@;` zxP+v%RsdpRQ%p7#zEQ5LH;StJ!E0SHv}V}O<@wEyV?wD^EowK}a&t`HNE())VHBvI z2Hx%cMm6;;dLF=H={x{534NS4G#fCN((SyPlYn-g$^R}NY3$BYb@U3(VIl}LzhW&P zU)$i{lZlK9iM|J0ydE@ZcB({h>Y5-Qis;98O(JAn}i*V&b z-PP5{v;!v3WC?PqwHSN9y%cHqXkdKxLYO|tSH2)C&kq2tL-1HRMpk(-0rXs^f5TCtl_mllB_57K#lLyncL1u@ zqHFI4(DDAv+nLFDS6oj{hvq@7iKVO(r8G3%QZmCCH}3iBoixg|XvxfRqya3qAt2mO zR}m3qp7Y_z=6)Pk(D2dE=pb(SJ)oiqmF1G1wZfE@q*}3^z1tX9#=I9t6vJ#;KVR3c zUZ$_-#w5>O(`YODs#7EwVO#HzaYAJ9exN9w1mDz{cPeZ9jjWSyY^)`tMN2CY4CO?9 zP%+5vR*dAaXM(MjG9GOexRiR|fIGHLV1+SLAJno`z}%fzg|$elqQ5&^aei6toU3lD z=tU>9w!8}qVkN&1K##=J3<#;#;xMjJvqMaXB&$#RbsB}X>KYNV`d#E;Ds2C9WswHl z>h^P`U%M^RW)Q6e7%O~N&wN-8ubds?{6*O+R2S*rpy&LbU@)v%PqI0$McLbK#joyc ztJHeoJMj$huA%Da!ed1&bc5}ly70{SzO)-Ep(j1fW%Mrv6D;I?`P+LZ?UU$XLUbAY-bwoV74m|=yh#aOW(@g{Rh=AjHoAKI8%?x0 zk62nxncp-f2(G&Pux&Z{PHuYrD$FmA{cJc@;$>RjPZ57S>Nd`)C#nEi_c|g3F*82n zo{7)U>eQ6!Lj7yTdYIDo4^?~3r5lYgmpyTNLoc?ynB^HzMM0AJ=IaMdqDy=ij-{Yu zx)l>79iGCREe9>9zUi3HXpN5ZDzdv}TlAv%`(=ii#d=2#XV80V{Ij4K<-+A1S!F@2 zaLd0uG~ z?sM+xLmtq4`Dx`UK|3~BsXtlGBVd{V1}r@)BT`zexISfXmrzs+7=^=8kt6t%TiRJ| zs(0@-w4bY}WEfElxMC`u!X-!*;Ol5aulUMHLp^9EuJd=4YOc_oPWJfnSXBA7kj1mDo%n;8u% zm<*0Mz*;mEA>-R!FQO?%p*81N>E;k~%YK#SXe!_#ZZMSrbY0&TEx0XHxMp({sP!yu z6{n;pm26XU)1Qu3Yn#qVYNNURgRYDZ!Iob8fVDbg*((ulh8GdnPtAFrNwnAR8k?AC zB9d39k4w3cDzaZse}Qh(yO5ZhH~-)IanyX*P}Q;eaZcaXxlC7o-TtXE+*g>w=L6^R z%&Pm~n>R$TU2fxaxy|3pbwT7td3=pc zvgWHkfkA@wZRhoeC)B+i^Rf?SK_SDirPR-p#lP3{Wrq?{*8bgscGrhjMPB7z<@MJM zWAvSQnXq(8t}Og#Y=$VtUp0@p`OLmW6L!GjL^d&7iI@~gDq%@T3hgGvNJ2X!&J->9 zajd#0xCy4vSSv41XxAsPzmfEN>i~ z{@Gi#8og95Nn_g+SYT=-Pz?&YOM&&W(mehyrL--ovs?IJ>jxu6N2*4hr|Gl5fcilS zg+z z;#NyZuTYrcj$9Yt;p))MTKIqlHh79}zriC>$xo{4!98OjXY#8<_%xpVRG?T*7#CN{ zG)h+kU0g}I?G8U10%-gqTE-^A^f2-^hZ4;vQ4}7Env@SOmX~f_a~j!PEdNw^H_5j6 zni|e3ry`uSJ>bha<4-?jMUC%qL4&`!+7^4LTmCi-MMzS|TyH0Nr5}C)2-Zd<^z$xd zLVxaV*hH+#YolJD+QQt-b;hX>&8O+F(z6VNeaeCnd3%J?%vN~*do?9B2>1nc=Nxsq z)Gr|QZ6hHQKC*EqrpTzI8dJe@Zc9>XU+>Gj38e3Lj?aC7s9 zUu_#@!DohWC*eMK#(Ah24az}nVVLQt+5^^?b-0CG1OQYIN_`igs9Q zUw82$FwvHPHhoS?awa3IIGYPz8o^QhA@WNA5|m&Q8dfEAaBJVKICg{Z)kv)z3Ceru zPTaG0K`5e%KiK*_M@&kP@rCS%;cK%$r%V6DW_f9j0Y5tkcWS8&&Gt&A5zPomv`#T( zHPTYrjWn9S^M!zuZFBVWgYM{|VW94I;kn`2(jGv?Q2k-y(*=CoB6-`IJbdKw>g8dq za_eVE7I_F1(IUP{9rTiFEdy*u*?H~I?{7!2Oq{^9N$6fUrnE7-cHU&Qos?^`2}5$x z#!ns>#F$t4PX61m)Tz!*zMW2*A7Wi}`n-NbYqZ~FUFZ>C$A#4&GL?i z?6vUn5cB?U9qrmq@w)vnOFe{)qI^hgRwt|ehi%Rx=jZ*KcnO8dlt^Ma(HoE9@dOf1 z>E`|G1*ff{7TL5_)4k_0=n;XTg*wab32N}sO2UFzd^+9sWz-J`pIrr>)qXhUgzSA1 z1^RS`I|O6p6yYi&*P$#oL0lOh%!yrc&)JN48k+)IIrBZM5McUM-9ec zCb1DgZr*f~3I)fZzafh{pCLItVAKe46+o_|dwsXno}*(Cwa_%p#dJ1<&Gfh2A8Syb zld61m3~hCQWZZlAX27-@BAsuvEBU&1m)ki{MDw;MpB#B!gaswmH-rIwf`Sc5fs|fP zJn?e@IP!V$J{wDv$#-bESKVF>ZBpM@UZ&EkqW$BfNfdm`U4M)RhB=;lG7~b;w@MHN zcOquFm^M+lQTRs68s5U_9n!E7g2pUw!q)rDX(bXCod;^zRdub;(i^QZZg5tU3iP1K z*cBgf7jLud|d&G%nEnvz61@ zm*irX4QV5uZ!~Y{$naS67~k))97Npw3}!QvJ{Q(S?*VMD%V4AzM)@RqOoY_gkYqPj z?9o!VNT|FF4Sx^)daSX^Tf_u$YB?tpb>s7y%VWK?;cL2iNgNzPV>CaLOb@ zT5$X8D2>SD@LnLv%jU>i`+<<%*|Q6WXoarpW_l2PsM zs3eYlqCP0|{=Vz|b@}xO6ZFvMII6quShI9o)_Gi}k^_18*iRE02z+Q&XqeDErUKdb z7xJ;~ACX_YI05ULCt+3N&NiRo4pvt8xx+emI*t@Z*FG>h_1D)6-}k*e7T-twgD3Oc zS?5Y%*4{o(*W*l;@XPE6e7EQGF$|iJ%?xXzdc1btcd!6+-t1lm?DQ&~E370t1tQnB zP+heW-D|y>UAW)>8xldct)jPvAHdyYW2FM{+RN+}*claMaDRQ`$z#|{8@vs8PWbR~ z+v`U2v0u=f9lQA-R!~--{h!yjx<`dr+U@qxhc|56u3*E2fPa(j%e`{ljWcdF_rJcT zic#j{@n6`uHxL{Ya^T?dJBI0r8yUoBQoHx9<_|{w9GguS;Uv*^zo2lGJ#e_FR5DYt z`%|M}s}KHt%p?ps?bP-CEuB}(Bl%%nmCw{jI_L@Xm~lPxyO&hu zA3fNf7O*)__M*QZu|zJI=Dw-#j&d*yj1xZz$3XX*$pYUy_}D}(-AeT zoYGU{=K6YiX)#;FR1@}mt{m)c{aVWr^dlOmb`{BIqK>n+UQm=k5Lv-WX-Ak_t0~-q z8*PO+7Q&+sp(p47>-*qw=p~RSdPQvuTCSB-XKeooSzMr!D)&FkY{o3x`hnDWx9D{g z=*?{-$7o+sRZCk2bX`zO#68?9N&jL6UyouCG-W6MyX`DA9n~3EX<_`~Sg1y@mUdjk z=`X53Ya{JsR>y*SB;(ED(9h1BST{{(hcrR~hv=xMoUY;7{7HV2j@qtQ2G8G>hX${* z$dVHB0olA{=6bW`aJz}fd&P^5*gXzs?L^8>G~9Wq3IGTR*m{cNf$In3YR9+-%xfc^ zW?M|Cws+OKa9P>5*4i~s%w%L=>gy4cZfj-tftYa)9ry>4qUk&bB^OmMiH!@NMGAdm z%|<%RnTk~GGVhINMh7p73kg0Mx`GUxDB>NMbfg!`Kadi&&%#2b_?u2(!DkiWKt%?f z6iKyj#mbn{xY5y&UWSVK2t~ieZ+`NGwK|~H5W3pW7DoRmT!S9&kmRkHHYDe6$uF&XKRPs%>qD6((tj>G&~B zeK}~6>E-OA>3W~CT*@?k1%DYkcoV9SE2GRjxIRIS{Aec98E)v@I;_&Eib? z0h5t~T1v7?DD+EJs?PTU!kVk3h=~SC31N%&`@!Ct4|hDAik@o34G2Y>-4PdiN7J6z zQG2voornW+mTzmp#NB*d$W5_bvU&kOn-atXN#$U89 zvDzUaA&2Wn%Ap~jxVpr<2R(PKRKwe1t3*spZ;X>jBqywN&2mObi4+Vco=A%hmUyka zNA|JTGV{A&+-$5``wAP4XK`Bp9~Vel?-SiBX`B%+?zaC}1C@f;A5vkSPCaZx&3j0Z zh)^5*BUmh=?7tN@3wC^qf#H9IZ5Fp~B<7UGiT^CvPL}@T9eA&Y*Qjlate<~a*D|ww z=mRla!S@Oq5QXI$+000gX6JQMnUF!V=OWtMCK~gH^jUhw_XFs&Yk57h1AS(Ws1bfW zQex?PZtH3jye&~0Z|2Yb5DGGWRJeD1_nH3|@XJvrimt7y;WcyltDb8o1_xLGx?Nxm z$H=3{ZJFU(3SZY2irqtGzZQlb-n*?+J^|B5TiOM3=i2wZ!tuQ-H(}gs;aD18n<0Mq z2hXhJ)`LlyZu7rPw-J6N{4;L*6ysZ9##7e1gLBP&t?`SvIT?dN!sw7;jR?h6t|LDb zf;&_tmS<^eqwXS%rcCR71nKOlz6R~1Pzp5JJva{r7OQ}oU5yX<%*(E9O~KPQXkSzH zihvedpcJ@cKRwBE3+YiwW?bJR^#*K0L2$DKp1Q?((l<}%scbLsKCao6dP-my7jUe! zy_~MUqmfpe@Cu1Cv>pZ};H)o~>L4J&fN@UX#`Ghwb!Muf){C?lU5Icd60<1Y!ws+C zmzUj<^y=aee`WA50E{%6=LO{wvIhSR1vC*RPO$LP9Lcd>D;P*m9=xm=8cf1Gv9xUrB z_H!;PmdXR@fO8{EX(JRNl_Z%#1~p;l;%vK2h7~FohHL$Mm zMaG~@`HaW$-)W0*Z8pX8qAd#?^5d0FBgI%TyZczI_?{qIFC^#ivL{khy77B4Ezgw5 zb>+(mv$932v~79}cX&}TNIFISLfMM&0hdeslv?D_YB%!-YnV2lYf0q0i2C*h623b2 z;ynjATjMQ;1+i6O_YVIha{e}UM62y}uh%M}iMXPN^o4i!y+djKT(4q|O_ zAq~gsgi-NRou?we!aj5oQ-aT%YH=eAO@PO;(n?eoB_qb;{=}K1kEN>?r-N%U9Vv-j z!kBNE#*O3W*DvO4;zynvX$UVu7a0Ju)rL0tg z9^2jTyt+4@Tfmkrs?Ck7>ZMzZDEO<>_TLL|bppKeyIUxHkhliawUOqpfKXCf-Tv{A z6h|FfY!b}Es=Ee7mJ>2PN$EWxY&qu$t34!WbV=RK(khC9=^;?z>7N-(QpITPC^P$c zdjaxeU;n<|(y@Q!AB+@Pk=F&Oh~Bx3O|%AYX+}soG!b#7>6;#*kM(q5Wsg?Y`~{s_ z;Pe&$p=)H-{w;sMU^P#c5B;z>OOYJ@j-RD2gVa3ep;yw?GQK-RZP$S)JxmBcdryNRR)&haTOZj>hw)t z`Y&I%o>4!5Kf)UlsYf zJ}K_gfZUcaPjulnczS6TsXMe=_E{e%Wzmb;^58>_6Vtz4@zIS6jc&ZIZ7^MY=%v{& zQU(Fa83HEyZd*a43bu|3d;jU0uNRs+o!xITHrl-&dPzD3lYvi__kL>Gn1F(%^&seNJq5x0xy%$}Dhay8V;-yz75uxrQKtAD=SA*-=~8JiJ=x z45Q8wM`!`jP+al|Cp!7^klK5;YEk~(05T9AwwWiOgV6H^r+Rg z=L9B`5nr>Sr7wKu?@7jQ8+9R)zmIpQGZLI$f7oD{xZ1Gh6CV_8mmKb?mU14;5GHwa zM)35Dg7FL?zVKdmX*btYe}2>$^ngQc2C`h)M4T{5ytjr5$-pwIpc@O6$h*?TK*e`0 zw1MM)F$|ve?8vc7K=oMU? z=RVe&XaHU7Oz<2ehoYwErHaI>c&(g1SOxfZe5ulo+rb`XKQsG!!&pM*k%%YYkf1M8 zi4EJZK-+=H_mA50^dzm5OLu^ zfQJ2qf~EMyh$J1qvIB0cS^&wWqj!lSpq7UFQ#3M3A%8l2B~nJO=b(-I5-I_*2Lq|I z_`knLu-2ej=Q&{F%S zsH8O-S&Ddh^qR3=hg7_1cGdhDM{t_(c%w`)D1R{?iOCoDN_AsUdZr@+9S-poh2hsG)uYRWiyi#O@r21Ss zFp4~6Ms;wMe>sR*DIRLaO~7Vi7isKcdl_g$Q#!a}B!*HmzX=Yjda>xi1fN49ffEX+ zz)?1Q)7E78HkiRBW3KDE^_uQQN$iPhI^D=XsC%P-%EI#^=thNYf*aQ%e_G19;JU8H z;(XD0QHJ7XV$cL5hhl6N;@P)p)}T*3q>!K2Jk+|b{a`gMD#W9#=X-80L7iol6Wsqx zRKS1ya6O5SI)RF&cYYQ1PQ$l*c6w@BxtiJL-lwc4k!QEkUe+=iSKqLidlQ=!C11$Z zGP^6eb%CPb)GuF7Fiz^RETV5WT`I^BxJzV1a}zNyL7b)VBYFvCD6{_K#beZpenvV7 zt5T_@*U#O4i+zhEf$N*~KNDLc@EHkbf|b4M2S&!J;^m;9MPJ6jtK?NEyPfh241{^} z(ejcTxFvd^Ix?i~#Qdn^n;#Q6*7F%G7LFCi_16ry=rk6=*F&^|W6mqQF_{%hsk0~q ze0I8yBM^%=KIaM%EM2#937J=aIQ!jk{Y-$vsT7pNetd(z;qT7O{GOZ(2I8D3m2exz za5g1tAEFMro`5c-w$k%lQv%Ngamu&9>Qa1o9qWZs-9WEy)T0`@tMBi4hie@QjZE7M zJV3TcC9OYSsIZn{<#yfZm zMaQse`t1FSg^Ic>7uCQ6bJ>~0gmCtRIi_Ns*DZS2WA&K5)a}Fql+N6;6a2C96?}>_ zK3g*+RV0=M)F*#(o1~M-Tgr5?%+qROE-;s~s6ud%DOj}zc71|`y^$x>(?pJGpe5tl zl&68c`czbLRh6bw+gCaH;Vf19n?uy6wtR_KlWf#O6^>qS#0IxJiz>k=<1-jdc89b3 z)jYZc@A{*_a$%2(F?l%e!9|E=B>PeM)eKX##znzT3OG4+r#xxRPV&)DxAeVMI{IRq zUU*qtbuO3%8CUx-QPD?~Bx2WOg$_EY!gi5Z=?R6xZPs6CSrWSs7>S>dZJuX$b6IKy zDUggWwRi`-O_K+vqPDTCs4k3l;yusonR@#`JK2F=qJPm0DQ4EU5_}c{sW3)ySol^^ zql)RYzZU<54-P<>)oBZ{-u)_e)t{GlXv`}D^K^!W(po3n*MY1e4(VH8lI|XLtJYDP z`}1^Ya=A4Ft1)sZhF?mils-nruU843nK$fpP@U?UDA$RcgPd_CC z5-8zIOr~BDlIw7$_H8{cHQT1Q>G~5>UlaWO#_r~EiDbSbw-}#_0Y8Yt+7*joC6^KB z8K={>9%BK8_ml~cI9=mbJkMI9#Alz8zHX7N1`p8NwS5U69Z>r{pH`F!Rk33dP54WC zB(KgpYupU0YO4YPRgH*`LnYef%&9%tsZ2;2lN zlZF1Rg+)y&tMoFI<&2LEifsqsEsxw&Nepqhe;1Hvp_Zm63E>0CIz^)%Q7zk?PxaQf zCGP)C=t^OE{ElQZv^ao`2|~})q~q>S<4NK6UZ1^aXt}I+AX7k$t*2015;_%_n5CEN z8h2%gU|}8$3h$?OCKxuBu6|4GtZ~rVmE;acvPqbX(kDj`D_Ie(FEMG=?dZc|%3xQh3fE>Rc%C<BFOh6yG} zOxGbie9UOkQ?xl z5j8I|K`L#2y9KxQ|IZ7+mM?%hNMCo;=5z{Ua7ymCSZ+W6x|TI=4*M5~WII511}^n6 zd`%B~1dM93z-W@0OBeKa~M1N2SKcS4r3T1Lv?vtFsB> z+svJ;593mJNA;$%_#}eq$wPqhSMm|I6JXrcEu#IuO4~XdhzloR-XH7fnpLujSDIKb zn5NgZqIg`Y^!-Pyi;BfaJ>i*<*^qB^Q*rgr^%_Wy<~5>$Fwxs`ehz0&GE|@~tgLB@ zKgT0s=bszJ&@d&y_J4$0HrxJ{_8(D(DB{&Ki`FQ)-cB4hUn}6n-+WbnOJDCnugYH` z8-%ZL;vO`SB>&nqK z=p&tCj=J2U!sI<6;9FzJsW$88c%rZct8Cr9x0KhOimGVxb;7|UTi^|RA5UihAdb?u zlO==LULn}#bGSIv)%CaeWy!IsfgEo{8)8dRdodfySRj|*X|4-K+f6jp`AZYA*Qyyf zyF8ujwLL}_W{eF{zN48+pI>qcmzC>Xe#@I_+iHw@3G2mwFO7Z=oSJ2o5wh`(kc&&< zHc`>^M}=T?k1Vq2esGqIk@%1Sw%n*K!2>N)h$OCQ5+%0BO30h!R`ulF`lFCKYv?dm zD@L145BV^STl!jJ`&^aFR@-lXeP?hbIy&L@u7=re|Npql^AS?vZTP((maOj09mZG81Arr_;I|sC_M` z|5%R8y2Rgnmpc1t%8c1s8%fy8r)-58{I(mC%O*|tZlT_6cCO`Pp&mqX%*z@wIY`d- zS{q7(pSUNzyl<`!>+SgO7^1kLu+WPG8mZSHXgN1Xd=cr;ug^1(NiuvJQW;zLYMQx% za=M3&;W^gp$dP_z>V2u|NQk?`mjvh8Q5%$;(c|ywSbrXACYPIV4ewGh%v;S8mC#8z zbr3BV78jXzQ;A&fWb$~B3 zKDG8)yk7Ea2K9F=!l^?NqW(}{KiSAoscyPHzq~No9NzrzVo@eK5-^xi#pwA`SX}sd z=#qp#!=yg-*H8PY3j9qH+v)(GcXUl2w3SW>UEH1&l5qE;X=J%h{FimLp`(6JWmVAV z!f%_cq|(dzcXq%G2ZzOLP$eYW8It8J+4D=WA;6 z;J{%O*Z#A@j>r}|K6jRN0Ak+bAX}8QGt9w5w3mhV-Qhp1GMQ55uH$M%LZ28>!os>wOwZ5e^{bCf8> z)c@__D)8A{V%R)>WhcXntVPE_Lc@%|l!EO?_A(hTZzdyya;0sYD*kIh%**fK#2pd# zwB6scGSM7IHpCQuFGojseCE4U1d|U&;nDP{>|Hk5ZoB$&SBDATj47LP$*Xi9J!Z0p zhyav76(5*;8h3cs+;P**?I_3@*FYJf#+opN)xG z$~ipIfLIVGXkH1_K+;*r@@ND+i_|9A#D(WiLWx6qDuHG7{cw^!YK|BDYO!095D~qD zr#gX0WABa{D`;BM)BvxJxw)#Hy-P@!@#`!?!sOFpHCqE!p~m z*RS%NwxFf3`~+zv^k%UbSbmROrRktZ!tHInXzddzfu7o>IOnHA~U^w=C$Yp|F zxUGoHX9pj&!}E3V!YCeQqO{Y$zL8M~E@3@~upZDmQ_fNDD%cFgF>|3jB;iBv@0mh4 z&>sg<$9aBJF^lrUCQhlBrSg+41d_cH57nCx1K$6dOk`3X7y$Bhy(|~-(s3#N7N3MNkz~oQ95i~ESe66-Ap2;UNr>BVA zo5q|6NkMMy&inSx#fI96?i&S2GY86>nD+L<^PUhiSLmTIKV(rL82$d!&_C>-ViHHk zm-YmHvQwvyzj1NsnOJ-t&96fHunSGuXf=2KhPe1}7~e?<;8aG;y=g(&obASE-bhZk zC2P2=KPbB#mO;Sn1!kYggGR}G3O2?+%@rY6r8F(&8HRaCu~~!3D?WX!F_zFbACASV z?Wr?hIWaK}{Wb65%#73A1NObH4u1`+boyxfnbl1lJ*4lLc{{u~{G+z?ZrWcrwyB(m z@pcf2C}njZqs+loN$D4F3~UE1(s!q~jeBH`8{ofQ0j8q~s=U?D=oC$ezaA2Z$v53M zlwe_Z*AGb>;jH)8r22q6_^z*_!58kK!*o}e=&!Ds>hU)4El62S=Q>#$8H>eM zSvg@=iZij2bHDaB8-N(4rES9@{Y8$l9dE8d?z9_m^@RIttwScv`aBq!nU!Ji07Bnd z_kTTumnk98!3)D^k)s%ziE*Z9PFEY&FY zQN=xlaowjN_8^>LJ5^Fu_wT>~EW5Z#PS;MmtM862`?w4wsXjr`gyz>p>m23f#cDL( zBbkp6u?cRO?&nKMt89_`+-5}lZ9-IzkEEThejVBDM;)Z5zD;s>vj|fa z7%pr5S(@yLAeZNoCm7%!b}v@;@zOT8eO$ISQpf%Nw#+VhnUTCO*i+;NiZsH17rGA1 zkq*gsVNSA~X(*3~ketIzQxGQH+dgElU7%-AWD`B_mNvG|CpUcJcjv7PN#cpu@3tZb zcYa;Pp$}t^BVhm5KipQ%hjJS9Ca#cLz4bYfl}rM|#AIllIhi^U&>YdGh#-TBb&|OF z?KtmVHebdbV(p-dsg_l&37rWyjgmsk@X-o9+k1J2OvN9Uf|GWU#wBf@wBDrvapNgp zHvZh$af!snx5S(w2J^**@~dLLrj1nE>}v;;giiSsmt>feNQ^RyD!W&iZ&cLch3O9+ zCRs%2W%hP9q1Gh*+~RW8odTK*3yDHz3HdjhbnbgHMrHNM`YKN2n+$0qUq8aR%>CBCr})!RI5t8Z3u7Eh44< z&NNAjYS>#N(Qd#b@ph12bn&z?Mj zCe)=x8WwE(H@nKpw7bO-5v{_QXB{{(Ic1j{Cp1g)Sfqe`DzAGAlo*}129udDZE3En zq0xh?5{`paYavaa-Da#tk+I0qZAQ{3X9vLTmv~yMKUoZ#aUX4su;IhL(9f87Vpki8 zi(t7u&GkoQJ|sfvx$HOWQ}v7cxyb&UG~q(3V->#o1b`G%rp{E2^dPoN*J-}5KJ4rD z3r9LY7bnEOKx<6G{Wz)=p`M{PJh_$ev_c)!o1(e+5@cyGpKrIyj)Nqub7}4no7(Je z^!2W}*{T~KFyy+9cY{{md=lcpu8Gaemi+h+l0B|f> zLLkXv2+!R=d4GX6Y1^fh$c`d%ZWAv1F|1Ybp16z0_r&mU3rY?byXsMZ0t~Hr({`4w}sMYjZ_&*{1C2qpJ&muWxhr(a81tKIAl(` z*To#@j2tb%pJ_zH>B;&|EW7^SdxDRXm*EdL zR1Q5mL87o1^8tpKEdG!f_~^jJ=5e7w3Lc&<*%P{7Yv%i8#8o4229`yAs8 zj-yJ5iLvej!|EId*=)gkW$l$d$j`G1Zwr~_`V_7L(hR>MF0ia=-%YWCQv>gotsKku z1-|*6t16A<9D$z9QTeaQX4Nuw7K{iTE`z=66eUQkr3o4Hh0#pEiXWj>bF|EoeP8aj z-b@YD{zvKVf|X8Ix$4XYbMs?S;(27&vh4Bokl=Ns%Io=(N;rLmdSg7*Yq*!4EUB839(Gf5*QT(NAl~qsvgh2*Zg)Oo#oLdZ0U*Y;07f-am1R8? z>OkKhZnCg5x*pN&9qA;OGv=lI(+Bap`A7T8={`jl(*q6iV>hv;v6J==X|R_b^Nh{I zkX3>Z_hAedg+YnkP%i7HIa@;g6XMUUxOv{P?P4xYj+Tp+C3*uYVGEyS|;uM&^aQZ zR-JbxaXIwjCW=F!r(n=waqxMR;A)@jVf_(p=>Cct(UB<9OKj;i&`rQOi<$yzn|p_I znSa(%3`Rgvc<@bG=y)030H4d?`RDt8wZ)#syK(Lv*Y}gUtLt));UoV;9|S%8^)DC= zvP&Wzh;{%mERAZA1!|k6R}!*RH@m&2^ymdJ6&ay`b)1N^2Bpw9N545t7sa0iUMFg4 zUaevXZGYz zV_1XnD3G}E)P5~@lpP3#Po9+eqq@&BiD8Y<&0sT)ZPwo&tmox+M;M|PM;#d*NpldM0317Dx>%Lyi)Q6VRw!wtBA_@xcVqQIN_i?3z@z+DnYgw};1mSQhQRzt z;m5p&A%T;1N4uI(MLMyxl`D+x6W!);gDE(F;wdxx5nZb_i7hqW;sUI#VD!o>a6=L( zBb7~3LFLPxqTY8I14w1P*C?A2iD#2DLV}YHAXfJlK$OD>(2a`^NeWTUC@-%w#di9^ z=Fe@b8%}I(mP%;J(W4zp^lTLTP#Q}s@ zRtw#C2tR*{X;IB^{|zkVXyOBoP$7Kw#;>@(cCl1Fin0-;4na$h;DhuDceBzQhm^sa zAqd(e^ygi=@aKa ziyg_l^+Cm$hHJiD)N5DBN|Fx7co_=;={z`p_&1c-eB!%ey~{CbTBgYgw;YD07%b}? zG>6ZrOQnO=8&X}wbJ0$SI)CVBE&I=+OYs`!c{6mRF5Q@~a8s6n|MA0c)*Q6;a?RjlRhHMDe(Lh~N z=Z6g(G2cDDuuj7{Rn{be$wxdWFqJ9trnC4iJz*ebdkREPzz|xXz_q)oK2?MkI zQZ>D&ziSx9h~kqMvLviifTCb_4C$g3E~mE>NF=wlh7R@&tC0$B<~*euvD9}T;v&cK zA4cD7US)}FZ5&t8?iG7pz`s}@Sx|aDm(-7cA;@<^^&F7wuhTNW9>gWa&^rWX44M4o zeyKG$)|5ee;3uEL$0}+r?mZ_Ty{NZ}k?md*I7=JZ0W5FA==?mi)VFo{1;9}c{>fj{ z4Q-$vuJ&4H)#~Dt7fy19*wLy7g-u*g^q1DO?SWDwvmUTSTF%FZGa0PjMluIw*+V#jh~DrLuwwqOoH^rB zvQmy3(1FBd((!QMq(eKFYa0nRz^@j%A>lJsd0AhfsGcSYrkl`@#2=`4evfq9R=@g9 z)(Xqk*Be6~A+)6qCOi=4mPmLxt=`~d|2+$#lG(f}xAs<`cHIr8!rmF?+AAtH`w>sW zpGV-WRS_LZQfpOwnc9G^YO}?CIj5+z*HgCn8(b!66Uh}g!91wSyOZ=bMz@G%B6hLG zNVolY2kT_&m;U!hcB^|@3ztWxNT2l#{rDFNAx>paQ zO~i2C!COj+w46k7D5d;oTA4iCc_itF0cx-}NOle>3xYC;O6xJl%@UGo?7{7aN?pXF zyRUzDxcSZDU-zo|85+nuQ4|7@ecn-)HR6K}_&5Vs&Dm1L;xQAE5!~u>zrtuEAjq(8 zcacnxl|~_{>?yosEMafcCUQHwXA!KOa#ZuE1?E|6b)WtFTg^`Ak)db(bbkfW7qz2NVeK_Hn;=Y{5kDnRRv=ya}s8En)E(?4v;f&@i!!a?(&f3}

    (4i|?y1>?O~jG|JE9p(Yaj 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ⅈ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%0DK^#_0kcM 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

      K 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

      G8UNi`Th^PnGll#oBq`5)LwE8p$ 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 z zIR|?P1#by{0sv>{+5bs)E`a?%`D}q~NbtL%=S*kDe;8@%<@UKZUi-mM7V?hov0%() z2R*d;pJ8pk@m$-6sgv;DgEDfeT@- z5GT5rWu116Lfmk~IXoUBI%g1d*TD|sJauw^=S1rGBf_iU+@0JZm;mp2@MDS?(BH~@ z-q0Rf)J*+%;^J)n=T%cno;vSm#MXC`0Y*z2eXlM%w^*>@bZJ*&kALmYW3yP_?0z8d zTZpf9iuvYzJe7NKLWDCVN8|mNj*w7_FLxb_Fxn~?+)3?_w))NNxOad4{ho?(L@e)l zlozhIsuh>mli1#OD!0uu^@qIS-E0^vGX=i9bkURnuXA;Z?gy;h)&la0ESsqHYI}aZ zQHM{H!Nwr2_%R)BE;r-jNQ^_7#L90P-ln&9DaTG%*;ZDiq@_kAC+TL+;JC` zL-jP!;J@tEaM$+57XLyx33N20fVpj+o@h`R-j2<8I6#wFu zGR2UP<7vgdM!5G#=0Yv9KDV9odn!8p2GO@eD;JO;&rlBkoIKEpkkzu9oEmesDh9)h zNFJQ}1;BP{9$C%j_r35fnU5eM(Rqw4p3;#9@cm>@X`=({%|R(YHCh4q{@_Rn4$#;? zqB9NjvNG_?^16Tb`X$Hp+LEvj)!fF_E-7eF;Au;&c^_~a7+6)}H7~W8NKk$XCNe!2 zGl!oWrkLyddGrRC3R;@{76*)zP2(2!hRY6#JO|4XP2UFNZ4NofJVAOCScNhztE*72 zVPLNC2rSAUjnD68n{DW|6EDsxtEaZNm-Vj~cMrTwJ5W4HxCdOig5~

      9OM<&GA$S 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ç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%0DK6?-kA6xFoy=68%y{a>{|oV<{M{94dvj;sV$l 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�eO|%3(rzzuhn)Oz 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%0DR&z$Kkub`2<}(&E;D>J*==6n_08z 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

      H8w3jE;mamo+I>CzvVvrz(1D7{;V4% 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

      v6Z4Yr+DysVDFA-raI_ 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�)e58D9yYTC3|lJhi^WV?4^*oh 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%0A0tdTA+UaA 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

      rCZHvihi{aefT_&KJ;nvX7k#~% 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

    1. Elixir Forum
    2. Elixir on Slack
    3. Elixir on Discord
    4. -
    5. IDE/Editor support
    6. +
    7. IDE/Editor support +
    8. Meetups around the world
    9. -
    10. Jobs and hiring (community wiki)
    11. +
    12. Jobs and hiring + (community wiki)
    13. Events and resources (community wiki)
    14. +Z__v0!#*cUMT%%WqRX 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 Date: Wed, 12 Jun 2024 12:38:19 +0200 Subject: [PATCH 1673/1761] Release v1.17.0 --- _data/elixir-versions.yml | 8 +++++++- _includes/search.html | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 8f136882f..432a7d9ad 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -1,4 +1,10 @@ -stable: v1_16 +stable: v1_17 + +v1_17: + name: v1.17 + minimum_otp: 25.0 + otp_versions: [27, 26, 25] + version: 1.17.0 v1_16: name: v1.16 diff --git a/_includes/search.html b/_includes/search.html index 7eda15f00..651220219 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/_includes/important-links.html b/_includes/important-links.html index 2b9270471..5cf0c3259 100644 --- a/_includes/important-links.html +++ b/_includes/important-links.html @@ -25,9 +25,11 @@

      Join the Community

    IE+VbbGpZJt5%uq* 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≤y% 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%0D4_Rd;JI}cw1uST~Z}x*FG4Vs3c}% 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

    @@ -35,4 +37,4 @@

    Join the Community

    Join the Erlang Ecosystem Foundation -
    + \ No newline at end of file From 2bd4b3ae83be768785d48cf40fa7c9259d368f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 6 Jul 2024 23:21:24 +0200 Subject: [PATCH 1678/1761] Release v1.17.2 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 10c43edb1..181e19783 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_17: name: v1.17 minimum_otp: 25.0 otp_versions: [27, 26, 25] - version: 1.17.1 + version: 1.17.2 v1_16: name: v1.16 From 4a423c40e3c48e0325312fac79c1fc2e80d3bd85 Mon Sep 17 00:00:00 2001 From: Daniel Bergholz Date: Sun, 28 Jul 2024 16:32:45 -0300 Subject: [PATCH 1679/1761] Add `techschool.dev` to learning section (#1764) --- images/learning/techschool.png | Bin 0 -> 9271 bytes learning.markdown | 10 ++++++++++ 2 files changed, 10 insertions(+) create mode 100644 images/learning/techschool.png diff --git a/images/learning/techschool.png b/images/learning/techschool.png new file mode 100644 index 0000000000000000000000000000000000000000..3305082ee3ff74170c4ceede26b348715cc95705 GIT binary patch literal 9271 zcmeHN=UY?F(+(g_q=*7aN19TCqNsF4rAkrh9TBAW5L&>30wSOS(z}3!1f-YHR3u1* z03o4--U5UqAcPjmo9DmyeRw~dbLQ-I?e5I%%sI37y@}?g`kZG4&jJ7dPD6tSPXGXh zk92vHjfH*(YA9c!KiC5eY(oG5jtl=?41k=xOY}yDkSF@Ofa*cvHTuh$7xzr=0RXkB z97nFq0D$CQ!w2^)!Wl^U_%tc&{MlGr?DS2+0Z%>gGmN&py1Gpt&p7o&O7{E~;zH^H zVm5P`W{y}=V;Fwcq`cJbW>DI#^R*dAH2n&LeciP4Y)k@9;dbp9Uu{fdIj2?je9)nm zhtXy$m0Fae>&z^)Y)Kn*+bY{On~>XuI>=w|`y|=O001Z$py}G3)zJX}irCJa z0RZ0rzxY4qhXiouOAE{Ge}&XqWdLAY4Cjjty7Cy?7+WJPNOqe}3tY8qrd$Kvtnx{7 zHSw!2s1pYOLhB|ON9-lo96yl$xj^MuaQZi_@NZ>qWWTZ~=hUZ(?>z+M7k12{tuO2)fKYLF^ z5ffeAd!`KZmbrF3xJKUIBeNMc*}gDKythoS{vpBw2;{5#%sA3g1C`kg>b4b)=e9d8 zkZhtxb-7!29wAHsQz|RP_nM8ZbEt!P0db2v%mF6*2LeiWFw#7S8%`(3BOda+raDb5 z0|b|jhK0wfTi=wtY@7491*VCgEd{0`GnL=MPDAYw< z)PW!InCfGq(SxX;`VxNz$1u0f(_X&bY&6kaJ4LYGIg|%-^|3%@z{E5xs(K6#h06?{sRgGjZh4NVC zM~LmEF||GHu#aEhsmOqD?#1MW`GAv}rnJi5FE#qHZs(!OD66fwJ*O8`egA(YxCH%- zI|1|&c&$uzqWABUtEe*D(6Fu4`S=;1H>uO>gbMzjo*matkqhRsm~thDJCKuxbP0b0~-R5^NB(aSQyC}Fo8b^)Fwe}^U3u@PQRO>?o;7@oUJ}5-(5I3MD$F@WK(5@@U`C2%6 z%KDAj6j?TvwNDakDKG4X@eMmC#h2mX6lj+$_rmtHk^nnh$hFE>3&0+j6z&QgrUC#C z1F)2rS7}DLcyGsR;XsDg`2$`?2kX77Wa#*SZE=dRloKS~gzPmN2=LVTNiK&_e zH)IDaUbb?)k*p)aJc@*UYAaZ+EdbsOc0ArBST$D5BLaWR3Ea)3KIUG7Z~?@vdKkTs zN9LOjWcf1k$*$w@QQK36wnNZYpkmSq+JxiOt4$zv%rq?-@5)(7|9C@q-{ZRHP$vw2ST_GEIuzI@SZXdO-O3V+%A#H8N za;@lz`lpQ%aLLVC@uS>mT5#0x2U<{fCh&6fzrk9@_<2q8#Y=~frDr0oZC0RNTH5kb zTjWNK!`xINvQkfDbbHFKnUBeU0pMHT1ysOhJURN67*C0)epPZ&ql?m13H(+&_|mUi zgM_)U+bY`L zk~ZYzrT9&fgm!NjmkzZ2!+f5LXdn0vUx#C~w)^eHUI1@1nMG`gdvXCjx;ZoV*o*nl zyZ#y*$GxD4aCj%RJU0|38aSHsn-xC0u@ngpII57%(GnXx{04OR2hoCtc{;%8zBAl4 z(SbT)6LhDxkJ@~qH#Hi0G^kg4pq+esY3A|wmAOv-IZXr~>spEP+f?xXIgP)}y0* z*-BOBfnjx(SloY3Y6+a+=9k{;1~CJ!=a!xA^W2ne{fe9H6dQ9|j4I%E+-ygAvn|zC zj6`_7v$8J7O{R5u9!AsEWF+KfHX{!_S+oKi{1UU`yeuc1&kWlpprcoA?yi}|M*2>o zl)8Mmwf2jSWrB(D=E=;?owCHW*`t*^B=5x}=cAJ8C`yMLrU0^Q8?{;-@2h?AFSEp%x&G%Tg2szBwpNe+8yfR9HLK1EOZkx^B5sFdjJe(#;$@->fR z6Fwf5M{8T}s~+ogZoXC8?^V<5qRFut9GaKTvNEiBR5Ct^f0buP{Iz#%zIn7LR`8ui zkN5!d^Jz>*3%to1_E$MMJSU@!>rH1b*5l^g^jRf=)GcNaMJd|te>Z~8-RnNe5~qei zYnq)t1GE9%0oPF=*X*9sv2>u9n^+@9K@}k)2cl9ZY-c^(=Xa6HYM3O);#xV-J7rdT zF0Lq|R7z9nnO2c@0wY0EzG6}5b)e^SU2OlPw^QdciVK)=Q$JO-u_lIEbpg|LObWoS zVJbKQE?u?-FXKiXlWDcJGaqR4uv9qOkEV+u9JlBnT;2T$6ymcK4vEEXu@OiF<4pMJ zQ56|62LJrhF?QVBR@bj`*Xu@BZN#K(;ydV0+jyc<)PhrnqyGx!b%KFTFpxX@kc|xh zV>E8k$(f5Fy&)viyf0<=6$+yJ&atR?lt~@mYie%P>^MDj+P)#69_EL+v(zV1b?Xrv z-R_M$cN^7|f1wG(_UVqP6c6vmq(RQGLFPG2^{UwF^PH_s&$FL1ZYBk8jNf1a*tma@ z5%0X`=yMojvq}r1#1GusMQRXpLA|#Xf-FI{+;0&6P3wc){;56%#5_+7Jk?_&a#X!m ztILZRdzjgDGGsOYR5#YE?6$XyeDUxSpXZtX#*`G#Fmv!;cM=J7UW0M7Bj*;I-34C= z5hJudy>(B+B|IcP;(MLkI2dt1_t61dv5>_9xt*sHvRnum#EH?gJqW3A}6hEyJn;IML|Swm~LB*`ZO7`H%&l0M{Z26z=-brYXPMYY?HOBy&=Jx z){gOkChbHM^R6mFa0fWebY)@z7pbR&NMbfV&l3RI!S77Jfm4GpQNH`1xIJh-7LLn? z9o+*G@K`$y+^qO5{E8gr!iT3F=QXBlhRxktf!VmgJoejKXXk zM`sUl%`#6exP>xZyWVAR2pbUzxt4mPEy(DJcq3Yk)l2);%iX8QTcq+alS;ow_^ybi z3lt1&`&+Lr65%OWC&&cPEN|?^V?j62G2ZrV{OQr3d|VilglSjsR!rpnqQwBdn{}6 z=mEs=-9TRc+aYiY(AzN&BdA%-;hYS2!U&2KzdQJ(FPc4Zmt!DvTrt>fea(dU2yq$o z%R752E!W&l8y)1MZdYA3&(+79_abT%oS#{EdPK;leR0ESc_MfZY-yKM>}l#m@Mu%R z08swULy^;;|1eGPi23#vWwuO{af++G6Bb>Q~ArZq?Ag zZGw#8V}$ninVQ)xTN}BzR~Rb2>yKe&WkQf)Svkk0+0&Cfbwbr+i(i^m5+=jHwNTKr zJ=Mjws6XEQq|y}E0zWpz3J8WX_dX$TM(_4avlnBgeT-;>66V3v*;WIltD(O2F+z&< zeX4wRO-oZGnfXYkCA+M>qcw0Aq4>%}f|TFU(^TCe;;VaIAb;(>DkgI9`)hK*xu@WK z=HUGzPVGYpF{W&OSPCs->6`C}a`ws>Xc~PhK0VG@nMV1hc)VnsyPuCXE#qSz?ra!ZI7eM45(sFJeDU(8I-xhHvU=i@( z;mFAst%t1VCrlb*9ZM=Hc3)qmX7A!x*<)n8a&g$(UrYjB$$Y_y%hfk+FCHrHtk((>OsTYI_ai~$}C5&B!|>ACF1dY0VDgr_)q4mmXWZT(0{+}yt!%u`uS2ov zly}kci)>4F=tew^YhT{_MvXmyT2c%&1`i|c1b>?!-w#uM*QV^Ri!*7Ne;T?4(wts; z|0B^t;{i`bMM0!DjNxp|#=h4b@UK<9$M-Xx+Rv7(vzP=3n-~jq2}iaW7dB8u)?&_P zZ`T_zTOp6TnYi~!Z@a;f=O*KYD=)o;U{1=QyDbfeWr zZ|q_9{lG(Uo|w#?Lmc=wL2<8$xAR5Uc$B~wbhr0=S?CFNE+yBahPQ*@V2U{-9fMZP zJ^M?+*xmOKU*Wrm;7xV5M?=>r_L4fx7Bl!tGGROd9G9clODEoGUH?=dblWZMSh-wfw;q-S zT~sG-G)%Jhdg1qv^&#y0GxlT|RZ#WiA47@yW%B{?)R^7@P1U_P;ApjYZC|VQf-G%{ z^Fo}f;Jg>){MheXul`I+t#wvynF^hL6p@w~j@ArX?~os`Ko+RW))y3EuM!;;Cj&}- z4k85K<}sHq=1PyM3AFm?Vj4PAw84r4lVL5u5n1v_;o5U|tkzVADeCeo*bF~Q-T*_f z{-s`{E@#y0o#9444W?@}FGzy)nPL3NWxuT-^R(u|A{jxdmCriv(Kr0*n+YB?iscvF zKCt{#Qp7D{GqpC)1$JsLE2`A)h0U$V$wIac;Qo0+H_70cYT$Q=UjlW;ZBDJAg(QUh zRZR{Re#C^!Um^81@2ju7?C&6Uoq-h&ZWumdw*Dm}wPVtf@Umb-L`-h=@j2v721&*2 zna-GU8T+NA&+4*{e=gi8UYsq#^JB<0)r+PT=(FWuX~_*R`w@Ksu!WPYVbP>-DBLM= zO!gU9Y5K(O{fvkj40?DM^RnGGQ~Jh9L8&OsVq!8x3I8f~y8_3(5VZa}TY;NXr%@&A zYGR#py2t!df>0y)sY&%*PLAw}xR1n6ZbCNBkUZV3ft&#;%#VYE6+xiqcr?*-X4XHu zD~OB;UJ!z%0QYucoHL^~enN#%_c`IO{}O-`y)-X11RdPv0~GJ$H1$3if`QiuRmsz^}Z<;{I_<>xR=d zh-+2|6SmJNk)aF=9!Z8o$6yM7F^@#rRgVJMW7{he%QLwIu=Cdo%XL|Mk@+BUTXphh zu4q-`8v>8GtE(QmDWRUFGJl18mGxS=qtOoEXSQo5f5cMtZ(CSSy%8E17w;d1_U0a~ zJbmW8|D=T!=B^HhA8cv7)923a*i#ca$rth^p3w1t(60+=AyH*t9-(bTg<_B5ENjH} zCahNUm8NzUB$_Q9DKMJ_{|j+fI&7El(}{(*z?i>_7%t8~G3gCMF>fzD>a$qyx8ZH` z`lY%aOzC@jov6_--Gs@pNh*3L532f$X@$$n@C!Cp&sxr^pxj5O$0#)=HQ7p@K2CbD zVW?`xo^5fu+zN=Tx%02rycDD|CCVYTZztWNh(DjqexQS3zj_N0p4h~CV0mDFWQ}O^ zjC=s1XvZGdwE2#Dg6nV!MP>OEd4 zjc+oIrIziLFV!J}w`tlZ8E|z}>4;X_etc>~-mGtYr)4=daMn#!m4EHy#jIt!zHF=` z#Nt`{r&1O#J2Og$c<2?5*~*YB5}$mGvmdv*gbUxoC1?AbYpaW5hwf z!lHf(rUR~3DPQ~- z99dEo5Z9jB0jI#zKyvXqHH};!)v==06&Ae{Yld0UiX<)VD%&}2&!}O2 z2@Un$qlspk(*d2XKOHkrtM5dKlm?vzarUOb!#WWloqCCo|C_tjTP4y z$Dqum#dkhX`lXBtJ>SSnYg!kRzjWS7H)qdx3Q0cnPoL;Ze62uqkZfC3%?|5W=_}KT zhqe{J)@`}nkUHPKirCRCRvNfvU9>U)B_qV%UI_```f6J86x&BbWLNGz!8Nwua1Lk=xIo7A*ZeATcJoCQM2r z;JW6D(lK@;%3H}_x%?a_gy{%==%=bz211ACkrD)!p`8epu1R9;R7i4XivFFjsR<)` zF&Nr*d9k9C=l-9>@+MWYnq_ya>HN@49d>QD_ zOZm;1@0IKJVhCJQ45c~e0PlRW@q^(yZe5$22S5FjYCo100?+4S*hcyNb&Guhs>o1W z(-qj)IGGYYtgeBOd?q5+(vGfd-1?}^?Y-G1D6cu-bxO?{D-`w?%HZkuPA1jP;FF=4)S}$&R79)VamsqJkq@-aw#k@_aA{?%V;X&lqPh=ft%q%V=hP0X z;`HzG@)m*L#XXiq!8CWRn@(n978aE{<6G-BbX|MA#eUyc7^#ua6R7krdWgeZ*l(bW zbgr&JhAX_MeNkuk|LkNMCv5}kPF?d*GQ4rR30dH-Uu)=v?h znB@=VI{Mhc%j0e*66Rkelrp}#vPTErW}D&YSnr=ISiaK)IviEev`auAX6aM*FVE`# zMru@_i^kbB>gJzuTYAkNbhcxK^x`~Ai6OFf#!x%?yV6<`6@*FB=c|JQ04{Q< zKR+iKIu2ix+h19|g+$uN(nQXXic25snF+BKHi(T|G)wtbB=~5M0yY2_Y!=#sja=NkSdUe zU*Fl)F&D^v-`1Jt=AOU`=w^g9yxiwn9X#ChLc~x0t+EejnD1ydN%y2chpOiG58uSP z9uu6m79&3-A~W)nUAX{(D)n`YPu>ofSp->IMnNim{F(t-(#G`{i=bDuv2j@j8Yk0> zI9gZDA!7=jVOvi_j!r=pWo2CCDU6WjGl$F1dTkb6NcQmyN6~zVY2aI^2hdM`C(BL2 z3&XJ|V~YzxYeu8A84fm(M=%HEj~RNE+Z(%I zOm))s-yOXCBEn&F;k-iXkRcBM5LTGM!=uFI_v3-~1JZo?*ufl_tep07{3~^s<{axL zbV}8?>WKNdLAr_a(LWD!Yvuz0HZIFch->*ZllJD_#GnzN9Xp}uL-Iz}%CXpSKThnx zSc$$sMmM29n58~&=rpHI%#uzXM}f+ASyJYRn2UW7QC;i-OC12sNByglfr z9HmKZjO(8K)}@BUN+J3rH>&1;{(E?VM#t?tIRi92-k@i0);gT75qt-dkcP6N6&?6~ zz57GAAsRgNgjoKr283NF$A`FM#ajP>ML#eRh-N206Orf~3C~$opNyVGT}e^P-0~#i zS%6Cf>>YE-uCup*i3hZ6b16Poo{*ze->Le1C2w#WKPc zFE;MA{T_adl=TZ78|dW1^~Od_;_|4)&l0ePvcfNvY(O^>kUVsrWn302sh_eDOT?$B zts*tFLx)(0iT8y%pB7Wt!q?t&r&|jE8{Hz#wa?vh%VGj_$Ium5V1LaL5q#ybdb34Y zZNIbvFT3oe494Y5%Q5fqzhX}&=o)L=CX2U)+_OCUx`9daz-eh+proa*$p1l)y)b$E z3ykZ(sP3}Oj}e~{vGhxNko(&5U_%b_`J=c908sU_pUt53{J@+!?*(m{w)9eHj@O4p zx@}KjRyTedNa;b;`o1#)Yz!mmXG_chjEn%lLvcErZ+_Ee9)RoZB PPXG)bnm(x3b$R`NM6|{T literal 0 HcmV?d00001 diff --git a/learning.markdown b/learning.markdown index 18565a5f5..0c5df683b 100644 --- a/learning.markdown +++ b/learning.markdown @@ -211,6 +211,16 @@ Found your start-up, migrate a codebase, build that app! Our midterm and final p
    +

    TechSchoolfree

    + + + TechSchool + + +TechSchool is an open-source platform that teaches programming through free YouTube videos and other websites. The goal is to make technology education accessible to everyone. It includes several Elixir courses and a complete Fullstack Elixir + Phoenix Bootcamp. + +
    + ## Screencasts

    ElixirStreamsfree

    From 513c06405aeeea8e524c49177cf981709d48868d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 09:10:54 +0200 Subject: [PATCH 1680/1761] Bump rexml from 3.2.8 to 3.3.3 (#1765) Bumps [rexml](https://github.com/ruby/rexml) from 3.2.8 to 3.3.3. - [Release notes](https://github.com/ruby/rexml/releases) - [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md) - [Commits](https://github.com/ruby/rexml/compare/v3.2.8...v3.3.3) --- updated-dependencies: - dependency-name: rexml dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 904d52835..369540292 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -225,8 +225,8 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rexml (3.2.8) - strscan (>= 3.0.9) + rexml (3.3.3) + strscan rouge (3.26.0) ruby2_keywords (0.0.5) rubyzip (2.3.2) From 627c5cddcba34f525c38ea044462df2a58607c22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 15 Aug 2024 18:23:09 +0200 Subject: [PATCH 1681/1761] Welcome official language server team (#1766) --- ...lcome-elixir-language-server-team.markdown | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 _posts/2024-08-15-welcome-elixir-language-server-team.markdown diff --git a/_posts/2024-08-15-welcome-elixir-language-server-team.markdown b/_posts/2024-08-15-welcome-elixir-language-server-team.markdown new file mode 100644 index 000000000..aee14b70d --- /dev/null +++ b/_posts/2024-08-15-welcome-elixir-language-server-team.markdown @@ -0,0 +1,88 @@ +--- +layout: post +title: "Announcing the official Elixir Language Server team" +author: José Valim +category: Announcements +excerpt: "Announcing the official Elixir Language Server team to work on the code intelligence infrastructure to be used across tools and editors" +--- + +I am glad to welcome Elixir's official Language Server team, formed by (in alphabetical order): + +* [Jonatan Kłosko](https://github.com/jonatanklosko) +* [Łukasz Samson](https://github.com/lukaszsamson) +* [Mitch Hanberg](https://www.mitchellhanberg.com/) +* [Steve Cohen](https://github.com/scohen) + +The team will work on the code intelligence infrastructure to be used across tools and editors. These efforts are partially funded by [Fly.io](Fly.io) and [Livebook](https://livebook.dev/). + +## A brief history + +The [Language Server Protocol (LSP)](https://en.wikipedia.org/wiki/Language_Server_Protocol) was created by Microsoft as a protocol between IDEs and programming languages to provide language intelligence tools. + +The first implementation of said protocol for Elixir was started by [Jake Becker](https://github.com/JakeBecker/elixir-ls/), back in 2017, alongside an implementation for Visual Studio Code, and it relied on [the ElixirSense project from Marlus Saraiva](https://github.com/msaraiva/elixir_sense) to extract and provide some of the language intelligence. + +As the Language Server Protocol adoption grew as a whole, so did the usage of Elixir's implementation, which eventually became the main mechanism Elixir users interacted with the language from their editors. + +Eventually, Elixir's language server implementation got its [own organization on GitHub](https://github.com/elixir-lsp/), and maintenance reins were given to Łukasz Samson and Jason Axelson. + +Over time, the Elixir Language Server has accrued technical debt. Some of it exists due to intrinsic complexities (for example, the Language Server Protocol uses UTF-16 for text encoding, instead of the more widely used UTF-8), while others are a consequence of working on codebase while both the programming language and the protocol themselves were still evolving. + +This led to Mitch Hanberg and Steve Cohen to create alternative language server implementations, exploring different trade-offs. + +For example, both [Next LS](https://github.com/elixir-tools/next-ls) and [Lexical](https://github.com/lexical-lsp/lexical) use Erlang Distribution to isolate the Language Server runtime from the user code. + +Next LS also focused on extracting the LSP protocol parts into [GenLSP](https://github.com/elixir-tools/gen_lsp) (which can be used by anyone to easily create a language server), single binary distribution with [Burrito](https://github.com/burrito-elixir/burrito), and experimenting with SQLite for the symbol index. + +[Lexical](https://github.com/lexical-lsp/lexical) concerned itself with speed and abstractions to deal with documents, ranges, and more. + +This means the Elixir community had, for some time, three distinct language server implementations, each with their own strengths. + +## Looking forward + +The current language server maintainers have agreed to move forward with a _single Language Server Protocol project_, relying on the strengths of each implementation: + +* Lexical provides a stable foundation +* ElixirLS, through ElixirSense, provides the most complete implementation and wider functionality +* Next LS, through GenLSP, provides a general interface for LSP implementations and straight-forward packaging via [Burrito](https://github.com/burrito-elixir/burrito) + +The above is a rough outline, as the specific details of how the projects will move forward are still being discussed. While some of the team members also maintain direct integration with some editors, we will continue relying on the community's help and efforts to get full coverage across all available editors. + +And there is still a lot more to do! + +Many underestimate the complexity behind implementing the Language Server Protocol. That's not surprising: we mostly interact with it from an editor, allowing us to freely ignore what makes it tick. + +In practice, the Language Server needs, in many ways, to reimplement several parts of the language and its compiler. + +If the Elixir compiler sees the code `some_value +`, it can immediately warn and say: "this expression is incomplete". However, the Language Server still needs to make sense of invalid code to provide features like completion. And that applies to everything: missing do-end blocks, invalid operators, invoking macros that do not exist, etc. Mitch has made [Spitfire](https://github.com/elixir-tools/spitfire), an error tolerant parser to tackle this particular problem. + +Some ecosystems have undertaken [multi-year efforts to redesign their compilers and toolchains](https://en.wikipedia.org/wiki/Roslyn_(compiler)) to provide better tools for lexical and semantic code analysis (which most likely took a significant investment of time and resources to conclude). That's to say some of the problems faced by Language Server implementations will be best tackled if they are also solved as part of Elixir itself. + +For example, every Language Server implementation compiles their own version of a project, making it so every application and its dependencies have to be compiled twice in development: once for Mix and once for the Language Server. Wouldn't it be nice if Elixir and the Language Servers could all rely on the same compilation artifacts? + +This is not news to the Elixir team either: almost every Elixir release within the last 3 years has shipped new code analysis APIs, such as [Code.Fragment](https://hexdocs.pm/elixir/Code.Fragment.html), with the goal of removing duplication across Language Servers, [IEx](https://hexdocs.pm/iex), and [Livebook](https://livebook.dev/), as well as reduce their reliance on internal Elixir modules. Most recently, Elixir v1.17 shipped with [new APIs to help developers emulate the compiler behaviour](https://hexdocs.pm/elixir/Macro.Env.html). Our goal is to make these building blocks available for all Elixir developers, so their benefits are reaped beyond the language server tooling. + +Furthermore, as [set-theoretic types make their way into Elixir](https://elixir-lang.org/blog/2024/06/12/elixir-v1-17-0-released/), we also want to provide official APIs to integrate them into our tools. + +## Sponsorships + +Currently, [Fly.io](Fly.io) is sponsoring Łukasz Samson to work part-time on the Language Server and editor integration. The [Livebook](https://livebook.dev/) project is donating development time from Jonatan Kłosko, creator of Livebook, to improve the Elixir compiler and its code intelligence APIs. + +We are grateful to both companies for investing into the community and you should check them out. + +As mentioned above, Language Server implementations are complex projects, and unifying efforts is an important step in the right direction. However, we also need community help, and one of the ways to do so is by sponsoring the developers making this possible: + +* [Łukasz Samson](https://github.com/sponsors/lukaszsamson) +* [Mitch Hanberg](https://github.com/sponsors/mhanberg) +* [Steve Cohen](https://github.com/sponsors/scohen) + +Companies who can afford to sponsor part-time development are welcome to reach out and help us achieve this important milestone. + +## Progress updates + +A new project website and social media accounts will be created soon, and you can follow them to stay up to date with our progress and any interesting developments. + +The name of the new project is still in the works as well as many of the decisions we'll need to make, so please have patience! + +In the meantime, you can continue to use the language server of your choice, and we’ll be sure to make the transition to the fourth and final project as smooth as possible. + +Thank you! From b9997565a57447218c98043107b4b1989cd4b252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 15 Aug 2024 21:52:57 +0200 Subject: [PATCH 1682/1761] Fix Fly.io link --- _posts/2024-08-15-welcome-elixir-language-server-team.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-15-welcome-elixir-language-server-team.markdown b/_posts/2024-08-15-welcome-elixir-language-server-team.markdown index aee14b70d..44e6eb6b3 100644 --- a/_posts/2024-08-15-welcome-elixir-language-server-team.markdown +++ b/_posts/2024-08-15-welcome-elixir-language-server-team.markdown @@ -65,7 +65,7 @@ Furthermore, as [set-theoretic types make their way into Elixir](https://elixir- ## Sponsorships -Currently, [Fly.io](Fly.io) is sponsoring Łukasz Samson to work part-time on the Language Server and editor integration. The [Livebook](https://livebook.dev/) project is donating development time from Jonatan Kłosko, creator of Livebook, to improve the Elixir compiler and its code intelligence APIs. +Currently, [Fly.io](https://fly.io/) is sponsoring Łukasz Samson to work part-time on the Language Server and editor integration. The [Livebook](https://livebook.dev/) project is donating development time from Jonatan Kłosko, creator of Livebook, to improve the Elixir compiler and its code intelligence APIs. We are grateful to both companies for investing into the community and you should check them out. From 4d408ab0a9eb1501503782369e1db9915cefbd01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 16 Aug 2024 21:41:00 +0200 Subject: [PATCH 1683/1761] Fix Fly.io link --- _posts/2024-08-15-welcome-elixir-language-server-team.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-15-welcome-elixir-language-server-team.markdown b/_posts/2024-08-15-welcome-elixir-language-server-team.markdown index 44e6eb6b3..8883da8dd 100644 --- a/_posts/2024-08-15-welcome-elixir-language-server-team.markdown +++ b/_posts/2024-08-15-welcome-elixir-language-server-team.markdown @@ -13,7 +13,7 @@ I am glad to welcome Elixir's official Language Server team, formed by (in alpha * [Mitch Hanberg](https://www.mitchellhanberg.com/) * [Steve Cohen](https://github.com/scohen) -The team will work on the code intelligence infrastructure to be used across tools and editors. These efforts are partially funded by [Fly.io](Fly.io) and [Livebook](https://livebook.dev/). +The team will work on the code intelligence infrastructure to be used across tools and editors. These efforts are partially funded by [Fly.io](https://fly.io/) and [Livebook](https://livebook.dev/). ## A brief history From 1c3a76f39fe5a17a9265b88212f981c114ee44d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 22:49:58 +0200 Subject: [PATCH 1684/1761] Bump rexml from 3.3.3 to 3.3.6 (#1767) Bumps [rexml](https://github.com/ruby/rexml) from 3.3.3 to 3.3.6. - [Release notes](https://github.com/ruby/rexml/releases) - [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md) - [Commits](https://github.com/ruby/rexml/compare/v3.3.3...v3.3.6) --- updated-dependencies: - dependency-name: rexml dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 369540292..8677d4264 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -225,7 +225,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rexml (3.3.3) + rexml (3.3.6) strscan rouge (3.26.0) ruby2_keywords (0.0.5) From 9e4f937a16b57695af61a273442d0636d1ba0c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 28 Aug 2024 12:19:05 +0200 Subject: [PATCH 1685/1761] Typing lists and tuples --- ...024-08-28-typing-lists-and-tuples.markdown | 172 ++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 _posts/2024-08-28-typing-lists-and-tuples.markdown diff --git a/_posts/2024-08-28-typing-lists-and-tuples.markdown b/_posts/2024-08-28-typing-lists-and-tuples.markdown new file mode 100644 index 000000000..44f153348 --- /dev/null +++ b/_posts/2024-08-28-typing-lists-and-tuples.markdown @@ -0,0 +1,172 @@ +--- +layout: post +title: "Typing lists and tuples in Elixir" +author: José Valim +category: Announcements +excerpt: "This article explores the design decisions of typing lists and tuples in Elixir within a sound gradual type system" +--- + +We have been working on [a type system for the Elixir programming language](https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/). The type system provides sound gradual typing: it can safely interface static and dynamic code, and if the program type checks, it will not produce type errors at runtime. + +It is important to emphasize **type errors**. The type systems used at scale today do not guarantee the absense of any runtime errors, but only typing ones. Many programming languages error when accessing the "head" of an empty list, most languages raise on division by zero or when computing the logarithm of negative numbers on a real domain, and others may fail to allocate memory or when a number overflows/underflows. + +Language designers and maintainers must outline the boundaries of what can be represented as typing errors and how that impacts the design of libraries. The goal of this article is to highlight some of these decisions in the context of lists and tuples in Elixir's on-going type system work. + +> In this article, the words "raise" and "exceptions" describe something unexpected happened, and not a mechanism for control-flow. Other programming languages may call them "panics" or "faults". + +## The `head` of a list + +Imagine you are designing a programming language and you want to provide a `head` function, which returns the head - the first element - of a list, you may consider three options. + +The first option, the one found in many programming languages, is to raise if an empty list is given. Its implementation in Elixir would be something akin to: + +```elixir +$ list(a) -> a +def head([head | _]), do: head +def head([]), do: raise "empty list" +``` + +Because the type system cannot differentiate between an empty list and a non-empty list, you won't find any typing violations at compile-time, but an error is raised at runtime for empty lists. + +An alternative would be to return an `option` type, properly encoding that the function may fail (or not): + +```elixir +$ list(a) -> option(a) +def head([head | _]), do: {:ok, head} +def head([]), do: :none +``` + +This approach may be a bit redundant. Returning an `option` type basically forces the caller to pattern match on the returned `option`. While many programming languages provide functions to compose `option` values, one may also get rid of the additional wrapping and directly pattern match on the list instead. So instead of: + +```elixir +case head(list) do + {:ok, head} -> # there is a head + :none -> # do what you need to do +end +``` + +You could just write: + +```elixir +case list do + [head | _] -> # there is a head + [] -> # do what you need to do +end +``` + +Both examples above are limited by the fact the type system cannot distinguish between empty and non-empty lists and therefore their handling must happen at runtime. If we get rid of this limitations, we could define `head` as follows: + +```elixir +$ non_empty_list(a) -> a +def head([head | _]), do: head +``` + +And now we get a typing violation at compile-time if an empty list is given as argument. There is no `option` tagging and no runtime exceptions. Win-win? + +The trouble with the above is that now it is responsibility of the language users to prove the list is not empty. For example, imagine this code: + +```elixir +list = convert_json_array_to_elixir_list(json_array_as_string) +head(list) +``` + +In the example above, since `convert_json_array_to_elixir_list` may return an empty list, there is a typing violation at compile-time. To resolve it, we need to prove the result of `convert_json_array_to_elixir_list` is not an empty list before calling `head`: + +```elixir +list = convert_json_array_to_elixir_list(json_array_as_string) + +if list == [] do + raise "empty list" +end + +head(list) +``` + +But, at this point, we might as well just use pattern matching and once again get rid of `head`: + +```elixir +case convert_json_array_to_elixir_list(json_array_as_string) do + [head | _] -> # there is a head + [] -> # do what you need to do +end +``` + +Most people would expect that encoding more information into the type system would bring only benefits but there is a tension here: the more you encode into types, the more you might have to prove in your programs. + +While different developers will prefer certain idioms over others, I am not convinced there is one clearly superior approach here. Having `head` raise a runtime error may be the most pragmatic approach _if_ the developer expects the list to be non-empty in the first place. Returning `option` gets rid of the exception by forcing users to explicitly handle the result, but leads to more boilerplate compared to pattern matching, especially if the user does not expect empty lists. And, finally, adding precise types means there could be more for developers to prove. + +### What about Elixir? + +Thanks to set-theoretic types, we will most likely distinguish between empty lists and non-empty lists in Elixir's type system, since pattern matching on them is a common language idiom. Furthermore, several functions in Elixir, such as `String.split/2` are guaranteed to return non-empty lists, which can then be nicely encoded into a function's return type. + +Elixir also has the functions `hd` (for head) and `tl` (for tail) inherited from Erlang, which are [valid guards](https://hexdocs.pm/elixir/patterns-and-guards.html). They only accept non-empty lists as arguments, which will now be enforced by the type system too. + +This covers almost all use cases but one: what happens if you want to access the first element of a list, which has not been proven to be empty? You could use pattern matching and conditionals for those cases, but as seen above, this can lead to common boilerplate such as: + +```elixir +if list == [] do + raise "unexpected empty list" +end +``` + +Luckily, it is common in Elixir to use the `!` suffix to encode the possibility of runtime errors for _valid_ inputs. For these circumstances, we may introduce `List.first!` (and potentially `List.drop_first!` for the tail variant). + +## Accessing tuples + +Now that we have discussed lists, we can talk about tuples. In a way, tuples are more challenging than lists for two reasons: + +1. A list is a collection where all elements have the same type, while tuples carry the types of each element + +2. We natively access tuples by index, instead of its head and tail, such `elem(tuple, 0)` + +In the upcoming v1.18 release, Elixir's new type system will support tuple types, and they are written between curly brackets. For example, the [`File.read/1` function](https://hexdocs.pm/elixir/File.html#read/1) would have the return type `{:ok, binary()} or {:error, posix()}`, quite similar to today's typespecs. + +The tuple type can also specify a minimum size, as you can also write: `{atom(), integer(), ...} `. This means the tuple has at least two elements, the first being an `atom()` and the second being an `integer()`. This definition is required for type inference in patterns and guards. After all, a guard `is_integer(elem(tuple, 1))` tells you the tuple has at least two elements, with the second one being an integer, but nothing about the other elements and the tuple overall size. + +With tuples support merged into main, we need to answer questions such as which kind of compile-time warnings and runtime exceptions tuple operations, such as `elem(tuple, index)` may emit. Today, we know that it raises if: + +1. the index is out of bounds, as in `elem({:ok, "hello"}, 3)` + +2. the index is negative, as in `elem({:ok, 123}, -1)` + +When typing `elem(tuple, index)`, one option is to use "avoid all runtime errors" as our guiding light and make `elem` return `option` types, such as: `{:ok, value}` or `:none`. This makes sense for an out of bounds error, but should it also return `:none` if the index is negative? One could argue that they are both out of bounds. On the other hand, a positive index may be correct depending on the tuple size but **a negative index is always invalid**. From this perspective, encoding an always invalid value as an `:none` can be detrimental to the developer experience, hiding logical bugs instead of (loudly) blowing up. + +Another option is to make these programs invalid. If we completely remove `elem/2` from the language and you can only access tuples via pattern matching (or by adding a literal notation such as `tuple.0`), then all possible bugs can be caught by the type checker. However, some data structures, such as [array in Erlang](https://www.erlang.org/doc/apps/stdlib/array.html) rely on dynamic tuple access, and implementing those would be no longer possible. + +Yet another option is to encode integers themselves as values in the type system. In the same way that Elixir's type system supports the values `:ok` and `:error` as types, we could support each integer, such as `13` and -42` as types as well (or specific subsets, such as `neg_integer()`, `zero()` and `pos_integer()`). This way, the type system would know the possible values of `index` at compile-time, allowing us to pass complex expressions to `elem(tuple, index)`, and emit typing errors if the indexes are invalid. However, remember that encoding more information into the type system may force developers to also prove that those indexes are within bounds in many other cases. + +Once again, there are different trade-offs, and we must select one that best fit into Elixir use and semantics today. + +### What about Elixir? + +The approach we are taking in Elixir is two-fold: + +* If the index is a literal integer, it will perform an exact access on the tuple element. This means `elem(tuple, 1)` will work if we can prove the tuple has at least size 2, otherwise you will have a type error + +* If the index is not a literal integer, the function will fallback to a dynamic type signature + +Let's expand on the second point. + +At a fundamental level, we could describe `elem` with the type signature of `tuple(a), integer() -> a`. However, the trouble with this signature is that it does not tell the type system (nor users) the possibility of a runtime error. Luckily, because Elixir will offer a gradual type system, we could encode the type signature as `dynamic({...a}), integer() -> dynamic(a)`. By encoding the argument and return type as dynamic, developers who want a fully static program will be notified of a typing error, while existing developers who rely on dynamic features of the language can continue to do so, and those choices are now encoded into the types. + +Overall, + +* For static programs (the ones that do not use the `dynamic()` type), `elem/2` will validate that the first argument is a tuple of known shape, and the second argument is a literal integer which is greater than or equal to zero and less than the tuple size. This guarantees no runtime exceptions. + +* Gradual programs will have the same semantics (and runtime exceptions) as today. + +## Summary + +I hope this article outlines some of the design decisions as we bring a gradual type system to Elixir. Although supporting tuples and lists is a "table stakes" feature in most type systems, bringing them to Elixir was an opportunity to understand how the type system will interact with several language idioms, as well as provide a foundation for future decisions. The most important take aways are: + +1. Type safety is a commitment from both sides. If you want your type system to find even more bugs through more precise types, you will need to prove more frequently that your programs are free of certain typing violations. + +2. Given not everything will be encoded as types, exceptions are important. Even in the presence of `option` types, it would not be beneficial for developers if `elem(tuple, index)` returned `:none` for negative indexes. + +3. Elixir's convention of using the suffix `!` to encode the possibility of runtime exceptions for a valid domain (the input types) nicely complements the type system, as it can help static programs avoid the boilerplate of converting `:none`/`:error` into exceptions for unexpected scenarios. + +4. Using `dynamic()` in function signatures is a mechanism available in Elixir's type system to signal that a function has dynamic behaviour and may raise runtime errors, allowing violations to be reported on programs that wish to remain fully static. Similar to how other static languages provide dynamic behaviour via `Any` or `Dynamic` types. + +The type system was made possible thanks to a partnership between [CNRS](https://www.cnrs.fr/) and [Remote](https://remote.com/). The development work is currently sponsored by [Fresha](https://www.fresha.com/) ([they are hiring!](https://www.fresha.com/careers/openings?department=engineering)), [Starfish*](https://starfish.team/), and [Dashbit](https://dashbit.co/). + +Happy typing! From 294cca6b484773f80483ed055ca3d96ae8d6f47c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 28 Aug 2024 13:04:11 +0200 Subject: [PATCH 1686/1761] Fix syntax --- _posts/2024-08-28-typing-lists-and-tuples.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-28-typing-lists-and-tuples.markdown b/_posts/2024-08-28-typing-lists-and-tuples.markdown index 44f153348..8d6904036 100644 --- a/_posts/2024-08-28-typing-lists-and-tuples.markdown +++ b/_posts/2024-08-28-typing-lists-and-tuples.markdown @@ -133,7 +133,7 @@ When typing `elem(tuple, index)`, one option is to use "avoid all runtime errors Another option is to make these programs invalid. If we completely remove `elem/2` from the language and you can only access tuples via pattern matching (or by adding a literal notation such as `tuple.0`), then all possible bugs can be caught by the type checker. However, some data structures, such as [array in Erlang](https://www.erlang.org/doc/apps/stdlib/array.html) rely on dynamic tuple access, and implementing those would be no longer possible. -Yet another option is to encode integers themselves as values in the type system. In the same way that Elixir's type system supports the values `:ok` and `:error` as types, we could support each integer, such as `13` and -42` as types as well (or specific subsets, such as `neg_integer()`, `zero()` and `pos_integer()`). This way, the type system would know the possible values of `index` at compile-time, allowing us to pass complex expressions to `elem(tuple, index)`, and emit typing errors if the indexes are invalid. However, remember that encoding more information into the type system may force developers to also prove that those indexes are within bounds in many other cases. +Yet another option is to encode integers themselves as values in the type system. In the same way that Elixir's type system supports the values `:ok` and `:error` as types, we could support each integer, such as `13` and `-42` as types as well (or specific subsets, such as `neg_integer()`, `zero()` and `pos_integer()`). This way, the type system would know the possible values of `index` during type checking, allowing us to pass complex expressions to `elem(tuple, index)`, and emit typing errors if the indexes are invalid. However, remember that encoding more information into types may force developers to also prove that those indexes are within bounds in many other cases. Once again, there are different trade-offs, and we must select one that best fit into Elixir use and semantics today. From b6263dc6f5e82fad82803485a4347c701f19674a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 28 Aug 2024 16:40:23 +0200 Subject: [PATCH 1687/1761] Clarify the type of lists --- _posts/2024-08-28-typing-lists-and-tuples.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-28-typing-lists-and-tuples.markdown b/_posts/2024-08-28-typing-lists-and-tuples.markdown index 8d6904036..c0998bf86 100644 --- a/_posts/2024-08-28-typing-lists-and-tuples.markdown +++ b/_posts/2024-08-28-typing-lists-and-tuples.markdown @@ -115,7 +115,7 @@ Luckily, it is common in Elixir to use the `!` suffix to encode the possibility Now that we have discussed lists, we can talk about tuples. In a way, tuples are more challenging than lists for two reasons: -1. A list is a collection where all elements have the same type, while tuples carry the types of each element +1. A list is a collection where all elements have the same type (be it a `list(integer())` or `list(integer() or float())`), while tuples carry the types of each element 2. We natively access tuples by index, instead of its head and tail, such `elem(tuple, 0)` From 68dc644d4fd755f0b028b9c81d38bdc15328ece7 Mon Sep 17 00:00:00 2001 From: Wojtek Mach Date: Thu, 12 Sep 2024 00:03:19 +0200 Subject: [PATCH 1688/1761] Update "Mirros and nightly builds" section in "Install" (#1769) --- install.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/install.markdown b/install.markdown index f2301c1de..8c429772e 100644 --- a/install.markdown +++ b/install.markdown @@ -159,7 +159,7 @@ Once you download the release, unpack it, and you are ready to run the `elixir` ### Mirrors and nightly builds -The links above point directly to the GitHub release. We also host and mirror precompiled packages and nightly builds globally via `repo.hex.pm` using the following URL scheme: +The links above point directly to the GitHub release. We also host and mirror precompiled packages and nightly builds globally via `builds.hex.pm` using the following URL scheme: https://builds.hex.pm/builds/elixir/${ELIXIR_VERSION}-otp-${OTP_VERSION}.zip @@ -171,6 +171,10 @@ To use nightly for a given Erlang/OTP version (such as 25), use: https://builds.hex.pm/builds/elixir/main-otp-25.zip +For a list of all builds, use: + + https://builds.hex.pm/builds/elixir/builds.txt + ## Compiling from source You can download and compile Elixir in few steps. The first one is to [install Erlang](/install.html#installing-erlang). You will also need [make](https://www.gnu.org/software/make/) available. From 0e9f5571ec433aa7a765c5e96d2a78cac8ad907c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 18 Sep 2024 14:51:40 +0200 Subject: [PATCH 1689/1761] Release v1.17.3 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 181e19783..93d640300 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -4,7 +4,7 @@ v1_17: name: v1.17 minimum_otp: 25.0 otp_versions: [27, 26, 25] - version: 1.17.2 + version: 1.17.3 v1_16: name: v1.16 From 2d8fa422e5f7e76dfea659c32f9cdf6ad0666a37 Mon Sep 17 00:00:00 2001 From: Frank McGeough Date: Tue, 8 Oct 2024 10:58:56 -0400 Subject: [PATCH 1690/1761] Remove event that occurred in the past (#1772) --- _includes/events.html | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/_includes/events.html b/_includes/events.html index fe957580a..2c07f6789 100644 --- a/_includes/events.html +++ b/_includes/events.html @@ -1,11 +1,4 @@ -
    + \ No newline at end of file From 303769a680137f87587a79abdc04ad1d1195bf75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=9Aled=C5=BA?= Date: Wed, 9 Oct 2024 13:01:53 +0200 Subject: [PATCH 1691/1761] Add Elixir Stream Week as upcoming event (#1773) --- _includes/events.html | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/_includes/events.html b/_includes/events.html index 2c07f6789..6a9edc1f3 100644 --- a/_includes/events.html +++ b/_includes/events.html @@ -1,4 +1,14 @@ - \ No newline at end of file + + + Elixir Stream Week + +
    +
      +
    • Oct 21-25, 2024 - Remote
    • +
    • 5 days, 5 streams, 5 Elixir experts
    • +
    +
    +
    \ No newline at end of file From 087760b268438c122c9e4affeba34dc1346067d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 20 Oct 2024 17:10:42 +0200 Subject: [PATCH 1692/1761] Update 2024-06-12-elixir-v1-17-0-released.markdown --- _posts/2024-06-12-elixir-v1-17-0-released.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2024-06-12-elixir-v1-17-0-released.markdown b/_posts/2024-06-12-elixir-v1-17-0-released.markdown index 7d8feb35a..959030f55 100644 --- a/_posts/2024-06-12-elixir-v1-17-0-released.markdown +++ b/_posts/2024-06-12-elixir-v1-17-0-released.markdown @@ -1,9 +1,9 @@ --- layout: post -title: "Elixir v1.17 released: set-theoretic types in patterns, calendar durations, and Erlang/OTP 27 support" +title: "Elixir v1.17 released: set-theoretic data types, calendar durations, and Erlang/OTP 27 support" author: Andrea Leopardi category: Releases -excerpt: "Elixir v1.17 released: set-theoretic types in patterns, calendar durations, and Erlang/OTP 27 support" +excerpt: "Elixir v1.17 released: set-theoretic data types, calendar durations, and Erlang/OTP 27 support" --- Elixir v1.17 has just been released. 🎉 From 8788c8edd2302f4c29477fb82224b65447986825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=9Aled=C5=BA?= Date: Mon, 28 Oct 2024 10:57:49 +0100 Subject: [PATCH 1693/1761] Remove ESW baner (#1775) --- _includes/events.html | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/_includes/events.html b/_includes/events.html index 6a9edc1f3..b7635e412 100644 --- a/_includes/events.html +++ b/_includes/events.html @@ -1,14 +1,3 @@ -
    + \ No newline at end of file From 550c100afb9652a7a4fff12bceaa2d6863e3b6eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 22:28:45 +0100 Subject: [PATCH 1694/1761] Bump rexml from 3.3.6 to 3.3.9 (#1776) Bumps [rexml](https://github.com/ruby/rexml) from 3.3.6 to 3.3.9. - [Release notes](https://github.com/ruby/rexml/releases) - [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md) - [Commits](https://github.com/ruby/rexml/compare/v3.3.6...v3.3.9) --- updated-dependencies: - dependency-name: rexml dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8677d4264..ef5585e39 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -225,8 +225,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rexml (3.3.6) - strscan + rexml (3.3.9) rouge (3.26.0) ruby2_keywords (0.0.5) rubyzip (2.3.2) @@ -241,7 +240,6 @@ GEM faraday (>= 0.17.3, < 3) simpleidn (0.2.1) unf (~> 0.1.4) - strscan (3.1.0) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) typhoeus (1.4.0) From 3f7f291cc6221eaff69a78180ba42d8cb7386fa5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 08:50:40 +0100 Subject: [PATCH 1695/1761] Bump webrick from 1.8.1 to 1.8.2 (#1777) Bumps [webrick](https://github.com/ruby/webrick) from 1.8.1 to 1.8.2. - [Release notes](https://github.com/ruby/webrick/releases) - [Commits](https://github.com/ruby/webrick/compare/v1.8.1...v1.8.2) --- updated-dependencies: - dependency-name: webrick dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index ef5585e39..f7eb71981 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -250,7 +250,7 @@ GEM unf_ext unf_ext (0.0.8.2) unicode-display_width (1.8.0) - webrick (1.8.1) + webrick (1.8.2) PLATFORMS ruby From 5ef6c8a20284776ee072f5f1a2d7d9897088b83a Mon Sep 17 00:00:00 2001 From: Wojtek Mach Date: Thu, 31 Oct 2024 12:27:54 +0100 Subject: [PATCH 1696/1761] Add elixir-lang.org/install.sh and install.bat (#1778) --- _data/elixir-versions.yml | 1 + install.bat | 164 ++++++++++++++++++++++++ install.markdown | 32 ++++- install.sh | 262 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 458 insertions(+), 1 deletion(-) create mode 100755 install.bat create mode 100755 install.sh diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 93d640300..f8a2d9538 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,6 +3,7 @@ stable: v1_17 v1_17: name: v1.17 minimum_otp: 25.0 + recommended_otp: 27.1.2 otp_versions: [27, 26, 25] version: 1.17.3 diff --git a/install.bat b/install.bat new file mode 100755 index 000000000..476b69e4d --- /dev/null +++ b/install.bat @@ -0,0 +1,164 @@ +@echo off +REM See latest version at: +REM https://github.com/elixir-lang/elixir-lang.github.com/blob/main/install.bat + +setlocal EnableDelayedExpansion + +set "otp_version=latest" +set "elixir_version=latest" +set "force=false" + +goto :main + +:usage +echo Usage: install.bat [arguments] [options] +echo. +echo Arguments: +echo. +echo elixir@VERSION Install specific Elixir version. The version can be X.Y.Z, latest, or main +echo otp@VERSION Install specific Erlang/OTP version. The version can be X.Y.Z or latest +echo. +echo By default, elixir@latest and otp@latest are installed. +echo. +echo Options: +echo. +echo -f, --force Forces installation even if it was previously installed +echo -h, --help Prints this help +echo. +echo Examples: +echo. +echo install.bat +echo install.bat elixir@1.16.3 otp@26.2.5.4 +echo install.bat elixir@main +echo. +goto :eof + +:main +for %%i in (%*) do ( + set arg=%%i + + if "!arg:~0,7!" == "elixir@" ( + set "elixir_version=!arg:~7!" + ) else if "!arg:~0,4!" == "otp@" ( + set "otp_version=!arg:~4!" + ) else if "!arg!" == "-f" ( + set "force=true" + ) else if "!arg!" == "--force" ( + set "force=true" + ) else if "!arg!" == "-h" ( + call :usage + exit /b 0 + ) else if "!arg!" == "--help" ( + call :usage + exit /b 0 + ) else ( + echo error: unknown argument !arg! + exit /b 1 + ) +) + +if "!otp_version!" == "latest" ( + set "url=https://github.com/erlef/otp_builds/releases/latest" + for /f "tokens=2 delims= " %%a in ('curl -fsS --head "!url!" ^| findstr /I "^location:"') do set url=%%a + set "otp_version=!url:*releases/tag/OTP-=!" +) + +if "!elixir_version!" == "latest" ( + set "url=https://github.com/elixir-lang/elixir/releases/latest" + for /f "tokens=2 delims= " %%a in ('curl -fsS --head "!url!" ^| findstr /I "^location:"') do set url=%%a + set "elixir_version=!url:*releases/tag/v=!" +) + +for /f "tokens=1 delims=." %%A in ("!otp_version!") do set "elixir_otp_release=%%A" +for /f "tokens=1,2 delims=." %%A in ("!elixir_version!") do set "elixir_major_minor=%%A.%%B" +if "%elixir_major_minor%" == "1.15" ( + if %elixir_otp_release% GEQ 26 set "elixir_otp_release=26" +) else if "%elixir_major_minor%" == "1.16" ( + if %elixir_otp_release% GEQ 26 set "elixir_otp_release=26" +) else if "%elixir_major_minor%" == "1.14" ( + if %elixir_otp_release% GEQ 25 set "elixir_otp_release=25" +) + +set "root_dir=%USERPROFILE%\.elixir-install" +set "tmp_dir=%root_dir%\tmp" +mkdir %tmp_dir% 2>nul +set "otp_dir=%root_dir%\installs\otp\%otp_version%" +set "elixir_dir=%root_dir%\installs\elixir\%elixir_version%-otp-%elixir_otp_release%" + +call :install_otp +if %errorlevel% neq 0 exit /b 1 + +set /p="checking OTP... "&2 + exit 1 + ;; + esac + done + + root_dir="$HOME/.elixir-install" + tmp_dir="$root_dir/tmp" + mkdir -p "$tmp_dir" + + if [ "${otp_version}" = latest ]; then + url=$(curl -fsS --head https://github.com/erlef/otp_builds/releases/latest | grep -i '^location:' | awk '{print $2}' | tr -d '\r\n') + tag=$(basename "$url") + otp_version="${tag#OTP-}" + fi + + if [ "${elixir_version}" = latest ]; then + url=$(curl -fsS --head https://github.com/elixir-lang/elixir/releases/latest | grep -i '^location:' | awk '{print $2}' | tr -d '\r\n') + tag=$(basename "$url") + elixir_version="${tag#v}" + fi + + case "${otp_version}" in + master|maint*) + branch_version=$(curl -fsS https://raw.githubusercontent.com/erlang/otp/refs/heads/${otp_version}/OTP_VERSION | tr -d '\n') + elixir_otp_release="${branch_version%%.*}" + ;; + *) + elixir_otp_release="${otp_version%%.*}" + ;; + esac + + case "$elixir_version" in + 1.14.*) + [ "${elixir_otp_release}" -ge 25 ] && elixir_otp_release=25 + ;; + 1.15.*|1.16.*) + [ "${elixir_otp_release}" -ge 26 ] && elixir_otp_release=26 + ;; + *) + [ "${elixir_otp_release}" -ge 27 ] && elixir_otp_release=27 + ;; + esac + + otp_dir="$root_dir/installs/otp/$otp_version" + elixir_dir="${root_dir}/installs/elixir/${elixir_version}-otp-${elixir_otp_release}" + + install_otp & + install_elixir & + wait + + printf "checking OTP... " + export PATH="$otp_dir/bin:$PATH" + erl -noshell -eval 'io:put_chars(erlang:system_info(otp_release) ++ " ok\n"), halt().' + + printf "checking Elixir... " + "$elixir_dir/bin/elixir" -e 'IO.puts(System.version() <> " ok")' + + export PATH="$elixir_dir/bin:$PATH" +cat< Date: Thu, 31 Oct 2024 15:19:43 +0100 Subject: [PATCH 1697/1761] Clarify exception role --- _posts/2024-08-28-typing-lists-and-tuples.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2024-08-28-typing-lists-and-tuples.markdown b/_posts/2024-08-28-typing-lists-and-tuples.markdown index c0998bf86..ae94de630 100644 --- a/_posts/2024-08-28-typing-lists-and-tuples.markdown +++ b/_posts/2024-08-28-typing-lists-and-tuples.markdown @@ -157,13 +157,13 @@ Overall, ## Summary -I hope this article outlines some of the design decisions as we bring a gradual type system to Elixir. Although supporting tuples and lists is a "table stakes" feature in most type systems, bringing them to Elixir was an opportunity to understand how the type system will interact with several language idioms, as well as provide a foundation for future decisions. The most important take aways are: +I hope this article outlines some of the design decisions as we bring a gradual type system to Elixir. Although supporting tuples and lists is a "table stakes" feature in most type systems, bringing them to Elixir is an opportunity to understand how the type system will interact with several language idioms, as well as provide a foundation for future decisions. The most important take aways are: 1. Type safety is a commitment from both sides. If you want your type system to find even more bugs through more precise types, you will need to prove more frequently that your programs are free of certain typing violations. -2. Given not everything will be encoded as types, exceptions are important. Even in the presence of `option` types, it would not be beneficial for developers if `elem(tuple, index)` returned `:none` for negative indexes. +2. It is not a goal of the type system to avoid all runtime errors. This would require either a type system that is too precise (and require more proofs) or it would require functions to mask hard errors (such as a negative index) as error values. Exceptions still play an important role in typed Elixir and, given they are modelled as structs, they will also be typed in the future. -3. Elixir's convention of using the suffix `!` to encode the possibility of runtime exceptions for a valid domain (the input types) nicely complements the type system, as it can help static programs avoid the boilerplate of converting `:none`/`:error` into exceptions for unexpected scenarios. +3. Elixir's convention of using the suffix `!` to provide variants that encode the possibility of runtime exceptions for a valid domain (the input types) nicely complements the type system, as it can help static programs avoid the boilerplate of converting `:none`/`:error` into exceptions for unexpected scenarios. 4. Using `dynamic()` in function signatures is a mechanism available in Elixir's type system to signal that a function has dynamic behaviour and may raise runtime errors, allowing violations to be reported on programs that wish to remain fully static. Similar to how other static languages provide dynamic behaviour via `Any` or `Dynamic` types. From 284c7d22bf22e8a174b7c92bd3b3233779eb9d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 1 Nov 2024 09:12:26 +0100 Subject: [PATCH 1698/1761] Move install scripts and link to them from multiple places --- install.markdown | 72 ++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/install.markdown b/install.markdown index b168c92d0..47e076fbb 100644 --- a/install.markdown +++ b/install.markdown @@ -16,36 +16,6 @@ Note that Elixir {{ stable.name }} requires Erlang {{ stable.minimum_otp }} or l If you are not sure if you have Elixir installed or not, you can run `elixir --version` in your terminal. -## Install Script - -Elixir and Erlang/OTP can be quickly installed for macOS, Windows, or Ubuntu using an `install.sh`/`install.bat` script: - -If you are using bash (macOS/Ubuntu/Windows), run: - -```sh -curl -fsSO {{ site.url }}/install.sh -sh install.sh elixir@{{ stable.version }} otp@{{ stable.recommended_otp }} -installs_dir=$HOME/.elixir-install/installs -export PATH=$installs_dir/otp/{{ stable.recommended_otp }}/bin:$PATH -export PATH=$installs_dir/elixir/{{ stable.version }}-otp-{{ stable.otp_versions[0] }}/bin:$PATH -iex -``` - -If you are using PowerShell (Windows), run: - -```pwsh -curl.exe -fsSO {{ site.url }}/install.bat -.\install.bat elixir@{{ stable.version }} otp@{{ stable.recommended_otp }} -$installs_dir = "$env:USERPROFILE\.elixir-install\installs" -$env:PATH = "$installs_dir\otp\{{ stable.recommended_otp }}\bin;$env:PATH" -$env:PATH = "$installs_dir\elixir\{{ stable.version }}-otp-{{ stable.otp_versions[0] }}\bin;$env:PATH" -iex.bat -``` - -Use `install.sh --help` or `install.bat --help` to learn more about available arguments and options. - -Install scripts support installing Elixir 1.14+. - ## By Operating System Install Elixir according to your operating system and tool of choice. @@ -58,7 +28,9 @@ Install Elixir according to your operating system and tool of choice. - Using [Macports](https://www.macports.org/): * Run: `sudo port install elixir` -Note version managers (described below), are also available for macOS. + - Using [version managers](#version-managers) + + - Using [install scripts](#install-scripts) ### GNU/Linux @@ -94,10 +66,7 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se $ sudo apt install elixir erlang-dev erlang-xmerl ``` - - **Fedora 21 (and older)** - * Run: `sudo yum install elixir` - - - **Fedora 22 (and newer)** + - **Fedora** * Run: `sudo dnf install elixir erlang` * Documentation is available in separate packages: `sudo dnf install elixir-doc erlang-doc` * Fedora's Rawhide repository has newer versions before they go into the main repositories: `sudo dnf --disablerepo='*' --enablerepo=rawhide install elixir elixir-doc erlang erlang-doc` @@ -124,6 +93,7 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se - **Ubuntu** * Run: `sudo apt install elixir` + * Alternativel, use [install scripts](#install-scripts) - **Void Linux** * Run: `xbps-install -S elixir` @@ -159,7 +129,7 @@ Keep in mind that each Elixir version supports specific Erlang/OTP versions. [Se - Using [Chocolatey](https://community.chocolatey.org/): * Install Elixir (installs Erlang as a dependency): `choco install elixir` -Elixir versions before v1.15 can also be installed using the deprecated [Online Elixir Installer](https://github.com/elixir-lang/elixir-windows-setup/releases/tag/v2.4). + - Using [install scripts](#install-scripts) ### Raspberry Pi and embedded devices @@ -178,6 +148,36 @@ If you are familiar with Docker you can use the official Docker image to get sta The above will automatically point to the latest Erlang and Elixir available. For production usage, we recommend using [Hex.pm Docker images](https://hub.docker.com/r/hexpm/elixir), which are immutable and point to a specific Erlang and Elixir version. +## Install scripts + +Elixir and Erlang/OTP can be quickly installed for macOS, Windows, or Ubuntu using an `install.sh`/`install.bat` script: + +If you are using bash (macOS/Ubuntu/Windows), run: + +```sh +curl -fsSO {{ site.url }}/install.sh +sh install.sh elixir@{{ stable.version }} otp@{{ stable.recommended_otp }} +installs_dir=$HOME/.elixir-install/installs +export PATH=$installs_dir/otp/{{ stable.recommended_otp }}/bin:$PATH +export PATH=$installs_dir/elixir/{{ stable.version }}-otp-{{ stable.otp_versions[0] }}/bin:$PATH +iex +``` + +If you are using PowerShell (Windows), run: + +```pwsh +curl.exe -fsSO {{ site.url }}/install.bat +.\install.bat elixir@{{ stable.version }} otp@{{ stable.recommended_otp }} +$installs_dir = "$env:USERPROFILE\.elixir-install\installs" +$env:PATH = "$installs_dir\otp\{{ stable.recommended_otp }}\bin;$env:PATH" +$env:PATH = "$installs_dir\elixir\{{ stable.version }}-otp-{{ stable.otp_versions[0] }}\bin;$env:PATH" +iex.bat +``` + +Use `install.sh --help` or `install.bat --help` to learn more about available arguments and options. + +Install scripts support installing Elixir 1.14+. + ## Precompiled package Elixir provides a precompiled package for every release. First [install Erlang](/install.html#installing-erlang) and then download the appropriate precompiled Elixir below. You can consult your Erlang/OTP version by running `erl -s halt`: From e0c8e3318dc6fecaf84f8e60b29995d0f1131acc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 1 Nov 2024 09:14:52 +0100 Subject: [PATCH 1699/1761] More fixes --- install.markdown | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/install.markdown b/install.markdown index 47e076fbb..3f620c4f6 100644 --- a/install.markdown +++ b/install.markdown @@ -29,7 +29,6 @@ Install Elixir according to your operating system and tool of choice. * Run: `sudo port install elixir` - Using [version managers](#version-managers) - - Using [install scripts](#install-scripts) ### GNU/Linux @@ -174,9 +173,7 @@ $env:PATH = "$installs_dir\elixir\{{ stable.version }}-otp-{{ stable.otp_version iex.bat ``` -Use `install.sh --help` or `install.bat --help` to learn more about available arguments and options. - -Install scripts support installing Elixir 1.14+. +You may want to [set the $PATH environment variable](#setting-path-environment-variable) for your whole system. Use `install.sh --help` or `install.bat --help` to learn more about available arguments and options. ## Precompiled package From 697467a67e0b447e442d8dadcba6cc74f893896c Mon Sep 17 00:00:00 2001 From: Wojtek Mach Date: Sat, 2 Nov 2024 09:29:37 +0100 Subject: [PATCH 1700/1761] install: Make elixir and otp versions required (#1779) --- install.bat | 30 +++++++++++++++++++----------- install.sh | 32 +++++++++++++++++++------------- 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/install.bat b/install.bat index 476b69e4d..386fba2d0 100755 --- a/install.bat +++ b/install.bat @@ -4,21 +4,17 @@ REM https://github.com/elixir-lang/elixir-lang.github.com/blob/main/install.bat setlocal EnableDelayedExpansion -set "otp_version=latest" -set "elixir_version=latest" +set "otp_version=" +set "elixir_version=" set "force=false" goto :main :usage -echo Usage: install.bat [arguments] [options] +echo Usage: install.bat elixir@ELIXIR_VERSION otp@OTP_VERSION [options] echo. -echo Arguments: -echo. -echo elixir@VERSION Install specific Elixir version. The version can be X.Y.Z, latest, or main -echo otp@VERSION Install specific Erlang/OTP version. The version can be X.Y.Z or latest -echo. -echo By default, elixir@latest and otp@latest are installed. +echo ELIXIR_VERSION can be X.Y.Z, latest, or main. +echo OTP_VERSION can be X.Y.Z or latest. echo. echo Options: echo. @@ -27,9 +23,9 @@ echo -h, --help Prints this help echo. echo Examples: echo. -echo install.bat echo install.bat elixir@1.16.3 otp@26.2.5.4 -echo install.bat elixir@main +echo install.bat elixir@latest otp@latest +echo install.bat elixir@main otp@latest echo. goto :eof @@ -57,6 +53,18 @@ for %%i in (%*) do ( ) ) +if "%elixir_version%" == "" ( + call :usage + echo error: missing elixir@VERSION argument + exit /b 1 +) + +if "%otp_version%" == "" ( + call :usage + echo error: missing otp@VERSION argument + exit /b 1 +) + if "!otp_version!" == "latest" ( set "url=https://github.com/erlef/otp_builds/releases/latest" for /f "tokens=2 delims= " %%a in ('curl -fsS --head "!url!" ^| findstr /I "^location:"') do set url=%%a diff --git a/install.sh b/install.sh index 46e52d6b6..b4c952ab1 100755 --- a/install.sh +++ b/install.sh @@ -4,21 +4,16 @@ set -eu -otp_version=latest -elixir_version=latest +otp_version= +elixir_version= force=false usage() { cat< Date: Mon, 4 Nov 2024 12:04:54 +0100 Subject: [PATCH 1701/1761] install: Add fallback to OTP unzip (#1780) --- install.sh | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index b4c952ab1..6e5910d69 100755 --- a/install.sh +++ b/install.sh @@ -105,9 +105,16 @@ main() { otp_dir="$root_dir/installs/otp/$otp_version" elixir_dir="${root_dir}/installs/elixir/${elixir_version}-otp-${elixir_otp_release}" - install_otp & - install_elixir & - wait + if unzip_available; then + install_otp & + install_elixir & + wait + else + # if unzip is missing (e.g. official docker ubuntu image), install otp and elixir + # serially because we unzip elixir using OTP zip:extract/2. + install_otp + install_elixir + fi printf "checking OTP... " export PATH="$otp_dir/bin:$PATH" @@ -253,7 +260,15 @@ install_elixir() { echo "unpacking $elixir_zip to $elixir_dir..." rm -rf "${elixir_dir}" mkdir -p "${elixir_dir}" - unzip -q "${tmp_dir}/${elixir_zip}" -d "${elixir_dir}" + + if unzip_available; then + unzip -q "${tmp_dir}/${elixir_zip}" -d "${elixir_dir}" + else + "${otp_dir}/bin/erl" -noshell -eval \ + '[Zip,Dir] = init:get_plain_arguments(), {ok,_} = zip:unzip(Zip, [{cwd, Dir}]), halt().' \ + -- "${tmp_dir}/${elixir_zip}" "${elixir_dir}" + fi + rm "${tmp_dir}/${elixir_zip}" fi } @@ -265,4 +280,8 @@ download() { curl --retry 3 -fsSLo "$output" "$url" } +unzip_available() { + which unzip >/dev/null 2>&1 +} + main "$@" From b0c034a96bfd1b9965aa029bc78a9f1821d8c2af Mon Sep 17 00:00:00 2001 From: Zach Allaun Date: Thu, 14 Nov 2024 17:50:22 -0500 Subject: [PATCH 1702/1761] Ensure install.sh halts if either of OTP or Elixir fails to install (#1782) --- install.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 6e5910d69..a662ec521 100755 --- a/install.sh +++ b/install.sh @@ -107,8 +107,13 @@ main() { if unzip_available; then install_otp & + pid_otp=$! + install_elixir & - wait + pid_elixir=$! + + wait $pid_otp + wait $pid_elixir else # if unzip is missing (e.g. official docker ubuntu image), install otp and elixir # serially because we unzip elixir using OTP zip:extract/2. From 9e7da924c5c5f15c536a4b0f1e57fd0f55d41a14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 19 Dec 2024 18:31:04 +0100 Subject: [PATCH 1703/1761] Elixir v1.18.0 announcement (#1783) --- .ruby-version | 1 + Gemfile | 3 +- Gemfile.lock | 4 +- _includes/search.html | 2 +- ...024-12-19-elixir-v1-18-0-released.markdown | 217 ++++++++++++++++++ images/contents/iex-auto-reload.mp4 | Bin 0 -> 757613 bytes images/contents/type-warning-case.png | Bin 0 -> 923839 bytes .../contents/type-warning-function-clause.png | Bin 0 -> 983135 bytes images/contents/type-warning-private.png | Bin 0 -> 664223 bytes 9 files changed, 222 insertions(+), 5 deletions(-) create mode 100644 .ruby-version create mode 100644 _posts/2024-12-19-elixir-v1-18-0-released.markdown create mode 100644 images/contents/iex-auto-reload.mp4 create mode 100644 images/contents/type-warning-case.png create mode 100644 images/contents/type-warning-function-clause.png create mode 100644 images/contents/type-warning-private.png diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 000000000..2451c27ca --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.0.7 diff --git a/Gemfile b/Gemfile index b3b1956fc..72d7fa39a 100644 --- a/Gemfile +++ b/Gemfile @@ -2,5 +2,4 @@ source 'https://rubygems.org' gem 'github-pages' gem 'json', '>= 2.0.0' - -gem "webrick", "~> 1.8" +gem 'webrick', '>= 1.8' diff --git a/Gemfile.lock b/Gemfile.lock index f7eb71981..b966d6772 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -258,7 +258,7 @@ PLATFORMS DEPENDENCIES github-pages json (>= 2.0.0) - webrick (~> 1.8) + webrick (>= 1.8) BUNDLED WITH - 2.3.7 + 2.5.23 diff --git a/_includes/search.html b/_includes/search.html index 651220219..8535bb553 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,5 +1,5 @@ From 217d3ea3e6de394f3868de41ede283ad308d49e8 Mon Sep 17 00:00:00 2001 From: Mohsen Nasiri <43057475+leaked@users.noreply.github.com> Date: Wed, 21 May 2025 14:58:08 +0330 Subject: [PATCH 1732/1761] Improve install.bat to support PowerShell 7 and handle missing Expand-Archive gracefully (#1800) --- install.bat | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/install.bat b/install.bat index 386fba2d0..ffc0ed92c 100755 --- a/install.bat +++ b/install.bat @@ -139,7 +139,16 @@ if not exist "%otp_dir%\bin" ( curl.exe -fsSLo %tmp_dir%\%otp_zip% "!otp_url!" || exit /b 1 echo unpacking %tmp_dir%\%otp_zip% - powershell -Command "Expand-Archive -LiteralPath %tmp_dir%\%otp_zip% -DestinationPath %otp_dir%" + powershell -NoProfile -Command ^ + "$ErrorActionPreference='Stop';" ^ + "try {" ^ + " if (-not (Get-Command Expand-Archive -ErrorAction SilentlyContinue)) {" ^ + " Add-Type -AssemblyName System.IO.Compression.FileSystem;" ^ + " [System.IO.Compression.ZipFile]::ExtractToDirectory('%tmp_dir%\%otp_zip%', '%otp_dir%')" ^ + " } else {" ^ + " Expand-Archive -LiteralPath '%tmp_dir%\%otp_zip%' -DestinationPath '%otp_dir%' -Force" ^ + " }" ^ + "} catch { Write-Error $_; exit 1 }" del /f /q "%tmp_dir%\%otp_zip%" cd /d "%otp_dir%" @@ -166,7 +175,16 @@ if not exist "%elixir_dir%\bin" ( curl.exe -fsSLo "%tmp_dir%\%elixir_zip%" "!elixir_url!" || exit /b 1 echo unpacking %tmp_dir%\%elixir_zip% - powershell -Command "Expand-Archive -LiteralPath %tmp_dir%\%elixir_zip% -DestinationPath %elixir_dir%" + powershell -NoProfile -Command ^ + "$ErrorActionPreference='Stop';" ^ + "try {" ^ + " if (-not (Get-Command Expand-Archive -ErrorAction SilentlyContinue)) {" ^ + " Add-Type -AssemblyName System.IO.Compression.FileSystem;" ^ + " [System.IO.Compression.ZipFile]::ExtractToDirectory('%tmp_dir%\%elixir_zip%', '%elixir_dir%')" ^ + " } else {" ^ + " Expand-Archive -LiteralPath '%tmp_dir%\%elixir_zip%' -DestinationPath '%elixir_dir%' -Force" ^ + " }" ^ + "} catch { Write-Error $_; exit 1 }" del /f /q %tmp_dir%\%elixir_zip% ) goto :eof From 51eabdf6ca442e6a0a35ceac2fc31f36f2294f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 21 May 2025 15:52:49 +0200 Subject: [PATCH 1733/1761] Release v1.18.4 --- _data/elixir-versions.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 45698dacc..4d2593c70 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -3,9 +3,9 @@ stable: v1_18 v1_18: name: v1.18 minimum_otp: 26.0 - recommended_otp: 27.2.3 + recommended_otp: 27.3.4 otp_versions: [27, 26, 25] - version: 1.18.3 + version: 1.18.4 v1_17: name: v1.17 From 8ceb82371490660a5f70d26c3c0118d390d48618 Mon Sep 17 00:00:00 2001 From: Wojtek Mach Date: Thu, 22 May 2025 12:41:11 +0200 Subject: [PATCH 1734/1761] Update install.sh and install.bat (#1801) * Allow OTP 28 for Elixir 1.19 * Fix `> install.bat elixir@main` * Fix `> install.bat otp@latest` --- install.bat | 29 +++++++++++++++++++++++------ install.sh | 8 +++++++- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/install.bat b/install.bat index ffc0ed92c..a6e88101c 100755 --- a/install.bat +++ b/install.bat @@ -66,7 +66,7 @@ if "%otp_version%" == "" ( ) if "!otp_version!" == "latest" ( - set "url=https://github.com/erlef/otp_builds/releases/latest" + set "url=https://github.com/erlang/otp/releases/latest" for /f "tokens=2 delims= " %%a in ('curl -fsS --head "!url!" ^| findstr /I "^location:"') do set url=%%a set "otp_version=!url:*releases/tag/OTP-=!" ) @@ -79,12 +79,21 @@ if "!elixir_version!" == "latest" ( for /f "tokens=1 delims=." %%A in ("!otp_version!") do set "elixir_otp_release=%%A" for /f "tokens=1,2 delims=." %%A in ("!elixir_version!") do set "elixir_major_minor=%%A.%%B" -if "%elixir_major_minor%" == "1.15" ( + +if "%elixir_major_minor%" == "1.14" ( + if %elixir_otp_release% GEQ 25 set "elixir_otp_release=25" +) else if "%elixir_major_minor%" == "1.15" ( if %elixir_otp_release% GEQ 26 set "elixir_otp_release=26" ) else if "%elixir_major_minor%" == "1.16" ( if %elixir_otp_release% GEQ 26 set "elixir_otp_release=26" -) else if "%elixir_major_minor%" == "1.14" ( - if %elixir_otp_release% GEQ 25 set "elixir_otp_release=25" +) else if "%elixir_major_minor%" == "1.17" ( + if %elixir_otp_release% GEQ 27 set "elixir_otp_release=27" +) else if "%elixir_major_minor%" == "1.18" ( + if %elixir_otp_release% GEQ 27 set "elixir_otp_release=27" +) else if "%elixir_major_minor%" == "1.19" ( + if %elixir_otp_release% GEQ 28 set "elixir_otp_release=28" +) else ( + if %elixir_otp_release% GEQ 28 set "elixir_otp_release=28" ) set "root_dir=%USERPROFILE%\.elixir-install" @@ -161,7 +170,15 @@ exit /b 0 goto :eof :install_elixir -set "elixir_zip=elixir-!elixir_version!-otp-!elixir_otp_release!.zip" +set "elixir_zip=elixir-otp-!elixir_otp_release!.zip" + +if "%elixir_version%" == "main" ( + rem Do not remove this comment + set "ref=main-latest" +) else ( + rem Do not remove this comment + set "ref=v%elixir_version%" +) if "%force%" == "true" ( if exist "%elixir_dir%" ( @@ -170,7 +187,7 @@ if "%force%" == "true" ( ) if not exist "%elixir_dir%\bin" ( - set "elixir_url=https://github.com/elixir-lang/elixir/releases/download/v!elixir_version!/elixir-otp-%elixir_otp_release%.zip" + set "elixir_url=https://github.com/elixir-lang/elixir/releases/download/%ref%/elixir-otp-%elixir_otp_release%.zip" echo downloading !elixir_url!... curl.exe -fsSLo "%tmp_dir%\%elixir_zip%" "!elixir_url!" || exit /b 1 diff --git a/install.sh b/install.sh index a662ec521..f1647a15f 100755 --- a/install.sh +++ b/install.sh @@ -97,9 +97,15 @@ main() { 1.15.*|1.16.*) [ "${elixir_otp_release}" -ge 26 ] && elixir_otp_release=26 ;; - *) + 1.17.*|1.18.*) [ "${elixir_otp_release}" -ge 27 ] && elixir_otp_release=27 ;; + 1.19.*) + [ "${elixir_otp_release}" -ge 28 ] && elixir_otp_release=28 + ;; + *) + [ "${elixir_otp_release}" -ge 28 ] && elixir_otp_release=28 + ;; esac otp_dir="$root_dir/installs/otp/$otp_version" From a8e0eac74a4b98ffdd552885313c18287d4f6702 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 3 Jun 2025 17:00:27 +0200 Subject: [PATCH 1735/1761] Elixir Outreach announcement (#1802) --- ...xir-outreach-stipend-for-speakers.markdown | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 _posts/2025-06-02-elixir-outreach-stipend-for-speakers.markdown diff --git a/_posts/2025-06-02-elixir-outreach-stipend-for-speakers.markdown b/_posts/2025-06-02-elixir-outreach-stipend-for-speakers.markdown new file mode 100644 index 000000000..1bca122fc --- /dev/null +++ b/_posts/2025-06-02-elixir-outreach-stipend-for-speakers.markdown @@ -0,0 +1,42 @@ +--- +layout: post +title: "Elixir Outreach stipend for speakers and trainers" +authors: +- José Valim +category: Announcements +excerpt: "We announce the Elixir Outreach stipend in partnership with Dashbit, Oban, and the Erlang Ecosystem Foundation" +--- + +[Dashbit](https://dashbit.co), [Oban](https://oban.pro), and the [Erlang Ecosystem Foundation (EEF)](https://erlef.org) are glad to announce a new program, which we will trial over the next 12 months, called "Elixir Outreach". Our goal is to provide funds to community members who want to present Elixir and Erlang to other ecosystems and communities, while respecting our joint values. + +In a nutshell: + +* We will provide funds to community members to speak **in-person** about anything related to Elixir and the Erlang VM. + +* We will cover hotel and transportation costs for up to $700 USD. Please reach out, even if you expect to exceed that limit. This is our first time running the program and we're refining the budget. + +* The event must expect at least 150 attendees and happen outside of the Elixir, overall BEAM, and functional programming communities. In other words, we won't cover costs for attending Erlang, Elixir, or other BEAM/FP conferences nor meetups. Consider it as an opportunity to learn and bring external knowledge and experiences to the BEAM community. + +* You will be expected to send a report about your experience. The format and duration is up to you. We'd prefer that you write a blog post or an article sharing your overall experience with the involved communities. However, if you would prefer to only send it privately to us, that's fine too! + +The event should take place within your area. Our overall goal is to support multiple individuals, rather than drain our budget on a few long-distance flights (such as across coasts or continents). We are flexible on event location, distance, or type. If in doubt, reach out to [elixir_outreach at erlef dot org](mailto:elixir_outreach@erlef.org) + +Our initial budget of $7000 was donated by Dashbit ($5000) and Oban ($2000) to the Erlang Ecosystem Foundation (EEF), specifically for this program. The EEF will oversee the distribution of the funds. + +## Requesting a stipend + +To request a stipend, visit the [Erlang Ecosystem Foundation website and choose "Elixir Outreach" as the stipend type](https://erlef.org/stipends/form?type=elixir-outreach). + +Given we have limited funds, we cannot guarantee they will be available when you request them. We recommend reaching out to us before submitting or acceptance your talk. Therefore, by contacting us early, we can validate if the event matches the criteria above, ask questions, and earmark the funds. Once your talk is accepted, send us any itemized travel and accommodation costs so we can transfer the stipend to you, (not in excess of $700 USD). + +You can also request a stipend after your talk has already been accepted, but then there are no guarantees a stipend will be available. + +Our goal is to make this process simple and as straight-forward as possible. Although, we reserve the right to refuse a request for any reason. If in doubt, reach out to [elixir_outreach at erlef dot org](mailto:elixir_outreach@erlef.org). + +## Acknowledgements + +This is a new effort for all involved! Please be patient while we figure out the details. + +If you are looking for conferences to speak at, [Dave Aronson keeps a list of CFPs closing soon](https://www.codosaur.us/speaking/cfps-ending-soon) and there are likely others available. Note, we don’t necessarily endorse all of the conferences listed nor guarantee they meet the requirements above, but the list may help you get the ball rolling. + +Thanks to Parker Selbert, Shannon Selbert, Brian Cardarella, Alistair Woodman, and Lee Barney for feedback and helping make this a reality. \ No newline at end of file From fee4f04dfe5cef76e7a4f2c3d6ad0fe70c5e198b Mon Sep 17 00:00:00 2001 From: Jeremy Walker Date: Fri, 11 Jul 2025 08:37:48 +0100 Subject: [PATCH 1736/1761] Fix Exercism icon and links (#1803) Fixes three things: - Exercism is normally refered to as Exercism (not Exercism.org or Exercism.io). - The site moved from .io to .org a number of years back. - The icon URL was an old outdated one which is no longer loading. --- learning.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/learning.markdown b/learning.markdown index 0c5df683b..c78d1ba5a 100644 --- a/learning.markdown +++ b/learning.markdown @@ -281,11 +281,11 @@ Elixir koans is a fun, easy way to get started with the Elixir programming langu
    -

    Exercism.iofree

    +

    Exercismfree

    - Exercism.io Elixir track + Exercism Elixir track -Exercism.io is an open source platform that provides free practice and mentoring in many languages, including Elixir. +Exercism is an open source platform that provides free practice and mentoring in many languages, including Elixir. It features exercises of varying difficulty, from string processing to using OTP, that are mentored by volunteers. Once you have completed an exercise you can also view other students' solutions. From b954fd95bca175c70f6c901d06315616d8a45c14 Mon Sep 17 00:00:00 2001 From: Jim Freeze Date: Wed, 16 Jul 2025 10:18:20 -0500 Subject: [PATCH 1737/1761] Add ElixirConf US 2025 event (#1805) --- _includes/events.html | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/_includes/events.html b/_includes/events.html index b7635e412..7aedcfb1f 100644 --- a/_includes/events.html +++ b/_includes/events.html @@ -1,3 +1,11 @@ - \ No newline at end of file + + ElixirConf +
    +
      +
    • Aug 28-29, 2025 - Orlando, FL.
    • +
    • Aug 27 - Seven Workshops to choose from
    • +
    +
    +
    \ No newline at end of file From ca8f30ad26742693d1a74865338c4befe9b0d88a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 5 Aug 2025 21:59:46 +0200 Subject: [PATCH 1738/1761] Global Elixir Meetups --- .ruby-version | 2 +- _includes/search.html | 4 +++- .../2025-03-25-cyanview-elixir-case.markdown | 18 ++++-------------- .../2025-08-05-global-elixir-meetups.markdown | 18 ++++++++++++++++++ images/contents/gem.jpeg | Bin 0 -> 65728 bytes 5 files changed, 26 insertions(+), 16 deletions(-) create mode 100644 _posts/2025-08-05-global-elixir-meetups.markdown create mode 100644 images/contents/gem.jpeg diff --git a/.ruby-version b/.ruby-version index 2451c27ca..944880fa1 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.7 +3.2.0 diff --git a/_includes/search.html b/_includes/search.html index 8535bb553..fa32f4f56 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,5 +1,7 @@

    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

    {% if version[1].otp_versions %} Supported Erlang/OTP versions: {% for otp in version[1].otp_versions reversed %}{{ otp }}{% if forloop.last %}{% else %}, {% endif %}{% endfor %}. From 5c46fda11eb4d58a6b3cd493422ee63b53c89f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 20 Oct 2025 20:29:15 +0200 Subject: [PATCH 1749/1761] Release v1.19.1 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 1c14e26d3..7ec8ef4a3 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -5,7 +5,7 @@ v1_19: minimum_otp: 26.0 recommended_otp: 28.1 otp_versions: [28, 27, 26] - version: 1.19.0 + version: 1.19.1 v1_18: name: v1.18 From ca2c7e1639b2e836944ba7c21d6293bb23943f51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 22 Oct 2025 19:28:02 +0200 Subject: [PATCH 1750/1761] The inference feature is actually disabled on v1.19 --- ...025-10-16-elixir-v1-19-0-released.markdown | 42 +------------------ 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/_posts/2025-10-16-elixir-v1-19-0-released.markdown b/_posts/2025-10-16-elixir-v1-19-0-released.markdown index 998f16dbc..2ea81e290 100644 --- a/_posts/2025-10-16-elixir-v1-19-0-released.markdown +++ b/_posts/2025-10-16-elixir-v1-19-0-released.markdown @@ -1,6 +1,6 @@ --- layout: post -title: "Elixir v1.19 released: enhanced type checking, broader type inference, and up to 4x faster compilation for large projects" +title: "Elixir v1.19 released: enhanced type checking and up to 4x faster compilation for large projects" authors: - José Valim category: Releases @@ -13,46 +13,6 @@ Elixir v1.19 brings further improvements to the type system and compilation time This release improves the type system around two key areas: type inference and type checking of anonymous functions and protocols. These enhancements seem simple on the surface but required us to go beyond existing literature by extending current theory and developing new techniques. We will outline the technical details in future articles. For now, let's look at what's new. -### Type inference of all constructs - -Type inference (or reconstruction) is the ability of a type system to automatically deduce, either partially or fully, the type of an expression at compile time. Type inference may occur at different levels. For example, many programming languages can automatically infer the types of variables, also known "local type inference", but not all can infer type signatures of functions. - -Originally, our plan with Elixir's upcoming type system was to support type inference of patterns, guards, and return types. Therefore, if you wrote this simple function: - -```elixir -def even?(x) when is_integer(x) do - rem(x, 2) == 0 -end -``` - -Elixir would correctly infer the type to be `integer() -> boolean()`. However, if you wrote this function: - -```elixir -def even?(x) do - rem(x, 2) == 0 -end -``` - -The type would be `dynamic() -> boolean()`, since there are no guards, even though the functions behave virtually the same, as the `rem` operator expects both arguments to be integer (they just raise different exceptions for non-integer values). - -Inferring type signatures comes with a series of trade-offs: - - * Speed - type inference algorithms are often more computationally intensive than type checking algorithms. - - * Expressiveness - in any given type system, the constructs that support inference are always a subset of those that can be type-checked. Therefore, if a programming language is restricted to only fully reconstructed types, it is less expressive than a solely type checked counterpart. - - * Incremental compilation - type inference complicates incremental compilation. If module A depends on module B, which depends on module C, a change to C may require the type signature in B to be reconstructed, which may then require A to be recomputed (and so on). This dependency chain may require large projects to explicitly add type signatures for stability and compilation efficiency. - - * Cascading errors - when a user accidentally makes type errors or the code has conflicting assumptions, type inference may lead to less clear error messages as the type system tries to reconcile diverging type assumptions across code paths. - -On the other hand, type inference offers the benefit of enabling type checking for functions and codebases without requiring the user to add type annotations. To balance these trade-offs, we are exploring "module type inference": our goal is to infer type signatures considering invocations of functions in the same module and of functions from *other applications* (such as Elixir itself and your dependencies). Once module types are inferred, your whole project is type checked considering all declared and inferred types. - -We have successfully implemented these features as part of Elixir v1.19, by performing inference of all constructs (except guards), taking into account the signatures from calls to functions within the same module and in Elixir's standard library. This means the second function above, without the guard, will also infer the type `integer() -> boolean()`. - -In future releases, we plan to perform type inference of guards (originally planned for v1.19) and also consider the type signatures of your dependencies during inference. Overall, these changes allow us to assess the impact of the trade-offs above as the type system evolves, which suits well our current goals of incrementally using types to find bugs in existing codebases, without changing them. - -Keep in mind this only applies to *type inference*. Once we introduce type signatures and you explicitly annotate your functions, type inference and the trade-offs above no longer play a role. Any function with an explicit type signature will be typed checked against the user-provided annotations, as in other statically typed languages. - ### Type checking of protocol dispatch and implementations This release adds type checking when dispatching and implementing protocols. From 326b2539a706979fb13527f4145987db7eeadb9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Wed, 22 Oct 2025 19:28:43 +0200 Subject: [PATCH 1751/1761] Clarify the scope of inference --- _posts/2025-10-16-elixir-v1-19-0-released.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-10-16-elixir-v1-19-0-released.markdown b/_posts/2025-10-16-elixir-v1-19-0-released.markdown index 2ea81e290..32c2ee283 100644 --- a/_posts/2025-10-16-elixir-v1-19-0-released.markdown +++ b/_posts/2025-10-16-elixir-v1-19-0-released.markdown @@ -11,7 +11,7 @@ Elixir v1.19 brings further improvements to the type system and compilation time ## Type system improvements -This release improves the type system around two key areas: type inference and type checking of anonymous functions and protocols. These enhancements seem simple on the surface but required us to go beyond existing literature by extending current theory and developing new techniques. We will outline the technical details in future articles. For now, let's look at what's new. +This release improves the type system by adding type inference of anonymous functions and type checking of protocols. These enhancements seem simple on the surface but required us to go beyond existing literature by extending current theory and developing new techniques. We will outline the technical details in future articles. For now, let's look at what's new. ### Type checking of protocol dispatch and implementations From 423cb7c9a8b46113a963be72172fcc3aa6d62e02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 27 Oct 2025 19:09:09 +0100 Subject: [PATCH 1752/1761] Clarify announcement --- _posts/2024-08-15-welcome-elixir-language-server-team.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-15-welcome-elixir-language-server-team.markdown b/_posts/2024-08-15-welcome-elixir-language-server-team.markdown index 92f57b440..b9e29ca0f 100644 --- a/_posts/2024-08-15-welcome-elixir-language-server-team.markdown +++ b/_posts/2024-08-15-welcome-elixir-language-server-team.markdown @@ -7,7 +7,7 @@ category: Announcements excerpt: "Announcing the official Elixir Language Server team to work on the code intelligence infrastructure to be used across tools and editors" --- -> Update: [the new language server is called Expert and is now available as open source](https://github.com/elixir-lang/expert). +> Update: [the new language server is called Expert and is currently available in alpha as open source](https://github.com/elixir-lang/expert). Companies wanting to directly sponsor work on Expert, please reach out to [Dan Janowski](mailto:sponsor+expert@erlef.org) from the [Erlang Ecosystem Foundation](https://erlef.org), which has kindly stepped in to manage and bring visibility into the project sponsorships. I am glad to welcome Elixir's official Language Server team, formed by (in alphabetical order): From ab4ab07f080c3840be7435598eab52f7b8862de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sun, 2 Nov 2025 13:38:03 +0100 Subject: [PATCH 1753/1761] Release v1.19.2 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index 7ec8ef4a3..bf91eaa0b 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -5,7 +5,7 @@ v1_19: minimum_otp: 26.0 recommended_otp: 28.1 otp_versions: [28, 27, 26] - version: 1.19.1 + version: 1.19.2 v1_18: name: v1.18 From 9139e54116f4738f5393c26f06aad933459f5b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 13 Nov 2025 18:13:07 +0100 Subject: [PATCH 1754/1761] Release v1.19.3 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index bf91eaa0b..cda7cb4c7 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -5,7 +5,7 @@ v1_19: minimum_otp: 26.0 recommended_otp: 28.1 otp_versions: [28, 27, 26] - version: 1.19.2 + version: 1.19.3 v1_18: name: v1.18 From 26516e7b259f528a19dfb024e5e12e0321eb703e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 27 Nov 2025 17:47:16 +0100 Subject: [PATCH 1755/1761] Update Elixir version from 1.19.3 to 1.19.4 --- _data/elixir-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml index cda7cb4c7..468bdabbf 100644 --- a/_data/elixir-versions.yml +++ b/_data/elixir-versions.yml @@ -5,7 +5,7 @@ v1_19: minimum_otp: 26.0 recommended_otp: 28.1 otp_versions: [28, 27, 26] - version: 1.19.3 + version: 1.19.4 v1_18: name: v1.18 From 3630c0afd8b7132788954ee148116a9efa2c498d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 28 Nov 2025 22:10:38 +0100 Subject: [PATCH 1756/1761] Use Hexdocs.pm for search instead of DDG --- _includes/search.html | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/_includes/search.html b/_includes/search.html index fc0c1afb1..9b85975eb 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,23 +1,28 @@ +{% assign stable = site.data.elixir-versions[site.data.elixir-versions.stable].version %} +