diff --git a/1-js/1-getting-started/1-intro/limitations.png b/1-js/1-getting-started/1-intro/limitations.png
index 9e443f71..0f58b9d6 100644
Binary files a/1-js/1-getting-started/1-intro/limitations.png and b/1-js/1-getting-started/1-intro/limitations.png differ
diff --git a/1-js/1-getting-started/1-intro/limitations@2x.png b/1-js/1-getting-started/1-intro/limitations@2x.png
index bc210fe2..e790016b 100644
Binary files a/1-js/1-getting-started/1-intro/limitations@2x.png and b/1-js/1-getting-started/1-intro/limitations@2x.png differ
diff --git a/1-js/10-es-modern/3-promise/article.md b/1-js/10-es-modern/3-promise/article.md
index e69de29b..b06a23f1 100644
--- a/1-js/10-es-modern/3-promise/article.md
+++ b/1-js/10-es-modern/3-promise/article.md
@@ -0,0 +1,567 @@
+# Promise
+
+Promise (обычно их так и называют "промисы") -- предоставляют удобный способ организации асинхронного кода.
+
+В современном JavaScript промисы часто используются в том числе и неявно, при помощи генераторов, но об этом чуть позже.
+
+## Что такое Promise?
+
+Promise -- это специальный объект, который содержит своё состояние. Вначале `pending` ("ожидание"), затем -- одно из: `fulfilled` ("выполнено успешно") или `rejected` ("выполнено с ошибкой").
+
+
+
+На `promise` можно навешивать коллбэки двух типов:
+
+
+- `onFulfilled` -- срабатывают, когда `promise` в состоянии "выполнен успешно".
+- `onRejected` -- срабатывают, когда `promise` в состоянии "выполнен с ошибкой".
+
+
+Способ использования, в общих чертах, такой:
+
+- Код, которому надо сделать что-то асинхронно, создаёт объект `promise` и возвращает его.
+- Внешний код, получив `promise`, навешивает на него обработчики.
+- По завершении асинхронного процесса асинхронный код переводит `promise` в состояние `fulfilled` (с результатом) или `rejected` (с ошибкой). При этом автоматически вызываются обработчики.
+
+
+Синтаксис создания `Promise`:
+
+```js
+var promise = new Promise(function(resolve, reject) {
+ // Эта функция будет вызвана автоматически
+ // В ней можно делать любые асинхронные операции,
+ // А когда они завершаться — вызвать:
+ // resolve(результат) при успешном выполнении
+ // reject(ошибка) при ошибке
+})
+```
+
+Универсальный метод для навешивания обработчиков:
+
+```
+promise.then(onFulfilled, onRejected)
+```
+
+
+- `onFulfilled` -- функция, которая будет вызвана с результатом при `resolve`.
+- `onRejected` -- функция, которая будет вызвана с ошибкой при `reject`.
+
+
+С его помощью можно назначить как оба обработчика сразу, так и только один:
+
+```js
+// только на успешное выполнение
+promise.then(onFulfilled)
+// только на ошибку
+promise.then(null, onRejected)
+```
+
+[smart header=".catch"]
+Для того, чтобы поставить обработчик только на ошибку, вместо `.then(null, onRejected)` можно написать `.catch(onRejected)` -- это то же самое.
+[/smart]
+
+[smart header="Синхронный `throw` -- то же самое, что `reject`"]
+Если в функции промиса происходит ошибка или синхронный `throw`, то вызывается `reject`:
+```js
+//+ run
+var p = new Promise((resolve, reject) => {
+ throw new Error("o_O");
+})
+
+p.catch(alert); // Error: o_O
+```
+[/smart]
+
+Посмотрим, как это выглядит вместе, на простом примере.
+
+
+## Пример с setTimeout
+
+Возьмём `setTimeout` в качестве асинхронной операции, которая должна через некоторое время успешно завершиться с результатом "result":
+
+```js
+//+ run
+// Создаётся объект promise
+var promise = new Promise((resolve, reject) => {
+
+ setTimeout(() => {
+ // переводит в состояние fulfilled с результатом "result"
+ resolve("result");
+ }, 1000);
+
+});
+
+// promise.then навешивает обработчики на успешный результат или ошибку
+promise
+ .then(
+ result => {
+ // первая функция-обработчик - запустится при вызове resolve
+ alert("Fulfilled: " + result); // result - аргумент resolve
+ },
+ error => {
+ // вторая функция - запустится при вызове reject
+ alert("Rejected: " + error); // error - аргумент reject
+ }
+ );
+
+```
+
+В результате запуска кода выше -- через 1 секунду выведется "Fulfilled: result".
+
+А если бы вместо `resolve("result")` был вызов `reject("error")`, то вывелось бы "Rejected: error". Впрочем, как правило, если при выполнении возникла проблема, то `reject` вызывают не со строкой, а с объектом ошибки типа `new Error`:
+
+```js
+//+ run
+// Этот promise завершится с ошибкой через 1 секунду
+var promise = new Promise((resolve, reject) => {
+
+ setTimeout(() => {
+*!*
+ reject(new Error("время вышло!"));
+*/!*
+ }, 1000);
+
+});
+
+promise
+ .then(
+ result => alert("Fulfilled: " + result),
+*!*
+ error => alert("Rejected: " + error.message) // Rejected: время вышло!
+*/!*
+ );
+
+```
+
+Конечно, вместо `setTimeout` мог бы быть и запрос к серверу и ожидание ввода пользователя, или другой асинхронный процесс.
+
+
+## Promise после reject/resolve -- неизменны
+
+Заметим, что после вызова `resolve/reject` промис уже не может "передумать".
+
+Когда промис переходит в состояние "выполнен" -- с результатом (resolve) или ошибкой (reject) -- это навсегда.
+
+Например:
+
+```js
+//+ run
+var promise = new Promise((resolve, reject) => {
+
+*!*
+ // через 1 секунду готов результат: result
+*/!*
+ setTimeout(() => resolve("result"), 1000);
+
+*!*
+ // через 2 секунды — reject с ошибкой, он будет проигнорирован
+*/!*
+ setTimeout(() => reject(new Error("ignored")), 2000);
+
+});
+
+promise
+ .then(
+ result => alert("Fulfilled: " + result), // сработает
+ error => alert("Rejected: " + error) // не сработает
+ );
+
+```
+
+В результате вызова этого кода сработает только первый обработчик `then`, так как после вызова `resolve` промис уже получил состояние (с результатом), и в дальнейшем его уже ничто не изменит.
+
+Последующие вызовы resolve/reject будут просто проигнороированы.
+
+А так -- наоборот, ошибка будет раньше:
+
+
+```js
+//+ run
+var promise = new Promise((resolve, reject) => {
+
+ // reject вызван раньше, resolve будет проигнорирован
+ setTimeout(() => reject(new Error("error")), 1000);
+
+ setTimeout(() => resolve("ignored"), 2000);
+
+});
+
+promise
+ .then(
+ result => alert("Fulfilled: " + result), // не сработает
+ error => alert("Rejected: " + error) // сработает
+ );
+
+```
+
+
+## Промисификация
+
+*Промисификация* -- это когда берут асинхронный функционал и делают для него обёртку, возвращающую промис.
+
+После промисификации использование функционала зачастую становится гораздо удобнее.
+
+В качестве примера сделаем такую обёртку для запросов при помощи XMLHttpRequest.
+
+Функция `loadUrl(url)` будет возвращать промис, который при успешной загрузки данных с `url` будет переходить в `fulfilled` с этими данными, а при ошибке -- в `rejected` с информацией об ошибке:
+
+```js
+//+ autorun
+function loadUrl(url) {
+
+ return new Promise(function(resolve, reject) {
+
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', url, true);
+
+ xhr.onload = function() {
+ if (this.status == 200) {
+*!*
+ resolve(this.response);
+*/!*
+ } else {
+*!*
+ reject(new Error(this.statusText));
+*/!*
+ }
+ };
+
+ xhr.onerror = function() {
+*!*
+ reject(new Error("Network Error"));
+*/!*
+ };
+
+ xhr.send();
+ });
+
+}
+```
+
+Как видно, внутри функции объект `XMLHttpRequest` создаётся и отсылается как обычно, при `onload/onerror` вызываются, соответственно, `resolve` (при статусе 200) или `reject`.
+
+Использование:
+
+```js
+//+ run
+loadUrl("/article/promise/user.json")
+ .then(
+ response => alert(`Fulfilled: ${response}`),
+ error => alert(`Rejected: ${error}`)
+ );
+```
+
+
+[smart header="Метод `fetch`"]
+Заметим, что ряд современных браузеров уже поддерживает [fetch](https://fetch.spec.whatwg.org) -- новый встроенный метод для AJAX-запросов, призванный заменить XMLHttpRequest. Он, конечно, гораздо мощнее, чем `loadUrl`. И -- да, этот метод использует промисы. Полифилл для него доступен на [](https://github.com/github/fetch).
+[/smart]
+
+Далее мы увидим ещё примеры, а пока -- рассмотрим важные свойства `promise`.
+
+
+## Цепочки промисов
+
+"Чейнинг" (chaining), то есть возможность строить асинхронные цепочки из промисов -- пожалуй, основная причина, из-за которой существуют и активно используются промисы.
+
+Например, мы хотим по очереди:
+
+- Загрузить данные посетителя с сервера (асинхронно).
+- Затем отправить запрос о нём на github (асинхронно).
+- Когда это будет готово, вывести его github-аватар на экран (асинхронно).
+- ...И сделать код расширяемым, чтобы цепочку можно было легко продолжить.
+
+
+Вот код для этого, использующий функцию `loadUrl`, описанную выше:
+
+```js
+//+ run
+'use strict';
+
+// сделать запрос
+loadUrl('/article/promise/user.json')
+*!*
+ // 1. Получить данные о пользователе в JSON и передать дальше
+*/!*
+ .then(response => {
+ console.log(response);
+ let user = JSON.parse(response);
+*!*
+ return user;
+*/!*
+ })
+*!*
+ // 2. Получить информацию с github
+*/!*
+ .then(user => {
+ console.log(user);
+*!*
+ return loadUrl(`https://api.github.com/users/${user.name}`);
+*/!*
+ })
+*!*
+ // 3. Вывести аватар на 3 секунды (можно с анимацией)
+*/!*
+ .then(githubUser => {
+ console.log(githubUser);
+ githubUser = JSON.parse(githubUser);
+
+ let img = new Image();
+ img.src = githubUser.avatar_url;
+ img.className = "promise-avatar-example";
+ document.body.appendChild(img);
+
+*!*
+ setTimeout(() => img.remove(), 3000); // (*)
+*/!*
+ });
+```
+
+Самое главное в этом коде -- последовательность вызовов:
+
+```js
+loadUrl(...)
+ .then(...)
+ .then(...)
+ .then(...)
+```
+
+При чейнинге, то есть последовательных вызовах `.then...then..then`, в каждый следующий `then` переходит результат от предыдущего.
+
+**Причём, если `then` вернул промис, то в следующий `then` будет передан не сам промис, а его результат.**
+
+В коде выше:
+
+
+- В первом `then` возвращается объект `user`, он переходит в следующий `then`.
+- Во втором `then` возвращается промис (результат `loadUser`). Когда он будет завершён (может пройти какое-то время), то будет вызван следующий `then`.
+- Третий `then` ничего не возвращает.
+
+
+Схематично его работу можно изобразить так:
+
+
+
+Обратим внимание, что последний `then` в нашем примере ничего не возвращает. Если мы хотим, чтобы после `setTimeout` `(*)` асинхронная цепочка могла быть продолжена, то последний `then` тоже должен вернуть промис.
+
+Это общее правило. Если внутри `then` стартует новый асинхронный процесс, то для того, чтобы дождаться его окончания, мы должны вернуть промис, который перейдёт в состояние "выполнен" после `setTimeout`.
+
+Строку `(*)` для этого нужно переписать так:
+```js
+.then(githubUser => {
+ ...
+
+ // вместо setTimeout(() => img.remove(), 3000);
+
+ return new Promise((resolve, reject) => {
+ setTimeout(() => {
+ img.remove();
+ // после таймаута — просто resolve, без результата,
+ // чтобы управление перешло в следующий then
+ // (или можно передать данные пользователя дальше по цепочке)
+ resolve();
+ }, 3000);
+ });
+})
+```
+
+Теперь, если к цепочке добавится ещё `then`, то он будет вызван после окончания `setTimeout`.
+
+## Перехват ошибок
+
+Выше мы рассмотрели "идеальный случай" выполнения, когда ошибок нет.
+
+А что, если github не отвечает? Или JSON.parse бросил синтаксическую ошибку при обработке данных?
+
+Да мало ли, где ошибка...
+
+Правило здесь очень простое.
+
+**При возникновении ошибки -- она отправляется в ближайший обработчик `onRejected`.**
+
+Такой обработчик нужно поставить через второй аргумент `.then(..., onRejected)` или, что то же самое, через `.catch(onRejected)`.
+
+Чтобы поймать всевозможные ошибки, которые возникнут при загрузке и обработке данных, добавим `catch` в конец нашей цепочки:
+
+```js
+//+ run
+'use strict';
+
+*!*
+// в loadUrl обратимся к несуществующей странице
+*/!*
+loadUrl('/page-not-exists')
+ .then(response => JSON.parse(response))
+ .then(user => loadUrl(`https://api.github.com/users/${user.name}`))
+ .then(githubUser => {
+ githubUser = JSON.parse(githubUser);
+
+ let img = new Image();
+ img.src = githubUser.avatar_url;
+ img.className = "promise-avatar-example";
+ document.body.appendChild(img);
+
+ return new Promise((resolve, reject) => {
+ setTimeout(() => {
+ img.remove();
+ resolve();
+ }, 3000);
+ });
+ })
+*!*
+ .catch(error => {
+ alert(error); // Error: Not Found
+ });
+*/!*
+```
+
+Принцип очень похож на обычный `try..catch`: мы делаем асинхронную цепочку из `.then`, а затем, когда нужно перехватить ошибки, вызываем `.catch(onRejected)`.
+
+
+[smart header="А что после catch?"]
+Обработчик `onRejected` получает ошибку и должен обработать её.
+
+Здесь два варианта развития событий:
+
+- Если ошибка не критичная, то он возвращает значение через `return`, и управление переходит в ближайший `onFulfilled`.
+- Если продолжить выполнение с такой ошибкой нельзя, то он делает `throw`, и тогда ошибка переходит в ближайший `onRejected`.
+
+
+[/smart]
+
+## Промисы в деталях
+
+Посмотрим внимательнее, что такое промис и как он работает, в соответствии со стандартом ES-2015.
+
+
+
+
+Поток выполнения сразу станет очевидным, как только мы разберём очень простое правило.
+
+Оно состоит из трёх частей:
+
+
+- Каждый `promise.then/catch` возвращает новый промис `newPromise`.
+- Ссылка на `newPromise` сохраняется в записывается в `promise`.
+При успешном выполнении этого промиса, вызывается следующий `onFulfilled`, если ошибка, то `onRejected`.
+- Этот обработчик возвращает... см. пункт 1.
+
+
+Давайте по шагам.
+
+Очевидно, что каждый .then/catch должен промис. Это всегда так, иначе мы бы не смогли организовать чейнинг.
+
+Этот промис -- всегда новый, не равный предыдущему.
+
+Проверим это:
+
+```js
+//+ run
+// Создадим промис и цепочку .then
+var promise = new Promise((resolve, reject) => {
+ setTimeout(() => resolve(1), 1000);
+});
+
+var promise2 = promise
+ .then(alert);
+
+// Выведем результат then
+alert(promise2); // да, это промис: [object Promise]
+alert(promise == promise2); // да, это новый промис
+```
+
+[smart header="Обработчики -- всегда асинхронны"]
+Кстати, обработчики в `.then/catch` всегда выполняются асинхронно, как будто обёрнуты в `setTimeout(..., 0)`, даже если внутри синхронная функция.
+
+Например:
+```js
+//+ run
+var promise = new Promise((resolve, reject) => {
+ resolve("result")
+});
+
+// сработает асинхронно
+promise.then(alert); // (2)
+
+alert("before promise"); // (1)
+```
+
+При запуске этого кода выведется сначала `(1)`, а потом `(2)`.
+
+Такая "форсированная" асинхронность предусмотрена стандартом, чтобы избежать ситуаций, когда некий код работает то синхронно, то асинхронно, и возможных при этом багов.
+[/smart]
+
+Обработчики добавляются в общий список.
+
+
+
+
+При выполнении обработчика `.then/catch` -- он может либо что-то вернуть
+
+
+- Обработчика вернул значение (или ничего не вернул, что можно считать `return undefined`)
+
+
+
+Пример:
+
+
+Ошибкой считается либо вызов `reject`, либо синхронный `throw` в promise-функции:
+
+```js
+var promise = new Promise((resolve, reject) {
+
+ // эти две строки делают одно и то же:
+ // переводят промис в состояние "rejected"
+ throw new Error("...");
+ reject(new Error("..."))
+
+});
+```
+
+Обратим внимание, что `throw` корректно обрабатывается только если он синхронный.
+
+Вот так -- не подойдёт:
+
+```js
+var promise = new Promise((resolve, reject) {
+
+ setTimeout(() => {
+ // нельзя так делать, асинхронно должен быть reject
+ throw new Error("...");
+ }, 1000);
+
+});
+```
+
+На
+
+
+Мы уже использовали это неявно, при загрузке пользователя в примере выше:
+
+```js
+loadUrl('/article/promise/user.json')
+ .then(response => {
+ // ...
+*!*
+ let user = JSON.parse(response);
+*/!*
+ return user;
+ })
+```
+
+Если при `JSON.parse` будет синтаксическая ошибка (некорректный JSON), то
+
+
+
+
+
+[head]
+
+[/head]
diff --git a/1-js/10-es-modern/3-promise/promiseInit.png b/1-js/10-es-modern/3-promise/promiseInit.png
new file mode 100644
index 00000000..2ebb001b
Binary files /dev/null and b/1-js/10-es-modern/3-promise/promiseInit.png differ
diff --git a/1-js/10-es-modern/3-promise/promiseInit@2x.png b/1-js/10-es-modern/3-promise/promiseInit@2x.png
new file mode 100644
index 00000000..bff15fce
Binary files /dev/null and b/1-js/10-es-modern/3-promise/promiseInit@2x.png differ
diff --git a/1-js/10-es-modern/3-promise/promiseUserFlow.png b/1-js/10-es-modern/3-promise/promiseUserFlow.png
new file mode 100644
index 00000000..a61d7498
Binary files /dev/null and b/1-js/10-es-modern/3-promise/promiseUserFlow.png differ
diff --git a/1-js/10-es-modern/3-promise/promiseUserFlow@2x.png b/1-js/10-es-modern/3-promise/promiseUserFlow@2x.png
new file mode 100644
index 00000000..815c41dd
Binary files /dev/null and b/1-js/10-es-modern/3-promise/promiseUserFlow@2x.png differ
diff --git a/1-js/10-es-modern/3-promise/user.json b/1-js/10-es-modern/3-promise/user.json
new file mode 100644
index 00000000..32f89971
--- /dev/null
+++ b/1-js/10-es-modern/3-promise/user.json
@@ -0,0 +1,4 @@
+{
+ "name": "iliakan",
+ "isAdmin": true
+}
diff --git a/1-js/2-first-steps/5-variables/variable-change.png b/1-js/2-first-steps/5-variables/variable-change.png
index 45a3b32c..19fa6fbf 100644
Binary files a/1-js/2-first-steps/5-variables/variable-change.png and b/1-js/2-first-steps/5-variables/variable-change.png differ
diff --git a/1-js/2-first-steps/5-variables/variable-change@2x.png b/1-js/2-first-steps/5-variables/variable-change@2x.png
index 00539b3a..d00fbe15 100644
Binary files a/1-js/2-first-steps/5-variables/variable-change@2x.png and b/1-js/2-first-steps/5-variables/variable-change@2x.png differ
diff --git a/1-js/2-first-steps/5-variables/variable.png b/1-js/2-first-steps/5-variables/variable.png
index 60cb17d3..aecd47ad 100644
Binary files a/1-js/2-first-steps/5-variables/variable.png and b/1-js/2-first-steps/5-variables/variable.png differ
diff --git a/1-js/2-first-steps/5-variables/variable@2x.png b/1-js/2-first-steps/5-variables/variable@2x.png
index 22d562b5..97d2b79d 100644
Binary files a/1-js/2-first-steps/5-variables/variable@2x.png and b/1-js/2-first-steps/5-variables/variable@2x.png differ
diff --git a/1-js/3-writing-js/2-coding-style/code-style.png b/1-js/3-writing-js/2-coding-style/code-style.png
index 5b2d9940..d41a9883 100644
Binary files a/1-js/3-writing-js/2-coding-style/code-style.png and b/1-js/3-writing-js/2-coding-style/code-style.png differ
diff --git a/1-js/3-writing-js/2-coding-style/code-style@2x.png b/1-js/3-writing-js/2-coding-style/code-style@2x.png
index 72eb4308..acb8ac1b 100644
Binary files a/1-js/3-writing-js/2-coding-style/code-style@2x.png and b/1-js/3-writing-js/2-coding-style/code-style@2x.png differ
diff --git a/1-js/3-writing-js/2-coding-style/figure-bracket-style.png b/1-js/3-writing-js/2-coding-style/figure-bracket-style.png
index 71094591..992d126e 100644
Binary files a/1-js/3-writing-js/2-coding-style/figure-bracket-style.png and b/1-js/3-writing-js/2-coding-style/figure-bracket-style.png differ
diff --git a/1-js/3-writing-js/2-coding-style/figure-bracket-style@2x.png b/1-js/3-writing-js/2-coding-style/figure-bracket-style@2x.png
index c12810b6..7b937e88 100644
Binary files a/1-js/3-writing-js/2-coding-style/figure-bracket-style@2x.png and b/1-js/3-writing-js/2-coding-style/figure-bracket-style@2x.png differ
diff --git a/1-js/4-data-structures/4-object/object-person-1.png b/1-js/4-data-structures/4-object/object-person-1.png
index ca18f5b8..532330e0 100644
Binary files a/1-js/4-data-structures/4-object/object-person-1.png and b/1-js/4-data-structures/4-object/object-person-1.png differ
diff --git a/1-js/4-data-structures/4-object/object-person-1@2x.png b/1-js/4-data-structures/4-object/object-person-1@2x.png
index 1b4afcfb..7904d95c 100644
Binary files a/1-js/4-data-structures/4-object/object-person-1@2x.png and b/1-js/4-data-structures/4-object/object-person-1@2x.png differ
diff --git a/1-js/4-data-structures/4-object/object-person-2.png b/1-js/4-data-structures/4-object/object-person-2.png
index 71ff8208..4630054b 100644
Binary files a/1-js/4-data-structures/4-object/object-person-2.png and b/1-js/4-data-structures/4-object/object-person-2.png differ
diff --git a/1-js/4-data-structures/4-object/object-person-2@2x.png b/1-js/4-data-structures/4-object/object-person-2@2x.png
index 17632c05..73ab98e8 100644
Binary files a/1-js/4-data-structures/4-object/object-person-2@2x.png and b/1-js/4-data-structures/4-object/object-person-2@2x.png differ
diff --git a/1-js/4-data-structures/4-object/object-person-empty.png b/1-js/4-data-structures/4-object/object-person-empty.png
index 54e9aee7..668f13bf 100644
Binary files a/1-js/4-data-structures/4-object/object-person-empty.png and b/1-js/4-data-structures/4-object/object-person-empty.png differ
diff --git a/1-js/4-data-structures/4-object/object-person-empty@2x.png b/1-js/4-data-structures/4-object/object-person-empty@2x.png
index 1a0410e2..da71618c 100644
Binary files a/1-js/4-data-structures/4-object/object-person-empty@2x.png and b/1-js/4-data-structures/4-object/object-person-empty@2x.png differ
diff --git a/1-js/4-data-structures/4-object/object.png b/1-js/4-data-structures/4-object/object.png
index 6ca037d7..abda01bb 100644
Binary files a/1-js/4-data-structures/4-object/object.png and b/1-js/4-data-structures/4-object/object.png differ
diff --git a/1-js/4-data-structures/4-object/object@2x.png b/1-js/4-data-structures/4-object/object@2x.png
index 73764fde..bd2590bb 100644
Binary files a/1-js/4-data-structures/4-object/object@2x.png and b/1-js/4-data-structures/4-object/object@2x.png differ
diff --git a/1-js/4-data-structures/6-object-reference/variable-contains-reference.png b/1-js/4-data-structures/6-object-reference/variable-contains-reference.png
index b5e37abd..53d18fed 100644
Binary files a/1-js/4-data-structures/6-object-reference/variable-contains-reference.png and b/1-js/4-data-structures/6-object-reference/variable-contains-reference.png differ
diff --git a/1-js/4-data-structures/6-object-reference/variable-contains-reference@2x.png b/1-js/4-data-structures/6-object-reference/variable-contains-reference@2x.png
index 6d5b404b..9a152357 100644
Binary files a/1-js/4-data-structures/6-object-reference/variable-contains-reference@2x.png and b/1-js/4-data-structures/6-object-reference/variable-contains-reference@2x.png differ
diff --git a/1-js/4-data-structures/6-object-reference/variable-copy-reference.png b/1-js/4-data-structures/6-object-reference/variable-copy-reference.png
index 5a33ff7e..b6a502c3 100644
Binary files a/1-js/4-data-structures/6-object-reference/variable-copy-reference.png and b/1-js/4-data-structures/6-object-reference/variable-copy-reference.png differ
diff --git a/1-js/4-data-structures/6-object-reference/variable-copy-reference@2x.png b/1-js/4-data-structures/6-object-reference/variable-copy-reference@2x.png
index f6d7f397..8e27b051 100644
Binary files a/1-js/4-data-structures/6-object-reference/variable-copy-reference@2x.png and b/1-js/4-data-structures/6-object-reference/variable-copy-reference@2x.png differ
diff --git a/1-js/4-data-structures/6-object-reference/variable-copy-value.png b/1-js/4-data-structures/6-object-reference/variable-copy-value.png
index 811c9b8f..33578c15 100644
Binary files a/1-js/4-data-structures/6-object-reference/variable-copy-value.png and b/1-js/4-data-structures/6-object-reference/variable-copy-value.png differ
diff --git a/1-js/4-data-structures/6-object-reference/variable-copy-value@2x.png b/1-js/4-data-structures/6-object-reference/variable-copy-value@2x.png
index 83460a40..588762f5 100644
Binary files a/1-js/4-data-structures/6-object-reference/variable-copy-value@2x.png and b/1-js/4-data-structures/6-object-reference/variable-copy-value@2x.png differ
diff --git a/1-js/4-data-structures/7-array/array-pop.png b/1-js/4-data-structures/7-array/array-pop.png
index 557c85ef..af9d78be 100644
Binary files a/1-js/4-data-structures/7-array/array-pop.png and b/1-js/4-data-structures/7-array/array-pop.png differ
diff --git a/1-js/4-data-structures/7-array/array-pop@2x.png b/1-js/4-data-structures/7-array/array-pop@2x.png
index ddceb175..223a3f62 100644
Binary files a/1-js/4-data-structures/7-array/array-pop@2x.png and b/1-js/4-data-structures/7-array/array-pop@2x.png differ
diff --git a/1-js/4-data-structures/7-array/array-shift.png b/1-js/4-data-structures/7-array/array-shift.png
index 1243e8de..37cd1218 100644
Binary files a/1-js/4-data-structures/7-array/array-shift.png and b/1-js/4-data-structures/7-array/array-shift.png differ
diff --git a/1-js/4-data-structures/7-array/array-shift@2x.png b/1-js/4-data-structures/7-array/array-shift@2x.png
index 82eef945..e94202db 100644
Binary files a/1-js/4-data-structures/7-array/array-shift@2x.png and b/1-js/4-data-structures/7-array/array-shift@2x.png differ
diff --git a/1-js/4-data-structures/7-array/array-speed.png b/1-js/4-data-structures/7-array/array-speed.png
index 827837a6..d7989367 100644
Binary files a/1-js/4-data-structures/7-array/array-speed.png and b/1-js/4-data-structures/7-array/array-speed.png differ
diff --git a/1-js/4-data-structures/7-array/array-speed@2x.png b/1-js/4-data-structures/7-array/array-speed@2x.png
index 43c7a1c4..4c38c9a9 100644
Binary files a/1-js/4-data-structures/7-array/array-speed@2x.png and b/1-js/4-data-structures/7-array/array-speed@2x.png differ
diff --git a/1-js/4-data-structures/7-array/queue.png b/1-js/4-data-structures/7-array/queue.png
index 693c7ed4..8a90ef30 100644
Binary files a/1-js/4-data-structures/7-array/queue.png and b/1-js/4-data-structures/7-array/queue.png differ
diff --git a/1-js/4-data-structures/7-array/queue@2x.png b/1-js/4-data-structures/7-array/queue@2x.png
index e2db9747..2a1281d0 100644
Binary files a/1-js/4-data-structures/7-array/queue@2x.png and b/1-js/4-data-structures/7-array/queue@2x.png differ
diff --git a/1-js/4-data-structures/7-array/stack.png b/1-js/4-data-structures/7-array/stack.png
index d49d4901..566da719 100644
Binary files a/1-js/4-data-structures/7-array/stack.png and b/1-js/4-data-structures/7-array/stack.png differ
diff --git a/1-js/4-data-structures/7-array/stack@2x.png b/1-js/4-data-structures/7-array/stack@2x.png
index 4242b747..9301457d 100644
Binary files a/1-js/4-data-structures/7-array/stack@2x.png and b/1-js/4-data-structures/7-array/stack@2x.png differ
diff --git a/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.png b/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.png
index 87d31f4f..1a5ae35e 100644
Binary files a/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.png and b/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.png differ
diff --git a/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list@2x.png b/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list@2x.png
index c3b1e140..73eabc39 100644
Binary files a/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list@2x.png and b/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list@2x.png differ
diff --git a/1-js/4-data-structures/9-array-iteration/reduce.png b/1-js/4-data-structures/9-array-iteration/reduce.png
index 45acbd2e..9cc46dee 100644
Binary files a/1-js/4-data-structures/9-array-iteration/reduce.png and b/1-js/4-data-structures/9-array-iteration/reduce.png differ
diff --git a/1-js/4-data-structures/9-array-iteration/reduce@2x.png b/1-js/4-data-structures/9-array-iteration/reduce@2x.png
index e2f4d438..3264c699 100644
Binary files a/1-js/4-data-structures/9-array-iteration/reduce@2x.png and b/1-js/4-data-structures/9-array-iteration/reduce@2x.png differ
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-family.png b/1-js/5-functions-closures/6-memory-management/family-no-family.png
index 12588418..fe544cce 100644
Binary files a/1-js/5-functions-closures/6-memory-management/family-no-family.png and b/1-js/5-functions-closures/6-memory-management/family-no-family.png differ
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-family@2x.png b/1-js/5-functions-closures/6-memory-management/family-no-family@2x.png
index 895db8f2..db0d823b 100644
Binary files a/1-js/5-functions-closures/6-memory-management/family-no-family@2x.png and b/1-js/5-functions-closures/6-memory-management/family-no-family@2x.png differ
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-father-2.png b/1-js/5-functions-closures/6-memory-management/family-no-father-2.png
index b625bb48..cab6f9a5 100644
Binary files a/1-js/5-functions-closures/6-memory-management/family-no-father-2.png and b/1-js/5-functions-closures/6-memory-management/family-no-father-2.png differ
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-father-2@2x.png b/1-js/5-functions-closures/6-memory-management/family-no-father-2@2x.png
index 4cb15ee4..9cebdd4b 100644
Binary files a/1-js/5-functions-closures/6-memory-management/family-no-father-2@2x.png and b/1-js/5-functions-closures/6-memory-management/family-no-father-2@2x.png differ
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-father.png b/1-js/5-functions-closures/6-memory-management/family-no-father.png
index cbe8b2bf..2c5ea4e1 100644
Binary files a/1-js/5-functions-closures/6-memory-management/family-no-father.png and b/1-js/5-functions-closures/6-memory-management/family-no-father.png differ
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-father@2x.png b/1-js/5-functions-closures/6-memory-management/family-no-father@2x.png
index a8acf84e..870e1c3e 100644
Binary files a/1-js/5-functions-closures/6-memory-management/family-no-father@2x.png and b/1-js/5-functions-closures/6-memory-management/family-no-father@2x.png differ
diff --git a/1-js/5-functions-closures/6-memory-management/family.png b/1-js/5-functions-closures/6-memory-management/family.png
index 69dd3922..231170b2 100644
Binary files a/1-js/5-functions-closures/6-memory-management/family.png and b/1-js/5-functions-closures/6-memory-management/family.png differ
diff --git a/1-js/5-functions-closures/6-memory-management/family@2x.png b/1-js/5-functions-closures/6-memory-management/family@2x.png
index dd0c26d5..95b0e7e7 100644
Binary files a/1-js/5-functions-closures/6-memory-management/family@2x.png and b/1-js/5-functions-closures/6-memory-management/family@2x.png differ
diff --git a/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval.png b/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval.png
index d0eb6f8f..51c4bdfe 100644
Binary files a/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval.png and b/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval.png differ
diff --git a/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval@2x.png b/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval@2x.png
index ba84bab7..672b106d 100644
Binary files a/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval@2x.png and b/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval@2x.png differ
diff --git a/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval.png b/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval.png
index 99cf33b0..364f909d 100644
Binary files a/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval.png and b/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval.png differ
diff --git a/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval@2x.png b/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval@2x.png
index 5e70fef6..b4f5685a 100644
Binary files a/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval@2x.png and b/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval@2x.png differ
diff --git a/1-js/9-prototypes/1-prototype/proto-animal-rabbit.png b/1-js/9-prototypes/1-prototype/proto-animal-rabbit.png
index 1f18049e..80888f27 100644
Binary files a/1-js/9-prototypes/1-prototype/proto-animal-rabbit.png and b/1-js/9-prototypes/1-prototype/proto-animal-rabbit.png differ
diff --git a/1-js/9-prototypes/1-prototype/proto-animal-rabbit@2x.png b/1-js/9-prototypes/1-prototype/proto-animal-rabbit@2x.png
index 03d89af3..b5395718 100644
Binary files a/1-js/9-prototypes/1-prototype/proto-animal-rabbit@2x.png and b/1-js/9-prototypes/1-prototype/proto-animal-rabbit@2x.png differ
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.png b/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.png
index 0c54b39c..2338e7b5 100644
Binary files a/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.png and b/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.png differ
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring@2x.png b/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring@2x.png
index 46150fab..f90ce022 100644
Binary files a/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring@2x.png and b/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring@2x.png differ
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.png b/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.png
index ce43866a..0b80717b 100644
Binary files a/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.png and b/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.png differ
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes@2x.png b/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes@2x.png
index c5197e42..26bbec9e 100644
Binary files a/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes@2x.png and b/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes@2x.png differ
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.png b/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.png
index 169f0206..b1c549f3 100644
Binary files a/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.png and b/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.png differ
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-object@2x.png b/1-js/9-prototypes/3-native-prototypes/native-prototypes-object@2x.png
index 754d366f..a303eb36 100644
Binary files a/1-js/9-prototypes/3-native-prototypes/native-prototypes-object@2x.png and b/1-js/9-prototypes/3-native-prototypes/native-prototypes-object@2x.png differ
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.png b/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.png
index fa983533..b03e9fbb 100644
Binary files a/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.png and b/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.png differ
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object@2x.png b/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object@2x.png
index b9c2ffe5..6bd075a3 100644
Binary files a/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object@2x.png and b/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object@2x.png differ
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.png b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.png
index d15e6d0e..09d18806 100644
Binary files a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.png and b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.png differ
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal@2x.png b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal@2x.png
index 2a4af278..52518f91 100644
Binary files a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal@2x.png and b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal@2x.png differ
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.png b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.png
index 97320064..5c669a71 100644
Binary files a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.png and b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.png differ
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal@2x.png b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal@2x.png
index e9d40e80..4583fbc0 100644
Binary files a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal@2x.png and b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal@2x.png differ
diff --git a/10-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries.png b/10-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries.png
index 389238ba..3a47f13c 100644
Binary files a/10-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries.png and b/10-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries.png differ
diff --git a/10-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries@2x.png b/10-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries@2x.png
index f63ccce1..e8f14d87 100644
Binary files a/10-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries@2x.png and b/10-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries@2x.png differ
diff --git a/10-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes.png b/10-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes.png
index 94914986..387fac9d 100644
Binary files a/10-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes.png and b/10-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes.png differ
diff --git a/10-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes@2x.png b/10-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes@2x.png
index 0efd99c4..f5b3e380 100644
Binary files a/10-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes@2x.png and b/10-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy1.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy1.png
index e50c8a78..a4fc2c4f 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy1.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy1.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy1@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy1@2x.png
index 784f8619..e1b2ca0a 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy1@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy1@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy2.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy2.png
index a6098797..b7b84c1b 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy2.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy2.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy2@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy2@2x.png
index 3af62e72..ce87d89e 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy2@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy2@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy3.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy3.png
index 1e9fb351..0e5b07fd 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy3.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy3.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy3@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy3@2x.png
index 65c803a1..975fc49c 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy3@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy3@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy4.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy4.png
index ab01ea11..0ca3df76 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy4.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy4.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy4@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy4@2x.png
index e8c1720e..fe514d4d 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy4@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy4@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy5.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy5.png
index 392c08c5..43b01a9a 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy5.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy5.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy5@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy5@2x.png
index c2e7957f..353f69e2 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy5@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy5@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy6.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy6.png
index f3468b5b..2ae63d20 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy6.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy6.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy6@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy6@2x.png
index f97d6b1b..5b09faa0 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy6@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_greedy6@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy3.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy3.png
index 44428a58..af0482bb 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy3.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy3.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy3@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy3@2x.png
index c382f72e..7d5fd2c6 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy3@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy3@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy4.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy4.png
index 0643026e..920530bd 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy4.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy4.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy4@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy4@2x.png
index ac35b57c..1e14c11c 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy4@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy4@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy5.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy5.png
index 55d4ff05..0a07eeae 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy5.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy5.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy5@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy5@2x.png
index 4d38af43..8c9ff19f 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy5@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy5@2x.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy6.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy6.png
index 1da403d9..67f0d27a 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy6.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy6.png differ
diff --git a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy6@2x.png b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy6@2x.png
index 898603b0..e7eb1aa0 100644
Binary files a/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy6@2x.png and b/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/witch_lazy6@2x.png differ
diff --git a/10-regular-expressions-javascript/7-regexp-groups/regexp-nested-groups.png b/10-regular-expressions-javascript/7-regexp-groups/regexp-nested-groups.png
index 1c92585a..9103ea28 100644
Binary files a/10-regular-expressions-javascript/7-regexp-groups/regexp-nested-groups.png and b/10-regular-expressions-javascript/7-regexp-groups/regexp-nested-groups.png differ
diff --git a/10-regular-expressions-javascript/7-regexp-groups/regexp-nested-groups@2x.png b/10-regular-expressions-javascript/7-regexp-groups/regexp-nested-groups@2x.png
index 840bb2c4..4f5ee487 100644
Binary files a/10-regular-expressions-javascript/7-regexp-groups/regexp-nested-groups@2x.png and b/10-regular-expressions-javascript/7-regexp-groups/regexp-nested-groups@2x.png differ
diff --git a/2-ui/1-document/1-browser-environment/windowObjects.png b/2-ui/1-document/1-browser-environment/windowObjects.png
index 91d2ef32..8c499eac 100644
Binary files a/2-ui/1-document/1-browser-environment/windowObjects.png and b/2-ui/1-document/1-browser-environment/windowObjects.png differ
diff --git a/2-ui/1-document/1-browser-environment/windowObjects@2x.png b/2-ui/1-document/1-browser-environment/windowObjects@2x.png
index 574ef4bb..0e9ba1e5 100644
Binary files a/2-ui/1-document/1-browser-environment/windowObjects@2x.png and b/2-ui/1-document/1-browser-environment/windowObjects@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-all.png b/2-ui/1-document/15-metrics/metric-all.png
index 1123ff42..fb7c3b7b 100644
Binary files a/2-ui/1-document/15-metrics/metric-all.png and b/2-ui/1-document/15-metrics/metric-all.png differ
diff --git a/2-ui/1-document/15-metrics/metric-all@2x.png b/2-ui/1-document/15-metrics/metric-all@2x.png
index 05cf6882..bb10d86e 100644
Binary files a/2-ui/1-document/15-metrics/metric-all@2x.png and b/2-ui/1-document/15-metrics/metric-all@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-client-left-top-rtl.png b/2-ui/1-document/15-metrics/metric-client-left-top-rtl.png
index 96b13d93..c934fb23 100644
Binary files a/2-ui/1-document/15-metrics/metric-client-left-top-rtl.png and b/2-ui/1-document/15-metrics/metric-client-left-top-rtl.png differ
diff --git a/2-ui/1-document/15-metrics/metric-client-left-top-rtl@2x.png b/2-ui/1-document/15-metrics/metric-client-left-top-rtl@2x.png
index 7c722924..4cc5b4a1 100644
Binary files a/2-ui/1-document/15-metrics/metric-client-left-top-rtl@2x.png and b/2-ui/1-document/15-metrics/metric-client-left-top-rtl@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-client-left-top.png b/2-ui/1-document/15-metrics/metric-client-left-top.png
index 5d4bd5c2..b821043c 100644
Binary files a/2-ui/1-document/15-metrics/metric-client-left-top.png and b/2-ui/1-document/15-metrics/metric-client-left-top.png differ
diff --git a/2-ui/1-document/15-metrics/metric-client-left-top@2x.png b/2-ui/1-document/15-metrics/metric-client-left-top@2x.png
index e5c06503..afcdcdf8 100644
Binary files a/2-ui/1-document/15-metrics/metric-client-left-top@2x.png and b/2-ui/1-document/15-metrics/metric-client-left-top@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-client-width-height.png b/2-ui/1-document/15-metrics/metric-client-width-height.png
index 9c12fedb..e2112da6 100644
Binary files a/2-ui/1-document/15-metrics/metric-client-width-height.png and b/2-ui/1-document/15-metrics/metric-client-width-height.png differ
diff --git a/2-ui/1-document/15-metrics/metric-client-width-height@2x.png b/2-ui/1-document/15-metrics/metric-client-width-height@2x.png
index bb0ad1f9..55168738 100644
Binary files a/2-ui/1-document/15-metrics/metric-client-width-height@2x.png and b/2-ui/1-document/15-metrics/metric-client-width-height@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-client-width-nopadding.png b/2-ui/1-document/15-metrics/metric-client-width-nopadding.png
index 464d769c..f715c8ff 100644
Binary files a/2-ui/1-document/15-metrics/metric-client-width-nopadding.png and b/2-ui/1-document/15-metrics/metric-client-width-nopadding.png differ
diff --git a/2-ui/1-document/15-metrics/metric-client-width-nopadding@2x.png b/2-ui/1-document/15-metrics/metric-client-width-nopadding@2x.png
index bd266425..316bec7b 100644
Binary files a/2-ui/1-document/15-metrics/metric-client-width-nopadding@2x.png and b/2-ui/1-document/15-metrics/metric-client-width-nopadding@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-css.png b/2-ui/1-document/15-metrics/metric-css.png
index c6346008..d1a219ee 100644
Binary files a/2-ui/1-document/15-metrics/metric-css.png and b/2-ui/1-document/15-metrics/metric-css.png differ
diff --git a/2-ui/1-document/15-metrics/metric-css@2x.png b/2-ui/1-document/15-metrics/metric-css@2x.png
index 1b666b05..28cde46d 100644
Binary files a/2-ui/1-document/15-metrics/metric-css@2x.png and b/2-ui/1-document/15-metrics/metric-css@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-offset-parent.png b/2-ui/1-document/15-metrics/metric-offset-parent.png
index a4e29c93..a9711549 100644
Binary files a/2-ui/1-document/15-metrics/metric-offset-parent.png and b/2-ui/1-document/15-metrics/metric-offset-parent.png differ
diff --git a/2-ui/1-document/15-metrics/metric-offset-parent@2x.png b/2-ui/1-document/15-metrics/metric-offset-parent@2x.png
index e5600792..df6799ef 100644
Binary files a/2-ui/1-document/15-metrics/metric-offset-parent@2x.png and b/2-ui/1-document/15-metrics/metric-offset-parent@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-offset-width-height.png b/2-ui/1-document/15-metrics/metric-offset-width-height.png
index 402e53fa..84c331e2 100644
Binary files a/2-ui/1-document/15-metrics/metric-offset-width-height.png and b/2-ui/1-document/15-metrics/metric-offset-width-height.png differ
diff --git a/2-ui/1-document/15-metrics/metric-offset-width-height@2x.png b/2-ui/1-document/15-metrics/metric-offset-width-height@2x.png
index 842f7860..6f3c9c53 100644
Binary files a/2-ui/1-document/15-metrics/metric-offset-width-height@2x.png and b/2-ui/1-document/15-metrics/metric-offset-width-height@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-scroll-top.png b/2-ui/1-document/15-metrics/metric-scroll-top.png
index 6dbaced9..b65a6406 100644
Binary files a/2-ui/1-document/15-metrics/metric-scroll-top.png and b/2-ui/1-document/15-metrics/metric-scroll-top.png differ
diff --git a/2-ui/1-document/15-metrics/metric-scroll-top@2x.png b/2-ui/1-document/15-metrics/metric-scroll-top@2x.png
index 3d13f6f9..539cd979 100644
Binary files a/2-ui/1-document/15-metrics/metric-scroll-top@2x.png and b/2-ui/1-document/15-metrics/metric-scroll-top@2x.png differ
diff --git a/2-ui/1-document/15-metrics/metric-scroll-width-height.png b/2-ui/1-document/15-metrics/metric-scroll-width-height.png
index ff1629d7..cdec4be7 100644
Binary files a/2-ui/1-document/15-metrics/metric-scroll-width-height.png and b/2-ui/1-document/15-metrics/metric-scroll-width-height.png differ
diff --git a/2-ui/1-document/15-metrics/metric-scroll-width-height@2x.png b/2-ui/1-document/15-metrics/metric-scroll-width-height@2x.png
index 4f724e9b..b4b9cb43 100644
Binary files a/2-ui/1-document/15-metrics/metric-scroll-width-height@2x.png and b/2-ui/1-document/15-metrics/metric-scroll-width-height@2x.png differ
diff --git a/2-ui/1-document/16-metrics-window/document-client-width-height.png b/2-ui/1-document/16-metrics-window/document-client-width-height.png
index 66c7200a..49360367 100644
Binary files a/2-ui/1-document/16-metrics-window/document-client-width-height.png and b/2-ui/1-document/16-metrics-window/document-client-width-height.png differ
diff --git a/2-ui/1-document/16-metrics-window/document-client-width-height@2x.png b/2-ui/1-document/16-metrics-window/document-client-width-height@2x.png
index f9c7d72c..7f3584f2 100644
Binary files a/2-ui/1-document/16-metrics-window/document-client-width-height@2x.png and b/2-ui/1-document/16-metrics-window/document-client-width-height@2x.png differ
diff --git a/2-ui/1-document/17-coordinates/coords.png b/2-ui/1-document/17-coordinates/coords.png
index 449ff658..01620d5e 100644
Binary files a/2-ui/1-document/17-coordinates/coords.png and b/2-ui/1-document/17-coordinates/coords.png differ
diff --git a/2-ui/1-document/17-coordinates/coords@2x.png b/2-ui/1-document/17-coordinates/coords@2x.png
index 7636420a..c1245744 100644
Binary files a/2-ui/1-document/17-coordinates/coords@2x.png and b/2-ui/1-document/17-coordinates/coords@2x.png differ
diff --git a/2-ui/1-document/4-traversing-dom/dom-links-elements.png b/2-ui/1-document/4-traversing-dom/dom-links-elements.png
index 60f1302d..8683e6e7 100644
Binary files a/2-ui/1-document/4-traversing-dom/dom-links-elements.png and b/2-ui/1-document/4-traversing-dom/dom-links-elements.png differ
diff --git a/2-ui/1-document/4-traversing-dom/dom-links-elements@2x.png b/2-ui/1-document/4-traversing-dom/dom-links-elements@2x.png
index 88caef0a..3331f572 100644
Binary files a/2-ui/1-document/4-traversing-dom/dom-links-elements@2x.png and b/2-ui/1-document/4-traversing-dom/dom-links-elements@2x.png differ
diff --git a/2-ui/1-document/4-traversing-dom/dom-links.png b/2-ui/1-document/4-traversing-dom/dom-links.png
index bd77623f..f5b2b707 100644
Binary files a/2-ui/1-document/4-traversing-dom/dom-links.png and b/2-ui/1-document/4-traversing-dom/dom-links.png differ
diff --git a/2-ui/1-document/4-traversing-dom/dom-links@2x.png b/2-ui/1-document/4-traversing-dom/dom-links@2x.png
index 7da3a684..bbd339ff 100644
Binary files a/2-ui/1-document/4-traversing-dom/dom-links@2x.png and b/2-ui/1-document/4-traversing-dom/dom-links@2x.png differ
diff --git a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1.png b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1.png
index 0628d64f..fd663ca3 100644
Binary files a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1.png and b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1.png differ
diff --git a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1@2x.png b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1@2x.png
index 29e960c4..d906e5b5 100644
Binary files a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1@2x.png and b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1@2x.png differ
diff --git a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel2.png b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel2.png
index 361c9f80..a51acd6e 100644
Binary files a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel2.png and b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel2.png differ
diff --git a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel2@2x.png b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel2@2x.png
index 7ab80b41..22412326 100644
Binary files a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel2@2x.png and b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel2@2x.png differ
diff --git a/2-ui/2-events-and-interfaces/4-event-bubbling/event-order-bubbling.png b/2-ui/2-events-and-interfaces/4-event-bubbling/event-order-bubbling.png
index dbf398aa..cdf5835e 100644
Binary files a/2-ui/2-events-and-interfaces/4-event-bubbling/event-order-bubbling.png and b/2-ui/2-events-and-interfaces/4-event-bubbling/event-order-bubbling.png differ
diff --git a/2-ui/2-events-and-interfaces/4-event-bubbling/event-order-bubbling@2x.png b/2-ui/2-events-and-interfaces/4-event-bubbling/event-order-bubbling@2x.png
index aea9778e..668abfdb 100644
Binary files a/2-ui/2-events-and-interfaces/4-event-bubbling/event-order-bubbling@2x.png and b/2-ui/2-events-and-interfaces/4-event-bubbling/event-order-bubbling@2x.png differ
diff --git a/2-ui/2-events-and-interfaces/4-event-bubbling/eventflow.png b/2-ui/2-events-and-interfaces/4-event-bubbling/eventflow.png
index 1444fd8d..e9527ccb 100644
Binary files a/2-ui/2-events-and-interfaces/4-event-bubbling/eventflow.png and b/2-ui/2-events-and-interfaces/4-event-bubbling/eventflow.png differ
diff --git a/2-ui/2-events-and-interfaces/4-event-bubbling/eventflow@2x.png b/2-ui/2-events-and-interfaces/4-event-bubbling/eventflow@2x.png
index 6f9a0cf8..71b918b6 100644
Binary files a/2-ui/2-events-and-interfaces/4-event-bubbling/eventflow@2x.png and b/2-ui/2-events-and-interfaces/4-event-bubbling/eventflow@2x.png differ
diff --git a/2-ui/2-events-and-interfaces/5-event-delegation/bagua-bubble.png b/2-ui/2-events-and-interfaces/5-event-delegation/bagua-bubble.png
index 0db74bf0..67872b9e 100644
Binary files a/2-ui/2-events-and-interfaces/5-event-delegation/bagua-bubble.png and b/2-ui/2-events-and-interfaces/5-event-delegation/bagua-bubble.png differ
diff --git a/2-ui/2-events-and-interfaces/5-event-delegation/bagua-bubble@2x.png b/2-ui/2-events-and-interfaces/5-event-delegation/bagua-bubble@2x.png
index 9c49d6bf..98fb51ac 100644
Binary files a/2-ui/2-events-and-interfaces/5-event-delegation/bagua-bubble@2x.png and b/2-ui/2-events-and-interfaces/5-event-delegation/bagua-bubble@2x.png differ
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside.png b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside.png
index b5279266..04000687 100644
Binary files a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside.png and b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside.png differ
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside@2x.png b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside@2x.png
index b1f49427..022d169d 100644
Binary files a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside@2x.png and b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-from-outside@2x.png differ
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems.png b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems.png
index 380619c1..ac003f9b 100644
Binary files a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems.png and b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems.png differ
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems@2x.png b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems@2x.png
index 9520e250..65ce484c 100644
Binary files a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems@2x.png and b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout-over-elems@2x.png differ
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout.png b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout.png
index da759819..789ad11d 100644
Binary files a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout.png and b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout.png differ
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout@2x.png b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout@2x.png
index be05bb08..09e8dea3 100644
Binary files a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout@2x.png and b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-mouseout@2x.png differ
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child.png b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child.png
index 07e3ddf8..00a433d6 100644
Binary files a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child.png and b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child.png differ
diff --git a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child@2x.png b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child@2x.png
index c04603f7..39b9561e 100644
Binary files a/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child@2x.png and b/2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/mouseover-to-child@2x.png differ
diff --git a/4-ajax/5-xhr-crossdomain/xhr-another-domain.png b/4-ajax/5-xhr-crossdomain/xhr-another-domain.png
index cfc1f3cb..f24acf97 100644
Binary files a/4-ajax/5-xhr-crossdomain/xhr-another-domain.png and b/4-ajax/5-xhr-crossdomain/xhr-another-domain.png differ
diff --git a/4-ajax/5-xhr-crossdomain/xhr-another-domain@2x.png b/4-ajax/5-xhr-crossdomain/xhr-another-domain@2x.png
index 98daf1c0..c5564287 100644
Binary files a/4-ajax/5-xhr-crossdomain/xhr-another-domain@2x.png and b/4-ajax/5-xhr-crossdomain/xhr-another-domain@2x.png differ
diff --git a/4-ajax/5-xhr-crossdomain/xhr-preflight.png b/4-ajax/5-xhr-crossdomain/xhr-preflight.png
index bf7777b9..365dd66e 100644
Binary files a/4-ajax/5-xhr-crossdomain/xhr-preflight.png and b/4-ajax/5-xhr-crossdomain/xhr-preflight.png differ
diff --git a/4-ajax/5-xhr-crossdomain/xhr-preflight@2x.png b/4-ajax/5-xhr-crossdomain/xhr-preflight@2x.png
index 66543fc5..707ba32a 100644
Binary files a/4-ajax/5-xhr-crossdomain/xhr-preflight@2x.png and b/4-ajax/5-xhr-crossdomain/xhr-preflight@2x.png differ
diff --git a/5-animation/1-bezier/bezier-car.png b/5-animation/1-bezier/bezier-car.png
index d44b122d..47c74925 100644
Binary files a/5-animation/1-bezier/bezier-car.png and b/5-animation/1-bezier/bezier-car.png differ
diff --git a/5-animation/1-bezier/bezier-car@2x.png b/5-animation/1-bezier/bezier-car@2x.png
index 93e62492..a67408f8 100644
Binary files a/5-animation/1-bezier/bezier-car@2x.png and b/5-animation/1-bezier/bezier-car@2x.png differ
diff --git a/5-animation/1-bezier/bezier-letter.png b/5-animation/1-bezier/bezier-letter.png
index a1918c7d..90a838b3 100644
Binary files a/5-animation/1-bezier/bezier-letter.png and b/5-animation/1-bezier/bezier-letter.png differ
diff --git a/5-animation/1-bezier/bezier-letter@2x.png b/5-animation/1-bezier/bezier-letter@2x.png
index e547e25b..f2ddda84 100644
Binary files a/5-animation/1-bezier/bezier-letter@2x.png and b/5-animation/1-bezier/bezier-letter@2x.png differ
diff --git a/5-animation/1-bezier/bezier-vase.png b/5-animation/1-bezier/bezier-vase.png
index 9b4845fd..895e4ea4 100644
Binary files a/5-animation/1-bezier/bezier-vase.png and b/5-animation/1-bezier/bezier-vase.png differ
diff --git a/5-animation/1-bezier/bezier-vase@2x.png b/5-animation/1-bezier/bezier-vase@2x.png
index 45b7f60d..3b8792a4 100644
Binary files a/5-animation/1-bezier/bezier-vase@2x.png and b/5-animation/1-bezier/bezier-vase@2x.png differ
diff --git a/5-animation/1-bezier/bezier2.png b/5-animation/1-bezier/bezier2.png
index 55390aa7..774dfe41 100644
Binary files a/5-animation/1-bezier/bezier2.png and b/5-animation/1-bezier/bezier2.png differ
diff --git a/5-animation/1-bezier/bezier2@2x.png b/5-animation/1-bezier/bezier2@2x.png
index 0dd6a58f..de0d5951 100644
Binary files a/5-animation/1-bezier/bezier2@2x.png and b/5-animation/1-bezier/bezier2@2x.png differ
diff --git a/5-animation/1-bezier/bezier3-draw1.png b/5-animation/1-bezier/bezier3-draw1.png
index ce6e6722..5d2a70a4 100644
Binary files a/5-animation/1-bezier/bezier3-draw1.png and b/5-animation/1-bezier/bezier3-draw1.png differ
diff --git a/5-animation/1-bezier/bezier3-draw1@2x.png b/5-animation/1-bezier/bezier3-draw1@2x.png
index f0b647c0..5035c8b6 100644
Binary files a/5-animation/1-bezier/bezier3-draw1@2x.png and b/5-animation/1-bezier/bezier3-draw1@2x.png differ
diff --git a/5-animation/1-bezier/bezier3-draw2.png b/5-animation/1-bezier/bezier3-draw2.png
index fce36919..f93fc6ed 100644
Binary files a/5-animation/1-bezier/bezier3-draw2.png and b/5-animation/1-bezier/bezier3-draw2.png differ
diff --git a/5-animation/1-bezier/bezier3-draw2@2x.png b/5-animation/1-bezier/bezier3-draw2@2x.png
index 16d2e91f..379217a9 100644
Binary files a/5-animation/1-bezier/bezier3-draw2@2x.png and b/5-animation/1-bezier/bezier3-draw2@2x.png differ
diff --git a/5-animation/1-bezier/bezier3-e.png b/5-animation/1-bezier/bezier3-e.png
index bc50de79..5d2fda1d 100644
Binary files a/5-animation/1-bezier/bezier3-e.png and b/5-animation/1-bezier/bezier3-e.png differ
diff --git a/5-animation/1-bezier/bezier3-e@2x.png b/5-animation/1-bezier/bezier3-e@2x.png
index 15648e08..e815647b 100644
Binary files a/5-animation/1-bezier/bezier3-e@2x.png and b/5-animation/1-bezier/bezier3-e@2x.png differ
diff --git a/5-animation/1-bezier/bezier3.png b/5-animation/1-bezier/bezier3.png
index e7a2a07f..25868da9 100644
Binary files a/5-animation/1-bezier/bezier3.png and b/5-animation/1-bezier/bezier3.png differ
diff --git a/5-animation/1-bezier/bezier3@2x.png b/5-animation/1-bezier/bezier3@2x.png
index 010f5eae..0d1cc6ea 100644
Binary files a/5-animation/1-bezier/bezier3@2x.png and b/5-animation/1-bezier/bezier3@2x.png differ
diff --git a/5-animation/1-bezier/bezier4-e.png b/5-animation/1-bezier/bezier4-e.png
index acaa9838..f3719421 100644
Binary files a/5-animation/1-bezier/bezier4-e.png and b/5-animation/1-bezier/bezier4-e.png differ
diff --git a/5-animation/1-bezier/bezier4-e@2x.png b/5-animation/1-bezier/bezier4-e@2x.png
index 338c9f6c..3a8a1a54 100644
Binary files a/5-animation/1-bezier/bezier4-e@2x.png and b/5-animation/1-bezier/bezier4-e@2x.png differ
diff --git a/5-animation/1-bezier/bezier4.png b/5-animation/1-bezier/bezier4.png
index 6fb00bdb..4e1906d1 100644
Binary files a/5-animation/1-bezier/bezier4.png and b/5-animation/1-bezier/bezier4.png differ
diff --git a/5-animation/1-bezier/bezier4@2x.png b/5-animation/1-bezier/bezier4@2x.png
index 64f40452..4987ecbc 100644
Binary files a/5-animation/1-bezier/bezier4@2x.png and b/5-animation/1-bezier/bezier4@2x.png differ
diff --git a/5-animation/2-css-transitions/2-animate-logo-bezier-css/bezier-up.png b/5-animation/2-css-transitions/2-animate-logo-bezier-css/bezier-up.png
index 0f220df3..e7b9aafb 100644
Binary files a/5-animation/2-css-transitions/2-animate-logo-bezier-css/bezier-up.png and b/5-animation/2-css-transitions/2-animate-logo-bezier-css/bezier-up.png differ
diff --git a/5-animation/2-css-transitions/2-animate-logo-bezier-css/bezier-up@2x.png b/5-animation/2-css-transitions/2-animate-logo-bezier-css/bezier-up@2x.png
index 3d7b3a51..552832bd 100644
Binary files a/5-animation/2-css-transitions/2-animate-logo-bezier-css/bezier-up@2x.png and b/5-animation/2-css-transitions/2-animate-logo-bezier-css/bezier-up@2x.png differ
diff --git a/5-animation/2-css-transitions/bezier-linear.png b/5-animation/2-css-transitions/bezier-linear.png
index 656e7b6b..908e13dd 100644
Binary files a/5-animation/2-css-transitions/bezier-linear.png and b/5-animation/2-css-transitions/bezier-linear.png differ
diff --git a/5-animation/2-css-transitions/bezier-linear@2x.png b/5-animation/2-css-transitions/bezier-linear@2x.png
index 5d7f1878..31e7ae8e 100644
Binary files a/5-animation/2-css-transitions/bezier-linear@2x.png and b/5-animation/2-css-transitions/bezier-linear@2x.png differ
diff --git a/5-animation/2-css-transitions/bezier-train-over.png b/5-animation/2-css-transitions/bezier-train-over.png
index 679ab03d..3eb229a1 100644
Binary files a/5-animation/2-css-transitions/bezier-train-over.png and b/5-animation/2-css-transitions/bezier-train-over.png differ
diff --git a/5-animation/2-css-transitions/bezier-train-over@2x.png b/5-animation/2-css-transitions/bezier-train-over@2x.png
index 5d0b66fc..967df98a 100644
Binary files a/5-animation/2-css-transitions/bezier-train-over@2x.png and b/5-animation/2-css-transitions/bezier-train-over@2x.png differ
diff --git a/5-animation/2-css-transitions/ease-in-out.png b/5-animation/2-css-transitions/ease-in-out.png
index 5a9b9691..9951f9ae 100644
Binary files a/5-animation/2-css-transitions/ease-in-out.png and b/5-animation/2-css-transitions/ease-in-out.png differ
diff --git a/5-animation/2-css-transitions/ease-in-out@2x.png b/5-animation/2-css-transitions/ease-in-out@2x.png
index cd65d5df..4c17a492 100644
Binary files a/5-animation/2-css-transitions/ease-in-out@2x.png and b/5-animation/2-css-transitions/ease-in-out@2x.png differ
diff --git a/5-animation/2-css-transitions/ease-in.png b/5-animation/2-css-transitions/ease-in.png
index dba7a8b2..daf24ccf 100644
Binary files a/5-animation/2-css-transitions/ease-in.png and b/5-animation/2-css-transitions/ease-in.png differ
diff --git a/5-animation/2-css-transitions/ease-in@2x.png b/5-animation/2-css-transitions/ease-in@2x.png
index 6e76dcd6..d76bc939 100644
Binary files a/5-animation/2-css-transitions/ease-in@2x.png and b/5-animation/2-css-transitions/ease-in@2x.png differ
diff --git a/5-animation/2-css-transitions/ease-out.png b/5-animation/2-css-transitions/ease-out.png
index cc27d8aa..106b7411 100644
Binary files a/5-animation/2-css-transitions/ease-out.png and b/5-animation/2-css-transitions/ease-out.png differ
diff --git a/5-animation/2-css-transitions/ease-out@2x.png b/5-animation/2-css-transitions/ease-out@2x.png
index 2b554dc1..81e5bd36 100644
Binary files a/5-animation/2-css-transitions/ease-out@2x.png and b/5-animation/2-css-transitions/ease-out@2x.png differ
diff --git a/5-animation/2-css-transitions/ease.png b/5-animation/2-css-transitions/ease.png
index db6f06be..459d27b1 100644
Binary files a/5-animation/2-css-transitions/ease.png and b/5-animation/2-css-transitions/ease.png differ
diff --git a/5-animation/2-css-transitions/ease@2x.png b/5-animation/2-css-transitions/ease@2x.png
index 7b841ce8..b8e11784 100644
Binary files a/5-animation/2-css-transitions/ease@2x.png and b/5-animation/2-css-transitions/ease@2x.png differ
diff --git a/5-animation/2-css-transitions/train-curve.png b/5-animation/2-css-transitions/train-curve.png
index b81ce0b8..85298d62 100644
Binary files a/5-animation/2-css-transitions/train-curve.png and b/5-animation/2-css-transitions/train-curve.png differ
diff --git a/5-animation/2-css-transitions/train-curve@2x.png b/5-animation/2-css-transitions/train-curve@2x.png
index f37c377b..fa605db2 100644
Binary files a/5-animation/2-css-transitions/train-curve@2x.png and b/5-animation/2-css-transitions/train-curve@2x.png differ
diff --git a/5-animation/3-js-animation/back.png b/5-animation/3-js-animation/back.png
index 36b72ac5..79fce504 100644
Binary files a/5-animation/3-js-animation/back.png and b/5-animation/3-js-animation/back.png differ
diff --git a/5-animation/3-js-animation/back@2x.png b/5-animation/3-js-animation/back@2x.png
index 0762d2cd..4bfbe127 100644
Binary files a/5-animation/3-js-animation/back@2x.png and b/5-animation/3-js-animation/back@2x.png differ
diff --git a/5-animation/3-js-animation/bezier-linear.png b/5-animation/3-js-animation/bezier-linear.png
index 656e7b6b..908e13dd 100644
Binary files a/5-animation/3-js-animation/bezier-linear.png and b/5-animation/3-js-animation/bezier-linear.png differ
diff --git a/5-animation/3-js-animation/bezier-linear@2x.png b/5-animation/3-js-animation/bezier-linear@2x.png
index 5d7f1878..31e7ae8e 100644
Binary files a/5-animation/3-js-animation/bezier-linear@2x.png and b/5-animation/3-js-animation/bezier-linear@2x.png differ
diff --git a/5-animation/3-js-animation/bounce-inout.png b/5-animation/3-js-animation/bounce-inout.png
index fb9d46fb..ae0e4060 100644
Binary files a/5-animation/3-js-animation/bounce-inout.png and b/5-animation/3-js-animation/bounce-inout.png differ
diff --git a/5-animation/3-js-animation/bounce-inout@2x.png b/5-animation/3-js-animation/bounce-inout@2x.png
index 1cfb2c9f..697f4ad6 100644
Binary files a/5-animation/3-js-animation/bounce-inout@2x.png and b/5-animation/3-js-animation/bounce-inout@2x.png differ
diff --git a/5-animation/3-js-animation/circ-ease.png b/5-animation/3-js-animation/circ-ease.png
index 3adf1346..58e03f43 100644
Binary files a/5-animation/3-js-animation/circ-ease.png and b/5-animation/3-js-animation/circ-ease.png differ
diff --git a/5-animation/3-js-animation/circ-ease@2x.png b/5-animation/3-js-animation/circ-ease@2x.png
index c503fb28..8521f63c 100644
Binary files a/5-animation/3-js-animation/circ-ease@2x.png and b/5-animation/3-js-animation/circ-ease@2x.png differ
diff --git a/5-animation/3-js-animation/circ.png b/5-animation/3-js-animation/circ.png
index e19871c5..2b317b5b 100644
Binary files a/5-animation/3-js-animation/circ.png and b/5-animation/3-js-animation/circ.png differ
diff --git a/5-animation/3-js-animation/circ@2x.png b/5-animation/3-js-animation/circ@2x.png
index 5b2a7960..a3ba73e3 100644
Binary files a/5-animation/3-js-animation/circ@2x.png and b/5-animation/3-js-animation/circ@2x.png differ
diff --git a/5-animation/3-js-animation/elastic.png b/5-animation/3-js-animation/elastic.png
index 1603ba29..d7fa5ceb 100644
Binary files a/5-animation/3-js-animation/elastic.png and b/5-animation/3-js-animation/elastic.png differ
diff --git a/5-animation/3-js-animation/elastic@2x.png b/5-animation/3-js-animation/elastic@2x.png
index 6b8f4e1a..766393cc 100644
Binary files a/5-animation/3-js-animation/elastic@2x.png and b/5-animation/3-js-animation/elastic@2x.png differ
diff --git a/5-animation/3-js-animation/linear.png b/5-animation/3-js-animation/linear.png
index 205c5729..85612747 100644
Binary files a/5-animation/3-js-animation/linear.png and b/5-animation/3-js-animation/linear.png differ
diff --git a/5-animation/3-js-animation/linear@2x.png b/5-animation/3-js-animation/linear@2x.png
index 315ee18d..bea7f85d 100644
Binary files a/5-animation/3-js-animation/linear@2x.png and b/5-animation/3-js-animation/linear@2x.png differ
diff --git a/5-animation/3-js-animation/quad.png b/5-animation/3-js-animation/quad.png
index a1003207..b8ddfadd 100644
Binary files a/5-animation/3-js-animation/quad.png and b/5-animation/3-js-animation/quad.png differ
diff --git a/5-animation/3-js-animation/quad@2x.png b/5-animation/3-js-animation/quad@2x.png
index 4d7ba6a3..424b7904 100644
Binary files a/5-animation/3-js-animation/quad@2x.png and b/5-animation/3-js-animation/quad@2x.png differ
diff --git a/5-animation/3-js-animation/quint.png b/5-animation/3-js-animation/quint.png
index 78d82d83..1e120dc5 100644
Binary files a/5-animation/3-js-animation/quint.png and b/5-animation/3-js-animation/quint.png differ
diff --git a/5-animation/3-js-animation/quint@2x.png b/5-animation/3-js-animation/quint@2x.png
index f6169090..f4182dbf 100644
Binary files a/5-animation/3-js-animation/quint@2x.png and b/5-animation/3-js-animation/quint@2x.png differ
diff --git a/6-optimize/4-memory-leaks/leak-xhr-2.png b/6-optimize/4-memory-leaks/leak-xhr-2.png
index cd98c6cf..73090cf1 100644
Binary files a/6-optimize/4-memory-leaks/leak-xhr-2.png and b/6-optimize/4-memory-leaks/leak-xhr-2.png differ
diff --git a/6-optimize/4-memory-leaks/leak-xhr-2@2x.png b/6-optimize/4-memory-leaks/leak-xhr-2@2x.png
index ac6fedb9..803d9b87 100644
Binary files a/6-optimize/4-memory-leaks/leak-xhr-2@2x.png and b/6-optimize/4-memory-leaks/leak-xhr-2@2x.png differ
diff --git a/6-optimize/4-memory-leaks/leak-xhr.png b/6-optimize/4-memory-leaks/leak-xhr.png
index bfc4acf9..a649f114 100644
Binary files a/6-optimize/4-memory-leaks/leak-xhr.png and b/6-optimize/4-memory-leaks/leak-xhr.png differ
diff --git a/6-optimize/4-memory-leaks/leak-xhr@2x.png b/6-optimize/4-memory-leaks/leak-xhr@2x.png
index 25acf40a..e71fca8e 100644
Binary files a/6-optimize/4-memory-leaks/leak-xhr@2x.png and b/6-optimize/4-memory-leaks/leak-xhr@2x.png differ
diff --git a/8-css-for-js/10-box-sizing/border-box.png b/8-css-for-js/10-box-sizing/border-box.png
index c8f62118..d828c760 100644
Binary files a/8-css-for-js/10-box-sizing/border-box.png and b/8-css-for-js/10-box-sizing/border-box.png differ
diff --git a/8-css-for-js/10-box-sizing/border-box@2x.png b/8-css-for-js/10-box-sizing/border-box@2x.png
index 293fab37..b45ef3f5 100644
Binary files a/8-css-for-js/10-box-sizing/border-box@2x.png and b/8-css-for-js/10-box-sizing/border-box@2x.png differ
diff --git a/figures.sketch b/figures.sketch
index 62ee1a7d..8a53a83a 100644
Binary files a/figures.sketch and b/figures.sketch differ