diff --git a/docz/data/engines.xls b/docz/data/engines.xls
index 1f952f3..b5049fe 100644
--- a/docz/data/engines.xls
+++ b/docz/data/engines.xls
@@ -188,7 +188,7 @@
     |  | ✔ | - | + | ✔ | diff --git a/docz/docs/02-getting-started/02-examples/02-export.mdx b/docz/docs/02-getting-started/02-examples/02-export.mdx
index 8657155..3eb6bf9 100644
--- a/docz/docs/02-getting-started/02-examples/02-export.mdx
+++ b/docz/docs/02-getting-started/02-examples/02-export.mdx
@@ -1,4 +1,5 @@
 ---
+title: Export Tutorial
 pagination_prev: getting-started/installation/index
 pagination_next: getting-started/roadmap
 sidebar_position: 2
@@ -9,8 +10,6 @@ import Tabs from '@theme/Tabs';
 import TabItem from '@theme/TabItem';
 import CodeBlock from '@theme/CodeBlock';
 
-# Export Tutorial
-
 Many modern data sources provide an API to download data in JSON format. Many
 users prefer to work in spreadsheet software. SheetJS libraries help bridge the
 gap by translating programmer-friendly JSON to user-friendly workbooks.
@@ -942,10 +941,10 @@ current Java releases.
 Create a new project by running the following commands in the Terminal:
 
 {`\
-npx -y react-native@0.72.4 init SheetJSPres --version="0.72.4"
+npx -y react-native@0.73.6 init SheetJSPres --version="0.73.6"
 cd SheetJSPres
 \n\
-npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz react-native-blob-util@0.17.1`}
+npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz react-native-blob-util@0.19.8`}
 
 
 Save the following to `App.tsx` in the project:
@@ -1025,7 +1024,7 @@ export default App;
 
 :::note pass
 
-The Android demo has been tested in Windows 10 and in macOS.
+The Android demo has been tested in Windows, Arch Linux (Steam Deck) and macOS.
 
 :::
 
diff --git a/docz/docs/03-demos/17-mobile/01-reactnative.md b/docz/docs/03-demos/17-mobile/01-reactnative.md
index 46ec4a3..d4d31e2 100644
--- a/docz/docs/03-demos/17-mobile/01-reactnative.md
+++ b/docz/docs/03-demos/17-mobile/01-reactnative.md
@@ -910,6 +910,7 @@ This demo was tested in the following environments:
 | Android 34 | Pixel 3a          | `0.73.6` | `darwin-x64` | 2024-03-31 |
 | iOS 17.4   | iPhone 15 Pro Max | `0.73.6` | `darwin-x64` | 2024-03-31 |
 | Android 34 | Pixel 3a          | `0.73.6` | `win10-x64`  | 2024-03-31 |
+| Android 34 | Pixel 3a          | `0.73.6` | `linux-x64`  | 2024-03-31 |
 
 **Real Devices**
 
diff --git a/docz/docs/03-demos/19-desktop/06-reactnative.md b/docz/docs/03-demos/19-desktop/06-reactnative.md
index bae9a78..0310944 100644
--- a/docz/docs/03-demos/19-desktop/06-reactnative.md
+++ b/docz/docs/03-demos/19-desktop/06-reactnative.md
@@ -672,7 +672,7 @@ npx -y react-native-macos-init --no-telemetry
 In the most recent x64 test, the build failed due to `visionos` errors:
 
 ```
-[!] Failed to load 'React-RCTFabric' podspec: 
+[!] Failed to load 'React-RCTFabric' podspec:
 [!] Invalid `React-RCTFabric.podspec` file: undefined method `visionos' for #.
 ```
 
diff --git a/docz/docs/03-demos/32-extensions/01-extendscript.md b/docz/docs/03-demos/32-extensions/01-extendscript.md
index 726d842..3312f09 100644
--- a/docz/docs/03-demos/32-extensions/01-extendscript.md
+++ b/docz/docs/03-demos/32-extensions/01-extendscript.md
@@ -40,7 +40,7 @@ This demo was verified in the following deployments:
 | App       | Platform     | Date       |
 |:----------|:-------------|:-----------|
 | Photoshop | ExtendScript | 2024-03-12 |
-| InDesign  | ExtendScript | 2024-03-12 |
+| InDesign  | ExtendScript | 2024-04-04 |
 | InDesign  | CEP          | 2024-03-12 |
 | InDesign  | UXP          | 2024-03-11 |
 
diff --git a/docz/docs/03-demos/32-extensions/02-chromium.md b/docz/docs/03-demos/32-extensions/02-chromium.md
index 1af8385..7b99fe4 100644
--- a/docz/docs/03-demos/32-extensions/02-chromium.md
+++ b/docz/docs/03-demos/32-extensions/02-chromium.md
@@ -187,7 +187,7 @@ npm install
 4) Install the SheetJS dependency and start the dev server:
 
 {`\
-curl -o .\public\img\logo-48.png https://docs.sheetjs.com/logo.png
+curl -o ./public/img/logo-48.png https://docs.sheetjs.com/logo.png
 npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz
 npm run dev`}
 
diff --git a/docz/docs/03-demos/42-engines/01-duktape.md b/docz/docs/03-demos/42-engines/01-duktape.md
index af22292..bab49ae 100644
--- a/docz/docs/03-demos/42-engines/01-duktape.md
+++ b/docz/docs/03-demos/42-engines/01-duktape.md
@@ -130,7 +130,7 @@ This demo was tested in the following deployments:
 
 | Architecture | Version | Date       |
 |:-------------|:--------|:-----------|
-| `darwin-x64` | `2.7.0` | 2024-03-15 |
+| `darwin-x64` | `2.7.0` | 2024-04-04 |
 | `darwin-arm` | `2.7.0` | 2023-10-18 |
 | `win10-x64`  | `2.7.0` | 2024-03-27 |
 | `win11-arm`  | `2.7.0` | 2023-12-01 |
diff --git a/docz/docs/03-demos/42-engines/02-v8.md b/docz/docs/03-demos/42-engines/02-v8.md
index 5b5bfd7..aea3ab6 100644
--- a/docz/docs/03-demos/42-engines/02-v8.md
+++ b/docz/docs/03-demos/42-engines/02-v8.md
@@ -863,7 +863,7 @@ This demo was last tested in the following deployments:
 
 | Architecture | V8 Crate | Date       |
 |:-------------|:---------|:-----------|
-| `darwin-x64` | `0.88.0` | 2024-03-15 |
+| `darwin-x64` | `0.89.0` | 2024-04-04 |
 | `darwin-arm` | `0.82.0` | 2023-12-01 |
 | `win10-x64`  | `0.89.0` | 2024-03-24 |
 | `linux-x64`  | `0.89.0` | 2024-03-21 |
diff --git a/docz/docs/03-demos/42-engines/03-rhino.md b/docz/docs/03-demos/42-engines/03-rhino.md
index bd04b02..0be6fc2 100644
--- a/docz/docs/03-demos/42-engines/03-rhino.md
+++ b/docz/docs/03-demos/42-engines/03-rhino.md
@@ -29,6 +29,7 @@ This demo was tested in the following deployments:
 
 | OpenJDK | Rhino    | Date       |
 |:--------|:---------|:-----------|
+| 22      | `1.7.14` | 2024-04-04 |
 | 21.0.1  | `1.7.14` | 2023-12-05 |
 | 17.0.10 | `1.7.14` | 2024-03-25 |
 | 1.8.0   | `1.7.14` | 2023-12-05 |
diff --git a/docz/docs/03-demos/42-engines/04-jsc.md b/docz/docs/03-demos/42-engines/04-jsc.md
index 817fe78..b02261e 100644
--- a/docz/docs/03-demos/42-engines/04-jsc.md
+++ b/docz/docs/03-demos/42-engines/04-jsc.md
@@ -133,7 +133,7 @@ This demo was tested in the following environments:
 
 | Architecture | Swift   | Date       |
 |:-------------|:--------|:-----------|
-| `darwin-x64` | `5.10`  | 2024-03-15 |
+| `darwin-x64` | `5.10`  | 2024-04-04 |
 | `darwin-arm` | `5.9.2` | 2024-02-21 |
 
 :::
diff --git a/docz/docs/09-miscellany/05-contributing.md b/docz/docs/09-miscellany/05-contributing.md
index 6f7df5d..aa555d1 100644
--- a/docz/docs/09-miscellany/05-contributing.md
+++ b/docz/docs/09-miscellany/05-contributing.md
@@ -39,7 +39,7 @@ These instructions were tested on the following platforms:
 
 | Platform                      | Architecture | Test Date  |
 |:------------------------------|:-------------|:-----------|
-| Linux (Steam Deck Holo x64)   | `linux-x64`  | 2024-03-21 |
+| Linux (Steam Deck Holo x64)   | `linux-x64`  | 2024-04-01 |
 | Linux (Ubuntu 18 AArch64)     | `linux-arm`  | 2023-12-01 |
 | MacOS 14.4 (x64)              | `darwin-x64` | 2024-03-15 |
 | MacOS 14.1.2 (ARM64)          | `darwin-arm` | 2023-12-01 |
@@ -113,75 +113,23 @@ success with Windows on ARM running on computers with the M2 Max CPU.
 
 
 
-B) Install mercurial and subversion from within WSL:
+B) Install NVM within WSL:
 
 ```bash
-sudo apt-get update
-sudo apt-get install mercurial subversion
+sudo apt-get install curl
+curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
 ```
 
-:::note pass
+C) Exit the WSL session and start a new session
 
-In some Windows 10 runs, `mercurial` and `subversion` were not available in the
-default Ubuntu distro. A separate repository is available:
+D) Install NodeJS 16 using NVM:
 
 ```bash
-# Install support programs for the build and test commands
-sudo add-apt-repository ppa:mercurial-ppa/releases
-sudo apt-get update
-sudo apt-get install mercurial subversion
-sudo add-apt-repository --remove ppa:mercurial-ppa/releases
+nvm install 16
+nvm use 16
 ```
 
-If the first command displays an error involving a missing release file, remove
-the repo before proceeding:
-
-```bash
-sudo add-apt-repository --remove ppa:mercurial-ppa/releases
-```
-
-:::
-
-C) Install NodeJS within WSL:
-
-:::info pass
-
-In the most recent test, the script showed a deprecation notice.
-
-**The script worked as expected.**
-
-The official workaround does not currently work with WSL. When the issues are
-resolved, the instructions will be updated.
-
-:::
-
-```bash
-# Install bootstrap NodeJS and NPM within the WSL
-curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
-sudo apt-get install -y nodejs
-```
-
-D) Exit the WSL session and start a new session
-
-E) Install the `n` package and switch NodeJS versions:
-
-```bash
-# Switch to `n`-managed NodeJS
-sudo npm i -g n
-sudo n 16
-```
-
-:::note pass
-
-If `npm` is missing, it can be installed with
-
-```bash
-sudo apt-get install -y npm
-```
-
-:::
-
-F) Clone the [`js-crc32` repo](https://git.sheetjs.com/sheetjs/js-crc32)
+E) Clone the [`js-crc32` repo](https://git.sheetjs.com/sheetjs/js-crc32)
 
 ```bash
 git clone https://git.sheetjs.com/sheetjs/js-crc32
@@ -220,7 +168,7 @@ chmod +x compile-git-with-openssl.sh
 
 :::
 
-G) Set `git` config `core.autocrlf` setting to `false`. The following commands
+F) Set `git` config `core.autocrlf` setting to `false`. The following commands
 should be run twice, once within PowerShell (if Git for Windows is installed)
 and once within WSL bash:
 
@@ -229,13 +177,13 @@ git config --global --add core.autocrlf false
 git config --global --unset core.autocrlf true
 ```
 
-H) Run `unzip`. If the program is missing, install manually:
+G) Run `unzip`. If the program is missing, install manually:
 
 ```bash
 sudo apt-get install -y unzip
 ```
 
-I) Run `make`. If the program is missing, install manually:
+H) Run `make`. If the program is missing, install manually:
 
 ```bash
 sudo apt-get install -y make
@@ -290,12 +238,12 @@ open node-v12.22.12.pkg
   
   
 
-A) Install `curl` and `git` using the system package manager. On Debian and
-Ubuntu systems, `apt-get` installs packages:
+A) Install `curl`, `git`, and `build-essential` using the system package
+manager. On Debian and Ubuntu systems, `apt-get` installs packages:
 
 ```bash
 sudo apt update
-sudo apt-get install curl git
+sudo apt-get install curl git build-essential
 ```
 
 Other Linux distributions may use other package managers.
@@ -354,7 +302,7 @@ This is *not required* for building or testing the library.
 
 
 
-B) After installing mercurial and subversion, install NodeJS.
+B) Install NodeJS.
 
 :::note pass
 
@@ -519,28 +467,28 @@ echo 'export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"' >> ~/.profile
 ### Reproduce official builds
 
 5) Run `git log` and search for the commit that matches a particular release
-version.  For example, version `0.20.1` can be found with:
+version.  For example, version `0.20.2` can be found with:
 
 ```bash
-git log | grep -B4 "version bump 0.20.1"
+git log | grep -B4 "version bump 0.20.2"
 ```
 
 The output should look like:
 
 ```bash
-$ git log | grep -B4 "version bump 0.20.1"
+$ git log | grep -B4 "version bump 0.20.2"
 # highlight-next-line
-commit 29d46c07a895bdfd948d15b5115529ae697ccb48 <-- this is the commit hash
+commit a0bed2a97dcb1e3b76049be91abf3747f333c975 <-- this is the commit hash
 Author: SheetJS 
-Date:   Tue Dec 5 03:19:42 2023 -0500
+Date:   Thu Apr 4 21:20:28 2024 -0400
 
-    version bump 0.20.1
+    version bump 0.20.2
 ```
 
 6) Switch to that commit:
 
 ```bash
-git checkout 29d46c07a895bdfd948d15b5115529ae697ccb48
+git checkout a0bed2a97dcb1e3b76049be91abf3747f333c975
 ```
 
 7) Run the full build sequence
@@ -587,36 +535,36 @@ The checksum for the CDN version can be computed with:
   
 
 ```bash
-curl -L https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js | md5sum -
+curl -L https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | md5sum -
 ```
 
   
   
 
 ```bash
-curl -k -L https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js | md5
+curl -k -L https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | md5
 ```
 
   
   
 
 ```bash
-curl -L https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js | md5sum -
+curl -L https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | md5sum -
 ```
 
   
 
 
-When the demo was last tested on macOS, against version `0.20.1`:
+When the demo was last tested on macOS, against version `0.20.2`:
 
 >
 ```bash
 $ md5 dist/xlsx.full.min.js
 # highlight-next-line
-MD5 (dist/xlsx.full.min.js) = c5db4b1d2a1985a4ebfbaa500243f593
-$ curl -k -L https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js | md5
+MD5 (dist/xlsx.full.min.js) = 50d3c495c9358a6196878296d2644eab
+$ curl -k -L https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | md5
 # highlight-next-line
-c5db4b1d2a1985a4ebfbaa500243f593
+50d3c495c9358a6196878296d2644eab
 ```
 
 The two hashes should match.
diff --git a/docz/package.json b/docz/package.json
index 567f977..337e25d 100644
--- a/docz/package.json
+++ b/docz/package.json
@@ -28,7 +28,7 @@
     "react-dom": "17.0.2",
     "rehype-katex": "4.0.0",
     "remark-math": "3.0.1",
-    "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz"
+    "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
   },
   "devDependencies": {
     "@docusaurus/module-type-aliases": "2.4.1"
diff --git a/docz/version.js b/docz/version.js
index 5de34cc..362b0eb 100644
--- a/docz/version.js
+++ b/docz/version.js
@@ -1,3 +1,3 @@
-//const version = "0.20.1";
+//const version = "0.20.2";
 import { version } from "xlsx";
 export default version; |